繁体   English   中英

欧拉相机,在相机本地系统中绕x轴旋转

[英]Euler camera, rotation around x axis in camera local system

我有一个摄像头课程,可以通过欧拉角和位置来保持她的方向。 像这样:

float m_x;
float m_y;
float m_z;

Vector4 m_pos;

我想在空间上自由移动相机。 用户上下移动鼠标时,摄像头必须在自己的坐标系中绕x轴旋转。 但是我只想保持这三个角度和位置,仅此而已。

所以算法看起来像这样:

  1. 查找相机本地系统轴(u,v,n)
  2. 围绕u轴以角度alpha旋转
  3. 查找围绕(1,0,0),(0,1,0),(0,0,1)的角度,这些角度与围绕u轴的角度alpha的旋转有关
  4. 将它们添加到m_x,m_y,m_z

问题是:如何计算默认坐标系中的旋转角度(我的意思是(1,0,0),(0,1,0)和(0,0,1)),以响应本地相机坐标中的旋转角度系统?

描述

还是针对此问题存在更好的解决方案?

我正在回答您评论中的简洁问题:

如何计算一个坐标系中的旋转响应另一个坐标系中的旋转?

您可以通过应用合适的变换矩阵来变换坐标系之间的旋转。 这又可以通过欧拉角来计算,请参阅Wikipedia上有关转换公式的部分

根据您的应用程序,您可能也可能不必考虑翻译。 据我了解您的问题,您可以专注于每个变换的旋转部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM