射线算法 java_GIS算法基础(六)矢量数据向栅格数据的转换(面转换的射线算法实现)...

面状换的射线算法已经放在github上:

目录

一、常见的面转换算法

面状矢量数据是由闭合的线段组成的,在向栅格数据转换的过程中,可以先把边界做线状栅格化(线状栅格化的方法在算法基础)(五)中已经实现),剩下的工作其实就是填充面状要素。所以面状要素的栅格化又称为多边形填充,即在矢量表达的多边形边界内部的所有栅格点上赋以相应的多边形编码。

1)内部点扩散算法

该算法由每个多边形的一个内部点(也叫种子点)开始,向其八个方向的领点扩散,判断各个新加入的点是否在多边形的边界上,如果是在多边形的边界上,则该新加入的点不作为种子点,否则把非边界的领点作为新的种子点与原有种子点一起进行新的扩散运算。一般来说,由于扩散算法比较复杂,并且在一定的栅格精度上,如果复杂图形的同一多边形的两条边界落在同一个或相邻的两个栅格内,会造成多边形不连通,这样一个种子点就不能完成填充

ad0b5b504984b3e63b7a9b30bd9ba745.png

2)射线算法

射线算法就是通过判断数据栅格点是否在多边形内部,如果在内,则填充,在外则不填充。至于怎么判断,在之前的《GIS算法基础(二)计算几何基础(中)》已经对判断点是否在多边形内的两种算法进行了实现。

二、射线算法的实现

算法的基本思想就是通过计算每个栅格点是否在多边形内部,然后决定是否填充。

算法步骤:

①对多边形边界进行栅格化(线状要素的栅格化--

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值