由于矢量数据的基本要素是点、线、面,因而矢量数据向栅格数据的转换实质上是解决点、线和面数据的转换。
一、点的转换
点的转换实质上是将点的矢量坐标转换成栅格数据中行列值i和j,从而得到点所在栅格元素的位置。其中:
Integer 表示对运算值取整。
x,y 为所求点在矢量坐标下坐标值。
△x,△y 分别为每个栅格单元对应边长。
ymax,xmin 表示矢量数据的y最大值及x最小值。
i,j 为所求点所在栅格坐标中行与列值。二、线的转换
由于曲线可用折线来表示的,也就是当折线上取点足够多时,所画的折线在视觉上成为曲线。因此,线的变换实质上是完成相邻两点之间直线的转换。若已知一直线AB其两端点坐标分别为A(x1,y1)和B(x2,y2),则其转换过程不仅包括坐标点A,B分别从点矢量数据转换成栅格数据,还包括求出直线AB所经过的中间栅格数据。其过程如下:
1.利用上述点转换法,将点A(x1,y1),B(x2,y2)分别转换成栅格数据,求出相应的栅格的行列值。
2.由上述行列值求出直线所在行列值的范围。
3.确定直线经过的中间栅格点。若从直线两端点转换中,求出该直线经过的起始行号为i1,终止行号im,其中间点行号必定为i2,i3……im-1。现在的问题是求出相应行号相交于直线的列号,其步骤如下:
1)求出相应i行中心处同直线相交的y值
2)用直线方程求出对应y值的点的x值:
3)从x,y值按公式(5-5)求出相应i行的列值j:
如上不断求出直线所经过的各行的列值,最后完成直线的转换。
曲线的转换或多边形轮廓的转换实质上是通过直线转换而成的。但对面数据而言,在转换同时还需要解决面域数据(多边形数据)的填充。
本文标题:矢量数据向栅格数据的转换(2)
手机页面:http://m.dljs.net/dlsk/gisjiao/10636.html
本文地址:http://www.dljs.net/dlsk/gisjiao/10636.html