2011-04-01 100 views
6

我想弄清楚如何从两个圆圈相对于他们的方形容器盒的角落获得距离。我需要这里的数学帮助。找到两个圆圈之间的距离

Finding distance between two circles

我怎样才能制定出的像素数为打上一个问号行?

一如既往地欣赏帮助。

+3

这与编程有什么关系?应该移动到http://math.stackexchange.com/ – froeschli 2011-04-01 04:50:16

+0

顺便说一句,这是所有我正在处理的Flash应用程序。 – Alex 2011-04-01 04:51:39

+0

我仍然看不到编程方面的相关性。如果你正在寻求编程算法,那么它适合这里。 – froeschli 2011-04-01 04:53:18

回答

12

tldr:计算每个圆中心点之间的距离,然后从中减去每个圆的半径'。

对于示范的目的,我们将假定以下内容:100px的直径

  • 的200像素直径(r1 = 100)圆是在(X,Y)的(0, 0)坐标和
  • r2 = 50)圆在(x,y)坐标(150, -150)

鉴于其中心之间的距离为:Distance

找到自己的边界之间的距离,我们从他们的中心之间的距离减去每个圆圈的半径

这给我们留下了公式:

sqrt((x2 − x1)^2 + (y2 − y1)^2) − (r2 + r1) 

插入你的价值观到上述给出:

sqrt((150 − 0)^2 + (-150 − 0)^2) − (100 + 50) = 62.132034356px 
2

让我们来看看......每个半径是每边长度的一半,从中心距离中减去半径的总和就可以得到剩余的数量。

希望有帮助吗?

+0

这确实有帮助,很多...然后很简单。 :) – Alex 2011-04-01 04:29:56

3

你有每个圈子的中间点吗?如果你这样做,首先计算圆心的距离。

distance²=center1²+center2²

然后,你将需要两个圆减去半径。在你的情况下,它将是150(100 + 50)

2

丹尼尔的回答的代数简化版本

(r1 + r2) * (sqrt(2) - 1) 
= (s1 + s2) * (sqrt(2) - 1)/2 

其中,r1 ,r2是两个半径,s1,s2是两个正方形的边。通过分别查看每个方格可以很容易地看出这一点,并注意到从圆/方形中心到方形角的距离d1为sqrt(2)* r,并且该方格内的所需距离为d1 - 圆半径r。