改进1:令e=d-0.5 +1=x1+1 xX 11=Jy+1(e>0 1y2(e≤0) e初=0.5 每走一步有e=e+k if(e>0) then e=e-1 2021/2/21 华中理工大学计算机学院陆枫 21 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 21 改进1:令e=d-0.5 + = = + + + (e 0) 1 (e 0) 1 1 1 i i i i i y y y x x • e初=-0.5, • 每走一步有e=e+k。 • if (e>0) then e=e-1
算法步骤为: 1输入直线的两端点Px0y0)和P1(x12y1) 2计算初始值△x、△y(e=0.5x=x0、y=y0 3绘制点(xy) 4c更新c+k,别断e的符号。若c0,则(xy)更新 为(x+1y+1),同时将e更新为c1:)香则(xy)更新 为(x+12y)。 5当直线没有画完时,重复步骤3和4。否则结束 2021/2/21 华中理工大学计算机学院陆枫 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 22 算法步骤为: 1.输入直线的两端点P0 (x0 ,y0 )和P1 (x1 ,y1 )。 2.计算初始值△x、△y、e=-0.5、x=x0、y=y0。 3.绘制点(x,y)。 4.e更新为e+k,判断e的符号。若e>0,则(x,y)更新 为(x+1,y+1),同时将e更新为e-1;否则(x,y)更新 为(x+1,y)。 5.当直线没有画完时,重复步骤3和4。否则结束
改进2:用2e△x来替换e e初=△x, 每走一步有e=e+2△y if(e>0) then e=e-2△x 2021/2/21 华中科技大学计算机学院陆枫
2021/2/21 华中科技大学计算机学院陆枫 23 改进2:用2e△x来替换e e初=-△x, 每走一步有e=e+2△y。 if (e>0) then e=e-2△x
算法步骤: 1输入直线的两端点PQx2y0)和P1(x1y1) 2计算初始值△x、Ay(e=△x)x=x0、y=0 3绘制点(x,y) 4e更新为e+2△y判断e的符号。若e>0,则(xy)更 新为(x+1y+1),同时将e更新为e2△x否则(xy) 更新为(x+1y) 5当直线没有画完时,重复步骤3和4。否则结束。 2021/2/21 华中理工大学计算机学院陆枫 24 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 24 算法步骤: 1.输入直线的两端点P0 (x0 ,y0 )和P1 (x1 ,y1 )。 2.计算初始值△x、△y、e=-△x、x=x0、y=y0。 3.绘制点(x,y)。 4.e更新为e+2△y,判断e的符号。若e>0,则(x,y)更 新为(x+1,y+1),同时将e更新为e-2△x;否则(x,y) 更新为(x+1,y)。 5.当直线没有画完时,重复步骤3和4。否则结束
程序 几种画线算法的比较 2021/2/21 华中理工大学计算机学院陆枫 25 99-7
2021/2/21 华中理工大学计算机学院 陆枫 99-7 25 程序 几种画线算法的比较