关于#python#的问题:要求通过python编程,遍历三角区域内所有的整数点坐标

python遍历一个区域内的全部整数点并打印出来

看图

img


已知条件:在直角坐标系内有一个三角形,并直到三角形三个点的坐标位置。
要求通过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))