实验二、OpenGL颜色填充 1、 实验目的 1)了解 OpenGL 图形库的功能和结构; 2)学习了解 OpenGL 程序的基本结构,及常用函数; 3)学习使用 OpenGL 颜色填充算法; 2、 实验内容 1)使用 OpenGL 编写一个简单的 C++程序,使该程序能够填充多边形和圆等图形。 2 )使用 OpenGL 编写一个简单的 C++程序,使该程序能够填充已填充过的图形。 3、 实验过程 1)在系统上配置好 OpenGL的环境(头文件,库文件,和链接库文件); 2)使用 Visual V++6.0 新建一个 C++文档,并创建相应的工程; 3)在文档中引入 OpenGL的头文件,编辑代码实现:对不同图形的不同颜色填充。 4、 实验结果 可单击鼠标左键,填充选中的图形; 可单击鼠标右键,调出菜单,可改变填充颜色,可恢复为填充状态。 结果截图: 1. 初始状态: 2. 填充多边形: 3. 调出菜单,选择颜色: 4. 填充圆形: 5. 填充已填充的图形: 5、 实验代码 1. #include "stdio.h" 2. #include 3. #include 4. #include "windows.h" 5. 6. ////////////程序还有问题,不知如何解决 7. ////////圆周率 8. const GLfloat Pi = 3.1415926536f; 9. ///////////窗口长宽 10. GLfloat WinWidth=600.0, WinHeight=600.0; 11. //////////种子点 12. GLint fillx,filly; 13. ////////填充色 14. GLubyte fillColor[3]={255,0,255}; 15. /////////判定点色 16. GLubyte Pixel[3]; 17. /////////取点色 18. GLubyte OldColor[3]; 19. 20. //////////绘制初始化 21. void init(void) 22. { 23. glClearColor(1.0, 1.0, 1.0, 1.0) ; 24. glViewport(0,0,WinWidth,WinHeight); 25. glMatrixMode(GL_PROJECTION); 26. ///////调用单位矩阵,去掉以前的投影参数设置 27. glLoadIdentity(); 28. gluOrtho2D(0.0, WinWidth, 0.0, WinHeight); 29. } 30. //////////比较颜色是否相同 31. bool EqualColor(GLubyte c1[],GLubyte c2[]){ 32. if(c1[0]==c2[0]&&c1[1]==c2[1]&&c1[2]==c2[2]) 33. return true; 34. else return false; 35. } 36. ///////////填充点色 37. void setPixel(GLint x,GLint y){ 38. glColor3f(fillColor[0], fillColor[1], fillColor[2]); 39. glBegin(GL_POINTS); 40. glVertex3f(x,y,0.0); 41. glEnd(...