在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上,那么这些点中任意两点确定的直线是同一条。
给定平面上 2 × 3 个整点 {(x, y)|0 ≤ x < 2, 0 ≤ y < 3, x ∈ Z, y ∈ Z},即横坐标是 0 到 1 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数的点。这些点一共确定了 11 条不同的直线。
我很奇怪的是我是想得到每个点,然后依次用坐标去减去他们,当x1!=x2并且y1!=y2的时候我觉得用一个and语句就可以解决,但事实上并非如此,打印出来的结果很奇怪,我看着是惰性问题,但是这也有很多不一样的地方不解,希望得到lao shi们的帮助。(我想用前两个循环得到的(x1,y1)后一个循环代表(x2,y2),这是前面计算出来的,但是结果却出来的让我kuhuo)
-
l=[]
n=2
m=3
t=0
xx=[]
for x in range(0,n):
for y in range(0,m):
l.append([x,y])
for x1 in range(0,n):
for y1 in range(0,m):
for x2 in range(0,n):
if x1!=x2 and y1!=l[x2][1]:
k=(x1-l[x2][0])/(y1-l[x2][1])
xx.append([x1,y1,l[x2][0],l[x2][1]])
xx.append(k)
print(len(xx))
[0, 0, 0, 1], -0.0, [0, 2, 0, 1], 0.0, [1, 1, 0, 0], 1.0, [1, 2, 0, 0], 0.5]