我有一个模型,它的关节可以旋转。模型被转换到中心。矩阵应用于
applyMatrix()
是基于四元数值的旋转矩阵,因此它可以在没有万向节锁的情况下旋转。
但是我想围绕一个关节点平移和旋转,这个关节点使用模型的偏移,所以我可以找到那个点,因为它只是
model.x/y/z + offset.x/y/z
. 但是,这并没有考虑到
applyMatrix()
,但我想能够计算出关节点的位置
(x,y,z)
无论它在什么旋转。
translate(width/2, height/2, 0);
applyMatrix(m[1][1],m[1][2],m[1][0],0,
m[2][1],m[2][2],m[2][0],0,
m[0][1],m[0][2],m[0][0],0,
0,0,0,1);
pushMatrix();
// rotate around this joint point
translate(offsetX, offsetY, offsetZ);
// !!!!
// WHAT is the new x,y,z right here??
// !!!!
rotate(amt);
translate(-offsetX, -offsetY, -offsetZ);
shape(component)
popMatrix();