我有相机课程,通过欧拉角度和位置保持她的方向。这样的事情:
float m_x;
float m_y;
float m_z;
Vector4 m_pos;
我想把这个相机放在空间上。 当用户上下移动鼠标时,摄像机必须在自己的坐标系中绕x轴旋转。但我想只保留这三个角度和位置,仅此而已。
所以算法看起来像这样:
问题是:如何在默认坐标系中计算旋转角度(我的意思是在(1,0,0),(0,1,0)和(0,0,1)),它们可以回答旋转角度本地摄像机坐标系?
或者对于这个问题可能有更好的解决方案吗?
答案 0 :(得分:1)
我正在回答your comment中简明扼要的问题:
如何计算一个坐标系中的旋转,以响应另一个坐标系中的旋转?
您可以通过应用合适的变换矩阵来变换坐标系之间的旋转。这又可以从欧拉角度计算出来,参见Wikipedia section on conversion formulae。
根据您的应用程序,您可能也可能不需要考虑翻译。据我了解你的问题,你可以专注于每次转型的轮换部分。