静态模拟无人机航拍图像系统毕业设计论文.doc
三 江 学 院本科生毕业设计(论文)题 目 静态模拟无人机航拍图像系统 计算机科学与工程院(系)软件工程 专业学生姓名 学号 32010054026 指导教师 职称 教授 指导教师工作单位 三江学院 起讫日期 2014年2月24日 2014年5月16日 摘 要静态模拟无人机的航拍图像软件是一个典型的计算机模拟仿真技术的应用。利用图形分形和计算机模拟仿真的基本原理和操作方法, 构造了一个仿真的模拟航拍图系统, 其能够有效模拟出类似真实的航拍效果,还可以根据需要来调整分形算法来动态改变航拍图,模拟真实环境无法实现的多变的航拍效果,充分的展现了分形几何在模拟自然景象的优势。因此, 它可以作为模拟作战环境和灾害搜救等航拍图的一种辅助工具。分形理论与计算机科学理论的结合同时为实现图像数据压缩提供了新的途径。本文主要研究分形理论中的分形算法,采用分形的方法生成山和云等自然景物。本软件就是研究图形分形理论结合VB编程技术、配色技术和随机中点位移分形算法来实现精美逼真的静态模拟无人机的航拍图像的生成。关键词:模拟仿真; 分形理论;分形算法ABSTRACTStatic simulation of Unmanned Aerial Vehicle aerial imaging software is a typical application of computer simulation technology. The basic principles and methods of operation using the graphics fractal and computer simulation, construction of a simulation of analog aerial view of the system, which can effectively simulate a similar real aerial effects, can also be adjusted fractal algorithms needed to dynamically change the aerial view, analog the effect of changing aerial real environment can not be achieved, sufficient to show the advantages of fractal geometry in simulating natural scene. Therefore, it can be used as an auxiliary tool for simulated combat environment and disaster search and rescue aerial map. Combined with fractal theory and theoretical computer science at the same time to achieve the image data compression provides a new way. This paper studies the theory of fractal fractal algorithm, using fractal method for generating mountains and clouds and other natural features. This software is the study of fractal graphics combined with VB programming techniques, color techniques and random midpoint displacement fractal algorithms to achieve beautifully realistic simulation of UAV aerial images of static generation.Key words: Simulation; Fractal Theory; Fractal algorithm目 录第一章 绪论11.1论文研究的背景与意义11.1.1论文研究的背景11.1.2论文研究的意义11.2论文研究的基本内容及思想21.2.1航拍图像系统基本内容21.2.2航拍图像系统设计思想21.3计算机模拟仿真技术的发展与趋势2第二章 航拍图像系统概论42.1航拍图像系统42.1.1航拍图像系统简介42.1.2航拍图像系统概念42.2航拍图像系统基本内容5第三章 静态模拟无人机的航拍图像系统设计63.1静态模拟无人机的航拍图像系统概述63.2系统实现详细设计方案6第四章 静态模拟无人机的航拍图像编码84.1开发工具84.1.1开发平台介绍84.1.2 开发语言介绍84.2 静态模拟无人机航拍图像系统编码设计94.2.1静态模拟无人机航拍图像系统软件功能介绍94.2.2系统界面设计94.2.3软件设计关键代码10第五章 软件实现效果图15结束语17致 谢18参考文献19三江学院2014届本科生毕业设计(论文)第一章 绪论1.1论文研究的背景与意义1.1.1论文研究的背景随着计算机技术和internet在社会的飞速发展,各种应用软件的广泛使用给各行各业的人们带来了各种便捷和提供了更好的服务,人们也正在越来越多的关注新的计算机技术能够带来的好处。计算机模拟仿真技术主要是通过计算机相关的技术和其他相关领域的专业知识为基础,来模拟实验人们所需要的信息,从而来帮助人们可以参考对现实世界的问题进行深层次的思考。计算机模拟仿真技术已经被运用于军事、工程建设、灾难救援、城市规划和游戏制作、面向对象仿真、定性仿真、智能仿真、分布交互仿真、可视化仿真、多媒体仿真、虚拟现实仿真等方面。如在核领域,未来的核试验不用核弹而是用计算机仿真模拟来进行。计算机模拟仿真技术作为分析和研究系统运行行为、揭示系统动态过程和运动规律的一种重要手段和方法, 随着系统科学研究的深入、控制理论、计算技术、计算机科学与技术的发展而形成的一门新兴学科。近些年来, 随着信息处理技术的飞速发展, 使仿真技术得到更为广泛的应用和发展。 1.1.2论文研究的意义在无人机航拍领域方面也有的新的应用,传统的航拍又称空中摄影或航空摄影,是指从空中拍摄地球地貌,获得俯视图,此图即为空照图,航拍的摄像机可以由摄影师控制,也可以自动拍摄或远程控制,同时对航拍的无人机和气候等因素都要求很高。而现在可以通过计算机模拟仿真技术来模拟无人机的航拍图像则具有经济、安全、可重复和不受气候、场地、时间限制的优势,静态模拟航拍图像可以根据数据采集生成相应的图像,在没用航拍条件的情况下模拟出贴近真实的场景,比如目前人们无法为火星进行航拍,但是德国就通过采集到火星的数据信息,运用模拟航拍技术实现了还原火星真实面貌,比如在军事领域的运用,在虚拟的战场环境中,存在十分复杂的自然景象,如雨、雪、雾、海浪等,这些景象对于虚拟场景的“沉浸感”有很大贡献,在各种自然景象的模拟仿真中,云的可视化是其中具有挑战性的研究之一。计算机静态模拟无人机航拍图像其核心就是采用分形技术和计算机图形学模拟出符合要求的,逼真的和可用的航拍图像,使得其可以达到替代真实航拍图的使用,同时可以通过改变软件的基本参数实现模拟各种不同的天空和地形场景,来达到合乎条件的图像。由于其重要性和国内的重视,计算机模拟仿真技术有着广阔的前景,在国内投入了巨大的力量进行研究和开发。随着时代和国民经济的发展,模拟仿真技术被快速地推广应用到国民经济的各个领域,成为系统工程中的科学方法和有力工具。1.2论文研究的基本内容及思想 1.2.1航拍图像系统基本内容航拍图像系统是非常重要的应用,它的目的是通过先进的图形分形技术结合计算机编程技术来解决虚拟环境模拟的问题。例如地形分析,气象分析等,我们可以根据需要来模拟出自己真正需要的场景,然后在模拟的场景下进行分析或部署,比如在四川地震期间可以通过模拟的航拍图,来进行灾难营救部署或评估灾难损坏道路的状况等。所谓模拟,就是采用计算机仿真技术来模拟真实的场景的方法。而静态模拟无人机的航拍图像则主要是采用计算机模拟仿真技术,静态模拟大地、海洋、云朵等的航拍图像。1.2.2航拍图像系统设计思想航拍图像系统的核心是分形算法,算法的不同将直接导致模拟的图像的不同。因此,航拍图像系统主要特征是要选择合适的图形分形算法,这样才能保证模拟出来的图像是贴近真实航拍效果的。而整个系统的具体设计则主要表现在如何设计好合适的分形算法上,我们才用先建模,然后在讨论采用什么算法,如何着色等,最后选择导师推荐的随机中点位移分形算法和尝试RGB三种颜色的混合。进一步深入后,才讨论到如何编程实现,以及采用那种语言来开发,考虑到VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,程序员可以轻松的使用VB提供的组件快速建立一个应用程序,所以最后选择采用。所以前期的设计思想是一个主要的工作过程。综上所述,静态模拟无人机的航拍图像的基本设计思想就是将要模拟的图像建模,例如根据云的物理特性或者通过受控的随机过程来生成云的模型数据包括云的外形,运动和物理属性的生成。1.3计算机模拟仿真技术的发展与趋势计算机技术已经经历了多年的发展,已经广泛的应用于国民经济和社会生活中。现今计算机技术与仿真技术相结合,从而形成了计算机仿真技术这个新的研究方法。计算机仿真作为分析和研究系统运行行为、探寻系统动态过程和运动规律的一种很好的手段和方法, 随着系统科学研究的深入、控制理论、计算技术、计算机科学与技术的发展而形成的一门崭新的学科。近年来, 随着信息处理技术的飞快发展, 也使计算机仿真技术得到迅速发展。本论文从实践中形象全面地介绍了计算机仿真技术在静态模拟无人机航拍图像的应用,论述了计算机仿真技术的概念、原理、优点,简单介绍了计算机仿真技术在无人机航拍领域的应用。在这半个多世纪里,仿真技术的发展从简单到复杂、从理论到实践、从辅助学科到解决大型工程问题的重要手段。仿真技术在计算机相关技术和理论的支持、交叉、融合下,渐渐的形成了一个交叉科学,成为认识客观世界的一种重要的方法。它是在计算机图形学基础上发展起来的一种模拟仿真应用技术。据最新的统计表明,计算机模拟仿真技术是当前应用最广泛的实用技术之一,虚拟现实目前是计算机领域非常热门的一个词汇。计算机视景仿真技术是计算机仿真技术的重要分支,是计算机技术、图形图像处理与生成技术、多媒体技术、显示技术等诸多高新技术的综合运用。计算机图形学的应用可以说无处不在,计算机动画和科学计算转换为可视化成为计算机图形学最为成功的两个应用领域。自1984年出现一个以数据库为核心的计算机仿真软件系统,随后又出现采用人工智能技术的仿真软件系统。这个发展趋势将使仿真软件具有更稳健、更灵活的功能、面向更广泛的用户。当下比较流行的是虚拟现实仿真软件,比如虚拟现实仿真平台。第二章 航拍图像系统概论2.1航拍图像系统2.1.1航拍图像系统简介航拍图像系统主要是运用了计算机分形算法进行数学建模,然后通过分形图形学和配色技术,通过编程掌握程序设计的方法和技巧。使用原理是用计算机完成真实感对象的图形必须完成基三个本任务:A)用数学方法建立所需的二维场景几何描述。B)建立数学模型参考,手绘地形并参考随机中点位移 分形算法。C)计算航拍地形图根据地形高度递增来设置合理的颜色模拟真实环境下的航拍地形图,具体颜色的取值参考了我国国家地图的颜色标准。分形用于气象卫星云图特征和数据压缩研究云系的形状,其中的云的形状就是可以应用到本项目中用于模拟云。通过用分形理论研究事物表面的形态, 比如地形、海洋、云、火焰地貌等形态, 以及研究它们发展和分布的自然规律等, 形成新的学科:分形地貌学,它可以逼真地模拟各种各样的自然界的景象, 例如山地起伏以及海岸线、河流等自然界现象。这个可以用来模拟无人机拍摄的陆地、天空、海洋的景观。2.1.2航拍图像系统概念所谓计算机模拟仿真,就是将所研究的对象用计算机仿真技术手段加以模仿的一种活动。而航拍图像系统,可以理解为使用图形分形技术模拟的图像,其本质是通过分形算法来模拟特定的场景下的航拍图像,目的是可以达到逼真的效果。也就是说,静态模拟无人机的航拍图像系统是一种具有模拟无人机航拍效果图像的计算机系统,它利用编写在其内部的随机分形算法来实现模拟出不同的变换的航拍图像。虽然静态模拟无人机的航拍图像系统也是一种及其智能化的计算机程序,但是它不同于传统的几何图形程序,其根本区别在于静态模拟无人机的航拍图像系统将分形作为几何对象,首先是破碎的,不规则的,又可以说他们的特点是极不光滑的,而这些对象现在都可以进行模拟了。从程序设计方法学的角度来看,静态模拟无人机的航拍图像系统更专门、更特殊、能更好的表现出分形对象。传统的几何图形程序则显得更呆板不能很好的模拟出不规则的分形对象。2.2航拍图像系统基本内容航拍图像系统是计算机模拟仿真技术最重要的应用之一,它的目的是让电脑在某种程度上帮助人们更好更直观的获取类似真实环境的真实航拍图像信息,给人们提供解决问题的模拟环境。例如模拟驾驶飞机飞行,道路分析,山形,河流等等。第三章 静态模拟无人机的航拍图像系统设计3.1静态模拟无人机的航拍图像系统概述静态模拟无人机的航拍图像是计算机模拟仿真技术领域中的一个重要的应用,但是要想在该计算机信息处理领域取得有效的发展,绝不能简单地把在一些领域中取得成功计算机图形技术直接移植到静态模拟无人机的航拍图像中,正好相反,应从实际需要出发,选择合适的,可用的技术来研究计算机图形技术在该领域中可能发展的途径,可以提出新思想、概念、方法和技术来更新产品。本系统操作系统采用Windows 7,开发平台Visual Basic 6.0,采用计算机图形学理论和随机中点位移分形算法,采用VB编程技术生成逼真的蓝天白云、陆地、群山连绵、海洋和湖泊的二维地形航拍图效果,虽然生成的是一张静态图,但三维空间感很强烈,颜色层次分明、清晰,相近颜色不同颜色深度代表不同的高度。就像从飞机上航拍的一幅精美照片,掌握好分形算法和分形理论,自己完全可以开发出高质量的逼真的图像来似乎不是什么难事 。本系统主要实现了模拟随机生成的蓝天白云、陆地、群山连绵、海洋和湖泊的二维地形航拍图功能。3.2系统实现详细设计方案总体设计方案介绍:【1】RGB混合配色设计:首先利用计算机图形技术和分形技术,采用随机中点位移算法,使用VB编程技术来绘制出所要求的模拟仿真航拍图,再对图像按照不同事物采用不同颜色和不同层次高度采用相近颜色层次加深或淡化进行配色处理,具体的颜色搭配则参考我国国土地图来搭配颜色可以使得用户很容易接受。具体RGB混合配色介绍:RGB配色主要是通过对红、绿、蓝三个颜色(RGB)的变化和它们相互之间的混合来得到各种颜色的,RGB即是代表红、绿、蓝三个基本颜色,RGB标准几乎包括了人类视力能感知的所有颜色。计算R,G,B三个分量就可以使人有颜色的视觉效果,把三种颜色按不同的比例混合就能准确的合成想要的颜色,下面就要考虑色调的搭配了,要使的颜色的搭配既要符合现实中的航拍的颜色,又要和谐,颜色不冲突,容易区分不同颜色区域所代表的含义。对上面颜色混合的补充:RGB是从颜色发光原理来设计,一般说它的颜色混合方法就好像有红、绿、蓝三色灯,当它们的光相互混合的时候,颜色相混,而亮度却是两者亮度的总和,越混合亮度越高,即加法混合。本系统采用对图像按照不同事物采用不同颜色和不同层次高度采用相近颜色层次加深或淡化进行配色处理,将RGB的初始颜色类型先存储到R,G,B数组中,然后再通过随机中点位移算法计算出各个点的混合颜色。【2】随机模拟静止云图绘制设计:通过随机中点位移算法计算出各个点的位置和RGB颜色值,调用初始R,G,B数组,然后再调用绘图方法在主窗体上面绘制出模拟的静止云图,然后使得整个模拟航拍图能够像真实航拍的效果。静止云图生成算法由下列5个步骤组成:1设定一个的正方形区域,为为正整数;2在区域4个角赋一个随机量Rd,;随机量为区域周长乘以0到1之间的随机数。3在区域内计算其他点参数;4求出区域各点参数的最大值和最小值;5根据给定云颜色的最大值(最蓝)和最小值(最白),绘制区域每点的颜色【3】随机模拟地形图绘制设计:通过随机中点位移算法计算出各个点的位置和RGB颜色值,调用初始R,G,B数组,然后再调用绘图方法在主窗体上面绘制出模拟的静止地形图。随机模拟地形图绘制的方法同静止云图相似,唯一不同的地方是在于对初始R,G,B数组的赋值,地形图颜色类别参考的是我国国家地图。具体实现步骤:1. 最初,四角给出随机高度值。2. 然后,对邻近的4点组成的正方形分别取边中点和中间点,如图: 3. 再对邻近的4点组成的正方形分别取边中点和中间点4. 这上面的方法被重复,直到迭代所需数量为止。该为新的点的高度值通过取平均来确定周围的点,并加上随机位移于此。而迭代值越大,位移则越小,使得第一次迭代对具有大的影响形状的地形,但后面的迭代不会产生很大的影响,只产生轻微的变化,这使得航拍图减少锯齿和更加圆润。第四章 静态模拟无人机的航拍图像编码4.1开发工具4.1.1开发平台介绍Visual Basic是微软公司开发的VB语言编程软件,它是基于Windows操作系统可视化的编程环境。由于Visual Basic 6.0它操作简单实用,所以从它出现在市面以来很受程序员和编程爱好者的热捧。Visual Basic主要由窗体窗口、工具栏、标题栏、工具箱、属性窗口、工程窗口、菜单栏、窗体布局窗口等构成。Visual Basic 6.0的组件有很多,比如设计器、编辑器、属性等开发常用组件。Visual Basic 6.0同时提供了窗口编辑,可以直接对窗口进行编辑以及预览。Visual Basic 6.0的工具箱由单选按钮、图片框、框架、标签、定时器、命令按钮、指针、复选框、文本框、组合框、水平滚动条、列表框、垂直滚动条、目录列表框、驱动器列表框、图像控件、形状控件、文件列表、直线、OLE容器、数据控件构成。Visual Basic是由微软公司开发协助开发环境的事件驱动编程语言。从各种标准来说,VB都是世界上使用人数最多的语言,它不仅是盛赞VB的开发者也是抱怨VB的开发人员的数量。它起源于BASIC编程语言。VB拥有快速应用程序开发和图形用户界面系统,可以轻易的使用RDO、ADO、DAO连接数据库,也能轻松的创建ActiveX控件。程序员可以使用VB提供的组件迅速建立一个应用程序。通过这些年来的发展,Visual Basic已成为一种专业化的开发语言和环境。用户可以方便的使用Visual Basic快速创建Windows程序,还可以编写企业水平的客户端和服务器程序甚至是更为强大的数据库应用程序。4.1.2 开发语言介绍VB语言和其它语言的最大区别可能就在于它的简单、容易上手和方便开发了,可以算的上是最早的面向对象的程序设计语言了。首先VB的可视化、面向对象以及采用事件驱动方式的结构化高级程序设计语言都成为它变成程序员们的最好的帮手。VB可以用来开发WINDOWS环境下的各种应用程序。在Visual Basic环境下,利用事件驱动的编程机制、方便快捷的可视化设计工具很容易就能够编写出自己想要的应用程序。同时VB可以打包成EXE运行软件,可以直接运行在装有WINDOWS环境的机器上,非常方便。而且VB还是非常简单、易学、效率高的语言。VB使用WINDOWS内部的广泛应用程序接口函数,使用动态链接库、对象链接和嵌入等技术,可以高效、快速的开发WINDOWS环境下功能强大、图形界面丰富的应用软件。4.2 静态模拟无人机航拍图像系统编码设计4.2.1静态模拟无人机航拍图像系统软件功能介绍本软件主要以采用随机中点位移分形算法,使用VB编程技术生成逼真的蓝天白云、陆地、群山连绵、海洋和湖泊的二维静态模拟航拍图,以Visual Basic 6.0为开发平台,采用VB编程语言实现的。本软件有主要有4个功能部分组成:(1)航拍云图。该模式下完成了随机模拟出蓝天白云的航拍效果图。(2)航拍地形图。该模式下完成了随机模拟出陆地、群山连绵、海洋和湖泊的二维静态模拟航拍图。(3)修改迭代次数。可以生成各种迭代下的模拟图像。(4)系统退出功能的实现软件分为3个功能部分使得用户可以更直观更容易的了解软件的运行和使用效果,不会产生功能上的歧义和使用上的繁琐。4.2.2系统界面设计图4-2 主界面4.2.3软件设计关键代码Const ITERATIONS = 9: - 增加该值增加地图的大小Const ROW = (2 ITERATIONS) + 1 -地图绘制时的宽度。用于计算。Const SLOPE = 15 - 此值会影响“锯齿”地形Dim Heights(ROW - 1, ROW - 1) As Single -高度值的数组Dim R, G, B, Bound -数组变量-SetPixelV API调用比PSET快Private Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As LongPrivate Sub cloud_Click()Dim Seed As Single -种子值的随机数发生器 -这个数组定义了边界为不同的颜色 Bound = Array(-10, 0, 15, 25, 30, 35, 40, 45)- 这些数组定义地形颜色的高度界限. R = Array(0, 32, 64, 96, 128, 159, 191, 223, 255) G = Array(0, 32, 64, 96, 128, 159, 191, 223, 255) B = Array(255, 255, 255, 255, 255, 255, 255, 255, 255)- 改变这些值来创建不同的效果。对于一个更明确海岸线,使前两个绑定的值相同。 Seed = Timer - 生成基于所述系统定时器地图的种子 Randomize Seed -它应该可以通过在这里使用他们的种子值来获得以前的地图 Caption = "Terrain Generator Seed = " & Seed Generate_Heights DrawEnd SubPrivate Sub exit_Click()Unload AerialFrameEnd SubPrivate Sub Form_Load()Dim Seed As Single - 种子值的随机数发生器-这个数组定义了边界为不同的颜色 Bound = Array(-10, 0, 15, 25, 30, 35, 40, 45)-这些数组定义地形颜色的高度界限. R = Array(20, 23, 15, 20, 136, 145, 91, 88, 142) G = Array(14, 15, 85, 113, 136, 88, 55, 88, 142) B = Array(171, 199, 9, 11, 56, 41, 26, 88, 142)-改变这些值来创建不同的效果。对于一个更明确海岸线,使前两个绑定的值相同 Seed = Timer -生成基于所述系统定时器地图的种子 Randomize Seed -它应该可以通过在这里使用他们的种子值来获得以前的地图 Caption = "Terrain Generator Seed = " & SeedEnd SubPrivate Sub Form_Click() Generate_Heights DrawEnd SubPrivate Sub Generate_Heights()-此生成高度值被安置在高地数组中。该高度限定,当在地图上绘制其中颜色被显示出来的方法是很难解释的,生成的过程是最好的描述通过下面的图表和说明来理解:初始状态:1111i = 0状态: 121222121i = 1状态:1323133333232323333313231最初,四角给出随机高度值。然后,对于那些半路之间的点的创建迭代高度值点在最后一次迭代,并在四个值的中间点。因此,当i = 0时,图中的“2”代表所添加的高度值,和当i = 1 ,图中的“3”代表补充的高度值。这上面的方法被重复,直到迭代所需数量为止。新的点的高度值通过取平均来确定周围的点,并加上随机位移来得到。将i的值越大,位移越小,使得第一次迭代对具有大的影响形状的地形,但后面的迭代不会有大的影响,只产生轻微的变化地形的现状这使得地形少Print 锯齿和更加圆润使用这种方法。Dim i As Long -迭代计数器Dim x As Long -协调Dim y As Long -计数器Dim Step As Long -用于计算在主循环Dim numb As Integer Erase Heights -Inistialise在每个拐角处的高度 Heights(0, 0) = Rnd * -10 Heights(0, ROW - 1) = Rnd * -10 Heights(ROW - 1, 0) = Rnd * -10 Heights(ROW - 1, ROW - 1) = Rnd * -10 -主迭代循环。为解释见上面。 numb = num.Text If numb < 1 Or numb > 9 Then MsgBox "亲,迭代次数超出范围喽!": GoTo 20 For i = 0 To numb 1 Step = (ROW - 1) / (2 (i + 1) For y = 0 To ROW - 1 Step Step For x = 0 To ROW - 1 Step Step If (y / Step) Mod 2 = 0 Then If Heights(x, y) = 0 Then Heights(x, y) = (Heights(x - Step, y) + Heights(x + Step, y) / 2 + (Rnd * SLOPE - (SLOPE / 2) * (ITERATIONS - i) / (i + 1) End If Else If (x / Step) Mod 2 = 0 Then Heights(x, y) = (Heights(x, y - Step) + Heights(x, y + Step) / 2 + (Rnd * SLOPE - (SLOPE / 2) * (ITERATIONS - i) / (i + 1) Else Heights(x, y) = (Heights(x - Step, y - Step) + Heights(x - Step, y + Step) + Heights(x + Step, y - Step) + Heights(x + Step, y + Step) / 4 + (Rnd * SLOPE - (SLOPE / 2) * (ITERATIONS - i) / (i + 1) End If End If Next Next Next20End Sub Private Sub Draw()-绘制地形到基于高度图的值的形式。该显示的颜色为对应于高度图的值的像素是基于哪两个高度界限的高度值之间。该在像素显示的实际颜色来自之间的渐变边界颜色,从而使地形融合在一起,看起来更现实的。高度图还可以用于生成3D地形。Dim Color As Long Cls -绘制前清除表单 -通过所有点的高度重复的地图 For y = 0 To ROW - 1 For x = 0 To ROW - 1 -检查高度值对每个边界上看到它位于 For i = 0 To UBound(Bound) If Heights(x, y) <= Bound(i) Then Exit For Next If i = UBound(Bound) + 1 Then Color = RGB(R(i), G(i), B(i) ElseIf i = 0 Then Color = RGB(R(0), G(0), B(0) Else -计算两个边界颜色之间的梯度 Color = RGB(R(i) + (R(i + 1) - R(i) * (Heights(x, y) - Bound(i - 1) / (Bound(i) - Bound(i - 1), G(i) + (G(i + 1) - G(i) * (Heights(x, y) - Bound(i - 1) / (Bound(i) - Bound(i - 1), B(i) + (B(i + 1) - B(i) * (Heights(x, y) - Bound(i - 1) / (Bound(i) - Bound(i - 1) End If SetPixelV hdc, ScaleWidth 2 - ROW 2 + x, ScaleHeight 2 - ROW 2 + y, Color Next Next End SubPrivate Sub Terrain_Click()Dim Seed As Single -种子值的随机数发生器-这个数组定义了边界为不同的颜色 Bound = Array(-10, 0, 15, 25, 30, 35, 40, 45) -这些数组定义地形颜色的高度界限 R = Array(20, 23, 15, 20, 136, 145, 91, 88, 142) G = Array(14, 15, 85, 113, 136, 88, 55, 88, 142) B = Array(171, 199, 9, 11, 56, 41, 26, 88, 142)-改变这些值来创建不同的效果。对于一个更明确海岸线,使前两个绑定的值相同。如果您创建更多的色彩边界,地形可以变得更细致 Seed = Timer - 生成基于所述系统定时器地图的种子 Randomize Seed -它应该可以通过在这里使用他们的种子值来获得以前的地图 Caption = "Terrain Generator Seed = " & Seed Generate_Heights DrawEnd Sub第五章 软件实现效果图本软件通过VB语言操作完成,在window系统中运行正常,具体的效果的实现如下面所述。图5-1 航拍云图运行界面(1)点击航拍云图按钮,调用cloud_Click()方法,默认迭代9次获取每个点的坐标和颜色值,然后调用SetPixelV来画图,在软件中部生成航拍云图。图5-2 航拍地形图运行界面(2)点击航拍地形图按钮,调用Terrain_Click()方法,默认迭代9次获取每个点的坐标和颜色值,然后调用SetPixelV来画图,在软件中部生成航拍地形图。图5-2 修改迭代次数航拍图运行界面(2)修改迭代次数,改为迭代7次,点击航拍地形图按钮,调用Terrain_Click()方法,迭代7次获取每个点的坐标和颜色值,然后调用SetPixelV来画图,在软件中部生成航拍地形图。由于没有迭代完全,所以很多点没有被算出来并画出来,这样可以方便用户了解本软件的实现方法和过程。结束语毕业论文从下发任务书到现在已经过去几个月了,课题已经做好了,论文也结束,马上就要答辩了。现在是快要和老师同学们告别的毕业时间了。记得刚开始选课题时,老师的十个课题我们都不曾接触过,都没有听说过,感觉心里特别没底。老师给的课题领域可以说是完全没有接触过。在熟悉课题到课题设计的过程中遇到了很多问题,尤其是在理解分形技术的应用时,都没有搞明白是干什么的,感觉有头大的感受,全部都是算法,以前我们自己编写程序时,都没有去关注过代码中的算法的实现,通过这次毕业设计后我终于理解了算法的重