- 基本思想:
- 已知过端点P0(x0,y0),P1(x1,y1)的直线段L:y=kx+b;斜率为K=(y1-y0)/(x1-x0);从x=x0开始,步长=1(个像素),计算相应的坐标y=kx+b;取像素点(x,round(y))作为当前点的坐标。(round()为取整函数)
- 推导过程:Yi+1=kXi+1+b=k(Xi + 1)+b=kXi+b+k;
- 即,x每递增1,y递增k。
- 例如:画线段P0(0,0)—P1(5,2);
注:y+0.5相当于四舍五入;
k=(2-0)/(5-0)=0.4; x每增加1,y增加0.4;
- 仿C代码: 便于明白算法思想
//0<k<1
void DDALin