我如何提取相交点(Vector3)的相交对象

How do I extract the intersect point (Vector3) of the intersectObjects?

本文关键字:Vector3 对象 提取 何提取      更新时间:2023-09-26

我试图找到从'child'射线和网格(child2)之间的交叉点,使用Raycaster:

var raycaster = new THREE.Raycaster();
var meshList = [];
meshList.push(child2);
for (var i = 0; i < child.geometry.vertices.length; i++) {
    var diff = new THREE.Vector3();
    diff.subVectors (child.geometry.vertices[i],child2.position);
    raycaster.set(child.geometry.vertices[i],diff.normalize());
    var intersects = raycaster.intersectObjects( meshList );
    console.log(intersects[0].point);
}

但是上面的代码在最后一行给了我错误(console.log(intersects[0].distance)): "TypeError: undefined不是一个对象(求'intersects[0].point')"。

我如何提取光线和'child2'网格之间的交叉点?

测试以确保确实有结果!

var intersects = raycaster.intersectObjects( meshList );
if (intersects.length) {
   console.log(intersects[0].point);
} else {
   console.log('ha, you missed me');
}