梁友栋-Barsky裁剪算法原理分析

梁友栋-Barsky算法是一种参数线裁剪算法。

x={x_{0}}^{} +u\Delta x

y={y_{0}}^{} +u\Delta y

为两个参数方程,\Delta x为两点的差值,其中0\leqslant u\leqslant 1的由来是整理参数方程中三角函数的值得出,因为取值需要在裁剪框内,所以u只需要取0~1范围内的就足够。

xw_{min}^{}\leqslant x={x_{0}}^{} +u\Delta x\leqslant xw_{max}^{}

yw_{min}^{}\leqslant y={y_{0}}^{} +u\Delta y\leqslant yw_{max}^{}

是结合四条边界线得出的组合方程,在参数方程中,得到u的值就可以得出最终的解,所以在上面式子中其他的量都可以抽象化,就可以得出他的

up_{k}^{}\leqslant q_{k}^{}

在这里p和q都是抽象表示,由于不等式是与四条边界线结合得出,所以p和q的具体定义则为:

{p_{1}^{}}=-\Delta x ,q_{1}^{}=x_{0}^{}-xw_{min}^{}

{p_{2}^{}}=\Delta x ,q_{2}^{}=xw_{max}^{}-x_{0}^{}

{p_{3}^{}}=-\Delta y ,q_{3}^{}=y_{0}^{}-yw_{min}^{}

{p_{4}^{}}=\Delta y ,q_{4}^{}=yw_{max}^{}-y_{0}^{}

用x边界线举例说明,如果是左边界线,p的末端点大于初始点,p的值为负,如果与左边界线有交点,则一定为从外到内的线,右侧则为从内到外。全部验证可以得出算法中的结论

为了求参数u的值,取u的边界条件:

 up_{k}^{}= q_{k}^{}

对于从外侧到内侧的线中,u需要取各个值中最大值或是0值,为什么这么取呢?

参数方程中t表示与定点的长度,u的本质与t相同,所以u相当于对于初始点的距离值,那么就容易得出,距离初始点最远的值应当是搭在了裁剪窗口边上。也就是u的最大值

从内到外则同理,所以取u的最小值。

 

 

有了u值之后,就可以在参数方程中求出交点坐标,可以取得裁剪线。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值