论文部分内容阅读
【摘 要】大自然中的任何物体都有形态,而且多姿多样,法国数学家曼德尔布罗特提出的分形概念就是针对各种各样的不规则图形。在计算机中,只要给你一个点,你就能利用迭代和分形画出整个世界。谢尔宾斯基三角形是分型与迭代的经典例子。
【关键字】JAVA 分形 迭代 谢尔宾斯基三角形
引言:
在大自然中,任何物体都有自己的形态,而且形态各式各样。随处可见的车子、房子都有它们固定的形态,而像树木石头就有各种各有不同的非固定形态。如果把世界抽象成一个平面,那么大自然中的物体就像这个平面上的一个个美丽的几何图形。
那么这个大自然的几何画轴要怎么描述呢,我们在欣赏着美妙的大自然几何图形的同时也遇到了这样的难题。于是在二十世纪七十年代的时候,美籍法国数学家曼德尔布罗特提出了分形的概念,同时也形成了一门新的学科——分形几何学。美国物理学家惠勒曾经说过:“谁不知道熵概念就不能被认为是科学上的文化人,将来谁不知道分形概念,也不能称为有知识。”可见分形早就被认为会成为应用极广泛的学科,而事实也证明了这一点。
正文:
在现代科学技术高速发展的现状下,各种各样的编程语言也随之兴起,比如说最近才发布的SWIFT,又掀起了IOS开发爱好者的兴趣。而JAVA是1995年5月SUN公司推出的一种面向对象的程序设计语言。由于它的跨平台性,自推出起,JAVA语言就受到广大开发者的关注和热爱。
古希腊哲学家阿基米德曾经说过这样一句话:“给我一个支点,我就能撬动地球。”计算机世界像是现实世界外的另一个世界。所以,在计算机中,只要给我们一个点,我们就能画出整个世界。现在以JAVA语言为例来谈谈简单的分形和迭代。
分形这门学科主要研究对象就是不规则几何形态,所以与大自然有着密切的关系。分形与JAVA有什么关系呢。JAVA是一种程序设计语言,而掌握了一种程序设计语言,就能随心所欲的让计算机受自己操纵,而分形这门学科也是让各种不同的图形随心所欲的受自己操纵。至于迭代,有点类似于递归,但是又跟递归有很大的区别。递归通俗的来讲就是自己调用自己,迭代从这个层面上来讲,就是A不断地调用B。迭代是重复地利用原值与即将的值之间某种特定的关系来不断地得到新的值。
分型与迭代体现了科学与艺术的完美结合。接下来就结合JAVA程序设计语言来谈谈分型与迭代。
提起分型与迭代,就不得不得说说几个著名的分形图,例如谢尔宾斯基三角形、科赫曲线,毕达哥拉斯树等等。现在以谢尔宾斯基三角形为例来说说用java如何实现。我们首先来看看它是如何构成的。首先需要一个实心的等边三角形,然后取三条边的中点,用直线连接,这样就得到了4个三角形,然后将中间的三角形去掉,对其他三个三角形进行重复以上步骤。
谢尔宾斯基三角形如何用计算机实现呢。以JAVA语言为例,用JAVA的GRAPHICS画布来画出这美丽的图形。谢尔宾斯基三角算是比较简单的分形图形,很有规律。所以首先要做的就是找出规律,并把这些规律抽象成数学公式,以方便迭代来完成工作。
我们来看一下下面这一段很简单的代码。
其中x1,y1,x2,y2,x3,y3是三角形三个点的位置,count是迭代次数。①②是取当前三角形三条边的中点,③④⑤是画出三个三角形,⑥⑦⑧是进行迭代。从以上看,迭代似乎与递归差不多,但是其实迭代与递归有很大的区别。递归占用内存,而且递归太深容易造成栈溢出。迭代中并不一定会有递归,所以能不用递归尽量不要用递归。这里的代码是用了递归来实现了迭代。在维基百科上还记录了可以由正方形或者其他形状开始,进行类似的方法进行构造,则经过多次迭代之后,都可以得到与谢尔宾斯基三角形很像的几何形状。其中还记录了根据L-系统展现了曲线如何逼近谢尔宾斯基三角形。(L-系统,是匈牙利生物学家Aristid LinderMayer在二十世纪七十年代提出的。L-系统的本质是一个重写系统,通过对植物对象生长过程的经验式概括和抽象,初始状态与描述规则,进行有限次迭代,生成字符发展序列以表现植物的拓扑结构,并对产生的字符串进行几何解释,就能生成非常复杂的分形图形。)
分形与迭代不仅是科学与艺术的结合,它们在各个领域都有很广阔的应用,比如说生物中细胞的生长、数学中的各种系统等,所以对分形与迭代的研究对各个领域都有非凡的意义。
参考资料:
[1]王小铭;分形图案的构图艺术及其计算机实现[J];计算机辅助设计与图形学学报;2001年01期
[2]姜志强;分形理论应用研究若干问题及现状与前景分析[J];吉林大学学报(信息科学版);2004年01期
[3]董远,胡光锐;分形理论及其应用[J];数据采集与处理;1997年03期
[4]邢丽君;论分形理论的应用和研究方向[J];松辽学刊(自然科学版);2002年01期
[5]杨松林;迭代法中的分形[J];华东船舶工业学院学报;1999年02期
【关键字】JAVA 分形 迭代 谢尔宾斯基三角形
引言:
在大自然中,任何物体都有自己的形态,而且形态各式各样。随处可见的车子、房子都有它们固定的形态,而像树木石头就有各种各有不同的非固定形态。如果把世界抽象成一个平面,那么大自然中的物体就像这个平面上的一个个美丽的几何图形。
那么这个大自然的几何画轴要怎么描述呢,我们在欣赏着美妙的大自然几何图形的同时也遇到了这样的难题。于是在二十世纪七十年代的时候,美籍法国数学家曼德尔布罗特提出了分形的概念,同时也形成了一门新的学科——分形几何学。美国物理学家惠勒曾经说过:“谁不知道熵概念就不能被认为是科学上的文化人,将来谁不知道分形概念,也不能称为有知识。”可见分形早就被认为会成为应用极广泛的学科,而事实也证明了这一点。
正文:
在现代科学技术高速发展的现状下,各种各样的编程语言也随之兴起,比如说最近才发布的SWIFT,又掀起了IOS开发爱好者的兴趣。而JAVA是1995年5月SUN公司推出的一种面向对象的程序设计语言。由于它的跨平台性,自推出起,JAVA语言就受到广大开发者的关注和热爱。
古希腊哲学家阿基米德曾经说过这样一句话:“给我一个支点,我就能撬动地球。”计算机世界像是现实世界外的另一个世界。所以,在计算机中,只要给我们一个点,我们就能画出整个世界。现在以JAVA语言为例来谈谈简单的分形和迭代。
分形这门学科主要研究对象就是不规则几何形态,所以与大自然有着密切的关系。分形与JAVA有什么关系呢。JAVA是一种程序设计语言,而掌握了一种程序设计语言,就能随心所欲的让计算机受自己操纵,而分形这门学科也是让各种不同的图形随心所欲的受自己操纵。至于迭代,有点类似于递归,但是又跟递归有很大的区别。递归通俗的来讲就是自己调用自己,迭代从这个层面上来讲,就是A不断地调用B。迭代是重复地利用原值与即将的值之间某种特定的关系来不断地得到新的值。
分型与迭代体现了科学与艺术的完美结合。接下来就结合JAVA程序设计语言来谈谈分型与迭代。
提起分型与迭代,就不得不得说说几个著名的分形图,例如谢尔宾斯基三角形、科赫曲线,毕达哥拉斯树等等。现在以谢尔宾斯基三角形为例来说说用java如何实现。我们首先来看看它是如何构成的。首先需要一个实心的等边三角形,然后取三条边的中点,用直线连接,这样就得到了4个三角形,然后将中间的三角形去掉,对其他三个三角形进行重复以上步骤。
谢尔宾斯基三角形如何用计算机实现呢。以JAVA语言为例,用JAVA的GRAPHICS画布来画出这美丽的图形。谢尔宾斯基三角算是比较简单的分形图形,很有规律。所以首先要做的就是找出规律,并把这些规律抽象成数学公式,以方便迭代来完成工作。
我们来看一下下面这一段很简单的代码。
其中x1,y1,x2,y2,x3,y3是三角形三个点的位置,count是迭代次数。①②是取当前三角形三条边的中点,③④⑤是画出三个三角形,⑥⑦⑧是进行迭代。从以上看,迭代似乎与递归差不多,但是其实迭代与递归有很大的区别。递归占用内存,而且递归太深容易造成栈溢出。迭代中并不一定会有递归,所以能不用递归尽量不要用递归。这里的代码是用了递归来实现了迭代。在维基百科上还记录了可以由正方形或者其他形状开始,进行类似的方法进行构造,则经过多次迭代之后,都可以得到与谢尔宾斯基三角形很像的几何形状。其中还记录了根据L-系统展现了曲线如何逼近谢尔宾斯基三角形。(L-系统,是匈牙利生物学家Aristid LinderMayer在二十世纪七十年代提出的。L-系统的本质是一个重写系统,通过对植物对象生长过程的经验式概括和抽象,初始状态与描述规则,进行有限次迭代,生成字符发展序列以表现植物的拓扑结构,并对产生的字符串进行几何解释,就能生成非常复杂的分形图形。)
分形与迭代不仅是科学与艺术的结合,它们在各个领域都有很广阔的应用,比如说生物中细胞的生长、数学中的各种系统等,所以对分形与迭代的研究对各个领域都有非凡的意义。
参考资料:
[1]王小铭;分形图案的构图艺术及其计算机实现[J];计算机辅助设计与图形学学报;2001年01期
[2]姜志强;分形理论应用研究若干问题及现状与前景分析[J];吉林大学学报(信息科学版);2004年01期
[3]董远,胡光锐;分形理论及其应用[J];数据采集与处理;1997年03期
[4]邢丽君;论分形理论的应用和研究方向[J];松辽学刊(自然科学版);2002年01期
[5]杨松林;迭代法中的分形[J];华东船舶工业学院学报;1999年02期