Graphing 2d plane in 3d space using equation and/o

2019-09-12 01:19发布

I'm trying to make a linear regression plane visualization tool for a math project. Currently I have the math parts completed, but I am not sure how to graph the plane. I have a equation in the form of z=C+xD+yE, where C, D, and E are known constants. How do I graph the plane using these information? Thanks.

github page: https://saxocellphone.github.io/LAProject/

2条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-09-12 01:50

I see your problem is not with math, but with three, as WestLangley pointed out in his comment you can play with rotations etc. or create a simple triangle which is the easiest way

since you have your equation for the plane create 3 points to form a triangle

// z=C+xD+yE
// i assume here that the plane is not aligned with any axis 
// and does not pass through the origin, otherwise choose the points in another way
var point1 = new THREE.Vector3(-C/D,0,0);//x axis intersection
var point2 = new THREE.Vector3(0,-C/E,0);//y axis intersection
var point3 = new THREE.Vector3(0,0,C);//z axis intersection

now form a new geometry as in How to make a custom triangle in three.js

var geom = new THREE.Geometry(); 
geom.vertices.push(point1);// adding vertices to geometry
geom.vertices.push(point2);
geom.vertices.push(point3);
// telling geometry that vertices 0,1,2 form a face = triangle
geom.faces.push( new THREE.Face3( 0, 1, 2 ) ); 

create a simple material and add it to a scene

var material = new THREE.MeshBasicMaterial({
    color: 0xff0000, // RGB hex color for material
    side: THREE.DoubleSide // do not hide object when viewing from back
});
scene.add(new THREE.Mesh(geometry,material));

that should get you going, you can add another triangles, or make it larger with choosing points that are further apart

查看更多
可以哭但决不认输i
3楼-- · 2019-09-12 02:02
 z=C+xD+yE

This equation gives full information about the plane. What else you need to graph (plot, draw?) it? Probably it depends on your graphic software possibilities. Canonical form of given equation:

 xD + yE - z + C = 0

Normal to the plane is (D, E, -1). Distance to the coordinate origin Abs(C)/Sqrt(D^2+E^2+1).

Plane intersects coordinate axes at values (-C/D), (-C/E), (C)

查看更多
登录 后发表回答