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
Javascript 在三维模型上绘制符合其曲面的线_Javascript_Three.js - Fatal编程技术网

Javascript 在三维模型上绘制符合其曲面的线

Javascript 在三维模型上绘制符合其曲面的线,javascript,three.js,Javascript,Three.js,我正在使用three.js构建一个用于注释三维模型的工具。我希望用户能够在一个模型上画线,精确地跟随曲面的轮廓。例如,如果在人脸模型上绘制一条线,并在鼻子两侧放置一个点,则该线应穿过鼻子,而不是穿过鼻子 我可以通过在纹理上绘制线条来实现这一点,但我希望线条是可点击的,这需要我自己实现点击检测。我更喜欢在Three.js中将其作为一个line对象。有没有一种简单的方法可以找到模型表面两点之间的面?结果比我想象的要简单:我将模型转换为一个面图,其中每个面都是一个节点,通过边连接到它旁边的其他面。然后

我正在使用three.js构建一个用于注释三维模型的工具。我希望用户能够在一个模型上画线,精确地跟随曲面的轮廓。例如,如果在人脸模型上绘制一条线,并在鼻子两侧放置一个点,则该线应穿过鼻子,而不是穿过鼻子


我可以通过在纹理上绘制线条来实现这一点,但我希望线条是可点击的,这需要我自己实现点击检测。我更喜欢在Three.js中将其作为一个line对象。有没有一种简单的方法可以找到模型表面两点之间的面?

结果比我想象的要简单:我将模型转换为一个面图,其中每个面都是一个节点,通过边连接到它旁边的其他面。然后,只需找到用户单击的人脸,然后使用最短路径算法(在我的例子中是Dijkstra算法)来查找每个节点之间的人脸。

碰巧遇到了这个问题,我记得不久前我也用类似于Dave的方法解决了这个问题。我在这里用一个演示做了一个简单的例子:

你能分享一张图片吗,因为看到结果会很有趣?代码/演示会公开吗?谢谢