版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34195441/article/details/79121793
#include <GL/glut.h>
void myDisplay(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);//将清空颜色设为黑色
glClear(GL_COLOR_BUFFER_BIT);//将窗口的背景设为当前的清空颜色
glColor3f (1.0f, 1.0f, 1.0f);
glRectf(-0.4f, -0.4f, 0.4f, 0.4f);//画一个矩形
glBegin (GL_POLYGON);//画一个菱形
glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (0.0f, 0.4f);
glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.4f, 0.0f);
glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (0.0f, -0.4f);
glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (0.4f, 0.0f);
glEnd ();
glBegin (GL_TRIANGLES);//上三角形
glColor3f (1.0f, 0.0f, 1.0f); glVertex2f (0.0f, 0.8f);
glColor3f (1.0f, 0.0f, 1.0f); glVertex2f (0.4f, 0.4f);
glColor3f (1.0f, 0.0f, 1.0f); glVertex2f (-0.4f, 0.4f);
glEnd ();
glBegin (GL_TRIANGLES);//下三角形
glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.0f, -0.8f);
glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (-0.4f, -0.4f);
glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.4f, -0.4f);
glEnd ();
glBegin (GL_TRIANGLES);//左三角形
glColor3f (1.0f, 1.0f, 0.0f); glVertex2f (-0.8f, 0.0f);
glColor3f (1.0f, 1.0f, 0.0f); glVertex2f (-0.4f, 0.4f);
glColor3f (1.0f, 1.0f, 0.0f); glVertex2f (-0.4f, -0.4f);
glEnd ();
glBegin (GL_TRIANGLES);//右三角形
glColor3f (0.0f, 1.0f, 1.0f); glVertex2f (0.8f, 0.0f);
glColor3f (0.0f, 1.0f, 1.0f); glVertex2f (0.4f, 0.4f);
glColor3f (0.0f, 1.0f, 1.0f); glVertex2f (0.4f, -0.4f);
glEnd ();
glFlush();//保证前面的OpenGL命令立即执行
}
int main(int argc, char *argv[])//带命令行参数的main函数
{
glutInit(&argc, argv);//对GLUT进行初始化
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);//设置显示方式,RGB颜色,单缓冲
glutInitWindowPosition(100, 100);//设置窗口在屏幕中的位置
glutInitWindowSize(400, 400);//设置窗口大小
glutCreateWindow("Hello World!");//根据前述设置的信息创建窗口
glutDisplayFunc(&myDisplay);//设置一个函数,当需要进行画图时,这个函数会被调用
glutMainLoop();
return 0;
}
运行结果: