- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MapX应用讲义第06章 绘等值线
第6章 绘等值线 157
6.1 分析数据是否为网格化数据 157
6.2 离散数据三角化 158
6.3 数据网格化 166
6.3.1 网格化方法 166
6.3.2 网格化程序 169
6.4 网格化数据的坡度、坡向分析 170
6.4.1 方法简介 170
6.4.2 坡度、坡向分析程序 171
6.5 用三角形法绘平面等值线 175
6.5.1 方法简介 175
6.5.2 三角法绘平面等值线子程序 176
6.6 用网格法绘平面等值线 182
6.6.1 方法简介 182
6.6.2 网格法绘平面等值线子程序 182
6.7 平面等值线填色 183
6.7.1 方法说明 183
6.7.2 绘平面等值线程序 183
6.8 用网格法绘立体等值线 192
6.8.1 方法简介 192
6.8.2 网格法绘立体等值线程序 192
6.9 用网格法绘立体表面图 195
6.9.1 方法说明 195
6.9.2 用网格法绘立体表面图程序 195
6.10 绘等值线剖面图 198
6.10.1 方法简介 198
6.10.2 绘等值线剖面图程序 198
6.10.3 运行程序 202
6.11 用浮动水平线算法绘网格表面消隐图形 204
6.11.1 方法简介 204
6.11.2 浮动水平线算法绘网格表面程序 204
6.12 一个完整的绘等值线及三维表面图程序 205
第6章 绘等值线
本章主要讲述如何用三角法绘平面等值线,如何用网格法绘平面等值线、立体等值线、立体表面图,以及如何进行等值线填色等,并给出全部源程序。MapInfo系统无绘等值线及立体表面图的程序,本章给出全部源程序,用户将其稍作修改后便可用于自己的MapInfo应用程序系统。
6.1 分析数据是否为网格化数据
用户给出的数据有可能是已经网格化好了的数据,也有可能是任意散乱点数据,对这些数据必须加以区分,以便进行下一步处理。已经网格化好了的数据就可以直接用于绘平面图及立体图,而对于任意散乱点数据,除可直接用于绘平面图外,必须经过网格化后才能用于绘立体图。
下面给出的就是用于分析数据是否为网格化数据的程序。源程序见光盘61CheckGrid\CheckGrid.vbp。
1.子程序语句
Private Sub CheckGrid(X() As Single, Y() As Single, N As Integer, NX As Integer, NY As Integer)
2.参数说明
X():存放用户数据的X坐标,实型一维数组,长度为N。
Y():,存放用户数据的Y坐标,实型一维数组,长度为N。
N:数组X、Y的长度, 整型。
NX: X方向的网格数, 整型。
NY: Y方向的网格数,整型。
3.子程序
判断是否为网格数据
Private Sub CheckGrid(X() As Single, Y() As Single, N As Long, NX As Integer, NY As Integer)
Dim IX As Long, IY As Long
Dim RR() As Single, VV() As Single, V As Single, C As Single
Dim Xtemp As Single, Ytemp As Single, Error1 As Integer
Dim I As Long
DataType = 0
判断是否是网格数据
Xtemp = X(0)
Ytemp = Y(0)
NX = 0
NY = 0
DY = Y(2) - Y(1)
For I = 0 To N
If (X(I) Xtemp) Then Exit For
NY = NY + 1
Next I
If (NY 3) Then X方向数据小于3个,肯定是非网格数据
DataType = 1
GoTo Error1
End If
NX = Fix((N + 1) / NY)
If (NY * NX = N + 1) Then 有可能是网格数据
DataType = 0
判断X坐标是否等间距
DX = X(NY) - X(0)
For IX = 2 To NX - 1
Xtemp = X(IX * NY) - X((IX - 1) * NY)
If (Abs(Xtemp - DX) 0.000001) Then
DataType = 1
GoTo Error1
End If
Next IX
判断Y是否等间距
文档评论(0)