使用方程和/或矢量在三维空间中绘制二维平面
Graphing 2d plane in 3d space using equation and/or vectors
我正在尝试为一个数学项目制作一个线性回归平面可视化工具。目前我已经完成了数学部分,但我不知道如何绘制平面图。我有一个z=C+xD+yE形式的方程,其中C、D和E是已知的常数。如何使用这些信息绘制平面图?谢谢
github页面:https://saxocellphone.github.io/LAProject/
z=C+xD+yE
这个方程式给出了关于飞机的全部信息。你还需要什么来绘制它?可能这取决于你的图形软件的可能性。给定方程的正则形式:
xD + yE - z + C = 0
平面的法线为(D, E, -1)
。到坐标原点Abs(C)/Sqrt(D^2+E^2+1)
的距离。
平面与坐标轴相交的值为(-C/D), (-C/E), (C)
我知道你的问题不是数学,而是三,正如WestLangley在他的评论中指出的那样,你可以玩旋转等游戏,或者创建一个简单的三角形,这是最简单的方法
既然你有了平面的方程式,就可以创建3个点来形成一个三角形
// 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
现在形成一个新的几何体,如如何在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 ) );
创建一个简单的材质并将其添加到场景中
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));
这应该会让你开始,你可以添加另一个三角形,或者通过选择距离
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 有没有一个javascript图形绘制库可以进行气球树布局
- 使用相同的数据集绘制各种符号
- 使用onclick绘制SVG路径
- 在谷歌地图上绘制位置数据库
- 用chart.js绘制条形图
- “可绘制地图”设置地图选项“纬度-经度”
- 多维数据集网格未在指定的分区中绘制
- 使用谷歌图表在x轴上绘制日期
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- 如何在React Native中绘制图形
- 画布中绘制的矩形区域的弹出工具提示
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- 画布:逐像素绘制图像并请求动画帧计时
- D3从嵌套的JSON中绘制第二个圆环图
- 嵌套JSON到平面HTML表
- 如何用d3.js绘制折线图
- 使用方程和/或矢量在三维空间中绘制二维平面
- getusermedia视频不是在three.js平面上绘制的