Three.js射线Ray
Threejs引擎定义的一个射线类Ray和数学中射线含义类似,就是在三维空间中通过一个起点和沿着某个方向产生一个射线。
// 创建射线对象Ray
var ray = new THREE.Ray()
// 设置射线起点
ray.origin = new THREE.Vector3(1,0,3);
// 设置射线方向
ray.direction = new THREE.Vector3(1,1,1).normalize();
通过射线Ray
的.intersectTriangle()
方法判断射线和一个三角形区域是否相交,如果相交返回交点坐标,不相交返回null。
// 三角形三个点坐标
var p1 = new THREE.Vector3(20, 0, 0);
var p2 = new THREE.Vector3(0, 0, 10);
var p3 = new THREE.Vector3(0, 30, 0);
// 相交返回交点,不相交返回null
var result = ray.intersectTriangle(p1,p2,p3)
console.log('查看是否相交', result);
通过射线Ray
的.intersectsBox(Box3)
方法判断射线和一个包围盒Box3是否相交,通过射线Ray
的.intersectsSphere(Sphere)
方法判断射线和一个包围球Sphere是否相交…