OpenGL实现:交互式计算机图形学Sierpinski三角形程序

需积分: 16 2 下载量 148 浏览量 更新于2024-07-30 收藏 481KB DOC 举报
该资源是基于OpenGL实现的交互式计算机图形学教材的部分源代码,主要展示了二维Sierpinski地毯的生成程序。源码利用随机选取的顶点和二分法来创建图形。 在计算机图形学中,交互式计算图像是指用户能够实时与图形界面进行交互的一种技术。OpenGL是一种广泛使用的跨语言、跨平台的图形库,用于渲染2D、3D矢量图形。在本例中,开发者使用OpenGL的库函数`glut.h`来构建图形用户界面,并通过`gluOrtho2D`设置了一个50x50的正交投影视窗,确保图形在屏幕上的显示范围。 `myinit`函数负责初始化图形环境,设置了清除颜色为白色(`glClearColor(1.0,1.0,1.0,1.0)`)和绘制颜色为红色(`glColor3f(1.0,0.0,0.0)`)。同时,通过`glMatrixMode`和`glLoadIdentity`以及`gluOrtho2D`来设定投影矩阵和模型视图矩阵,以控制图形的显示方式和范围。 `display`函数是主要的绘制函数,首先清空颜色缓冲区,然后定义了一个三角形的顶点数组`vertices`。程序通过`rand()`生成随机数,选择三角形中的一个顶点,并计算这个顶点与当前点之间的中点,以此来生成Sierpinski地毯的结构。`glBegin(GL_POINTS)`和`glEnd()`之间的代码用于绘制点,这里用来表示地毯上的每一个小三角形。 Sierpinski地毯是一种分形几何图形,通过将初始三角形不断分割成四个等大小的小三角形,去除中间的一个,重复此过程得到。在这个程序中,`for`循环生成了5000个新点,每个新点都是随机选择的三角形顶点和现有点的中点,从而逐步形成Sierpinski地毯的迭代效果。 这段代码为学习OpenGL编程和理解交互式计算机图形学提供了一个很好的实践示例,同时也展示了如何利用随机数生成分形图案。通过修改和扩展这段代码,可以进一步探索其他分形图形或者实现更复杂的交互功能。