2010-11-04 276 views
1

如何計算兩個圓之間的圓弧?圓弧必須與圓上兩點相切。計算兩個圓上兩點之間的切線圓弧

這是一張圖解釋它。我正在嘗試編碼並計算橙色弧線和藍色弧線。

alt text

更多細節:

你的小程序應該有2種模式:2D和3D。用戶應該能夠通過按空格鍵在它們之間切換。在2D模式下,用戶可以編輯四個控制點A,B,C和D的位置,並應該看到由這些點定義的4個圓弧如下。紅色圓弧位於中心A和半徑|| AB ||的圓上。綠色圓弧位於中心C和半徑|| CD ||的圓上。橙色圓弧位於支撐圓上,該支撐圓與B中紅色圓弧的支撐圓相切,並與E點處的綠色圓相切,您的代碼必須計算該點。這個支持圈不應該分開A和C(即A和C必須都在該圈內或者在圈外)。同樣,藍色圓弧位於一個不分開A和C的圓上,該圓與D中綠色圓弧的支撐圓相切,也與您的程序必須在某點F處的紅色圓弧的支撐圓相切計算。紅色圓弧從F順時針轉到B.橙色圓弧從B延伸到E.綠色圓弧從E延伸到D.藍色圓弧從D延伸到F.這四個圓弧形成區域S的光滑邊界飛機。請注意,根據控制點的位置,橙色和藍色弧線可以分別爲凹形或凸形。在下圖中,藍色的弧線是凹形的。 (如上圖)

+0

你有什麼信息?橙色圓弧和藍色圓弧是圓圈的一部分嗎? – 2010-11-04 20:27:10

+1

這是直接的數學問題。你應該問這裏http://math.stackexchange.com/ – 2010-11-04 20:28:01

+0

藍色和橙色圓弧的半徑是否指定爲問題的一部分?如果他們不是,那麼可能會有無限多的弧。 – 2010-11-04 21:06:18

回答

1

有很多「相切的圓圈」!

alt text

+0

你知道如何計算G或E嗎? – 2010-11-05 04:56:17

+0

@Russell是的,但它是無聊的解析geometry.Moreover,這似乎是你的功課... – 2010-11-05 06:38:55

+0

作業更詳細,這只是第一步,但我想通了。 – 2010-11-07 22:07:16

0

一般來說,你不能。通過AB和CE繪製直線,並將它們延伸到交點。調用交點M.當且僅當BM = EM時,可以通過與圓相切的B和E繪製圓弧。

+0

這裏有更多的細節: – 2010-11-04 23:16:10

+0

你的applet應該有2種模式:2D和3D。用戶應該能夠通過按空格鍵在它們之間切換。在2D模式下,用戶可以編輯四個控制點A,B,C和D的位置,並應該看到由這些點定義的4個圓弧如下。紅色圓弧位於中心A和半徑|| AB ||的圓上。綠色圓弧位於中心C和半徑|| CD ||的圓上。橙色圓弧位於支撐圓上,該支撐圓與B中紅色圓弧的支撐圓相切,並與E點處的綠色圓相切,您的代碼必須計算該點。 – 2010-11-04 23:24:28

+0

這個支持圈不應該分開A和C(即A和C必須都在該圈內或者在圈外)。同樣,藍色圓弧位於一個不分開A和C的圓上,該圓與D中綠色圓弧的支撐圓相切,也與您的程序必須在某點F處的紅色圓弧的支撐圓相切計算。紅色圓弧從F順時針轉到B.橙色圓弧從B延伸到E.綠色圓弧從E延伸到D.藍色圓弧從D延伸到F.這四個圓弧形成區域S的光滑邊界飛機。 – 2010-11-04 23:27:02

0

設G是圓爲B和E和H的圓之間的電弧爲F和D之間的圓弧的中心

的關鍵點是,一條線相交的圓弧是一條切線,當且僅當它與交點處的半徑垂直時。這意味着如果你有兩個相切的圓,那麼圓的切點和圓心是共線的。

所以這意味着中心G是由B和A定義的直線與由E和C定義的直線的交點。同樣,中心H是由A和F定義的直線與直線的交點由C和D定義。

給定這些中心,您可以根據從中心到切點的距離確定兩個圓的半徑。從那裏你可以使用標準的方法繪製弧的給定端點和它所在的圓。