【问题标题】:Three.js Detection flat surface any object三.js检测平面任意物体
【发布时间】:2022-01-16 17:22:48
【问题描述】:

我想知道如何检测添加到场景中的任何对象的平面。我想从我的对象的一小段距离上在任何检测到的平面上绘制 PlanGeometry,我知道如何绘制它,但我不知道如何检测平面。有人可以给我任何线索,或者有人知道可以帮助我的图书馆吗?

【问题讨论】:

    标签: javascript typescript three.js 3d


    【解决方案1】:

    你所说的“扁平”到底是什么意思?我假设您想找到属于同一平面的对象的面?这可以通过计算一个面的平面方程并将其与其他面进行比较来完成。 Three.js 可以用来实现这一点。下面是一些可以帮助您入门的内容:

    1. 使用normal 的属性和.distanceToPoint(origin)the face class 方法计算面(非顶点)法线和到原点的距离
    2. 使用法线和距离创建Plane
    3. 使用平面的equals(plane) 方法将一张面的平面与邻居进行比较

    使用此算法,您应该能够将对象的所有面分组到共享一个公共平面的组中。

    【讨论】:

    • 我的意思是,我想找到一个面积大于我给出的值的平面。之后,我想创建一个可以单击并执行一些操作的平面
    • 好的,但是这个“平面”可能由多个面组成。上述三个步骤是查找属于同一平面的面的一种方法。
    猜你喜欢
    • 2011-06-30
    • 2020-05-21
    • 2017-01-17
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2013-12-15
    • 2011-08-06
    相关资源
    最近更新 更多