QT中使用gluLookAt
时间: 2024-03-17 21:43:33 浏览: 152
在QT中使用gluLookAt函数需要先引入OpenGL库,然后在OpenGL的绘图函数中调用。以下是一个简单的例子:
```c++
#include <QtOpenGL/QGLWidget>
#include <GL/glu.h>
class MyGLWidget : public QGLWidget
{
protected:
void initializeGL()
{
// 设置清屏颜色为白色
glClearColor(1.0, 1.0, 1.0, 0.0);
}
void paintGL()
{
// 清屏
glClear(GL_COLOR_BUFFER_BIT);
// 设置视口
glViewport(0, 0, width(), height());
// 设置投影矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat)width()/(GLfloat)height(), 0.1, 100.0);
// 设置模型视图矩阵
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 0.0, 5.0, // 相机位置
0.0, 0.0, 0.0, // 目标位置
0.0, 1.0, 0.0); // 上向量
// 绘制图形
glBegin(GL_TRIANGLES);
glVertex3f(-1.0, -1.0, 0.0);
glVertex3f( 1.0, -1.0, 0.0);
glVertex3f( 0.0, 1.0, 0.0);
glEnd();
}
};
```
以上代码中,我们先设置了清屏颜色,然后在paintGL函数中进行绘图。我们首先设置视口,然后用gluPerspective函数设置投影矩阵,再用gluLookAt函数设置模型视图矩阵,最后进行绘制操作。gluLookAt函数的参数依次为相机位置、目标位置和上向量。
阅读全文