【问题标题】:Python - Generate a grid of equally spaced pointsPython - 生成等距点的网格
【发布时间】:2015-03-16 13:17:45
【问题描述】:

我有一个 MxN 的正方形区域,其中 M:N 的比率为 a:b。如何通过算法计算与这些正方形的中心相对应的一系列 (x,y) 坐标?

例如,比例为 1:1 的 2x2 方格将具有以下中心(如果宽度和高度为 100):

(25,25),(75,25),(25,75),(75,75)

示例代码:

x = np.array([])
y = np.array([])
M,N = 100,100

for a in range(1,M+1):
    for b in range(1,N+1):
        print(a,b)
        x = np.append(x,a)
        y = np.append(y,b)

【问题讨论】:

  • 它和python有什么关系?
  • 也许是一些输入输出示例,和/或代码 sn-ps,你已经做了什么......
  • 我认为你必须自己解决这个问题。然后,如果您在实施解决方案时遇到问题(即您的代码无法按预期工作,或者您卡在一个非常具体的点上),我们可以为您提供帮助。
  • 那么您的尝试有什么问题?错误?意外的输出?

标签: python for-loop numpy


【解决方案1】:

因此,您得到了 m,n 以及总面积的高度和宽度。调用高度和宽度 i, j 并观察它们必须是 m,n 的倍数并且 i/m = j/n 否则我们会以错误的输入退出。将此量称为 i/m(正方形的边长)s。现在应该很明显了,我们只想要 [(s/2) + (x * s) for x in range(m)] 第一行。要将其扩展到网格,我们只需做显而易见的事情

[((s/2) + (x * s), (s/2) + (y * s)) for x in range(m) for y in range(n)]

【讨论】:

  • 谢谢。这很整洁!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多