列出一组坐标之间的坐标

时间:2011-09-06 21:02:22

标签: python math graph

这应该相当容易,但是我试图解决这个问题让我很头疼。我想列出两点之间的所有坐标。像这样:

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 个答案:

答案 0 :(得分:4)

你似乎是一个初学程序员。我觉得有用的一般技术是在纸上自己完成这项工作,然后看看你是如何做到这一点并将其转化为一个程序。如果你看不清楚如何,可以将其分解为更简单的步骤直到可以。

答案 1 :(得分:2)

根据您想要处理边缘情况的方式,这似乎有效:

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)]