生成代码OpenGL画五角星
时间: 2023-10-07 22:14:25 浏览: 142
好的,以下是基于OpenGL的画五角星的代码:
```c++
#include <stdio.h>
#include <GL/glut.h>
void init(void)
{
/* 定义背景颜色为白色 */
glClearColor(1.0, 1.0, 1.0, 0.0);
/* 定义画笔颜色为黑色 */
glColor3f(0.0, 0.0, 0.0);
/* 定义投影参数 */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
}
void star(void)
{
/* 画出红色五角星的十字线 */
glBegin(GL_LINES);
glVertex2f(-0.5, 0.0);
glVertex2f(0.5, 0.0);
glVertex2f(0.0, -0.5);
glVertex2f(0.0, 0.5);
glEnd();
/* 画出红色五角星 */
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_POLYGON);
glVertex2f(-0.18, 0.75);
glVertex2f(0.18, 0.75);
glVertex2f(0.5, 0.2);
glVertex2f(0.0, -0.27);
glVertex2f(-0.5, 0.2);
glEnd();
}
void display(void)
{
/* 清除窗口 */
glClear(GL_COLOR_BUFFER_BIT);
/* 加载单位矩阵 */
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
/* 用红色画五角星 */
star();
/* 交换缓冲区 */
glutSwapBuffers();
}
/* 主函数 */
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL 五角星");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
希望这能帮助您!
阅读全文