从matrix4()获取翻译

jua*_*cre 5 three.js

对于大多数three.js开发人员来说,这似乎是一个虚拟的问题,但是,如何从转换矩阵中提取翻译?

实际上,我是在手动提取它以指向矩阵数组位置(12、13、14)。

提前致谢。

Bra*_*don 5

Matrix4有一种decompose方法可以做到这一点。

var mat = /* ... */;
var translation = new THREE.Vector3(),
  rotation = new THREE.Quaternion(),
  scale = new THREE.Vector3();
mat.decompose(translation, rotation, scale);
Run Code Online (Sandbox Code Playgroud)

当然,如果您只对翻译感兴趣,那么您最好做您当前正在做的事情。在幕后,decompose只需从 中提取元素 12、13 和 14mat.elements


Wes*_*ley 5

如果要从矩阵中提取翻译组件,请使用以下模式:

var vec = new THREE.Vector3();
vec.setFromMatrixPosition( matrix4 );
Run Code Online (Sandbox Code Playgroud)

使用Matrix4.decompose()仅当您需要的翻译,四元数和污垢成分。

three.js r.73