2011-04-01 53 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。