分形图形绘图软件的设计与实现
中文摘要
分形图形绘图软件
摘 要:随着计算机科学的迅速发展,人们在使用计算机深入地探讨一系列问题的过程中逐渐感到,用传统的几何学已不能有效地描述某些自然界大量存在的对象,如:海岸线,山形,岩石,树木,闪电等等。随着计算机的普遍应用,分形几乎被应用于各个领域。在客观世界的几何描述方面,分形几何学能为自然界中存在的各种景物提供逼真的描述。因为自然界中的许多实际景物本身大体上就是分形,分形图形能很逼真地描述自然景物。
分形算法大体上可概括为递归算法,文法构图算法,迭代函数算法,逃逸时间算法等几种。其中比较经典的算法有Cantor三分集,Koch曲线,Sierpinski垫片,Julia集,mandelbort集等。
分形算法绘图软件主要的功能是应用分形算法在计算机上实现分形图形的绘制,系统中设置了一些其它的功能,如分形图形的保存,数据的存储等。从而使系统完善化,合理化。
关键词:分形算法 Cantor三分集 Koch曲线 Sierpinski垫片 Julia集 mandelbort集 [版权所有:http://DOC163.com]
毕业设计(论文)外文摘要
Fractal Graphics Drawing Software
Abstract: With the rapid development of computer science, People feel that Using traditional geometry has not described some of the natural world effectively when they use the computer research questions in depth, for example: the coastline, Yamagata, rock, trees, lightning, etc. With the widespread use of computers, fractal has been applied to almost all areas, in the area of description of the objective world, Fractal geometry can describe natural features realisticly. Because many of the natural is largely fractal, Fractal graphics can describe the natural features very realisticly.
Fractal algorithms generally can be summarized as Digui algorithms, grammar teaching algorithms, iterative function algorithms, escape time algorithm and so on. The algorithm which is classic: Cantor-sets, Koch curve, Sierpinski spacer, Julia sets, mandelbort sets and so on.
Fractal algorithm drawing software use fractal function to achieve fractal graphics in the computer, the system has some other functions, such as: preservation fractal graphics, data storage. Thus enabling system optimization and rationalization.
[资料来源:https://www.doc163.com]
Keywords: Fractal algorithms; Cantor-sets; Koch curve; Sierpinski spacer; Julia sets; Mandelbort sets
目 录
[资料来源:http://Doc163.com]
1 绪 论 1
1.1 课题研究的目的和意义 1
1.1.1 课题研究的意义 1
1.1.2 国内外相关课题的研究现状 2
1.2 课题的可行性分析 4
1.2.1 课题调研 4
1.2.2 可行性分析 4
2 分形简介 5
2.1 分形概念的提出与分形理论的建立 5
2.2 分形的几何特征 5
2.3 分形的测量 6
2.4分形的定义 7
2.5分形的研究对象及分类(类别) 8
2.6分形学的应用领域 8
3 需求分析 9
3.1现有系统介绍 9
3.2算法分析 10
3.2.1 cantor三分集的递归算法 10
3.2.2 Koch曲线的递归算法 10
3.2.3 Sierpinski曲线的递归算法 11
3.2.4 递归分形树 11
3.2.4文法构图算法 12
3.2.5 迭代函数系统算法 12
3.2.6逃逸时间算法 14
3.2.7 Mandelbrot集 14
3.2.8 Julia集 15
3.2.9牛顿法求根 16
4.1 系统整体结构设计 17
4.2开发环境: 20
5 递归算法模块体系结构设计 21
5.1递归算法模块的功能 21
5.2.递归算法模块模块的界面设计、详细设计 21
5.2.1递归算法模块的界面设计 21
5.2.2 递归算法流程图及绘制的图形 21
6.1 文法构图算法模块功能 28
6.2 文法构图算法模块模块的界面设计、详细设计 28
6.2.1 文法构图算法流程图及绘制的图形 28
7 迭代函数系统算法模块体系结构设计 31
7.1 迭代函数系统算法模块功能 31
7.2 迭代函数系统算法模块模块的界面设计、详细设计 31
7.2.1 迭代函数系统算法模块的界面设计 31
7.2.2 迭代函数算法流程图及绘制的图形 31
8 逃逸时间算法模块体系结构设计 35
8.1 逃逸时间算法模块的功能 35
8.2 逃逸时间算法模块的界面设计、详细设计 35
8.2.1 逃逸时间算法模块的界面设计 35
8.2.2 逃逸时间算法流程图及绘制的图形 35
9 其它模块体系结构设计 38
9.1 牛顿法解方程模块体系结构设计 38
9.1.1 牛顿法解方程模块的功能 38
9.1.2 牛顿法解方程模块的界面设计及绘制的图形 38
9.2分形演化模块体系结构设计 39
9.2.1 分形演化模块的功能 39
9.2.2 分形演化模块的界面设计及绘制的图形 39
9.3 分形显微镜模块体系结构设计 39
9.3.1 分形显微镜模块的功能 39
9.3.2 分形显微镜模块的界面如下所示及绘制的图形 40
9.4 分形动画模块体系结构设计 41
9.4.1 分形动画模块的功能 41
9.4.2 分形动画模块的界面设计 41
9.5三维空间的分形模块体系结构设计 41
9.5.1 三维空间的分形模块的功能 41
9.5.2 三维空间的分形模块界面设计及绘制的图形 41
10 设计过程中遇到的问题及解决方案 43
11 系统存在的不足与改进方案 44
11.1 系统存在的不足 44
11.2 改进方案 44
结 论 45
致 谢 46
参 考 文 献 47
分形图形绘图软件包含了下列九个模块:
1. 分形图的递归算法:本模块以递归算法实现分形图的绘制,其中具体的包括cantor三分集的递归算法,KOTH曲线的递归算法,KOTH雪花的递归算法,ARBORESENT肺的递归算法,SIERPINSKI垫片的递归算法文法构图算法等,可设置前后景,根据所选择的算法与设置的前后景色,绘制出相应的分形图,不同的算法绘出不同的的图形,避免图形的重叠,可清空画板。
2. 文法构图算法:本模块根据算法可以添加输入数据,模块上设置前后景色选择,根据输入的数据与前后景的设置绘出相应的图形,数据可存储在数据库,可根据每一组数据的编号来精确的查找数据,同时也可上一组数据,下一组数据的随意的查询,并且可以删除数据。因是多个图形在一个窗口中显示,且每个图形的尺寸的不同,所显示出的图形的大小比例,以及图形所在的位置也各不相同,并不能保证图形都显示在窗口的中间位置,设置可调节图形位置大小的功能。 [资料来源:Doc163.com]
3. 迭代函数系统算法:本模块根据算法可以添加输入数据,模块上设置前后景色选择,根据输入的数据与前后景的设置绘出相应的图形,数据可存储在数据库,可根据每一组数据的编号来精确的查找数据,同时也可上一组数据,下一组数据的随意的查询,并且可以删除数据。因是多个图形在一个窗口中显示,且每个图形的尺寸的不同,所显示出的图形的大小比例,以及图形所在的位置也各不相同,并不能保证图形都显示在窗口的中间位置,设置可调节图形位置大小的功能。
4. 逃逸时间算法:本模块可选择不同的具体的算法,根据不同的算法可进行不同的操作,如基于牛顿迭代法的Julia集的逃逸时间算法及Mandelbrot集的逃逸时间算法等,不需要进行参数等的配置而直接进行绘图,而基于逃逸时间算法的Julia集则需要根据算法可以添加输入数据,根据输入的数据与前后景的设置绘出相应的图形,数据可存储在数据库,可根据每一组数据的编号来精确的查找数据,同时也可上一组数据,下一组数据的随意的查询,并且可以删除数据,这里系统的前后景色不需要设置,因为其在算法中已经设定,避免图形的重叠,可清空画板。因为算法内部有一个调用循环过程,所以想要结束此模块时就需要等待本模块将算法全部执行完成,解决此问题,设置强行结束程序的功能。
[版权所有:http://DOC163.com]
5. 分形显微镜:本模块根据所选择的算法绘出相应的图形,在这里也不需要前后景色的设置,因为在算法中已经设定,当选择相应的算法时,系统会先大体的绘出图形,再精细的绘出图形,此时在图形上点击鼠标左键划出随意的区域,则系统会对该区域进行放大绘图,也是先先大体的绘出图形,再精细的绘出图形,如此反复可进行不断的放大。算法内部也有一个调用循环过程,所以想要结束此模块时就需要等待本模块将算法全部执行完成,解决此问题,设置强行结束程序的功能。
6. 分形演化算法:本模块设置了一个具体的算法,可设置符号,符号可以是任意的,可设置系统的前后景色,同时符号的前景色,后景色也需要设置,如不进行相应的设置,则本模块默认符号是汉字"春",系统的前景色是黑色,后景色是白色,符号的前景色是黑色,后景色是白色,算法内部也有一个调用循环过程,所以想要结束此模块时就需要等待本模块将算法全部执行完成,解决此问题,设置强行结束程序的功能。防止图片的叠加,设置将画板清空的功能。
7. 分形动画:根据所选择的算法在画板中画出相应的图形,因是动画形式的动态变化的图形,其的颜色也是不断的变化的,在算法中实现,每个算法内部也有一个反复的调用循环过程,使图形不断的重复绘制,所以想要结束此模块时块就必须要结束整个系统,因此,设置强行结束程序的功能。 [资料来源:https://www.doc163.com]
8. 三维空间中分形:本模块实现在三维空间中观察分形图形的功能,可选择不同的算法绘制不同的图形,可设置向上,向下,向左,向右,等几个视角来观察分形图,同时,也可以以分形图的中心的X,Y轴来分别上下左右滚动分形图来进行观察。
9. 牛顿迭代算法:牛顿迭代算法实际上有算是逃逸时间算法的一种,选择相应的方程绘制出不同的方程,不同的方程要求不同的参数设置,从而绘制出不同的图形,这里也不需要前后景色的设置,因为在算法中已经设定,根据所选择的算法添加不同的输入数据,当选择相应的算法时,输入参数,进行绘图时系统会先大体的绘出图形,再精细的绘出图形。系统可对进行图形的保存,数据库的查询 [资料来源:Doc163.com]