Three.js 对象局部坐标转换为世界坐标

techbrood 发表于 2016-08-03 10:26:26

标签: threejs, 坐标, 变换

- +

在Three.js中进行顶点几何计算时,一个需要注意的地方是,需要统一坐标系。

比如你通过Three.js提供的API创建了一个球体网孔对象,那么默认情况下,各网孔顶点的坐标是局部坐标(Local Matrix),即相对于该对象的position属性而言的相对坐标。

当出现旋转、平移、设置位置(position)等变换时,需要相应更新世界坐标。当需要和外部粒子对象进行比较计算时,也需要转换为世界坐标(World Matrix)。


在Three.js r78版本中,我们可以如下操作:

1. 首先确保对象的矩阵已被更新:

object.updateMatrixWorld();

默认情况下会自动更新,在render循环中被自动调用。


2. 使用更新后的世界坐标变换矩阵来计算:

var vector = object.geometry.vertices[i].clone();
vector.applyMatrix4( object.matrixWorld );

这样vector中保存的就是世界坐标了。

possitive(24) views25450 comments2

发送私信

最新评论

㌍㌫㌶㍊㍍㍑㌫㌶㍍㌫㌍ 2020-07-25 17:52:25

收藏了


壹身傲骨怎能服输 2016-10-28 14:30:02

www.zbboke.com 张兵博客 到此一游


请先 登录 再评论.
相关文章