1. 首页
  2. three.js

three.js三维空间中的二维对象(按顶点)

大家好!n我有一个问题:n如何在三维空间中绘制由顶点给出的二维平面对象?n我有一个带有3D点的数组,我想从点[0]到点[1],从点[1]到点[2]等等画一条线。n现在我有一个如下的==parseFloat(Face.Vertices3D[0].x);三角形[i++=parseFloat(Face.Vertices3D[0].z);三角形[i++=parseFloat(Face.Vertices3D[v].y);三角形[i++=parseFloat(Face.Vertices3D[v+1].x];三角形[i++=parseFloat(Face.Vertices3D[$v+1].z);}返回三角形;}n我前段时间写的,它在大多数情况下都能工作。n它从对象中生成三角形。但在某些情况下,函数faceToTriangles()工作不正确。它会生成超出对象范围的三角形。n如何正确绘制?n如何在三维空间中显示二维平面对象(由顶点数组给出)?n也许不用转换成三角形?n(对不起我的英语)n嗨!n这是否意味着,所有这些点都是共面的,它们形成了一个轮廓(你想用三角形填充它)?是的,它们都是共面的,阵列的下一个元素形成一个轮廓。我想显示它(用一些颜色填充)。n还有一个问题:点的顺序是顺时针还是逆时针?n也可以是,一个轮廓的点的种类是顺时针的,另一个轮廓是逆时针的,等等。np>一次是顺时针的,另一次是逆时针的。n但是数组中的点的顺序总是对象中点的顺序。也就是说:n1。边:点[0]->;点[1]n2。边:点[1]->;点[2]n3。Edge:Points[2]->;Points[3]n…nn.Edge:Points[n]->;Points[0]+/p>n你能提供一个点的列表吗,这样我就可以用真实的东西来检验我的想法了?n另外,你想让这些数字从两边,前面和后面都看得见吗?n<prisoner849:n</prisoner849:n<p?n</p?n是的,当然:(JSON格式)n{\"Vertices3D\":[{\"x\":10,\"y\":10,\"z\":1},{\"x\":9.421052631578952,\"y\":11.736842105263158,\"z\":6.789473684210525},{\"x\":5,\"y\":12.142857142857142,\"z\":7.7142857142857135},{\"x\":5.285714285714286,\"y\":13,\"z\":10.628571428571426},{\"x\":-1,\"y\":13,\"z\":10},{\"x\":0,\"y\":10,\"z\":0}]}nprisoner849:n您想让这些数字从两边、前面和后面都可见吗?是的,但我想我能做到。nstackoverflow.comThree.js-3D空间中的2D对象(按顶点)73,three.js,geometry,2d由risoner849于下午1:29-5月10日18 UTC答复n谢谢。这是我在stackoverflow上的问题,div,Przemyslaw,Niemiec:,div,blockquote,这是我的问题,我看到了,以防万一:https://jsfiddle.net/prisoner849/gnp5ktjh/177始终是一个优雅的解决方案。我曾经测试过一些变体。n这个方法似乎也适用于非平面点。n只有uv缺失n附录:n似乎非平面点也适用。只有紫外线不见了!n<20180510-2118-06210775×536 KBn<hofk感谢您的测试strong>three.js由Risoner849于下午2:24-5月14日18 UTC答复它不会持续这么简单,而且还在不断演变:nstackoverflow.com如何使用非平面形状(曲面)41的threejs绘制具有3d点(x,y,z)的形状几何体three.js由Risoner849于下午02:46PM-5月15日18 UTC回复,n嗨,n我现在有以下代码:nfunction addObject3D( Object = new THREE.Triangle(points[2], points[1], = = new =>nEverything is ok, when I use THREE.MeshBasicMaterial, but when i try to use a texture – the object has a solid color instead the texture.nHow to use the texture? nPossibly, there\”s something wrong with UV coordinates.nAlso I think threejs is incompatible with php nMy mistake.nThere is no <?php行在这个例子中,我在X-Y(水平)平面上画了一个多边形,然后将这些点投影到一个倾斜的平面上,这样所有点的Z坐标都是非负的。生成的面/平面未按预期绘制(即:周界中非连续点之间的轮廓“跳跃”):nhttps://jsfiddle.net/Peque/0tj2vceg23n预期结果应该是一个L形多边形,每个相邻的顶点对之间只有6个线段,所有区域都在投影多边形内填充。n对正在发生的事情有什么想法,或者我如何解决?n可能是一个精度问题n我稍微清理了一下code。n;;planetest=new透视照相机(30, 窗口宽度/ 窗内高度, 1, 1000);摄像机位置设置(0, 0, 400);照相机(0, 0, 1);// = 数学圆周率/=[新3.矢量2(-20,0),新3.矢量2(-20, -20),新的3.矢量2(20,-20),新的3.矢量2(20,20),新的3.矢量2(0,20),//新3.矢量2(0,0),新的3.矢量2(-0.000000000001,0.000000000001),新3.矢量2(-20,=新的3.Vector3(0,=新三、形状(projectedPoints>n作为选项,尝试不使用四元数的方法:nhttps://jsfiddle.net/prisoner849/gsLz4vmk/43ndiv>div>854×452 KBn 2D object in 3D space (by Vertices)n

three.js三维空间中的二维对象(按顶点) 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e4%b8%89%e7%bb%b4%e7%a9%ba%e9%97%b4%e4%b8%ad%e7%9a%84%e4%ba%8c%e7%bb%b4%e5%af%b9%e8%b1%a1%ef%bc%88%e6%8c%89%e9%a1%b6%e7%82%b9%ef%bc%89/