// 图形学实验一.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include"gl/glut.h" static GLsizei iMode =0; void Initial(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 200.0, 0.0, 150.0); } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0f, 0.0f, 0.0f); if (iMode == 1) { glRectf(50.0f, 100.0f, 150.0f, 50.0f); } else if(iMode==2){ GLubyte fly[] = { 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, }; glEnable(GL_POLYGON_STIPPLE); glPolygonStipple(fly); glRectf(50.0f, 100.0f, 150.0f, 50.0f); } glutSwapBuffers();//交换命令缓冲区 } void ProcessMenu(int value) { iMode = value; glutPostRedisplay(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);//使用双缓存及RGB模型 glutInitWindowSize(400, 300);//指定窗口的大小 glutInitWindowPosition(100, 100);//指定窗口在屏幕上的位置 glutCreateWindow("用棋盘图形填充矩形"); glutCreateMenu(ProcessMenu); glutAddMenuEntry("不填充矩形 ", 1); glutAddMenuEntry("填充矩形", 2); glutAttachMenu(GLUT_RIGHT_BUTTON); glutDisplayFunc(Display); Initial(); glutMainLoop();//启动主GLUT时间处理循环 return 0; }
时间: 2024-10-10 02:52:30