我在场景中有一些cilinders。当用户点击某些特定点时,我在点之间画一条线(THREE.Line)。我需要检查线是否与任何一个cilinders相交(THREE.Mesh)。
这不起作用
myLine.intersectObjects( arrayOfCilinders , true)
可以在线上画一条光线吗?在那种情况下,我可以使用
myRay.intersectObjects( arrayOfCilinders , true)
谢谢!
答案 0 :(得分:2)
来自Three.js文档:
雷(起源,方向)
origin - Vector3 Ray的起源。
方向 - Vector3 Ray的方向。
因此,如果你有 pointA 和 pointB ,那就是用户的点击次数,你可以:
(伪代码)
origin = pointA
direction = (pointB-pointA).normalize()
myRay = THREE.Ray(origin, direction)
您可以使用THREE.Raycaster()