Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
建议为three.js包装一个3d三角架_Three.js_Triangulation_Delaunay - Fatal编程技术网

建议为three.js包装一个3d三角架

建议为three.js包装一个3d三角架,three.js,triangulation,delaunay,Three.js,Triangulation,Delaunay,我在网上冲浪,寻找3D世界的三角化代码,以便与three.js一起使用。我知道有形状对象,但它只能使用2D和路径。我会有外部多边形、点、孔和“强制”多段线 如何处理这三个问题?我必须使用另一个JS框架吗 非常感谢您的想法。您是在尝试对一个近似平面的或平面的三维多边形进行三角剖分吗 如果您有一个接近平面或平面的三维多边形,可以通过将其“投影”到二维,运行三角剖分,然后将其“反投影”回三维来对其进行三角剖分。许多库(如CGAL)通过选择一个简单的“平面”(xy、yz或xz平面),向下投影,进行三角剖

我在网上冲浪,寻找3D世界的三角化代码,以便与three.js一起使用。我知道有形状对象,但它只能使用2D和路径。我会有外部多边形、点、孔和“强制”多段线

如何处理这三个问题?我必须使用另一个JS框架吗


非常感谢您的想法。

您是在尝试对一个近似平面的或平面的三维多边形进行三角剖分吗

如果您有一个接近平面或平面的三维多边形,可以通过将其“投影”到二维,运行三角剖分,然后将其“反投影”回三维来对其进行三角剖分。许多库(如CGAL)通过选择一个简单的“平面”(xy、yz或xz平面),向下投影,进行三角剖分,然后“向上投影”来实现这一点

诀窍在于,如果不添加任何新点,实际上不必“投影备份”,只需在新数据结构中列出旧的3d点,指示哪些点属于哪些三角形。如果你的代码非常聪明,你甚至不需要“转换”到2d,你只需要愚弄你的三角剖分算法,让它思考,例如,假设你已经投影到yz平面上,y是x,z是y

因此,如果你有一个接近平面的3d多边形,一个好的2d三角剖分算法three.js’shape可能就足够了,但如果没有,也许安格斯·约翰逊的Clipper的一些组合可能会有所帮助,特别是如果你想集成散乱的点、线等,你只需要编写一些“粘合”代码来进行3d->2d投影,和反投影2d->3d。输出的顺时针方向和逆时针方向可能有点棘手,但编程并不是世界上最困难的事情


祝你好运。

最后我决定使用poly2tri。谢谢