2024年3月29日发(作者:)
--基于四叉树算法绘制颜色填充等值线图
一、 问题提出与需求分析
1、 问题及目标
问题:基于四叉树算法绘制颜色填充等值线图。
目标:利用四叉树思想用所给文件中的数据绘制等值线图,并绘出坐标系及颜色标识
码。通过本次实验提高学生编程能力,加深对OpenGL的理解,加深对VC++6.0的认识。
2、 问题概念及算法原理
等值线是一组值相等的序列连线组成的图形。等值线图在实际中应用广泛,
如等高线图、等气压图等等。等值线的表达形式有两类:一类是画线等值线图;另一
类是颜色填充等值线图。
依据数据分部不同,等值线图的绘制有两类方法:三角网法和矩形网格法。三角网法
是针对数据分布不规则的环境下的一种绘制方法。矩形网格法是一种针对数据分布规则的
等直线图绘制方法。它是设平面区域按一定大小的网格距划分的矩形网格。
由于所给数据时矩形网格数据,所以本程序采用矩形网格法,并采用颜色填充。改程
序采用基于四叉树的颜色填充等值线图绘制方法。
四叉树的基本算法思想是:当网格四个节点的颜色值相等时,则用该颜色值填充该矩
形,否则将矩形网格等分四个小网格,并用插值方法计算每个小网格的颜色值,递归使用
网格四个节点的颜色值是否相等,由此依次建立一棵四叉树。当细分至四个节点的颜色值
全部都小于或等于一个像素时,则将其视为等值线上的点,用来画等值线。
在该程序中,对于等值线处理比较粗糙,采用的是描点的方式,当四个节点的颜色值
全部都小于或等于一个像素时,对其进行描点处理,这样处理的结果导致等值线不够光滑,
且颜色级数不能过大,否则效果比较难看。一般来说颜色级数为11最佳,主要是本人能
力有限。
二、 绘图程序设计的技术思路
1、 程序总体设计
利用四叉树思想绘制等颜色填充等值线图,首先应从数据文件中读取数据,
用二级指针**a来存放,并求出最大值max及最小值min,接收键盘输入的颜色级数
Ncolor,并求出等值颜色域的间距Dc,Dc=(max-min)/Ncolor。为了填充颜色得先建立
颜色填充表,可以采用颜色类的方式,本程序中采用三个浮点型数组r、g、b来建立颜色
填充表,由函数void Color(int m)来构造。
准备工作做好了开始构建四叉树,采用递归思想循环调用四叉树算法填充矩形网格的
颜色值,当x增量和y增量都小于1个像素点时则可认为该点为等值区域的边界点,即等
值线上的点,作为描绘等值线的点。填充完毕后建立平面坐标系并绘制色码标识。
根据以上所述,程序设计步骤可分为以下几步:
1


发布评论