【问题标题】:Draw a line on a 3D model that conforms to its surface在符合其表面的 3D 模型上绘制一条线
【发布时间】:2018-09-13 12:59:41
【问题描述】:

我正在构建一个使用 Three.js 注释三维模型的工具。我希望用户能够在模型上绘制完全符合曲面轮廓的线条。例如,如果您在一个人的脸部模型上画一条线,并在鼻子的两侧放置一个点,则该线应该越过鼻子,而不是穿过它。

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

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

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

    【讨论】:

    • 你能分享一张照片吗,看看结果会很有趣吗?
    • 代码/演示是否会公开提供?谢谢!
    【解决方案2】:

    碰巧遇到了这个问题,并记得我不久前也以与 Dave 类似的方式解决了这个问题。我在这里做了一个简单的例子:https://github.com/foobarbecue/threejs-shortest-path

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多