基于网格法的等值线绘制方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11311 等值点的计算 在建立了高程模型之后, 首先要确定出等值点的位 置, 以下简要介绍其方法: 对在矩形区域 R 的 m × n 个网格数据点已经给定( 矩形 格网 D EM 已经建立) 的情况下 ( 图 2 为其中一个子网格, 且
BB
i, j
等值线进入网格后, 只有从网格的另外 3 个方向出 去, 为了避免出现等值线交叉和不确定等现象, 就需要有 合理的算法。追踪下一个等值点的次序是: 先考虑等值线 原来的前进方向, 再考虑与当前等值点的远近 ( 综合考虑 方向条件与距离条件) 。
x side [ i , j ] = W - BB i, j BB i, j + 1 - BB i, j
Z i d i = 0
若上述第二个判别式成立, 并且设 y side [ i, j ] 表示等值点
2 到 BB i, j 的距离占每个网格的 y 边长度的比例系数, 则:
y side [ i , j ] = Leabharlann Baidu - BB i, j BB i+ 1, j - BB i, j
以下以绘制等高线为例, 分别介绍各模块的算法及其 计算机实现。 111 读入原始数据模块 等值线绘制的第一步是要将原始数据信息读入。 原始 数据的数据结构如下:
typ e po in t= reco rd x, y, z: sing le; end;
每个原始数据点包含 3 部分信息, 分别是测量点的横 坐标, 纵坐标以及该点的高程值。该模块的功能除了将原 始数据读入程序中, 还需计算出原始数据中高程值的最小 值和最大值, 以便在用户设置绘制范围时作为参考依据。 112 建立数字高程模型 (D EM ) 该模块的主要功能就是将离散数据网格化。 其主要步 骤如下: 首先, 由原始数据点的横、纵坐标的最小值及最大值 构成矩形网格的边界; 其次, 根据用户需要将矩形再划分
等值点在 y 边时, 坐标值则由下式求出:
cx x : = nx + ( j cy y : = ny + ( ( i - 1) + y side [ i , j ] ) 3 d y ;
实践证明, W i = 1 d i 是较优的选择, d i 为离散点至 P 点的距离。 这样, 在每一格网点周围搜索若干靠近的离散点, 用 以逐一内插格网点高程, 建立一个规则格网 D EM 。 这种算 法适用于数据分布较均匀的情况, 逼近程度一般, 优点是 计算简单, 速度较快。 113 等值线的追踪 在计算机图形学中的等值线符合下述要求:
所谓绘制等值线就是对大量离散的、 又具有一定规律 的几何量值或物理量值, 用数学的方法插值并将具有相同 量值的点变换成图的过程。 他将三维信息显示于二维平 面, 是进行地理要素空间特征分析的强大工具, 可用于从 总体上把握研究对象的空间变化特征, 在水文、环境、气 象、规划等领域都有广泛应用。常规的等值线绘制方法分 为规则矩形格网法与不规则三角网法 2 种。本文着重阐述 的是矩形格网法。 1 等值线绘制原理及计算机实现 本文主要介绍矩形网格法绘制等值线的算法, 图 1 为 算法流程图等值线绘制过程可分为以下几个子模块: 读入 原始数据; 建立高程模型; 等值线的追踪; 等值线的绘制。 相应地, 在程序中等值线的整个绘制过程设计为一个
( 3) 网格点即为等值点处理
, B B i, j + 1 , B B
i+ 1, j
,BB
i+ 1, j + 1
分别为 4 个网格点的高程
若出现网格点值与待追踪的高程值相等的情况, 由于 网格点是 4 个相邻网格的公共交点, 会发生追踪的混乱, 因此, 可以预先把网格点加上一个足够小的值予以修正。 11313 等值线的搜索 不同的高程值对应不同的等值线, 即使同一个高程值
《现代电子技术》2005 年第 14 期总第 205 期
嵌入式与单片机
基于网格法的等值线绘制方法
宋丽娟, 龚晓峰, 钟 猛
( 四川大学 电气信息学院 四川 成都 610065)
摘 要: 等值线是一种形和数的统一, 在许多领域是成果数据表示的重要图件之一。对工程应用中的等值线图的绘制方法进 行了研究, 常规的等值线绘制方法分为矩形网格法和不规则三角形网法 2 种, 矩形网格法具有算法简单的优点。其绘制的步骤一 般为: 离散数据网格化、网格点数值化、等值点的计算、等值线的追踪、光滑和标记等值线。详细阐述了采用矩形网格法绘制的 步骤及其计算机实现。 采用 D elp h i 开发了运用该法绘制等值线的软件, 可应用于不同的操作平台, 移植性好。 关键词: 等值线; 格网法; 距离加权插值; 等值线追踪 中图分类号: T P 31 文献标识码: B 文章编号: 1004 373X ( 2005) 14 065 03
相应的, 等值点的逻辑坐标 ( cx x , cy y ) 由下述两个公 式计算: 等值点在 x 边时, 坐标值可由下式求得:
cx x : = nx + ( ( j 图 1 矩形网格法绘制等值线流程图 cy y : = ny + ( i -
1) + x side [ i , j ] ) 3 d x ; 1) 3 d y ; 1) 3 d x ;
A bs tra c t: Iso line is the un ifica tion betw een shap e and da ta 1 It is one of the i m po rtan t g rap h to exp ress the ha rvest da ta s in m any field s1 T he m ethod of iso line p lo tting in the p ro ject app lica tion is resea rched1 T here a re tw o g roovy m ethod s of iso line p lo tting, one k ind is the a lgo rithm of rectangu la r g rid s, and ano ther k ind is the a lgo rithm of triangu la ted irregu la r netw o rk 1 T he p rocess of iso line p lo tting ha s the fo llow ing step s, w h ich a re g ridd ing the d isp ersed da ta s, num era ting the g rid po in ts, ca lcu la ting the equ iva len t po in ts, tracing the iso line, sm oo th ing and m a rk ing the iso line1 Exp a tia te the p rocess of iso line p lo tting w ith rectangu la r g rid s and the m ethod how to com e tu re it by com p u ter1 T he softw a re tha t is develop ed by D elp h i th rough th is m ethod can app ly to the d ifferen t op era tion fla t 1 It ha s a good tran sp lan t1 Ke yw o rds : iso line; R G (R ectangu la r G rid s) ; inverse d istance w eigh ting m ethod; iso line tracing
TCon tou r 类, 该类的声明如下:
typ e TCon tou r= cla ss (TO b ject ) p riva te p ro tected p ub lic p rocedu re R eadD a ta (filenam e: string ) ; p rocedu re Con tou rN odeV a lue () ; p rocedu re Con tou rT racing () ; p rocedu re Con tou rD raw () ; end;
读入原始数据 建立 D EM 模型 等值线的追踪 等值线的绘制
为 m × n 个小矩形, 即形成矩形网格; 最后, 用插值算法 得到每个网格点的高程值。 样条函数 D EM 内插有多种算法, 常用的有距离加权法、 内插、 最小二乘配置法等。 该软件采用距离加权插值法: 把网 格点 P 周围的离散点对该网格点的影响程度用权系数W i 表 示, 若在网格点周围 4 个方向上均匀取点, 这时: 65
等值线进入网格时的走向有 4 种可能: 自下而上、自 左而右、自上而下、自右往左进入。其中自下而上, 自左 向右可以由该点所在行或列的序号判别进入的情况, 而自 上而下和自右向左由等值点相对坐标位置来判别。
( 2) 确定等值线从网格出去的走向
要满足以上条件, 必须按照一定的算法才能实现。
图 2 等值点计算示意图
A M ethod for Isol ine
plott ing Ba sed on Rectangular Gr ids
SON G L ijuan, GON G X iaofeng, ZHON G M eng
(Schoo l of E lectricity and E lectron ic Info rm ation, Sichuan U n iversity, Chengdu, 610065, Ch ina)
《现代电子技术》2005 年第 14 期总第 205 期
也可能有若干条等值线分支。因此, 合理的搜索方法是正 确绘制等值线的重要因素。若线头的位置确定, 则按照上 述方法追踪即可。 对于开曲线来说, 线头在边界上, 线尾也在边界上。因 此, 可按如下方法搜索: 先从网格边界的最底边从左至右按每 一个子网格的底边搜索, 看有无等值点, 若有则设该点为 P 2 点, 按自下而上的情况虚设 P 1 点, 追踪 P 3 点, 直至这条等值 线搜索完, 继续向右找有无等值点。 若有, 则重复上述过程; 若 无, 则分别从矩形边界的左边、 上边、 右边做类似的搜索。 对于 闭曲线, 则任一点都可以作为线头, 线尾也是这一点。 因此, 在 矩形内部 ( 从 j = 2 开始) 从左至右, 从下至上地扫描每一条 纵边即可。 如有等值点, 就把他作为线头, 记下这个点的位置, 按自左至右的情况虚设 P 1 点, 追踪下一个等值点, 再不断地 追踪直至返回原起始点为止。 若无等值点, 则继续扫描, 直到 全部网格纵边扫描完毕。 114 等值线的绘制 等值线的绘制模块的功能就是将由追踪算法得到的 等值点连成曲线, 并且对曲线进行标注。关于等值线的标 注, 程序中可将每条等值线的高程值存储在一个一维数组 中, 与存储等值点坐标的二维数组中的行下标 ( 相应的线 条序数) 一一对应, 在某一线条的中间位置标记该条线的 高程值。 标注使用 Canvas1T ex tO u t (X, Y: In teger; con st T ex t: W ideSt ring ) 函数即可实现。 当精度要求高时, 还需光滑曲线, 一般采用的光滑算法 有 B 样条曲线, 分段三次多项式法等。 此处不再详细介绍。 经过上述步骤, 即可将等高线图经数控绘图仪绘出或
收稿日期: 2005 03 31
多媒体技术
n n i
宋丽娟等: 基于网格法的等值线绘制方法
P (z ) =
∑W
i= 1
Zi
∑W
i= 1
i
d i ≠ 0
明网格左纵边上有等值点。 对于上横边和右纵边上是否有等值点的问题, 可分别放 到上边的网格 ( i + 1, j ) 和右边的网格 ( i, j + 1) 中考虑。 在程序中, 若用 x side [ i, j ] 和 y side [ i, j ] 分别来表示 位于网格的第 i 行, 第 j 列的 x 边和 y 边的等值点与网格点 的距离与每个网格边长的比。 如果上述第一个判别式成 立, 并且设 x side [ i, j ] 表示等值点 1 到 BB i, j 的距离占每个 网格的 x 边长度的比例系数, 则:
( 1) 给定值的等值线在相应域内不能互相交错。 ( 2) 一根等值线通常是一条连续曲线。 ( 3) 给定值后, 相应域上的等值线不限于一条。 ( 4) 等值线可以是闭合曲线, 也可以和域外连续。
2
其中, nx 为矩形的最小横坐标; ny 为矩形的最小纵坐标;
d x 为网格点横向间距; d y 为网格点纵向间距。
每追踪到一个等值点就可存储在一个二维数组中, 行 下标表示线条序数, 而列下标表示每条线上的点的序号。 11312 等值点的追踪 计算出全部值点以后就可依照一定规则以一定顺序 把他们逐点连接起来, 形成等值线, 这一过程就是等值点 的追踪。 在这个过程中需要考虑 3 个方面的问题:
( 1) 确定等值线进入网格时的走向
值) , 则下横边上是否有等值点要看W ( 待绘制高程值) 是否 在 B B i, j 与B B i, j + 1 之间。 若判别式 (B B i, j - W ) 3 (B B i, j + 1 W ) < 0 成立, 则说明网格下横边上有等值点。
同理, 若 (B B i, j - W ) 3 (B B i+ 1, j - W ) < 0 成立, 则说 66