【前言】
自然界中的许多景物,如山脉、云彩、树木、烟雾等,由于它们缺乏简单的宏观结构,找不出正规的特征,很难讲它们清晰地表达出来。分形几何方法的出现,为上述自然景物的计算机模拟与造型提供了一种强有力的工具。
德国数学家GeorgCantor于1883年定义了一个在[0,1]上的点集,即著名的Cantor三分集。从作图的角度看,Cantor三分集是逐渐完成的。如果有一个线段a,则用两段小线段代替它,后者记为b,称之为生成元。
当生成元不同,就会推广出不同的分形曲线。如Koch雪花图案。
【Koch雪花图案的生成】
Koch曲线的由瑞典数学家VonKoch于1904年第一次描述的。
它的构造过程是:迭代出示把单位长线段去掉中间的三分之一,代之以底边在被除去的线段上的等边三角形的另外两边;以后每一步迭代都是上次图形中的每一折直线段中去掉中间三分之一,代之以类似的等边三角形的另外两边。
Koch曲线可以由简单的图元,称之为“生成元”迭代产生。
如下图所示的生产过程:
<!--EndFragment-->
经过多次迭代就可得到vonKoch雪花图案。
根据如上思想,下面介绍KochSnowflake曲线的生成。
【KochSnowflake曲线】
当生成元为等腰直角三角形时,即将已有的一条线段用成直角的两条线段来代替(如下图),无限地迭代下去,就会扩展出另一分形曲线------KochSnowflake曲线。
<!--EndFragment-->
<!--EndFragment-->
KochSnowflake曲线生成元
其迭代算式为:(1)
【生成步骤】
<!--EndFragment-->
将已有的条边用两条直角边来代替,这样无限迭代下去就可得到如上图所示的KochSnowflake图形。
【程序算法】
在程序中我们采用递归的方式画,即给定一条边的两个端点坐标,画出两条直角边,每一条直角边采用递归的方式画出另外两条直角边。直到给定的两个端点的距离小于等于1.5时停止。
伪代码如下:
Createfractals(两个点坐标A,B){
计算两点距离;
如果两点距离小于等于1.5返回。
采用如上迭代式(1)计算第三点坐标C。
递归调用:
Createfractals(两个点坐标A,C);
Createfractals(两个点坐标B,C);
}
【心得体会】
分形能够把大自然中很复杂的图形化解成简单图形的组合。其图形的生成过程与结果会让你领悟到科学与艺术的融合,数学与艺术审美上的统一,使昨日枯燥的数学不再仅仅是抽象的哲理,而是具体的感受;不再仅仅是揭示一类存在,而是一种艺术创作,分形搭起了科学与艺术的桥梁。
而这种分形艺术不仅需要敏锐的洞察力,还需要有很深的数学功底和熟练的编程技能。敏锐的洞察力发现复杂问题的一般规律,很深的数学功底把这些规律用数学的方式表达出来,而编程技能把把所要实现的东西实现。
<!--EndFragment-->
分享到:
相关推荐
基于VC++用递归的思想,按照经典的分形理论中的Koch曲线编写的算法,是很不错的分形程序设计的入门资料。
本代码描述了基于c#语言将一条直线进行分形,模拟海岸线的生成。具体实现为先计算一次,以生成任意两点间的KOCH曲线,然后自己设置迭代次数进行迭代产生任意迭代次数的KOCH曲线
koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形koch 分形
分形-Koch曲线的MATLAB代码
使用koch分形技术模拟的雪花模型 简单易懂 主要使用嵌套完成
Koch分形雪花图的面积计算.pdf
基于VC++用递归的思想,按照经典的分形理论中的C曲线编写的程序,是很不错的分形程序设计的入门资料。
这是基于KOCH曲线编写的的分形图形的代码
分形技术,分形程序,分形动画,分形。。。。。。
完成二维平面上 Koch 曲线的绘制 通过对一个多边形的每条边进行递归细分得到 要求程序能够定义多边形边数,定义迭代次数
一本用描述分型算法来实现图像压缩的技术,本书讨论了香农-范诺与哈夫曼编码,算术编码,行程编码来实现图像压缩的方法
Koch曲线,用C语言实现,典型的分形图.
MATLAB实现KOCH曲线的程序,一个很实用经典的分形曲线程序
KOCH分形代码 有源程序 图解 详细说明
Koch曲线的递归算法,在一单位长度的线段上对其三等分,将中间段直线换成一个去掉底边的等边三角形,再在每条直线上重复以上操作,如此进行下去直到无穷,就得到分形曲线Koch曲线。
计算机图形学大作业,详述分形中Koch雪花的思想、实现方法与程序代码
本文通过分形几何的方法,实现了Koch曲线的绘制。在载入的背景中,我们可以随机点击鼠标,来产生各种颜色的Koch雪花。文件中包含整个工程项目。
该程序使用matlab工具实现了分形曲线von Koch曲线,采用的是递归的方法,程序简单,但效果极佳
通过Matlab编程实现了Koch曲线图、树形分形图和 Sierpinski分形图的绘制。
基于三维空间中岩石裂纹扩展形态的随机性与空间性,根据盒维数直接定义,提出δ-直角三角面积覆盖法,并通过Koch曲线验证。同时根据分形插值理论构造空间分形曲线,建立空间分形曲线的矢量模型。利用面积覆盖法分别对...