我正在寻找一种简短的智能方法来查找线段上的所有整数点。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种情况需要检查。