首先假设所画直线斜率为 0 -1 之间。
则设起点s(x0,y0) , 终点 d(x1,y1) , 则首先求得
deltaX = x2 - x1, deltaY = y2 - y1 , P0= 2 * deltaX - deltaY , 2 * deltaY , 2 * deltaY - 2 * deltaX ;
则按如下方法绘制每一个点:
- 绘制s;
- 若p0 > 0 ,则下一个点为 (x0 + 1 , y0 + 1) , P1 = P0 + 2*deltaY - 2* deltaX ;
若P0 < 0 ,则下一个点为 (x0+1 , y0) , P1 = P0 + 2*deltaY ;
- 重复步骤2,对于