是否有改进的Bresenham算法,从一个像素到下一个像素的步长不允许对角线,只是水平或垂直?或者其他算法呢? (PHP首选)
Right:
0 0 0 1
0 0 1 1
0 1 1 0
1 1 0 0
Wrong:
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
解决方法:
应该是一个微不足道的修改 – 让我们说你在象限I – 即向上和向右.而不是做对角线,做一个…然后一个右.
代替:
for x from x0 to x1
plot(x,y)
error := error + deltaerr
if error ≥ 0.5 then
y := y + 1
error := error - 1.0
像这样的东西:
for x from x0 to x1
plot(x,y)
error := error + deltaerr
if error ≥ 0.5 then
y := y + 1
plot(x,y)
error := error - 1.0