




已阅读5页,还剩133页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
参考书 分形算法与程序设计 1 第1章 初识分形 1 1Fractal的含义1 2分形的几何特征1 3分形的度量 1 4分形维数1 5分形是一种方法论1 6分形与计算机图形学 参考书 分形算法与程序设计 2 1 1 Fractal的含义 英文单词Fractal 在大陆被译为 分形 在台湾被译为 碎形 它是由美籍法国数学家曼德勃罗 BenoitMandelbrot 创造出来的 其含义是不规则的 破碎的 分数的 曼德勃罗是想用此词来描述自然界中传统欧几里得几何学所不能描述的一大类复杂无规的几何对象 参考书 分形算法与程序设计 3 1 2 分形的几何特征 自相似性 自相似 便是局部与整体的相似 自仿射性 自仿射性是自相似性的一种拓展 如果 将自相似性看成是局部到整体在各个方向上的等比例变换的结果的话 那么 自仿射性就是局部到整体在不同方向上的不等比例变换的结果 前者称为自相似变换 后者称为自仿射变换 精细结构 任意小局部总是包含细致的结构 参考书 分形算法与程序设计 4 1 3 分形的度量 1 长度的测量Length n 0 1Length n 1 4 3Length n 2 16 9 Length lim Length n lim 4 3 n n n 参考书 分形算法与程序设计 5 1 3 分形的度量 2 面积的测量Area n0 1 3 6 2 3 12Area n1 3 12 4 9 Area n2 3 12 4 9 2 Area n lim 3 12 4 9 n 0 n 如上所述 koch曲线在一维欧氏空间中的度量为 在二维欧氏空间中的面积为0 如此看来 Koch曲线在传统欧氏空间中不可度量 参考书 分形算法与程序设计 6 1 4 分形维数 分形维数是分形的很好的不变量 它一般是分数 用它可以把握住分形体的基本特征 图a是边长为1的正方形 当边长变成原来的1 2时 原正方形中包含4个小正方形 如图b 而4 22 图c是边长为1的正立方体 当边长变成原来的1 2时 原正立方体中包含8个小正立方体 如图d 而8 23 则有N kD D log N log k 这样Koch曲线的分形维数D log 4 log 3 1 2618 参考书 分形算法与程序设计 7 1 4 分形维数 对于实际的自然景物 我们可以用计盒维数的方法测量分维 参考书 分形算法与程序设计 8 1 5 分形是一种方法论 沃尔夫奖 WolfPrize 在颁发给分形理论创始人曼德勃罗时的评语所说的 分形几何改变了我们对世界的看法 分形理论至少会在三个方面改变我们对世界的认识 首先 自然界中许多不规则的形态其背后都有规则 都可以用分形的方法建立模型并在计算机上构造出以假乱真的景象来 显然利用这套方法我们可以把世界压缩到几个分形规则中 便于携带和传播 其次 许多以前被认为是随机的现象 从分形理论的角度看并不是随机的 比如布朗运动 股票价格的波动 传染病的流行传播等 这为我们控制这些貌似随机的现象奠定了理论基础 最后 分形理论中的分数维概念 为我们认识世界中的复杂形态提供了一个新的尺度 复杂性科学是现代科学的前沿 在这门科学的研究过程中 发现了许多符合分形规则的复杂形态 而分数维是测量这些形态复杂程度的一种度量 也就是说 我们找到了对复杂性做定量分析的工具 参考书 分形算法与程序设计 9 1 6 分形与计算机图形学 分形理论的发展离不开计算机图形学的支持 如果一个分形构造的表达 不用计算机的帮助是很难让人理解的 不仅如此 分形算法与现有计算机图形学的其他算法相结合 还会产生出非常美丽的图形 而且可以构造出复杂纹理和复杂形状 从而产生非常逼真的物质形态和视觉效果 分形作为一种方法 在图形学领域主要是利用迭代 递归等技术来实现某一具体的分形构造 分形几何学与计算机图形学相结合 将会产生一门新的学科 分形图形学 它的主要任务是以分形几何学为数学基础 构造非规则的几何图素 从而实现分形体的可视化 以及对自然景物的逼真模拟 参考书 分形算法与程序设计 10 第2章 分形图的递归算法 2 1Cantor三分集的递归算法2 2Koch曲线的递归算法2 3Sierpinski垫片的递归算法 2 4Hilbert Peano曲线的算法2 5分支结构分形递归算法2 6分形树递归算法 参考书 分形算法与程序设计 11 递归算法 u直接递归调用的例子如下 voidRecur n Recur m 过程Recur的内部又调用了自身 Recur过程 参考书 分形算法与程序设计 12 递归算法 u间接递归调用的例子如下 voidRecur A n Recur B m voidRecur B n Recur A m 参考书 分形算法与程序设计 13 2 1 Cantor三分集的递归算法 参考书 分形算法与程序设计 14 2 2 Koch曲线的递归算法 参考书 分形算法与程序设计 15 2 2 Koch曲线的递归算法 参考书 分形算法与程序设计 16 2 2 Koch曲线的递归算法 参考书 分形算法与程序设计 17 2 3 Sierpinski垫片的递归算法 参考书 分形算法与程序设计 18 2 3 Sierpinski垫片的递归算法 参考书 分形算法与程序设计 19 2 4 Hilbert Peano曲线的算法 参考书 分形算法与程序设计 20 2 4 Hilbert Peano曲线的算法 参考书 分形算法与程序设计 21 2 5 分支结构分形递归算法 参考书 分形算法与程序设计 22 2 5 分支结构分形递归算法 参考书 分形算法与程序设计 23 2 6 分形树递归算法 参考书 分形算法与程序设计 24 2 6 分形树递归算法 参考书 分形算法与程序设计 25 第3章 文法构图算法 3 1LS文法3 2单一规则的LS文法生成 3 3多规则的LS文法生成3 4随机LS文法 参考书 分形算法与程序设计 26 文法构图算法 字母表 L R生成规则 L R R LR初始字母 R则有 R LR RLR LRRLR RLRLRRLR LRRLRRLRLRRLR 参考书 分形算法与程序设计 27 3 1 LS文法 二维LS是字母表的绘图规则如下 F 以当前方向前进一步 并画线 f 以当前方向前进一步 不画线 逆时针旋转角 顺时针旋转角 将海龟当前信息压栈 将 时刻的海龟信息出栈 参考书 分形算法与程序设计 28 3 2 单一规则的LS文法生成 Koch曲线的LS文法如下 w Fa 60oP F F F F F 步骤0 F步骤1 F F F F步骤2 F F F F F F F F F F F F F F F F步骤3 F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F步骤4 参考书 分形算法与程序设计 29 3 3 单一规则的LS算法实现 参考书 分形算法与程序设计 30 3 3 单一规则的LS算法实现 参考书 分形算法与程序设计 31 3 3 单一规则的LS算法实现 参考书 分形算法与程序设计 32 3 3 多规则的LS文法生成 为了生成更复杂的图形 可将字母表增加字母元素 Sierpinski垫片的LS文法如下 w La 600P1 L R L R P2 R L R L 相应的改造1 参考书 分形算法与程序设计 33 3 3 多规则的LS文法生成 相应的改造2 参考书 分形算法与程序设计 34 3 3 多规则的LS文法生成 相应的改造3 参考书 分形算法与程序设计 35 3 4 随机LS文法 w Fa 25P1 F F F F F FP2 F F F F F F P3 F FF F F F F F F 为了更好的模拟自然景物 需要随机使用多个变换规则 p1 p2 p3 相应的改造1 相应的改造2 参考书 分形算法与程序设计 36 3 4 随机LS文法 参考书 分形算法与程序设计 37 第4章 迭代函数系统算法 4 1混沌游戏4 2迭代函数系统4 3相似变换与仿射变换4 4IFS码 4 5Sierpinski垫片的IFS生成4 6拼贴与IFS码的确定4 7IFS植物形态实例4 8复平面上的IFS算法 参考书 分形算法与程序设计 38 混沌游戏 4 1 给定平面上三点A B C 再任意给定初始点Z0 做下列迭代 当掷出的硬币呈正面 当掷出的硬币呈反面 当掷出的硬币呈侧面 参考书 分形算法与程序设计 39 迭代函数系统 4 2 迭代函数系统 IteratedFunctionSystem IFS 是分形理论的重要分支 它将待生成的图像看成是由许多与整体相似的 自相似 或经过一定变换与整体相似的 自仿射 小块拼贴而成 参考书 分形算法与程序设计 40 相似变换与仿射变换 直观上看 相似变换是指在各个方向上变换的比率必须相同的一种比例变换 仿射变换是指在不同的方向上变化的比率可以不同的一种比例变换 4 3 相似变换 如果对于任意两点A B 以及对应点A B 总有A B k AB k为正实数 那么 这个变换叫做相似变换 实数k叫做相似比 仿射变换 x ax by ey cx dy f其中a b c d e f为仿射变换系数 参考书 分形算法与程序设计 41 4 4 IFS码 用多个仿射变换式表达一个图象w1 w2 w3 使用每一个仿射变换式的概率p可以不同 一般面积越大 p值越大 于是 只要获得a b c d e f p IFS码 的值便可以得到要表达的图形 参考书 分形算法与程序设计 42 4 5 Sierpinski垫片的IFS生成 由于生成的三个小三角形的面积相等 所以我们可以让w1 w2 w3出现的概率相同或相近 x 0 5xy 0 5y x 0 5x 0 5y 0 5y x 0 5x 0 25y 0 5y 0 5 x 0 5 x 0 y 0y 0 x 0 5 y 0 x 0 5 x 0 y 0 5y 0 x 0 5 y 0 x 0 5 x 0 y 0 25y 0 x 0 5 y 0 5 w1 w2 w3 参考书 分形算法与程序设计 43 4 5 Sierpinski垫片的IFS生成 参考书 分形算法与程序设计 44 4 5 Sierpinski垫片的IFS生成 源代码 书中程序4 1 参考书 分形算法与程序设计 45 4 6 拼贴与IFS码的确定 此时四个子图分别是目标图的1 4 1 5 1 4 1 2大小的复制品 然后按顺序交互式地在屏幕上调节每一个子图的仿射变换参数ai bi ci di ei 使得平移 旋转后基本覆盖住目标图 参考书 分形算法与程序设计 46 4 7 IFS植物形态实例 IFS码在书中表4 18 IFS码在书中表4 20 IFS码在书中表4 19 参考书 分形算法与程序设计 47 4 8 复平面上的IFS算法 参考书 分形算法与程序设计 48 4 8 复平面上的IFS算法 参考书 分形算法与程序设计 49 4 8 复平面上的IFS算法 参考书 分形算法与程序设计 50 第5章 逃逸时间算法 5 1基本思想5 2Julia集的逃逸时间算法 5 3Mandelbrot集的逃逸时间算法5 4基于牛顿迭代的Julia集的逃逸时间算法 参考书 分形算法与程序设计 51 逃逸时间算法的基本思想 F z z2 c当c 0时 由于z是复数 即z x yi 则有z2 z z x yi x yi x2 y2i2 2xyi x2 y2 2xy i设复数z x yi的绝对值 即 z SQR x2 y2 F z0 x02 y02 2x0y0i SQR x02 y02 2 2x0y0 2 SQR x04 y04 2x02y02 4x02y02 SQR x02 y02 2 z0 2若01 经过迭代z会趋向无穷 z向无穷逃逸 若 z0 1 z是平面上的单位圆 5 1 参考书 分形算法与程序设计 52 逃逸时间算法的基本思想 当c 0时 其吸引子不再是0 而是一个区域 称混沌区 如图 假设有一个充分大的整数N 当未逃逸区域M中的初始点a经过小于N次迭代就达到未逃逸区域M的边界 甚至超出了边界 我们就认为点a逃逸出去了 而如果经过N次迭代后a的轨迹仍未到达M的边界 我们就认为 a是A上的点 用这样的方法 描绘出A的边界图形 这便是逃逸时间算法的基本思想 5 1 参考书 分形算法与程序设计 53 5 2 Julia集的逃逸时间算法 参考书 分形算法与程序设计 54 5 2 Julia集的逃逸时间算法 参考书 分形算法与程序设计 55 5 2 Julia集的逃逸时间算法 参考书 分形算法与程序设计 56 参考书 分形算法与程序设计 57 5 3 Mandelbrot集的逃逸时间算法 参考书 分形算法与程序设计 58 5 3 Mandelbrot集的逃逸时间算法 参考书 分形算法与程序设计 59 参考书 分形算法与程序设计 60 5 4 基于牛顿迭代的Julia集的逃逸时间算法 牛顿迭代法求根公式 zn 1 zn f zn f zn 其中 f zn 是f zn 的导数 考虑f z z3 1 0的情况 那么相应的牛顿变换是f z 2z3 1 3z2则z的三个根分别是w1 1 w2 ei2 3 w3 ei4 3 三个根的吸引域A w1 A w2 A w3 的交界便是牛顿函数的Julia集 经过迭代 在A wi 上的点都会被吸引到点wi上 设一个较大的迭代次数N 以及一个距离小量r 当迭代次数达到N 其与根点的距离小于r的被认为是收敛到某根上了 否则被认为是逃逸了 参考书 分形算法与程序设计 61 5 4 基于牛顿迭代的Julia集的逃逸时间算法 参考书 分形算法与程序设计 62 5 4 基于牛顿迭代的Julia集的逃逸时间算法 参考书 分形算法与程序设计 63 第6章 分形显微镜 6 1逃逸时间算法的放缩原理6 2Mandelbrot集的局部放大6 3Julia集的局部放大 6 4牛顿迭代法的局部放大6 5作为Julia集字典的Mandelbrot集 参考书 分形算法与程序设计 64 逃逸时间算法的放缩原理 6 1 参考书 分形算法与程序设计 65 6 2 Mandelbrot集的局部放大 参考书 分形算法与程序设计 66 6 2 Mandelbrot集的局部放大 参考书 分形算法与程序设计 67 6 3 Julia集的局部放大 参考书 分形算法与程序设计 68 6 3 Julia集的局部放大 参考书 分形算法与程序设计 69 6 4 牛顿迭代法的局部放大 参考书 分形算法与程序设计 70 6 4 牛顿迭代法的局部放大 参考书 分形算法与程序设计 71 6 5 作为Julia集字典的Mandelbrot集 Julia集是一个固定的值的图形展现 而Mandelbrot集却要走遍所有的值 显然 每一个值都对应一个Julia集 所以我们说Mandelbrot集是Julia集微缩字典 我们可以在Mandelbrot集的绘图空间中任意取一点 并将其还原成相应的值 再将此值作为Julia集程序中选定的值 来绘制Julia集的图形 参考书 分形算法与程序设计 72 第7章 分形演化算法 7 1从逻辑运算谈起7 2一维元胞自动机7 3二维元胞自动机 7 4分形演化的DLA模型7 5用DLA模型模拟植物的生长7 6不同初始条件的DLA形态 参考书 分形算法与程序设计 73 参考书 分形算法与程序设计 74 从逻辑运算谈起 7 1 逻辑异或本行 00011011下一行 0110 参考书 分形算法与程序设计 75 7 2 一维元胞自动机 元胞按等间隔方式分布在一条向两侧无限延伸的直线中 称为一维元胞自动机 本行 001100其他下一行 110 参考书 分形算法与程序设计 76 7 2 一维元胞自动机 参考书 分形算法与程序设计 77 7 3 二维元胞自动机 在一个二维网格中 如果抛下一粒种子 元胞着色 然后考察一下种子身边的格子中的元胞状态会发生什么事情 给一个规则 即每一个格子的状态 由其周围的八个格子的状态 0或1 来决定 如果它周围八个格子中的状态值相加为奇数时 则此格子下一个状态为1 如果它周围八个格子中的状态值相加为偶数时 则此格子下一个状态为0 就这样一步一步演化下去 会看到图案 参考书 分形算法与程序设计 78 7 3 二维元胞自动机 参考书 分形算法与程序设计 79 7 4 分形演化的DLA模型 自然界中有很多种这样的生长集团 参考书 分形算法与程序设计 80 7 4 分形演化的DLA模型 参考书 分形算法与程序设计 81 7 4 分形演化的DLA模型 参考书 分形算法与程序设计 82 7 5 用DLA模型模拟植物的生长 如果初始不是一个原点 而是一条直线 且随机粒子从上面落到平面上 它将会产生一个什么样的图形呢 参考书 分形算法与程序设计 83 7 6 不同初始条件的DLA形态 参考书 分形算法与程序设计 84 第8章 分形动画 8 1双缓存技术8 2摇曳的递归分形树8 3旋转万花筒 8 4变形的芦苇8 5收缩与伸展8 6连续变化的Julia集 参考书 分形算法与程序设计 85 在计算机上实现动画 一个关键技术就是 在绘制新图之前要删除旧图 当然可以在每次画新图之前清屏以实现删除旧图 但由于分形图一般画起来都比较慢 清屏之后不会及时画出新图 这样就会使动画产生闪烁 为了解决这一问题 可以在程序中使用了双缓存技术 即创建两个缓冲区 一个用来绘制图形 一个用来显示图形 当在显示图形缓冲区中删除旧图的同时 在绘制图形缓冲区中画新图 随后由显示图形缓冲区调出此图 从而提高了显示速度 避免了动画的闪烁 8 1 双缓存技术 参考书 分形算法与程序设计 86 8 1 双缓存技术 参考书 分形算法与程序设计 87 摇曳的递归分形树 8 1 参考书 分形算法与程序设计 88 8 3 旋转万花筒 参考书 分形算法与程序设计 89 8 4 变形的芦苇 参考书 分形算法与程序设计 90 8 4 收缩与伸展 参考书 分形算法与程序设计 91 8 6 连续变化的Julia集 参考书 分形算法与程序设计 92 8 6 连续变化的Julia集 参考书 分形算法与程序设计 93 8 6 连续变化的Julia集 参考书 分形算法与程序设计 94 第9章 三维空间中的分形 9 1OpenGL简介9 2三维空间中的Sierpinski地毯 9 3Sierpinski金字塔9 4三维空间中Sierpinski海绵 参考书 分形算法与程序设计 95 OpenGL简介 9 1 OpenGL 即开放性图形库 OpenGraphicsLibrary 是一个三维的计算机图形和模型库 OpenGL包含120个图形函数 在微机环境下共有5种函数 即基本 或核心 函数 实用函数 辅助函数 Windows专用函数和Win32API函数 参考书 分形算法与程序设计 96 OpenGL的基本功能 1 绘制物体OpenGL提供了丰富的基本图元绘制命令 从而可以方便地绘制物体 包括规则的和不规则的 参考书 分形算法与程序设计 97 OpenGL的基本功能 2 变换OpenGL提供了一系列基本的变换 如取景变换 模型变换 投影变换及视口变换 参考书 分形算法与程序设计 98 OpenGL的基本功能 3 光照处理包括发射光 环境光 散射光和镜面反射光 参考书 分形算法与程序设计 99 OpenGL的基本功能 4 着色OpenGL提供了两种物体着色模式 一种是RGBA颜色模式 另一种是颜色索引 ColorIndex 模式 参考书 分形算法与程序设计 100 OpenGL的基本功能 5 反走样在OpenGL绘制图形过程中 由于使用的是位图 所以绘制出的图像的边缘会出现锯齿形状 称为走样 为了消除这种缺陷 OpenGL提供了点 线 多边形的反走样技术 参考书 分形算法与程序设计 101 OpenGL的基本功能 6 融合为了使三维图形更加具有真实感 经常需要处理半透明或透明的物体图像 这就需要用到融合技术 参考书 分形算法与程序设计 102 OpenGL的基本功能 7 雾化正如自然界中存在烟雾一样 OpenGL提供了 fog 的基本操作来达到对场景进行雾化的效果 参考书 分形算法与程序设计 103 OpenGL的基本功能 8 位图和图像在图形绘制过程中 位图和图像是非常重要的一个方面 OpenGL提供了系列函数来实现位图和图像的操作 参考书 分形算法与程序设计 104 OpenGL的基本功能 9 纹理映射在计算机图形学中 把包含颜色 alpha值 亮度等数据的矩形数组称为纹理 而纹理映射可以理解为将纹理粘贴在所绘制的三维模型表面 以使三维图形显得更生动 参考书 分形算法与程序设计 105 OpenGL的运行环境 10 动画出色的动画效果是OpenGL的一大特色 OpenGL提供了双缓存区技术来实现动画绘制 参考书 分形算法与程序设计 106 OpenGL的基本函数 1 顶点坐标OpenGL采用有序排列的顶点集合来构造几何图元 而不是将线段 多边形组合起来构造几何图元 如 glVertex2s 2 5 整数定义的二维坐标glVertex3f 2 5 7 浮点定义的三维坐标 参考书 分形算法与程序设计 107 OpenGL的基本函数 2 顶点关系在OpenGL中 同一个几何图元的所有被定义的顶点一起放在glBegin 和glEnd 函数之间 同时定义这些顶点之间的关系 如 glBegin GL POLYGON glVertex2s 0 0 glVertex2s 0 11 glVertex2s 11 14 glVertex2s 14 7 glVertex2s 7 0 glEnd 参考书 分形算法与程序设计 108 OpenGL的基本函数 3 显示列表OpenGL显示列表 DispplayList 是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的 当调用这张显示列表时就一次执行表中所列出的函数语句 创建显示列表OpenGL用下面的函数组创建显示列表 voidglNewList GLuintlist GLenummode voidglEndList void 执行显示列表显示列表的执行函数形式如下 voidglCallList GLuintlist 参数list指定被执行的显示列表 参考书 分形算法与程序设计 109 OpenGL的基本函数 4 颜色设置 RGBA模式下的颜色定义在RGBA模式下 利用glColor 命令来定义当前颜色 glColor 命令有如下几种形式 voidglColor3 bsifdubusui TYPEr TYPEg TYPEb voidglColor4 bsifdubusui TYPEr TYPEg TYPEb TYPEa voidglColor3 bsifdubusui v TYPE v voidglColor4 bsifdubusui v TYPE v 在颜色索引模式下的颜色定义通过调用函数glIndex 从颜色索引表中选取当前颜色 voidglIndex sfdi c TYPE voidglIndex sfdi v c PTYPE 参考书 分形算法与程序设计 110 OpenGL的基本函数 5 光照设置 创建光源 LightSource 光源有许多特性 如颜色 位置 方向等 可以使用下面的函数定义光源 voidglLight if v GLenumlight GLenumpname TYPEparam 启动光照在OpenGL中 必须明确指出光照是否有效或无效 如果光照无效 则只是简单地将当前颜色映射到当前顶点上去 不进行法向 光源 材质等复杂计算 那么显示的图形就没有真实感 启动和取消光源的函数如下 glEnable GL LIGHTING 启动光照gDisable GL LIGHTING 取消光照 参考书 分形算法与程序设计 111 OpenGL的基本函数 6 明暗处理在OpenGL中 用单一颜色处理的称为平面明暗处理 FlatShading 用许多不同颜色处理的称为光滑明暗处理 SmoothShading 设置明暗处理模式的函数为 voidglShadeModel GLenummode 参考书 分形算法与程序设计 112 OpenGL的基本函数 7 材质设置 材质定义材质的定义与光源的定义类似 其函数为 voidglMaterial if v GLenumface GLenumpname TYPEparam 改变材质在OpenGL中提供了两种方式来改变场景中的材质 第一种方法是利用函数glMaterial 来改变材质 但是调用函数glMaterial 需要同时保存当前矩阵 也就是调用函数glPushMatrix 和glPopMatrix 第二种方法是使用函数glColorMaterial 其形式为 voidglColorMaterial GLenumface GLenummode 参考书 分形算法与程序设计 113 OpenGL的基本函数 8 纹理映射 纹理定义在程序中可以用以下函数定义二维纹理映射 voidglTexImage2D GLenumtarget GLintlevel GLintcomponents GLsizeiwidth Glsizeiheight GLintborder GLenumformat GLenumtype constGLvoid pixels 纹理控制OpenGL中控制纹理的函数是 voidglTexParameter if v GLenumtarget GLenumpname TYPEparam 定义纹理坐标OpenGL坐标定义的函数是 voidgltexCoord 1234 sifd v TYPEcoords 参考书 分形算法与程序设计 114 OpenGL的基本函数 9 选择与反馈在OpenGL中 提供了选择和反馈两种方式 以实现对屏幕上的某个物体的信息提供 达到交互的目的 进行模式选择的函数原型如下 LintglRenderMode GLenumMode 在进入选择模式之前 必须调用函数glSelectBuffer 来制定选择数组 在进入反馈模式之前 必须调用函数glFeedbackBuffer 来制定反馈数组 参考书 分形算法与程序设计 115 OpenGL的基本函数 10 帧缓存与动画 帧缓存的组成OpenGL帧缓存由以下四种缓存组成 颜色缓存 ColorBuffer 深度缓存 DepthBuffer 模板缓存 StencilBuffer 累积缓存 AccumulationBuffer 缓存清除OpenGL清除缓存操作过程是 先给出要写入每个缓存的清除值 然后用单个函数命令执行操作 传入所有要清除的缓存表 动画OpenGL提供了双缓存 可以用来制作动画 也就是说 在显示前台缓存内容中的一帧画面时 后台缓存正在绘制下一帧画面 当绘制完毕 则后台缓存内容便在屏幕上显示出来 而前台正好相反 又在绘制下一帧画面内容 这样循环反复 屏幕上显示的总是已经画好的图形 于是看起来所有的画面都是连续的 参考书 分形算法与程序设计 116 9 2 三维空间中的Sierpinski地毯 参考书 分形算法与程序设计 117 9 2 三维空间中的Sierpinski地毯 参考书 分形算法与程序设计 118 9 2 三维空间中的Sierpinski地毯 参考书 分形算法与程序设计 119 9 3 Sierpinski金字塔 参考书 分形算法与程序设计 120 9 3 Sierpinski金字塔 参考书 分形算法与程序设计 121 9 3 Sierpinski金字塔 参考书 分形算法与程序设计 122 9 4 Sierpinski海绵 参考书 分形算法与程序设计 123 9 4 Sierpinski海绵 参考书 分形算法与程序设计 124 9 4 Sierpinski海绵 参考书 分形算法与程序设计 125 9 4 Sierpinski海绵 参考书 分形算法与程序设计 126 9 4 Sierpinski海绵 参考书 分形算法与程序设计 127 9 4 Sierpinski海绵 参考书 分形算法与程序设计 128 9 4 Sierpinski海绵 参考书 分形算法与程序设计 129 9 4 Sierpinski海绵 参考书 分形算法与程序设计 130 第10章 分形自然景物模拟算法 9 1随机中点位移法生成山 9 2分形插值算法生成云和山 参考书 分形算法与程序设计 131 随机中点位移法生成山 10 1 1 一维中点位移法以一条水平地平线段开始重复足够多次 对场景中的每条线段做 找到线段的中点在Y方向上随机移动中点一段距离减小随机数取值范围 参考书 分形算法与程序设计 132 随机中点位移法生成山 10 1 1 一维中点位移法粗糙度常量 这个值决定每次循环随机数值域的减少量 也就是说 决定分形结果的粗糙程度 例如使用一个0 0到1 0之间的浮点数并称之为H 因此 a h 是1 0 对于小H 到0 5 对大H 范围内的数 随机数范围在每次循环时乘上这个值 如果H设为1 0 则随机数范围将每次循环减半 从而得到一个非常平滑的分形 将H设为0 0 则范围根本不减小 结果有明显的锯齿感 参考书 分形算法与程序设计 133 随机中点位移法生成山 10 1 2 二维中点位移法上面是将索引 x值 映射为高度值 y值 如果需要一个两维高度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年保密教育知识题库及答案
- 中医中级考试试题及答案
- 中国移动四平市2025秋招笔试模拟题及答案
- 中国广电池州市2025秋招笔试题库含答案
- 中国广电汉中市2025秋招面试典型题目及答案
- 中国联通楚雄自治州2025秋招技术岗专业追问清单及参考回答
- 安顺市中石油2025秋招面试半结构化模拟题及答案油品分析质检岗
- 国家能源桂林市2025秋招面试典型题目及答案
- 福建道教考试试题及答案
- 2025年小儿高热考试题及答案
- 《国庆假期安全教育》课件
- 2025年辅警招聘考试试题库及完整答案(历年真题)
- 2025湖北宜昌市不动产交易和登记中心招聘编外聘用人员17人考试参考题库及答案解析
- 2025下半年四川内江市隆昌诚信农业产业化融资担保有限责任公司招聘4人考试参考题库及答案解析
- 《春江花月夜》课件+2025-2026学年统编版高二语文选择性必修上册
- 广州中侨置业投资控股集团有限公司债权资产评估报告
- 脑梗的课件和提纲
- 监控工程试运行方案(3篇)
- 2025年秋季学期学校红领巾监督岗工作实施细则
- 政务信息化统一建设项目监理服务方案投标文件(技术方案)
- 本科院校纪检监察室招聘笔试经典考题含答案
评论
0/150
提交评论