参考《计算机图形学》 Donald.Hearn
书中给出了斜率k在0-1之间的推导过程
在k>=1时以y方向为单位步长递增,此时有x=(y-b)/b;
d(low)=x-x(k)=( y(k+1)-b )/m-x(k);
d(upper)=x(k+1)-x=x(k)+1-( y(k+1)-b )/m;
p(k)=dx*(d(low)-d(upper))=2*dx*(y(k)+1-b)-2*dy*x(k)-dx;
可以推出
p(k+1)=p(k)+2*dx-2*dy(x(k+1)-x(k));
其中x(k+1)-x(k)的值取决于p(k)的符号
将直线方程式和斜率m=dy/dx带入p(k)的表达式可以得出
p(0)=dy,由此可以写出斜率大于1时的实现,
同理可以按此方法得出斜率在(-1,0)和斜率小于-1时的情况,或者可以根据对称性得出