Example Code: Bresenham Line Algorithm
Phillip Lenhardt
philen at earn.aa.ans.net
Fri Jul 9 00:35:30 EDT 1999
If there is some python algorithm repository this
should go in, let me know. Otherwise, enjoy!
def Brensenham_line(x,y,x2,y2):
"""Brensenham line algorithm"""
steep = 0
coords = []
dx = abs(x2 - x)
if (x2 - x) > 0: sx = 1
else: sx = -1
dy = abs(y2 - y)
if (y2 - y) > 0: sy = 1
else: sy = -1
if dy > dx:
steep = 1
x,y = y,x
dx,dy = dy,dx
sx,sy = sy,sx
d = (2 * dy) - dx
for i in range(0,dx):
if steep: coords.append((y,x))
else: coords.append((x,y))
while d >= 0:
y = y + sy
d = d - (2 * dx)
x = x + sx
d = d + (2 * dy)
coords.append((x2,y2))
return coords
More information about the Python-list
mailing list