检查线和网格是否在three.js中相交

时间:2015-07-23 12:32:07

标签: javascript three.js line intersection mesh

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

这不起作用

myLine.intersectObjects( arrayOfCilinders , true)

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

myRay.intersectObjects( arrayOfCilinders , true)

谢谢!

1 个答案:

答案 0 :(得分:2)

来自Three.js文档:

  

雷(起源,方向)

     

origin - Vector3 Ray的起源。

     

方向 - Vector3 Ray的方向。

因此,如果你有 pointA pointB ,那就是用户的点击次数,你可以:

(伪代码)

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

您可以使用THREE.Raycaster()

执行相同操作