Здравствуйте!
Есть задача: попиксельно соединить точки, заданные координатами.
Для решения использую вышеуказанный алгоритм вот так:
def print_bres(a, b):
x1, x2, y1, y2 = a[0], b[0], a[1], b[1]
delta_x = abs(x2 - x1)
delta_y = abs(y2 - y1)
sign_x = 1 if x1 < x2 else -1
sign_y = 1 if y1 < y2 else -1
error = delta_x - delta_y
print ("%d %d" %(x2, y2))
while (x1 != x2) or (y1 != y2):
print ("%d %d" %(x1, y1))
error2 = error*2
if error2 > -delta_y:
error -= delta_y
x1 += sign_x
if error2 < delta_x:
error += delta_x
y1 += sign_y
Потом применяю эту функцию к точкам, заданным списком. Вот так:
counter = 0
while counter != len(v) - 1:
for i in range(counter, len(v)-1):
print_bres(v[counter], v[i])
counter += 1
Результаты загоняю в текстовый файл, который гружу в Octave, чтобы посмотреть картинку.
На картинке же получается, что каждая линия рисуется дважды, при чем разными способами...
Всю голову сломал, что не так?