OpenGL自顶向下实例:五版Sierpinski镂垫程序详解

4星 · 超过85%的资源 需积分: 9 7 下载量 63 浏览量 更新于2024-07-27 收藏 211KB DOC 举报
交互式图形学是计算机图形学的一个分支,它专注于创建用户可以与之交互的图形界面。《交互式图形学-基于OpenGL自顶向下(第五版)》是一本深入讲解OpenGL编程技术的教材,该书强调实践操作,提供了丰富的课后实例程序。其中一个实例是Sierpinski镂空程序,也称为二维Sierpinski三角形,这是一道经典的几何形态生成问题,利用递归分割的方式实现。 在提供的代码片段中,作者首先包含了必要的头文件`<GL/glut.h>`,这个头文件通常包含了OpenGL的基本函数声明。`myinit`函数负责设置窗口属性和视图设置,如将背景颜色设为白色,视口范围设定为从左下角的(0,0)到右上角的(50,50),这样创建了一个50x50像素的窗口。 `display`函数是OpenGL中的核心部分,这里绘制了一个基础的三角形,三个顶点的坐标分别是(0,0), (25,50), 和 (50,0)。程序通过随机数生成器`rand()`来实现Sierpinski三角形的动态生成。它首先定义了一个起始点p[2],然后在一个循环中,对5000个点进行处理。每次循环,随机选择三角形的其中一个顶点(`j=rand()%3`),接着计算新点的位置,这是通过将选定顶点和旧点(p[2])各向量的一半相加得到的,从而实现Sierpinski三角形的递归划分。 这个过程会持续5000次,每次迭代都生成一个新的子三角形,使得整个程序呈现出一种分形结构,即Sierpinski三角形的无限细化。通过这样的方式,读者可以深入理解OpenGL的基本绘图原理以及如何运用递归算法来创建复杂的几何图形,并且能够亲手体验交互式图形的实时渲染效果。 《交互式图形学-基于OpenGL自顶向下(第五版)》中的这一课后实例程序,不仅展示了如何用OpenGL绘制几何形状,还演示了如何通过交互和随机性实现动态图形变化,这对于学习OpenGL编程者来说是一个极好的实战训练案例。