查看场景的方法之一是使用 gluLookAt 或创建您自己的自定义查看例程。我在一本书的飞行模拟器中遇到了这个自定义查看程序。
void pilotView(GLdouble planex, GLdouble planey,
GLdouble planez, GLdouble roll,
GLdouble pitch, GLdouble heading)
{
glRotated(roll, 0.0, 0.0, 1.0);
glRotated(pitch, 0.0, 1.0, 0.0);
glRotated(heading, 1.0, 0.0, 0.0);
glTranslated(-planex, -planey, -planez);
}
将相机顺时针旋转 x 度相当于将目标对象逆时针旋转 x 度。因此,例如,当我们指定“滚动”角度时,我们不应该写“glRotated(-roll, 0.0, 0.0, 1.0)”而不是“glRotated(roll, 0.0, 0.0, 1.0)”吗?