我有一个类,它包含4x4矩阵,用于缩放和翻译。我如何为这个类实现旋转方法?我应该将旋转实现为单独的矩阵吗?
答案 0 :(得分:3)
您可以将当前矩阵与旋转矩阵相乘。看看http://en.wikipedia.org/wiki/Rotation_matrix
答案 1 :(得分:1)
每当我需要查找3D转换的详细信息时,我会使用一个名为http://www.euclideanspace.com的网站。矩阵旋转的特定页面可以找到here。
编辑:围绕给定轴旋转,查看axis & angle表示。此页面还链接到有关如何将一种表示转换为另一种表示的说明。
如果需要围绕多个轴旋转,只需将相应的矩阵相乘即可。
答案 2 :(得分:1)
回答问题的后半部分,单个4x4矩阵完全能够保持缩放,平移和旋转。因此,除非您对可以处理的4x4矩阵有特殊的限制,否则单个4x4可以满足您的需求。
关于任意向量的旋转(正如您在评论中提到的那样),请查看yabcok链接到的维基百科文章中的“关于任意向量的旋转”部分。你需要将它扩展为4x4矩阵,用零填充它除了4,4(缩放)位置,它应该是1。然后使用矩阵乘法与缩放/平移4x4生成新的4x4矩阵。
答案 3 :(得分:0)
您希望确保找到一个参考资料,其中介绍了用于计算机图形的正确类型的矩阵(即使用4x4变换矩阵进行旋转/平移/倾斜的3D齐次坐标)。
查看计算机图形“圣经”,例如Foley and Van Dam(pg. 213)或其中之一:
答案 4 :(得分:0)