0

假设 n 个磁盘/圆共享一个公共区域,这意味着它们中的每两个彼此相交,并且我们知道它们的坐标(x1,y1,r1), (x2,y2,r2), ..., (xn,yn ,rn),其中 xi,yi,rn 分别表示 x 轴坐标、y 轴坐标和第 i 个圆盘/圆的半径,你能提供一种方法来计算它们的交点的质心坐标吗磁盘/圆圈?!

4

1 回答 1

1

Let's assume that all the circles overlap such that one can trace a path from any point in one of the circles to an arbitrary point in any other circle while traversing only points contained by circles. And, for generality, that the circles may be of different radii.

Per the wiki page you can decompose this shape into separate geometric regions. That is, you can find an intermediate value for the centroid by considering each circle separately (i.e. pretending they do not overlap).

Unfortunately some of the circles overlap, so you will be counting regions of the figure twice. The figure below, taken from this page, shows these regions of overlap. You therefore must find the centroid of the circle-circle intersection and subtract this from your intermediate centroid (see the wiki page's description of geometric decomposition for further details).

enter image description here

Since you can determine which circles overlap just do these for each overlapping pair and then each region of space will be counted only once. Your problem then reduces to finding the centroid of a circle-circle intersection.

You can find this by using geometric decomposition to break each lens of intersection into circular segments with the height of the segment given via a method here and coupling the result with appropriate coordinate transformations to rotate and translate the centroid to a location relative the center of one of the circles.

于 2012-10-22T18:22:20.137 回答