矢量数据向栅格数据的转换算法

点的矢量化

矢量数据中的点坐标用X、Y来表示,而在栅格数据中,像元的行、列号用I、J来表示。设O为矢量数据的坐标原点,O′(Xo,Yo)为栅格数据的坐标原点。A为制图要素的任一点,则该点在矢量和栅格数据中可分别表示为(X,Y)和(I,J)。 DX、DY分别表示一个栅格的宽和高,[]表示取整。

 

矢量数据向栅格数据的转换算法_第1张图片

线的栅格化

折线或曲线是直线段的组成或逼近的。假设某一线段两端点的坐标为(x1,y1),(x2,y2),且y2>y1。线段两端点所在栅格的行列号分别为I1,J1和I2,J2,点(xi,yi)为直线段经过的中间栅格的水平中心线与直线段交点的坐标

根据两点式直线方程求得

 

矢量数据向栅格数据的转换算法_第2张图片

 

面的栅格化

扫描算法

沿栅格阵列的行方向扫描,在每两次遇到多边形边界点的两个位置之间的栅格,属于该多边形,在进行该算法时多边形需要满足一定的条件

边界代数法

沿着多边形的边界进行顺时针环绕。当当前环绕方向向上时,则位于该边界左侧(前进方向看为左侧)的具有相同行坐标的所有栅格的值减去a;当当前环绕方向向下时,则位于该边界左侧(前进方向看为右侧)的具有相同行坐标的所有栅格个的值加上a。

当环绕方向为水平方向则不用管。

 

 

 

你可能感兴趣的:(旧)