OpenGL画圆完整代码
时间: 2023-11-15 15:06:39 浏览: 356
完整的画圆代码
5星 · 资源好评率100%
下面是一个使用 OpenGL 画圆的完整代码示例:
```c++
#include <GL/glut.h>
#include <cmath>
// 画圆函数
void drawCircle(float x, float y, float r)
{
glBegin(GL_TRIANGLE_FAN);
glVertex2f(x, y); // 圆心
int vertexCount = 100; // 圆上的点数
for (int i = 0; i <= vertexCount; ++i)
{
float angle = 2 * M_PI * i / vertexCount;
glVertex2f(x + r * std::cos(angle), y + r * std::sin(angle));
}
glEnd();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f); // 设置颜色为红色
drawCircle(0.0f, 0.0f, 0.5f); // 画一个半径为0.5的圆
glFlush();
}
void init()
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 设置背景颜色为黑色
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutCreateWindow("OpenGL画圆");
glutDisplayFunc(display);
init();
glutMainLoop();
return 0;
}
```
该代码使用 OpenGL 的 glBegin、glVertex2f、glEnd 函数画出了一个半径为0.5的圆。其中,drawCircle 函数是用来画圆的,其参数x、y表示圆心坐标,r表示半径;display 函数中调用了 drawCircle 函数画圆;init 函数用来初始化 OpenGL 环境,其中设置了背景颜色为黑色。最后,main 函数中创建了窗口并进入主循环。
阅读全文