C++ 摄像机上下旋转限制为45度
我试图限制我的相机上下旋转,这样它最多只能上下移动45度C++ 摄像机上下旋转限制为45度,c++,graphics,glut,C++,Graphics,Glut,我试图限制我的相机上下旋转,这样它最多只能上下移动45度 Vector3 forwards(0, 0, -1); Vector3 up(0, 1, 0); Vector3 rights = forwards.crossProduct(up); Vector3 position(0, 0, 0); switch (special_key) { case GLUT_KEY_RIGHT: forwards.rotateArbitrary(Vector3::UNIT_Y_PLUS,
Vector3 forwards(0, 0, -1);
Vector3 up(0, 1, 0);
Vector3 rights = forwards.crossProduct(up);
Vector3 position(0, 0, 0);
switch (special_key)
{
case GLUT_KEY_RIGHT:
forwards.rotateArbitrary(Vector3::UNIT_Y_PLUS, 0.1);
rights.rotateArbitrary(Vector3::UNIT_Y_PLUS, 0.1);
break;
case GLUT_KEY_LEFT:
forwards.rotateArbitrary(Vector3::UNIT_Y_PLUS, -0.1);
rights.rotateArbitrary(Vector3::UNIT_Y_PLUS, -0.1);
break;
case GLUT_KEY_UP:
forwards.rotateArbitrary(rights, 0.1);
up.rotateArbitrary(rights, 0.1);
break;
case GLUT_KEY_DOWN:
forwards.rotateArbitrary(rights, -0.1);
up.rotateArbitrary(rights, -0.1);
break;
// add more cases here
}
glLoadIdentity();
Vector3 look_at = position + forwards;
gluLookAt(position.x, position.y, position.z,
look_at.x, look_at.y, look_at.z,
up.x, up.y, up.z);
你到底是怎么做到的?是什么让你陷入困境?谢谢,但我能够得到它如果你找到了解决方案,那么请在这里创建一个答案,以帮助有类似问题的其他人,并创建一个很好的Q/a对。