据我所知,
如果对象已移动、旋转或缩放,如何获取绝对位置呢?
var point = object.geometry.vertices [i];
将返回对象几何图形内点的相对位置,包括x
,y
和z
坐标。如果对象已移动、旋转或缩放,如何获取绝对位置呢?
var point = object.geometry.vertices [i];
将返回对象几何图形内点的相对位置,包括x
,y
和z
坐标。您可以这样获取顶点的世界位置:
const vertex = new THREE.Vector3(); // create once and reuse
const attribute = object.geometry.getAttribute( 'position' );
vertex.fromBufferAttribute( attribute, index );
object.localToWorld( vertex );
three.js r151
最新的Three.js版本(v50+)将此功能内置到THREE.Object3D
类中。特别是,要获取名为vector
的本地THREE.Vector3
实例的世界坐标,请使用localToWorld
方法:
object.localToWorld( vector );
同样地,有一个 worldToLocal 方法 可以将世界坐标转换为本地坐标,从数学角度来说会稍微更复杂一些。要将世界 向量
转换为对象的本地坐标空间:
object.worldToLocal( vector );