为转换矩阵创建约束

时间:2015-02-13 05:00:55

标签: opengl math matrix constraints quaternions

在3d空间中,我有一个3d对象,我正在使用变换矩阵进行旋转。变换矩阵是4x4,但我只是使用矩阵的旋转部分。我想为旋转添加约束,例如,对象只能在z方向上旋转20度。我知道以下内容但是当我添加手动约束时,例如角度不能大于20,我会在我的对象中出现缩放和倾斜。

enter image description here

总结一下我的问题如何将约束添加到转换矩阵?

1 个答案:

答案 0 :(得分:0)

简短的回答是,您应该为Euler Angle表示添加约束。

如果仅以矩阵形式保持旋转,则将其转换为欧拉角表示,应用约束并将欧拉角转换为矩阵形式。

注意:您的Rx Ry Rz表示称为“Euler Angels” http://en.wikipedia.org/wiki/Euler_angles。有许多方法可以组合关于正交轴的旋转。可以从中获取所有转化的代码 http://tog.acm.org/resources/GraphicsGems/gemsiv/euler_angle/