-2

如何用JAVA給出等腰三角形的第三個點,給定它的兩點和外心。將有兩種解決方案,如果我從A點和B點得到最短點就足夠了。用外心和三角形的兩點找出第三個點

+3

如果_circumcenter_你的意思是一個三角形的垂直平分線的交點,那麼因爲它也三角形_circumcircle_(通過三角形頂點的三個圓的圓)的中心我看不出如何找到**只有兩個**解答:**該圓上的每個**點都可以是第三點! –

+0

只能得到2個解,因爲三角形的第三個點將在連接兩個點的中點和圓的中心的線上。這條線與圓相交兩次。 – Anand

+0

所以你只考慮[_isosceles_](http://mathworld.wolfram.com/IsoscelesTriangle.html)三角形。很好,但是因爲這不是[一般情況],所以應該在問題中指定它。 –

回答

1

如果AB是等腰三角形(AC = BC)的基礎,那麼解決方案相當簡單。

給出點A, B, CC(外心)

外接球是

R = Length(CC-A) = Sqrt((CC.X - A.X)^2 + (CC.Y - A.Y)^2) 

編輯:改變了方向矢量計算以避免歧義:AB

中點

M = ((A.X + B.X)/2, (A.Y + B.Y)/2) 

方向矢量從CC到頂點C

D = (CC.X - M.X, CC.Y - M.Y) 

歸一化(單元)方向矢量

uD = (D.X/Length(D), D.Y/Length(D)) 

頂點Ç座標

C = (CC.X + R * uD.X, CC.Y + R * uD.Y) 
+0

你好,謝謝你的解決方案。然而,應該有兩種解決方案C.我可以通過CC.X獲得另一個座標嗎?R * uD.X,CC.Y - R * uD.Y – Anand

+0

在描述的條件下,只有一種解決方案。 – MBo

相關問題