用opengl的glut库画一个实心球体,三维的代码,c++
时间: 2024-02-18 07:01:36 浏览: 33
下面是使用OpenGL的GLUT库画一个实心球体的C++代码:
```c++
#include <GL/glut.h>
#include <cmath>
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glutSolidSphere(1.0, 50, 50);
glutSwapBuffers();
}
void reshape(int w, int h) {
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (GLfloat)w/(GLfloat)h, 0.1, 100.0);
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("Solid Sphere");
glEnable(GL_DEPTH_TEST);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
```
这个代码使用了GLUT库的`glutSolidSphere()`函数来绘制一个实心球体,其中第一个参数是半径,第二和第三个参数是水平和垂直方向的细分数。`gluPerspective()`函数用于设置透视投影,`gluLookAt()`函数用于设置观察点和观察目标点的位置。最后,`glEnable(GL_DEPTH_TEST)`用于启用深度测试,确保渲染的物体按照正确的顺序绘制。