调用OpenGL三维绘图函数,绘制实心三维物体茶壶
时间: 2023-11-11 21:10:33 浏览: 113
基于C++OpenGL实现的小桌茶壶图形绘制.zip
5星 · 资源好评率100%
下面是使用OpenGL绘制实心三维物体茶壶的示例代码:
```c++
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0f, 1.0f, 0.0f);
glutSolidTeapot(0.5f);
glFlush();
}
void reshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (float)w/h, 0.1, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, 0, 5, 0, 0, 0, 0, 1, 0);
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("Teapot");
glEnable(GL_DEPTH_TEST);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
```
该示例代码使用了OpenGL的基本绘图函数和茶壶绘制函数。在 `display` 函数中,通过调用 `glutSolidTeapot` 函数绘制了一个实心的茶壶。在 `reshape` 函数中,通过调用一系列OpenGL的函数设置了视口、投影矩阵和模型视图矩阵,以便正确地显示三维物体。
在 `main` 函数中,通过调用一系列OpenGL的函数初始化窗口,并指定了显示和窗口重塑时的回调函数。最后,通过调用 `glutMainLoop` 进入事件循环,等待OpenGL窗口的事件。
阅读全文