python遍历一个区域内的全部整数点并打印出来
看图
已知条件:在直角坐标系内有一个三角形,并直到三角形三个点的坐标位置。
要求通过python编程,遍历三角区域内所有的整数点坐标,并打印出来。
简洁快速,可以遍历方向都可以只要能遍历出来并打印即可
看图
def line(a:tuple, b:tuple)->list[tuple]:
if a[0]==b[0]:return [(a[0],a[1]+i) for i in range(b[1]-a[1]+1)]
if a[1]==b[1]:return [(a[0]+i,a[1]) for i in range(b[0]-a[0]+1)]
if a[0]>b[0]:a,b=b,a
return [(a[0]+i, int(a[1]+i*(b[1]-a[1])/(b[0]-a[0]))) for i in range(b[0]-a[0]+1)]
a = (10,10)
b = (40,10)
c = (20,30)
ac=line(a,c)
bc=line(b,c)
ab=line(a,b)
for x, y in zip(ac+bc[1:], ab):
for i in range(x[1]-y[1]+1):
print((y[0],y[1]+i))