Object3D.worldToLocal() 方法将三维空间坐标系中的向量转换为本地坐标系中的向量。本地坐标系是以当前对象的中心点为原点的坐标系。
这个方法是 THREE.Object3D 类的一个方法,所以只有继承自这个类的对象才可以使用。
vector = object.worldToLocal(vector)
vector:THREE.Vector3 类型的对象,需要被转换的向量。vector:THREE.Vector3 类型的对象,转换后的向量。const object = new THREE.Object3D();
const vector = new THREE.Vector3(3, 2, 1);
object.position.set(2, 2, 2);
const localVector = object.worldToLocal(vector);
console.log(localVector);
// 输出结果: THREE.Vector3(-1, 0, -1)
在这个例子中,我们创建了一个 THREE.Object3D 类型的对象 object 和一个 THREE.Vector3 类型的向量 vector,将 vector 的值设置为 (3, 2, 1)。然后我们将 object 的位置设置为 (2, 2, 2),这样它的中心点就位于 (2, 2, 2) 这个位置。最后我们调用 object.worldToLocal(vector) 方法将 vector 中的坐标从三维空间坐标系转换为 object 的本地坐标系中的坐标,并将其存储在 localVector 变量中。最后一行代码 console.log(localVector) 打印出了转换后的坐标值,应该是 -1, 0, -1。