求多边形包围区域

求多边形包围区域:

               

                已知单元格中,黑色部分为封闭边缘,如何求出绿色部分也在包围圈之内?

                先定义一个概念:左(右)侧包围。指的是以一条边为参考,其左(右)侧部分在包围区域内,称之为左(右)侧包围。

                有了上面的概念之后,只需要选定一个点作为起点并沿边缘走一圈再回到起点,通过判断向左侧拐和向右拐的次数,若左拐次数大于右拐次数则为左侧包围,反之为右侧包围。

                在给定的包围顺序下判定了左(右)侧包围,遍可获得包围区域

                 以上过程,只要封闭路径确定,那么左拐和右拐的次数一定不会相等。

    

                 当封闭路径不确定时如图:

                

                 蓝色部分与黑色边构成封闭区域,如何求绿色包围区域?

                 如果按照第一种情况里说的找一个确定的封闭路劲是可以解决问题的,但若遇到更为复杂的情况一来找出这条确定的路径比较困难,再者即便找出来了,也可能会包围本不应该在包围区域内的格子。


                 回归到问题的最本质:求包围区域,一定是要所有可能的点都在包围圈中,如果存在包围泄漏,说明包围圈不封闭,或者本身就在包围圈外。有了这个思路,在结合第一种求包围区域的方法,得到一个可适应所有包围情况的解决思路就不难了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值