我想获得由一组点创建的图形的中心点(x,y)。
我该怎么做呢?
如果您的意思是质心,您只需得到所有点的平均值。
x = [p[0] for p in points]
y = [p[1] for p in points]
centroid = (sum(x) / len(points), sum(y) / len(points))
如果点集是positions
大小为 N x 2 的 numpy 数组,则质心简单地由下式给出:
centroid = positions.mean(axis=0)
它将直接为您提供 2 个坐标 aa numpy 数组。
一般来说,numpy 数组可以以向量化的方式用于所有这些度量,与循环相比,这种方式紧凑且非常快速。for
我假设一个点是一个像 (x,y) 这样的元组,所以你可以使用 zip 来连接 x 和 y。然后使用 x 和 y 的最小值和最大值,您可以确定中心点。
x,y=zip(*points)
center=(max(x)+min(x))/2., (max(y)+min(y))/2.
样本输出
Points in an array : [(411, 148), (304, 148), (357, 241)]
x:(411, 304, 357)
y:(148, 148, 241)
center: (357.5, 194.5)