检查直线和网格在Three.js中是否相交
我在场景中放了一些卷烟。当用户点击一些特定点时,我在这些点之间画了一条线(THREE.Line)。我需要检查这条线是否与任何线条(THREE.Mesh)相交。
这不起作用
myLine.intersectObjects( arrayOfCilinders , true)
可以在这条线上画一条射线吗?在这种情况下,我可以使用
myRay.intersectObjects( arrayOfCilinders , true)
谢谢!
解决方案
来自Three.js文档:
射线(原点、方向)
原点--向量3光线的原点。
方向-向量3光线的方向。
因此,如果您有point TA和point B这两个用户的点击,您可以:
(伪代码)
origin = pointA
direction = (pointB-pointA).normalize()
myRay = THREE.Ray(origin, direction)
您可以使用THREE.Raycaster()
相关文章