Each Answer to this Q is separated by one/two green lines.
I would like to get the center point(x,y) of a figure created by a set of points.
How do I do this?
If you mean centroid, you just get the average of all the points.
x = [p for p in points] y = [p for p in points] centroid = (sum(x) / len(points), sum(y) / len(points))
If the set of points is a numpy array
positions of sizes N x 2, then the centroid is simply given by:
centroid = positions.mean(axis=0)
It will directly give you the 2 coordinates a a numpy array.
In general, numpy arrays can be used for all these measures in a vectorized way, which is compact and very quick compared to
I assume that a point is a tuple like (x,y), so you can use zip to join the x’s and y’s. Then using the min and max of x and y’s, you can determine the center point.
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)