检查直线和网格是否相交 three.js
Check if a line and a mesh intersect in three.js
我在场景中有一些圆筒。当用户点击某些特定点时,我在这些点之间画一条线 (THREE.Line)。我需要检查该线是否与任何 cilinders (THREE.Mesh) 相交。
这不起作用
myLine.intersectObjects( arrayOfCilinders , true)
是否可以在线上画一条射线?在那种情况下我可以使用
myRay.intersectObjects( arrayOfCilinders , true)
谢谢!
来自 Three.js 文档:
Ray(origin, direction)
origin -- Vector3 The origin of the Ray.
direction -- Vector3 The direction of the Ray.
所以如果你有 pointA 和 pointB 是用户的点击,你可以:
(伪代码)
origin = pointA
direction = (pointB-pointA).normalize()
myRay = THREE.Ray(origin, direction)
你可以用 THREE.Raycaster()
做同样的事情
我在场景中有一些圆筒。当用户点击某些特定点时,我在这些点之间画一条线 (THREE.Line)。我需要检查该线是否与任何 cilinders (THREE.Mesh) 相交。
这不起作用
myLine.intersectObjects( arrayOfCilinders , true)
是否可以在线上画一条射线?在那种情况下我可以使用
myRay.intersectObjects( arrayOfCilinders , true)
谢谢!
来自 Three.js 文档:
Ray(origin, direction)
origin -- Vector3 The origin of the Ray.
direction -- Vector3 The direction of the Ray.
所以如果你有 pointA 和 pointB 是用户的点击,你可以:
(伪代码)
origin = pointA
direction = (pointB-pointA).normalize()
myRay = THREE.Ray(origin, direction)
你可以用 THREE.Raycaster()