OpenGL实现:自顶向下的Sierpinski三角形程序

5星 · 超过95%的资源 需积分: 16 29 下载量 122 浏览量 更新于2024-10-17 1 收藏 481KB DOC 举报
"交互式计算机图形学——基于OpenGL的自顶向下方法(第4版)" 是一本关于使用OpenGL进行交互式计算机图形编程的教材。本书通过一个具体的Sierpinski镂垫程序实例来介绍基本的OpenGL编程技巧和概念。 在OpenGL编程中,Sierpinski镂垫是一个经典的示例,它展示了分形几何的概念。该程序使用随机选择的顶点和二分法生成二维的Sierpinski镂垫。源代码中包含了`myinit`函数和`display`函数,这两个是OpenGL程序中的关键函数。 `myinit`函数用于初始化图形环境。它设置了背景颜色(这里是白色),选择了绘制颜色(红色)以及配置了视图设置。`glMatrixMode(GL_PROJECTION)`切换到投影矩阵模式,`glLoadIdentity()`重置当前矩阵,`gluOrtho2D(0.0,50.0,0.0,50.0)`定义了一个50x50的二维正交视口,其原点位于左下角。接着,`glMatrixMode(GL_MODELVIEW)`切换回模型视图矩阵,这是进行实际绘图操作的矩阵。 `display`函数负责实际的绘图工作。首先,`glClear(GL_COLOR_BUFFER_BIT)`清除颜色缓冲区,也就是窗口。然后,定义了一个三角形的顶点数组`vertices`,并随机选择一个点`p`作为起始点。循环5000次,每次迭代中随机选择一个三角形的顶点,并计算这个顶点与当前点之间的中点,更新点的位置,然后用`glBegin(GL_POINTS)`和`glEnd()`定义一个点绘制的开始和结束,中间通过`glVertex2f`函数将每个新计算的点添加到屏幕上。 这个程序展示了如何在OpenGL环境中生成和显示动态图形,以及如何利用随机数生成分形结构。读者可以通过这个例子学习到OpenGL的基础绘图操作、矩阵变换、视口设置以及分形的构建方法。对于学习OpenGL和交互式计算机图形学的初学者来说,这是一个很好的起点。