计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误

计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误:

 

 

书上本来要写的是以x为阶越步长的方法,但是他写的是用一部分y为阶越步长的方法(其实也写的不对),最后以x为阶越步长的方法总结。

分析书上的算法得:

l  K初始值<=0  画出的是 x=0;

l  0<K初始值<1  画出的是 1/k的直线;

l  K初始值>=1  画出的是 y=x;

         以下黑色的线是使用MoveTo,Lineto画出的,红色的是书上的程序画出的,蓝色的线是我修改后的直线(有除法),紫色的是修改后(无除法的)。

         绿色的线是验证0<K初始值<1时1/k的直线(使用MoveTo,Lineto画出)

   

(500,-500),(0,0) k=-1        (0,0),(500,500) k=1        (0,0),(400,100) k=1/4

 

(0,0),(100,400) k=4

 

修改后得:(主要展示0<=k<=1

 

 

(0,0),(400,100) k=1/4(有乘法)

 

 

(0,0),(400,100) k=1/4(无乘法)

 

无乘法程序:

 

 

posted @ 2018-03-04 17:59  feiquan  阅读(667)  评论(0编辑  收藏  举报
如果是此文是转载文章,本人会附上转载链接,此篇文章的版权归原创作者所属,如果侵权请与我联系,我会删除此文。

若没有标明转载链接,此篇文章属于本人的原创文章,其版权所属:
作者:feiquan
出处:http://www.cnblogs.com/feiquan/
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
大家写文都不容易,请尊重劳动成果~ 这里谢谢大家啦(*/ω\*)