关于 Bresenham 算法原理,这里就不过多的介绍了,网上一搜一大堆,但至于如何具体操作,网上的说法,却是令人眼花缭乱,具体流程见下文:
条件:0≤m≤1且x1<x2
1、输入线段的两个端点坐标和画线颜色:x1,y1,x2,y2,color;
2、设置象素坐标初值:x=x1,y=y1;
3、设置初始误差判别值:p=2·Δy-Δx;
4、分别计算:Δx=x2-x1、Δy=y2-y1;
5、循环实现直线的生成:
for(x=x1;x<=x2;x++)
{
putpixel(x,y,color) ;
if(p>=0)
{ y=y+1;
p=p+2·(Δy-Δx);}
else
p=p+2·Δy;
}