php – Bresenham线条没有对角线运动

是否有改进的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
上一篇:Bresenham算法画圆


下一篇:用MFC实现DDA算法