我正在尝试创建一个类来控制 OpenGL 中的相机。我有三种方法可以改变相机的俯仰偏航和滚动。这些方法采用浮点参数作为要添加的旋转量。
这些方法中的代码是我需要帮助的地方。旋转存储在 Vector3 中。到目前为止,对于改变音高方法,我有:
void changePitch(float degrees)
{
float rads = MathHelp::degreesToRadians(degrees);
m_rotation.x += cos(m_rotation.y) * rads;
}
这是我自己所能得到的。它有点工作,相机在向上或向下看 z 轴时向上和向下看,而不是在向下看 x 轴时。我尝试添加 z 旋转:
m_rotation.z += sin(m_rotation.y) * rads;
但这并不顺利。