据我所知,将返回对象几何内部的,和点var point = object.geometry.vertices[i];
的相对位置。x
y
z
如果对象被移动、旋转或缩放,如何获得绝对位置?
据我所知,将返回对象几何内部的,和点var point = object.geometry.vertices[i];
的相对位置。x
y
z
如果对象被移动、旋转或缩放,如何获得绝对位置?
首先确保对象的矩阵已经更新。
object.updateMatrixWorld();
渲染循环通常会为您调用它。
然后,这样做:
var vector = object.geometry.vertices[i].clone();
vector.applyMatrix4( object.matrixWorld );
向量现在将包含世界坐标中的位置。
您可能想阅读一些 CG 参考书。
用于图形和游戏开发的 3D 数学入门 / Fletcher Dunn 和 Ian Parberry 着
游戏和交互式应用程序的基本数学:程序员指南 James M. Van Verth 和 Lars M. Bishop
三.js r69
Three.js (v50+) 的最新版本提供了内置到类THREE.Object3D
中的此功能。特别是,要获取THREE.Vector3
名为 的本地实例的世界坐标vector
,请使用以下localToWorld
方法:
object.localToWorld( vector );
类似地,还有一种将世界坐标转换为局部坐标的worldToLocal
方法,在数学上稍微复杂一些。要将世界vector
转换为对象的局部坐标空间:
object.worldToLocal( vector );