假设我想要计算一个正方形网格5x5中的单元格之间的距离。两个单元格之间的距离是100m。
网格的每个像元的编号都在0和24之间
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24 例如:
distance between cell 0 and 3 is 300
distance between cell 2 and 7 is 100
distance between cell 11 and 19 is 400我必须将单元格的x和y位置之间的距离计算为不同。
gs = 5 ## Cells per side
S = gs*gs ## Grid Size
r0 = 100 ## distance between two cells
for i in range(0, S):
for j in range(0, S):
if i == j: continue
x = int(floor(i/gs))
y = int(floor(j/gs))
dist = x*r0 + abs(j-i)*r0但这不是正确的解决方案
发布于 2019-03-28 19:16:59
我们只需要得到每个数字的行和列编号。然后用b/w之差乘以100就会得到答案。
def get_row_col(num):
for i,g in enumerate(grid):
if num in g:
col = g.index(num)
row = i
return row, col
num1 = get_row_col(11)
num2 = get_row_col(19)
print (abs(num1[0] - num2[0])*100) + (abs(num1[1]-num2[1])*100)可以增强此代码以检查数字是否存在。
https://stackoverflow.com/questions/55395721
复制相似问题