图形学复习——中点BH算法

本文主要复习了中点BH算法,针对直线y=kx+b,探讨了如何选取像素点进行显示,从最直观的四舍五入方法,到通过比较运算减少计算量,再到实数到整数的转化,逐步优化算法,提高运算速度。

一.             图形学复习安排的时间是:11.8

二.             复习内容:

1.      中点BH算法:

对于中点BH算法的思想,我们将由它的探索过程逐步学习:

①   最直觉的想法:对于直线y = k * x + b来说,我们选取离线段最近的像素点来显示,为了尽量显示更多的点进而更加清晰,对于 K<=1的情况,我们每隔x = 1就选取一个点,对于k > 1的情况我们每隔y = 1就选取一个点,所以以下的讨论只对k <=1 的情况进行讨论;因为是x每隔1进行一个点的选取,我们可以对y超出整数的值进行四舍五入,也就是(int)(k* x + b +0.5)的处理,(int)是对小数点后的数简弃的取整,加上由于加了一个0.5就达到了四舍五入的效果。

②  由算数到比较的改进:这个算法对于每一个点都是重新计算一遍,没有利用之前的得到的点,而且我们进行四舍五入的运算是计算,如果改成利用前一个点+0.5,对于下一个点和这个“ 中点”的比较运算,计算机的硬件会简化很多,更快地算出结果,相对于上一个算法简化了取整操作。

已知条件:直线表达式f(x) =x*k + b

上一个画出的点:(xi,yi)

需求:下一个点是(xi +1, yi) 还是 (xi +1, yi + 1) ?

简而言之,就是判断中点(xi +1, yi + 0.5)在直线的上方还是下方还是在直线上,我们构造算式ff(x,y) = y – k * x – b;对于此算式,点(x,y)在直线上方的时候ff(x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值