直线区域裁减算法

直线的区域裁减算法

首先我们先看图:
在这个图中,直线AB在被中间这个区域所裁减,那么我们如何去判断直线在区域的什么位置,只有这样我们才能知道如何去计算。
因此这个算法首先就是给直线的端点进行编码,根据编码就可以确定直线的位置,这样就可以使用解析几何的算法进行直线的裁减。
但是在图中,直线AB并不是和一个边界相交,那么出现这样的情况,就是反复的裁剪编码,直到直线在这个区域内。
例如B点的话,第一次根据编码裁剪到和右边线的交点上,然后再进行编码,裁减到和底线相交的地方,这样在进行编码的时候,就为0。即认为在区域内。
源码:

 

 




// 核心算法

 
  

其实这里的直线编码算法 ,不但可以在这里应用 ,而且在图形任意切割的时候,首先用比图片略大的区域进行直线的裁剪,然后在对直线的两个端点进行编码,编码之后就可以确定直线和图片相交的位置,比如直线是水平线的话,那么就应该垂直扫描,这样才能取出两张图片,如果是向上图AB那样,就可以确定是水平扫描了。当然一切皆可用!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值