n个磁盘/圆的交点的质心 [英] the centroid of the intersection of n disks/circles

查看:129
本文介绍了n个磁盘/圆的交点的质心的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

鉴于n个磁盘/圈共享一个共同的区域,这意味着每其中两个彼此交叉,而我们知道它们的坐标(X1,Y1,R1),(X2,Y2,R2),...,( XN,YN,RN),其中xi,苡仁,RN重新present的X轴坐标,Y轴坐标,以及第i个磁盘/圆的半径,分别可以为您提供一种方法来计算的坐标这些磁盘的交点的质心/圈?!

Given that n disks/circles share a common area, meaning that every two of them intersect one another, and we know their coordinates (x1,y1,r1), (x2,y2,r2), ..., (xn,yn,rn), where xi,yi,rn represent the x axis coordinate, the y axis coordinate, and the radius of the ith disks/circle, respectively, can you provide a method to calculate the coordinate of the centroid of the intersection of these disks/circles?!

推荐答案

让我们假设所有的圆圈重叠,使得人们可以在圈子中的一个跟踪从任何角度的路径的任意点的任何其它圈,而只有穿越包含的圆圈点。而且,对于一般性,该圆圈可以是不同的半径。

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.

按照维基页面可以分解这种形状成独立的几何区域。也就是说,你可以通过分别考虑每个圆圈(即pretending他们不重叠)。

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).

不幸的是某些圈子的重叠,所以你会被计数的身影地区的两倍。下图,从<一取href="http://blog.csharphelper.com/2010/08/27/partition-an-area-with-circles-and-draw-each-regions-count-in-c.aspx"相对=nofollow>这个页面,显示重叠这些区域。因此,你必须找到圆圈圈交汇的心,并从中间质心减去这个(见进一步的细节几何分解的维基页面的描述)。

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).

既然你可以决定哪些圈子重叠只是做这些对每个交叠对,然后对空间的每个区域将只计算一次。你的问题就简化为找到一个圆圈圈交汇的心。

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.

您可以通过使用几何分解打破路口的每个透镜到圆弧段,并发现这段通过一个方法 rel="nofollow">和耦合的结果与给定的高度适当的坐标变换到旋转和平移的质心的某个位置的一个社交圈的相对的中心。

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.

这篇关于n个磁盘/圆的交点的质心的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆