1
위키 피 디아에서 파이썬으로 Bresenham algorithm을 구현했지만, 일부 라인에서는 작동하지 않습니다. 1,0에서 0,1처럼 멈추지 않고 계속해서 슈퍼 긴 줄Bresenham 라인이 종료되지 않습니다
def line(x0, y0, x1, y1):
dx = x1 - x0
dy = y1 - y0
sx = x0 < x1 and 1 or -1
sy = y0 < y1 and 1 or -1
err = dx - dy
points = []
x, y = x0, y0
while True:
points += [(x, y)]
if x == x1 and y == y1:
break
e2 = err * 2
if e2 > -dy:
err -= dy
x += sx
if e2 < dx:
err += dx
y += sy
return points