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
。