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