已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于四叉树的颜色 填充等值线图绘制 计算机图形学课程设计报告 XXX 7/6/2014 基于四叉树的颜色填充等值线图绘制 -1- Table of Contents 1问题的提出.1 1.1问题重述.1 1.2实现目标.1 2程序主构架.1 2.1全局变量.1 2.2类.1 2.3程序流程图 .2 3算法原理.4 3.1基于四叉树的颜色填充 .4 3.1.1算法基本思想 .4 3.1.2算法流程图 .4 3.2绘制等值线 .5 4主要部分实现及说明 .5 4.1Color.5 4.2Rect6 4.3读取网格数据值 .8 4.4求最大最小值 .9 4.5建立填充颜色表 .9 4.6四叉树颜色填充 .10 4.7绘制等值线 .12 5成果截图.12 6小结.13 基于四叉树的颜色填充等值线图绘制 -1- 1问题的提出问题的提出 1.1问题重述问题重述 等值线是一组值相等的序列连线组成的图形。等值线图在实际中应用广泛,如等高线 图、等气压图等等。基于四叉树的颜色填充等值线图绘制方法可利用计算机将按照固定间 距采样的网格数据绘制成等值线图。 1.2实现目标实现目标 读入按照固定间距采样的等值线绘制数据,利用四叉树思想进行颜色填充,之后进行 等值线扫描、绘制坐标系、色码标识,形成一幅等值线图。 2程序主构架程序主构架 2.1全局变量全局变量 vector colorTable;/填充颜色表 vector bitmap;/数据文件 vector data;/网格数据 int Zmax;/网格最大值 int Zmin;/网格最小值 int Gmin;/图标最小值 int N;/等值线差值 int dc;/等值线间距 int scale = 20;/采样点间距 int isoline = -1;/边界线填充数值 int def = -2;/bitmap 默认数值 static int count = 0;/测试用统计 int row;/原始数据行数 int col;/原始数据列数 2.2类类 Tricoder 类:表示平面上一个点的坐标。 Tricoder +x: int +y: int +Tricoder(row: int, col: int) 图图 1:Tricoder 类类 UML 类图类图 Color 类:用于表示颜色。 Color +red: int +green: int +blue: int +Color(r: int, g: int, b: int) +Color() +set(r: int, g: int, b: int) +show() +operator=() +operater=() 图图 2:Color 类类 UML 类图类图 Rect 类:表示一个矩形。c0, c1, c2, c3 分别表示矩形左上、右上、左下、右下四个顶 点的颜色值;StarX, startY 表示矩形左上顶点的 x, y 坐标;endX, endY 表示矩形右下顶点的 x, y 坐标;colorIndex(double n)计算矩形颜色均值的级数;isConstant()判定矩形内颜色值是 否相等;isSole()判定矩形大小是否为 1 像素。 Rect +c0: int +c1: int +c2: int +c3: int +StartX: int +startY: int +endX: int +endY: int +Rect() +Rect(cc0: int, cc1: int, cc2: int, cc3: int, sx: int, sy: int, ex: int, ey: int) +colorIndex(n: double) +isConstant() +isSole() 图图 3:Rect 类类 UML 类图类图 2.3程序流程图程序流程图 程序流程图如下图所示: 基于四叉树的颜色填充等值线图绘制 -3- 、 、 、 、 、 、 、 getDate(string filename) 、 、 、 、 、 、 、 、 Zmax、 、 、 、 Zmin void getScope() 、 、 、 、 、 、 、 N 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 ColorTable void getColorTable(Color max, Color min, int n) 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 void isoLine(Color isoColor) 、 openGL、 、 、 、 、 、 、 、 、 、 图图 4:程序流程图:程序流程图 3算法原理算法原理 3.1基于四叉树的颜色填充基于四叉树的颜色填充 3.1.1算法基本思想算法基本思想 将网格中相邻的四个结点视为一个矩形,如果这四个结点的颜色值相等,则用该颜色 值填充该矩形。如果不相等,则将此矩形等分为四个小矩形,并用差值的方法计算每个小 网格的颜色值,(如图 5 所示)递归直至条件满足或者矩形大小小于 1 像素。 4570 3550 4570 3550 57.5 5060 42.5 40 图图 5:四叉树颜色填充示例:四叉树颜色填充示例 3.1.2算法流程图算法流程图 ij.isConstant() ij.isSole() YES NO void fillColor(Rect class Color public: int red;/红色分量 int green;/绿色分量 int blue;/蓝色分量 Color(int r, int g, int b)/构造函数 red = r; green = g; blue = b; Color() void set(int r, int g, int b) red = r; green = g; blue = b; void show()/显示颜色(测试用) cout temp; pos1 = 0; for(i = 0; i Zmax) Zmax = dataij; 4.5建立填充颜色表建立填充颜色表 参数:Color max 最大值颜色;Color min 最小值颜色;int n 颜色表的级数。 颜色表的颜色应当是从最大值到最小值逐渐渐变的,渐变既是对于没级颜色的 RGB 值 差值相等。在本函数中,先求出了每种颜色分量在每级颜色变化的渐变差值,然后循环计 算出每级颜色。 void getColorTable(Color max, Color min, int n) double deltaR = (double)(max.red - min.red)/n;/红色渐 变差值 double deltaG = (double)(max.green - min.green)/n;/绿 色渐变差值 double deltaB = (double)(max.blue - min.blue)/n;/蓝色 渐变差值 double r = min.red, g = min.green, b = min.blue; colorTable.push_back(min); for(int i = 1; i isl;/边界点 /查询边界点 for(int m = 1; m bitmap.size()-1; m+) for(int n = 1; n bitmapm.size()-1; n+) cl = bitmapmn*4 - bitmapm-1n - bitmapm+1n - bitmapmn-1 - bitmapmn+1; if(cl != 0) Tricoder temp(m, n); isl.push_back(temp); /填充边界点 for(int i = 0; i isl.size(); i+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽省高职单招职业适应性测试考试模拟题及答案详解
- 2026年新版护理技能基础题库(含答案)
- 2026年跨境电子商务师入职考核模拟试卷(含答案)
- 2026年工件探伤考试模拟题及答案详解
- 2026年财务文员考试模拟题及答案详解
- 2026年gsp知识基础考试模拟题及答案详解
- 2026年公关笔模拟题及答案详解
- 2026年车工评级考试模拟题及答案详解
- 2026年风景园林设计师专业理论考试模拟题及答案详解
- 2026年新疆医师考试题库(含答案)
- 2025-2026年银行从业资格考试金融风险管理专项训练题库
- 2026年全球及中国SerDes IP及相关互连芯片市场独立研究报告
- 红河州州属事业单位2026年考试调动工作人员(29人)笔试备考题库及答案详解
- (2026秋新版)统编版道德与法治六年级上册全册教案
- 卡通小学生网络安全教育课件
- 高三英语考前梳理记忆(超完整)
- 决策树课件(共66张)
- 人教版数学一年级上册第一单元分层作业设计
- 沈阳飞机工业(集团)有限公司7厂412#金属蜂窝制造项目环境影响报告
- 北川县吉娜羌寨修建性详细规划
- 道路运输企业两类人员安全考核题库题库(1020道)
评论
0/150
提交评论