【问题标题】:Check if a line and a mesh intersect in three.js在three.js中检查一条线和一个网格是否相交
【发布时间】:2015-10-13 18:19:12
【问题描述】:

我在场景中有一些锡林德。当用户单击某些特定点时,我在这些点之间画了一条线(三线)。我需要检查线是否与任何 cilinders (THREE.Mesh) 相交。

这不行

myLine.intersectObjects( arrayOfCilinders , true)

可以在直线上画一条射线吗?在那种情况下,我可以使用

myRay.intersectObjects( arrayOfCilinders , true)

谢谢!

【问题讨论】:

  • 在 three.js 文档中检查 raycaster 或 ray
  • 这就是我想做的,但我不知道如何在我已经拥有的线上模拟光线

标签: javascript three.js line intersection mesh


【解决方案1】:

来自 Three.js 文档:

射线(原点,方向)

origin -- Vector3 射线的原点。

direction -- Vector3 射线的方向。

所以如果你有 pointApointB 是用户的点击,你可以:

(伪代码)

origin = pointA
direction = (pointB-pointA).normalize()
myRay = THREE.Ray(origin, direction)

你可以用THREE.Raycaster()做同样的事情

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 1970-01-01
    • 2022-01-04
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2011-10-27
    相关资源
    最近更新 更多