CG图形生成剖析.ppt

算法步骤(第一象限内): ⒈ 画点(x1, y1) 计算:dx=x2?x1,dy=y2?y1,P1=2dy?dx,i=1; ⒉ 求直线的下一点位置: xi+1 = xi + 1;如果Pi0,则yi+1=yi+1,否则yi+1=yi; ⒊ 画点(xi+1, yi+1); ⒋ 求下一个误差Pi+1: 如果Pi0,则Pi+1=Pi+2dy?2dx,否则Pi+1=Pi+2dy; ⒌ i=i+1;如果idx+1则转步骤2;否则结束操作。 4.2.3 Bresenham直线算法 * 以上讨论的是 0≤m≤1的情况,即直线在第一象限内,斜率小于1的情况 当m1时,只需将算法中的x、y对换即可 当m0时,只需改变dx或dy的符号即可 4.2.3 Bresenham直线算法 * Bresenham算法的优点如下: ⒈ 不必计算直线的斜率,因此不做除法; ⒉ 不用浮点数,只用整数; ⒊ 只做整数加减运算和乘2运算,而乘2运算可以用移位操作实现。 因此,Bresenham算法的运算速度很快,并适于用硬件实现 4.2.3 Bresenham直线算法 * 例:采用Bresenham算法,画出端点为(0,0)和(10,4)的直线,计算出各像素点位置并画图。 【解】 i xi yi pi 1 0 0 -2 2 1 0 6 3 2 1 -6 4 3 1 2 5 4 2 -10 6 5 2 -2 7 6 2 6 8

文档评论(0)

1亿VIP精品文档

相关文档