OpenGL编程:交互式计算机图形学Sierpinski程序示例

4星 · 超过85%的资源 需积分: 16 64 下载量 70 浏览量 更新于2024-10-05 1 收藏 481KB DOC 举报
"交互式计算机图形学 (基于OpenGL,第四版/第五版)是一本由Edward Angel著,清华大学出版社出版的教程,包含了用于学习的全套源码,主要针对初学者,涉及计算机图形学的基本概念和OpenGL的应用。" 交互式计算机图形学是计算机科学的一个重要分支,它关注的是用户与计算机图形之间的互动。OpenGL是一种跨语言、跨平台的编程接口,用于渲染二维、三维图像。在本书中,作者使用OpenGL作为工具,通过实际的编程示例帮助读者理解复杂的图形学概念。 源码部分展示了Sierpinski镂垫程序的实现,这是一种典型的分形几何图形。Sierpinski镂垫是由三角形不断细分生成的图案,通过随机选择顶点并进行二分来创建。代码中,`myinit()`函数设置环境,包括清空背景颜色为白色,设定绘制颜色为红色,并配置视口和投影矩阵。`display()`函数负责绘制和更新图形,首先清除颜色缓冲区,然后使用`glBegin(GL_POINTS)`和`glEnd()`来定义点的绘制,循环生成5000个新点,每个点的位置是随机选定的三角形顶点和旧点之间中点的组合。 `rand()`函数用于生成随机数,选择三角形中的一个顶点,`gluOrtho2D()`函数设置了一个正交投影,确保坐标窗口的原点位于左下角,范围为0.0到50.0。`glMatrixMode()`切换矩阵模式,控制投影和模型视图的变换。`glLoadIdentity()`则重置当前矩阵为单位矩阵。 这段代码的执行过程是这样的:首先初始化环境,然后在每次重绘时,根据随机选择的顶点生成新的点,这些点会按照Sierpinski镂垫的规则分布,形成逐渐细化的图案。这个程序展示了计算机图形学中如何利用数学和随机性创建复杂的视觉效果。 通过学习和实践这样的源码,读者可以深入理解OpenGL的工作原理,以及如何使用它来创建交互式的图形应用。同时,对分形的理解也能帮助他们更好地掌握几何形状和算法在图形生成中的应用。