Список координат между набором координат - PullRequest
0 голосов
/ 07 сентября 2011

Это должно быть довольно легко, но у меня болит голова, когда я пытаюсь это понять. Я хочу перечислить все координаты между двумя точками. Вот так:

1: (1,1)
2: (1,3)
In between: (1,2)

Или

1: (1,1)
2: (5,1)
In between: (2,1), (3,1), (4,1)

Не нужно работать с диагоналями.

Ответы [ 2 ]

4 голосов
/ 07 сентября 2011

Вы, кажется, начинающий программист.Общая техника, которую я считаю полезной, состоит в том, чтобы выполнить работу самостоятельно, на бумаге, а затем посмотреть, как вы это сделали, и перевести это в программу.Если вы не видите, как это сделать, разбейте его на более простые шаги, пока не сможете.

2 голосов
/ 07 сентября 2011

В зависимости от того, как вы хотите обрабатывать крайние случаи, это может сработать:

def points_between(p1, p2):
    xs = range(p1[0] + 1, p2[0]) or [p1[0]]
    ys = range(p1[1] + 1, p2[1]) or [p1[1]]
    return [(x,y) for x in xs for y in ys]

print points_between((1,1), (5,1))
# [(2, 1), (3, 1), (4, 1)]

print points_between((5,6), (5,12))
# [(5, 7), (5, 8), (5, 9), (5, 10), (5, 11)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...