分形图像绘制软件的设计与实现.docx

上传人:b****7 文档编号:15773780 上传时间:2023-07-07 格式:DOCX 页数:26 大小:3.18MB
下载 相关 举报
分形图像绘制软件的设计与实现.docx_第1页
第1页 / 共26页
分形图像绘制软件的设计与实现.docx_第2页
第2页 / 共26页
分形图像绘制软件的设计与实现.docx_第3页
第3页 / 共26页
分形图像绘制软件的设计与实现.docx_第4页
第4页 / 共26页
分形图像绘制软件的设计与实现.docx_第5页
第5页 / 共26页
分形图像绘制软件的设计与实现.docx_第6页
第6页 / 共26页
分形图像绘制软件的设计与实现.docx_第7页
第7页 / 共26页
分形图像绘制软件的设计与实现.docx_第8页
第8页 / 共26页
分形图像绘制软件的设计与实现.docx_第9页
第9页 / 共26页
分形图像绘制软件的设计与实现.docx_第10页
第10页 / 共26页
分形图像绘制软件的设计与实现.docx_第11页
第11页 / 共26页
分形图像绘制软件的设计与实现.docx_第12页
第12页 / 共26页
分形图像绘制软件的设计与实现.docx_第13页
第13页 / 共26页
分形图像绘制软件的设计与实现.docx_第14页
第14页 / 共26页
分形图像绘制软件的设计与实现.docx_第15页
第15页 / 共26页
分形图像绘制软件的设计与实现.docx_第16页
第16页 / 共26页
分形图像绘制软件的设计与实现.docx_第17页
第17页 / 共26页
分形图像绘制软件的设计与实现.docx_第18页
第18页 / 共26页
分形图像绘制软件的设计与实现.docx_第19页
第19页 / 共26页
分形图像绘制软件的设计与实现.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

分形图像绘制软件的设计与实现.docx

《分形图像绘制软件的设计与实现.docx》由会员分享,可在线阅读,更多相关《分形图像绘制软件的设计与实现.docx(26页珍藏版)》请在冰点文库上搜索。

分形图像绘制软件的设计与实现.docx

分形图像绘制软件的设计与实现

摘要

分形是最近二三十年来才发展起来的一门新的学科,分形理论进一步可分为规则和不规则分形,不规则分形主要是描述简单的几何对象的性质和非线性系统中不光滑的和不规则的几何形式,作为一个可以用来描述很多科学现象的有效工具,它已经被广泛应用于计算机科学等许多领域,并且在各自的领域内都有了很好的理论上的发展,并且在实践性的艺术性上也有了很好的发展,大大拓宽了人们的视野,加深了人们对科学及艺术的理解。

本次毕业设计,目的是创建一个基于MATLAB的平台,简单,易于用户操作分形图软件,它应该符合经典分形图系统,具有一般分形图的功能,满足一定的图像处理、信息管理等功能。

允许用户在不理解的复杂科学理论的同时通过简单的计算机操作,改变一些参数和进行颜色调整来生成分形图形,并且进行相关图形的存储以及其他功能。

关键词:

分形理论;分形艺术;分形算法;Julia集;Mandelbrot

Abstract

Fractalisdevelopedinrecenttwohundredandthirtyyearsbeforeanewscience,fractaltheorycanbefurtherdividedintorulesandirregularfractal,irregularfractalmainlydescribesimplegeometricobjectsandthepropertiesofnonlinearsystemisnotsmoothandirregulargeometricalform,asaneffectivetoolcanbeusedtodescribealotofscientificphenomena,ithasbeenwidelyusedinmanyfieldssuchascomputerscience,andtherewereverygoodintheirrespectiveareasthedevelopmentofthetheory,andonthepracticeofartisticalsohaveverygooddevelopment,greatlywidenedpeople'shorizons,deepenpeople'sunderstandingofscienceandart.

Thegraduationdesign,thepurposeistocreateaplatformbasedonMATLAB,simple,easytouseroperationfractalgraphsoftware,itshouldconformtotheclassicfractalgraphsystem,hasthefunctionofgeneralfractalfiguremeetcertainimageprocessing,informationmanagement,etc.Allowstheusertodonotunderstandthecomplexsciencetheoryatthesametime,throughasimplecomputeroperation,colorchangingsomeparametersandadjusttheafterlifecompositionformgraphics,andrelatedgraphicsstorage,andotherfunctions.

Keywords:

Fractaltheory;Fractalart;Fractalalgorithm;Juliaset;Mandelbrot

目录

1.绪论4

1.1研究背景4

1.2研究目的和意义4

1.3国内外相关课题的研究现状5

1.4相关技术介绍6

1.4.1MATLAB平台的选取6

1.4.2关于MATLAB的GUI6

1.5论文组织结构7

2.系统可行性分析8

2.1经济可行性8

2.2技术可行性8

2.3社会实践可行性8

3.系统需求分析10

3.1系统功能结构分析10

3.2分形算法原理介绍10

4.系统设计12

4.1系统运行界面设计12

4.2软件运行环境及功能的具体设计12

5.系统实现15

5.1分形图绘制算法的实现15

5.2系统功能模块的实现16

5.2.1界面功能介绍16

5.2.2算法功能实现17

5.3系统交互模式的实现21

6.系统测试23

6.1系统测试的目的和说明23

6.2系统测试结果及不足27

7.总结28

参考文献:

29

致谢30

1.绪论

1.1研究背景

最初的分形理论是由蒙德布罗德在上世纪70年代创立的,叫做fractal。

前缀fract来自于分形fractus,即分形理论,这意味着分形理论研究了传统的欧几里德几何的性质,它可以描述随机或几何对象的复杂规则。

分形理论自诞生以来,发展迅速,广泛应用于自然科学、社会科学、思维科学等诸多领域。

而分形维数和分形维数的概念,远比狭义的狭义定义,从物体间的特殊分形几何相似,延伸到信息的结构、功能和质量,例如广义分形自相似性质的时间。

在自然、社会、科学等分形现象的领域,如分形、分形生物学、物理分形结构地质学、地震学分形、分形和分形的人口经济学,发现分形在材料科学、化学、天文学、分形、分形艺术、分形智能等方面都有分形[1]。

此外,我们还可以根据是否有严格的完全自相似性的分形可分为两类:

一类分形完全确定严格的规则(即自相似性的分形),自相似性的分形体系是相同的,它通常是一个数学家根据一定的规则,比如科赫,科赫曲线,谢尔宾基地毯子,等;另一种随机分形、近似或近似自相似在统计意义上,且相似只存在于无尺度域,超越无尺度域,自相似性不再存在,因此不能使用分形理论分析。

事实上,物体、现象和性质的分形是不规则的分形。

由于严格的线性、圆、方、扁、球面的欧几里得几何性质没有真实存在,自然界中没有完全自相似的分形对象。

此外,我们可以把这些性质基本上是接近欧几里德几何的对象用欧几里德几何理论来处理和研究,我们也可以保持自然,也有一些在一定范围从相似的分形属性对象的类别、现象、特点或用分形理论来处理和研究。

换句话说,分形模型是人们在理想状态下观察和研究自然的一种新的数学模型。

在客观世界中,分形理论揭示了混沌与自相似性是非常普遍的。

分形理论揭示了混沌中自相似性的本质。

它对科学及其方法论产生了深远的影响。

分形的概念和思想被抽象成一种科学的方法论,即分形方法论。

对于分形方法来说,自相似性通常被用来作为理解整个过程的工具。

然而,这种概括并不全面,分形方法的内涵比这类泛化更丰富、更全面。

我们认为分形方法的内容主要包括以下两点:

第一,分形对象的自相似度在各部分与整体之间,通过理解(即反映和认知)整体,通过理解整体把握和加深对各部分的理解;其次,利用分形理论从无序中寻找秩序,揭示混沌、分裂和混沌的规律。

1.2研究目的和意义

分形理论是一个最近几十年才发展起来的一个领域,因此,关于分形理论相关的研究资料和研究成果都不是很多,这也给人们在分形的学习上带来了很大的困扰,要学习分形,那么肯定要接触到分形模型,常见的分形模型包括三分康托集,Koch曲线,Julia集等等[2],这些模型的函数和迭代算法看起来并不复杂,但是却可以生成精美的分形图像,在这些模型当中,哪怕只是改变其中的一个很小的参数都会对最终产生的图像造成很大的影响,而这种因为微小参数所导致的图像的细微变化仅凭语言是很难描述的,这个时候我们需要一个相关的系统来准确的描述这些变化,并且对于没有太多分形和数学基础的人,这套系统都能够很好的使用以及快速理解,因此,研制出这样的软件是非常有必要的,对今后的分形学习和绘制都有着非常大的帮助。

除了分形图像绘制软件本身可以绘制出的图像以及对参数的处理之外,生成的图像在经过一系列加工处理之后也可以在各个领域得到广泛使用,最常见的,建筑设计,医学,物理,广告,以及家装等领域。

此外,获得的分形图,经过分析提取后可以将分形的结构应用到更多的方面,这个延伸应用中,最经典的案例莫过于珠宝设计师把一系列的钻石与蓝宝石按照Julia集的分形结构串联到了一起,产生了史无前例的美丽效果。

1.3国内外相关课题的研究现状

作为自然几何的分形理论,它补充了动态系统的混沌理论。

在一定的条件下,它已经实现了世界的某些部分,一方面,形式、特征、结构、信息、时间、能量等具有整体的相似性,可以实现空间维度的变化,可以是离散的,也可以是连续的。

分形理论仅发展了十多年,还处于起步阶段。

分形维数计算方法和实验方法的建立、改进和改进是分形科学家共同关心的问题,这使得该理论简单可行。

理论研究、理论计算和维数评价、分形重构(即电力系统、吸引子分形集)、J和M集合,以数学工作者的推广特征形式,动态特性和维度将是一个非常活跃的研究领域。

完善和严格的多重分形理论,如何运用这些理论来解决实际问题可能引起科学家的广泛兴趣,而动态特性、相变和小波变换可能是一些热点。

在哲学方面,人们的兴趣在于自相似性的普遍性,M和J集显示了简单性和复杂性,复数和真正的团结,各种形式的变化和突变理论,自组织临界性之间的关系(SOC)现象的特征和分形系统的内部矛盾转换,等等。

除了理论意义,在实践中,分形也显示出巨大的潜力,在许多领域得到了有效的应用,其广泛的应用范围,效率显著高于十年前的任何预测。

目前有许多分形方法的案例出现,这些案例与生态系统和生命演化、数字编码与解码、数论、动态系统、理论物理、流体力学、湍流等方面有关,以及城市的分形研究规则,也在地震预测中发挥了重要作用[3]。

在1996年6月的《美国数学学会期刊》上,Basley发表了他的文章《利用分形进行图形压缩》,他在光学磁盘的图形压缩中使用分形。

通常,我们总是存储和处理一个图作为像素集合。

最常见的图像往往涉及数十万甚至上百万像素,造成巨大的存储和有限的传输速度。

Basley在分形中使用了一个重要的概念:

分形与某些转换有关,我们可以把任何图形看作是某些转换的重复迭代的产物。

因此,要存储图形,只需要存储关于这些转换的信息,而不是图的所有像素。

一旦发现转换过程,图像就可以完全复制,而无需花费大量空间存储像素信息。

这样,我们可以压缩存储空间到原始存储空间的1/8。

分形艺术是一种二维视觉艺术。

在许多方面,例如摄影,分形图像通常由电脑屏幕和打印机完成。

自我相似性的本质是分形几何。

利用这一原理,我们可以构造出具有自相似段的合成音乐,并在小键的重复周期中重复这一主题。

科学的分形概念和分形理论从一开始就从国外被引入,但在中国文化和许多古代文献中都可以看到许多分形概念。

也可以说东方思维是分形的。

中国的套箱和俄罗斯娃娃的例子是众所周知的,而且在佛教中经常看到无穷嵌套思想。

从南北朝时期,特别是宋代,中国传统儒学借鉴了佛教,在本土化的过程中也进行了分形的概念。

中国人早已习惯了在中国土地上伴随佛教活动的原始分形艺术。

在中国佛教和道教中也有很多艺术作品,比如分形的原型,如元代的“僧伽庙”、千寿佛的五幅画和五种化身[4]。

1.4相关技术介绍

1.4.1MATLAB平台的选取

MATLAB是一种高级矩阵/数组语言,包括控制语句、函数、数据结构、输入和输出以及面向对象的编程特性。

用户可以在命令窗口中同步输入语句和执行命令,或者在一起运行之前编写一个大型的、复杂的应用程序(M文件)。

新版本的MATLAB是最受欢迎的,基于C++的语法功能非常类似于C++,它更简单,更符合科学技术人员的数学表达。

对非计算机专业人士更方便。

此外,该语言具有高度的可移植性和可扩展性,这也是MATLAB进行科学研究和工程计算的重要原因。

MATLAB自诞生以来就有了一个方便的数据可视化功能,因此矢量和矩阵可以用数字表示,数字可以被标记和打印出来。

MATLAB在自身系统的更新过程中也对已有的图像处理功能进行了升级和完善,使其不仅拥有对图形的强大处理能力,也拥有了很好的可视化功能,实现了良好的人机交互,在色彩处理方面也有了新的突破。

此外,新版本的MATLAB也致力于改进图形用户界面(GUI)的制作。

在这个领域有特定需求的用户也可以得到满足。

1.4.2关于MATLAB的GUI

MATLAB的GUI,又称为MATLAB的图形交互界面,拥有强大的可视化功能,对于无基础用户可以实现快速操作,能够实现良好的人机交互,并且MATLAB自带许多函数以及图像处理功能,在最初的界面设计好之后,只要点击回调就可以看到你的GUI界面对应的代码,如果想要通过点击GUI界面中的某个按钮获得某种功能,只需要在该按钮所对应的回调函数下加入相应的代码即可。

同时,随着MATLAB自身版本的不断更新,MATLAB在图形用户界面上所拥有的功能也越来越多,可以满足各种类型的使用需求,自带的函数也越来越多,因此,此次毕业设计选择MATLAB的GUI作为实现功能的平台,是具有现实意义的。

1.5论文组织结构

第1章绪论,介绍了这次毕业设计课题的研究背景,阐述了国内外相关课题的研究现状。

第2章可行性分析,介绍了分形图像绘制软件的经济可行性,技术可行性以及社会实践可行性。

第3章系统需求分析,主要进行了系统功能结构分析以及系统操作流程分析。

第4章系统总体设计,介绍了系统的功能模块设计和系统运行界面设计。

第5章系统实现,介绍了分形图算法的实现,系统功能模块的实现以及系统交互模式的实现。

第6章系统测试,对系统各个功能模块进行测试,测试系统在输入不同参数的情况下能否绘制出相应的图像。

第7章,进行总结以及致谢。

 

2.系统可行性分析

可行性研究是对软件进行全面、概要的分析,是对软件能否顺利开发出来和较好的使用之前进行一个评估,主要分为经济可行性,技术可行性,社会实践可行性。

经济可行性包括软件开发的成本,性价比如何,能否得到很有效的推广和使用。

技术可行性包括使用哪种技术开发这个系统以及如何开发效率最高。

社会实践可行性包括这款系统开发出来之后能否得到应用的使用,能否起到相应的价值。

2.1经济可行性

本次毕业设计课题为分形图像绘制软件的设计与实现,其开发环境为MATLAB2016a破解版,只有是配备有MATLAB的电脑都可以完成,开发成本比较低,性价比比较高,未来有很好的商业价值和经济价值。

2.2技术可行性

如何实现分形图的绘制最重要的就是数学模型,而数学模型的核心就是算法,本次毕设主要用到的算法是递归算法。

这个系统的原理是依靠MATLAB平台强大的可视化能力和精确及快速的计算能力,通过MATLABGUI界面的设计,实现了良好的人机交互,使大多数没有太多数学和分形基础的人在使用该系统的时候不会出现太大的困难,系统主要功能模块大致分为两块,一块用户输入参数及选择算法,另一块生成图像及处理图像,MATLAB拥有强大的函数计算能力,因此只要有确定的数学模型及核心算法,生成图像就并不困难,处理图像也可以依赖MATLAB系统本身自带的GUI界面工具栏,因此,只要我们在设计前期做好参数的确定和算法的选择,绘图软件的实现就不是一件难事。

MATLAB平台相较于其他同类型的开发工具,绘图能力更强,在界面的设计上更方便,函数更多,计算更快捷,使用起来容易上手,适合没有太多基础知识的普通用户。

2.3社会实践可行性

分形图像绘图软件虽然名气不大,也没有被太多人了解,并且至今使用的范围仍然很有限,没有太大的商业价值和经济价值,但是,随着分形理论的发展,人们对于这个领域的了解也越来越多,分形作为一个刚刚发展起来的学科,它与很多学科都有关联,比如数学,物理,医学等等。

要想生成一个美丽的分形,首先要有相应的数学模型,不同的数学模型对应不同的算法,相应的,输入的参数也是不一样的,其次,要与计算机编程相结合,用代码将整个过程用可视化界面表现出来,最终才能将分形绘图软件做出来。

可以预见,这个平台会极大地加强人们对于分形领域的关注和兴趣。

分形图像绘制软件除了在传统工科和理科领域有着广泛的应用之外,在设计领域和建筑学领域也有着很多应用。

建筑学本身就包含了很多的艺术元素,将传统艺术元素和文化与现代数学理论相结合,从而生成符合建筑元素的分形,并将这些分形应用到实际的建筑设计和建造上,也是未来的一个发展趋势。

分形图的绘制除了可以用在众多科技前沿的领域外,也与我们普通老百姓的生活息息相关,比如,在制作图表的过程当中,可以通过增加迭代次数来加强细节的准确性,使图表的精确度更高,在魔方比赛中,魔方独特的匹配算法也可以通过分形来实现。

此外,分形图的重复迭代的运算方式,也可以引用到数据记录等的图像编码中。

从长远角度来看,分形将会被运用到越来越多的领域,也会与普通老百姓的生活产生更多的联系,因此,分形绘图软件具有很高的社会价值。

此外,我们经常看到很多电脑屏幕保护程序,他们也是通过分形计算出来的。

 

3.系统需求分析

3.1系统功能结构分析

针对各种类型用户对于软件不同的使用需要,通过MATLAB平台进行后台的基础数学计算与绘图,通过MATLAB的GUI用户界面实现用户界面的设计与安排,实现基础分形图的绘画,加工,导出,浏览等基本功能。

利用MALAB平台的数组单位运算,简便运算过程等特点进行分析,设计并开发一个适于人们使用的分形图绘制软件,这个软件,主要有着这三个使用的功能其中包括:

1.分形图像绘制

为使得系统的应用范围更加广泛,能够绘制出更多种类的分形图,系统的右侧界面区域提供了几个下拉框和输入框,下拉框是用来提供算法选择的,算法的实现主要就是通过不同的迭代方式来绘制出不同的分形图,下拉框还可以用来选择颜色方案,输入框主要是用来输入各种参数包括迭代次数以及图像大小等等,迭代次数越多,图像越细致,细节更明显,但程序耗费的时间也更长。

2.分形图的加工与处理

在分形图像生成之后,如果要在整体的分形图当中找到想要的一小部分,并且只对想要的部分作出处理,那么这个时候就需要用到MATLAB自带的菜单栏和工具栏当中的功能,MATLAB自带的工具栏功能包括图像的放大,缩小,平移,图例的插入,颜色的变化以及图像的三维旋转,如果只需要整体图像当中的一小部分,那么只要选择放大功能,然后将需要的部分平移到坐标的正中央,然后再进行旋转,颜色的改变以及图像的截取等等操作。

在界面的右侧区域中,增加的colormap功能也可以改变图像的颜色风格,下拉选取想要的颜色方案,无需点击Update就可以看到效果。

3.图像的信息管理功能

在输入参数,确定算法,得到想要的图像,并且对图像已经做了一定的编辑和处理,那么这时候就可以将得到的图像进行保存以方便下次查看和使用,通过点击工具栏和菜单栏中的保存按钮,即可将得到的分形图保存到用户希望的文件夹中。

3.2分形算法原理介绍

分形的绘制主要用到了五种算法:

julia;Z=(2*Z.^3+1)./(3*Z.^2);Z=Z+c^2;mandelbrot;Z=Z.^Z+C。

Julia:

又称时间逃逸算法,假设有一个充分大的整数N,当未逃逸区域M中的初始点a经过小于N次迭代就达到未逃逸区域M的边界,甚至超出了边界,我们就认为点a逃逸出去了;而如果经过N次迭代后a的轨迹仍未达到M的边界,我们就认为a是A上的点。

用这样的方法绘制出A的边界图形,这便是逃逸时间算法的基本思想。

Manderbrot:

曼德布洛特复数集合是一种在复平面上组成分形的点的集合,以数学家本华·曼德博的名字命名。

曼德博集合与朱利亚集合有些相似的地方,例如使用相同的复二次多项式来进行迭代。

曼德布洛特集合可以用复二次多项式:

f_c(z)= z^2+c来定义,其中c是一个复参数。

对于每一个c,从开始对fc(z)进行迭代。

序列的值或者延伸到无限大,或者只停留在有限半径的圆盘内。

曼德布洛特集合就是使以上序列不延伸至无限大的所有c点的集合。

从数学上来讲,曼德布洛特集合是一个复数的集合。

一个给定的复数c或者属于曼德布洛特集合M,或者不是。

4.系统设计

4.1系统运行界面设计

系统运行主要通过下面几个步骤来实现相应的功能

打开界面→选择映射方法→输入参数→输入位置区间→选择颜色→生成图像→保存。

1.选择映射方法在系统界面的右侧就是参数的输入及模式的选择区域,映射方法的选择通过下拉框来实现的,点击下拉框,可以看到有五种映射方法可以供选择,包括Julia以及Mandelbrot。

2.输入参数在系统界面的右侧区域有五个可供填写的输入框,包括迭代次数,图像大小以及C和a两个数,C可以是实数也可以是复数。

3.选择区间AXIS是坐标轴区域设置[xminxmaxyminymax],这四个数字决定了图像所处的位置,一开始会默认一个区间以及左右括号,只要修改括号中的四个数字就可以选择不同的区间。

4.选择颜色在界面的右侧区域中有一个colormap的下拉菜单,可选择十种以上的图像模式。

5.生成图像图形绘出计算参数选定后,点击Update绘图按钮,即可在界面的左侧看到刚刚绘制的图像。

6.保存可以点击系统界面左上角的菜单栏或者工具栏当中的保存按钮即可。

4.2软件运行环境及功能的具体设计

系统运行环境为MATLAB2016a。

本系统总体上具有三大功能:

1.带入参数,选择算法,绘出分形图;

图1绘出分形图

2.对得到分形图进行初步处理,加工;

图2图像处理

3.对得到的分形图进行信息管理。

图3图像信息管理

系统操作流程主要分为三个步骤。

系统开始使用,打开界面,用户选定算法后,输入一定的参数,再选定颜色方案后,点击Update按钮系统即可绘出目标分形图,这个时候用户可以对图形进行加工,保存等等的操作,系统使用的流程图如图4所示:

图4系统使用流程图

5.系统实现

本软件操作简单方便,界面可视化强,其主要绘图根据用户所选择的算法以及录入的参数来决定,除此之外,软件还包括不同的工具选择来对图片进行处理,以及增加的按钮来完成系统交互模式的实现,主要有下面几个模块:

5.1分形图绘制算法的实现

分形的绘制主要用到了五种算法:

julia;Z=(2*Z.^3+1)./(3*Z.^2);Z=Z+c^2;mandelbrot;Z=Z.^Z+C。

Julia集使用的关键代码:

switch(method)%通过定向选择决定要使用的算法

case1%julia集的情况下

Z=X+Y*i;%XY即对应着在绘图过程中需要绘到的点

W=zeros(size(Z));

fork=1:

n_iter

Z=Z.^2+c;%进行迭代计算,绘图

i0=find(abs(Z)>a);W(i0)=k;Z(i0)=NaN;

end

i0=find(W==0);W(i0)=NaN;

在Z=(2*Z.^3+1)./(3*Z.^2)情况下,所用的算法与上部分基本相同,改变的是循环内部的算法而已。

而在mandelbrot的情况下,稍微有一些不同,是收敛型分析图,关键点在于,绘图的所有点满足条件成为了C=X+Y*i,分形图不再往一个方向延伸,而是成包拢的趋势,从而形成图6的形状。

而第三种情况与第五种情况中几近相似,具体如下:

图5m

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2