XNA -绕X和Z轴旋转3D

本文关键字:旋转 3D XNA | 更新日期: 2023-09-27 18:14:07

我是XNA新手。我只是遇到了一些问题—-我必须在游戏中倾斜/翻转角色,这意味着围绕X轴和Z轴旋转(而不是同时!)我可以做旋转,也就是绕Y轴旋转。我有旋转矩阵和角色的当前位置向量(也可以从旋转矩阵中获得面向/方向向量)我实现了旋转,即通过围绕Y轴旋转面向向量R弧度来围绕Y轴旋转。例如,如果我现在绕X轴旋转,方法是什么?例如,从站立的位置转变为"超人飞行"的位置需要角色倾斜……y轴旋转并不涉及改变角色的位置,只是改变了面对。但是我想对于X和z,我也需要改变位置?请给我一些指导。

XNA -绕X和Z轴旋转3D

明白了!只需要围绕旋转矩阵中可用的右/向前向量旋转模型。发现下面的博客文章很有帮助:https://stevehazen.wordpress.com/2010/02/15/matrix-basics-how-to-step-away-from-storing-an-orientation-as-3-angles/评论- 376

关于代码,这里有一个示例: Vector3 rightVector = target.CurrentModelMatrix.Right; var rotMatrix = Matrix.CreateFromAxisAngle(rightVector , (float)GetRadianAngle(10));// Will tilt the character forward around the right vector target.CurrentModelMatrix *= rotMatrix;