Opengl鼠标相机问题(gluLookAt)
Opengl mouse Camera issue (gluLookAt)
你好,我在openGL中的鼠标移动出现了一个奇怪的问题。这是我用鼠标移动相机的代码
void camera(int x, int y)
{
GLfloat xoff = x- lastX;
GLfloat yoff = lastY - y; // Reversed since y-coordinates range from bottom to top
lastX = x;
lastY = y;
GLfloat sensitivity = 0.5f;
xoff *= sensitivity;
yoff *= sensitivity;
yaw += xoff; // yaw is x
pitch += yoff; // pitch is y
// Limit up and down camera movement to 90 degrees
if (pitch > 89.0)
pitch = 89.0;
if (pitch < -89.0)
pitch = -89.0;
// Update camera position and viewing angle
Front.x = cos(convertToRads(yaw) * cos(convertToRads(pitch)));
Front.y = sin(convertToRads(pitch));
Front.z = sin(convertToRads(yaw)) * cos(convertToRads(pitch));
}
convertToRads()是我创建的一个小函数,用于将鼠标坐标转换为rads。
有了这个代码,我可以随心所欲地移动我的相机,但如果我试图在达到45度左右时一直向上移动,它会围绕x轴旋转1-2次,然后继续增加y轴。我不明白我是否做错了什么,所以如果有人能帮我,我将不胜感激。
你似乎放错了一个副题:
Front.x = cos(convertToRads(yaw) * cos(convertToRads(pitch)));
而不是:
Front.x = cos(convertToRads(yaw)) * cos(convertToRads(pitch));
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- glulookat() - 旋转问题
- Opengl鼠标相机问题(gluLookAt)
- 在FPS场景中理解gluLookAt xyz旋转的问题
- gluLookAt的c ++ OpenGL显示问题