線分上のすべての整数点を見つけるための短いスマートな方法を探しています。2 点も整数で、線は 0、45、90、135 度などの角度にすることができます。
これが私の長いコードです(これまでのところ90度のケース):
def getPoints(p1,p2)
if p1[0] == p2[0]:
if p1[1] < p2[1]:
return [(p1[0],x) for x in range(p1[1],p2[1])]
else:
return [(p1[0],x) for x in range(p1[1],p2[1],-1)]
if p2[1] == p2[1]:
if p1[0] < p2[0]:
return [(x,p1[1]) for x in range(p1[0],p2[0])]
else:
return [(x,p1[1]) for x in range(p1[0],p2[0],-1)]
編集:私はそれを十分に明確に述べていませんが、勾配は常に整数 -1、0、または 1 になります。チェックする必要がある 8 つのケースがあります。