Sierpinski镂垫是经典的分形图形,本文用C++递归实现三种Sierpinski镂垫绘制程序,介绍分形递归思想与计算机图形学绘制方法。
Sierpinski镂垫是一个非常有趣的图案,有着悠久的历史, 在分形几何中等领域里引起了人们极大地兴趣, 是用递归和随机方式定义的几何形状。
生成算法如下:
- 在三角形内部随机选取一个点作为初始点;
- 在三角形的3个顶点中随机选取一个,求出该顶点与初始点连线的中点,画出该中点;
- 将第二步中的中点作为初始点,循环第二步;
1 二维Sierpinski镂垫
代码
1 | /*使用随机选择的顶点和中点绘制二维Sierpinski镂垫*/ |
结果

2 生成 Sierpinski 镂垫的递归程序
代码
1 | /* 通过细分三角形的方法生成Sierpinski镂垫 */ |
结果

3 三维 Sierpinski 镂垫的递归程序
代码
1 | /* 通过递归细分四面体方法生成Sierpinski镂垫 */ |
结果

Sierpinski 镂垫程序:分形图形递归实现
本文用C++通过四面体递归细分逼近球体表面,介绍多边形网格细分与计算机图形学中的几何逼近方法。
球体的细分逼近程序
通过递归细分四面体生成球体,三种显示模式:线性框、均匀着色,插值着色
代码
1 | /* 该程序在init()函数中还定义了材质和光源 */ |
结果


