Bresenham算法总结
注:
1、y(i+1)指的是y右下角标为i+1,yi指的是y右下角标为i
2、y=mx+b
3、△x,△y均为后减前
4、d1为(xi+1,yi)到直线的距离,d2为(xi+1,yi+/-1)到直线的距离
0<m<1
初始: p0=2△y-△x |
---|
当pk≥0时:x(i+1)=xi+1 y(i+1)=yi+1 p(i+1)=pi+2△y-2△x |
否则:x(i+1)=xi+1 y(i+1)=yi p(i+1)=pi+2△y |
m>1
初始: p0=2△x-△y |
---|
当pk≥0时:x(i+1)=xi+1 y(i+1)=yi+1 p(i+1)=pi+2△x-2△y |
否则:x(i+1)=xi y(i+1)=yi+1 p(i+1)=pi+2△x |
-1<m<0
初始: p0=-2△y-△x |
---|
当pk≥0时:x(i+1)=xi+1 y(i+1)=yi-1 p(i+1)=pi-2△y-2△x |
否则:x(i+1)=xi+1 y(i+1)=yi p(i+1)=pi-2△y |
m<-1
初始: p0=-2△x-△y |
---|
当pk≥0时:x(i+1)=xi+1 y(i+1)=yi-1 p(i+1)=pi-2△x-2△y |
否则:x(i+1)=xi y(i+1)=yi-1 p(i+1)=pi-2△x |
写在最后
推导发现:m>1时即为0<m<1时x变为y的情况,-1<m<0时即为0<m<1时y变为-y的情况