3d(THREE.js):差异矩阵

时间:2017-12-24 12:54:00

标签: javascript three.js

我想保存代表两个THREE.Object3d之间相对差异的信息。我更喜欢将数据保存为转换矩阵。

有人知道我需要做些什么才能得到这个?

我想有一个矩阵4,稍后我可以应用于一个对象,它将以相同的值移动/旋转。

由于

2 个答案:

答案 0 :(得分:4)

所以你有两个转换A和B,你正在寻找将A转换为B的转换T,对吗?正式这写为

B = T·A

现在你可以想到从A到B,从A回到身份(I),然后从身份回到B,即

从A回到我:

I = inv(A)·A

从我到B

B = B·I

将你链接起来

B = B·inv(A)·A

添加一些括号以突出显示内容:

B =(B·inv(A))·A

将其与第一个等式进行比较,我们看到

T = B·inv(A)

答案 1 :(得分:1)

对于每个对象,您可以执行

matrix.decompose( position, quaternion, scale )

获取位置,四元数和比例,然后返回四元数,你可以做

matrix.makeRotationFromQuaternion( quaternion )

然后存储您需要的适当差异。