2016-12-03 166 views
1

我掙扎公式從這個article轉換和翻譯成Python,或與此有關的任何代碼,主要是因爲我覺得很難讀的數學方程。理想情況下,給定的位置AÇ,找出半徑一個 'B'C」左側圖像。任何幫助將真正apprciated。切圓在三角形頂點

Tangent Circles At Triangle Vertices

回答

2

如果頂點座標(xa, ya)爲點A(xb, yb)爲點B,並(xc, yc)爲點C,你可以使用

a = math.sqrt((xb - xc)**2 + (yb - yc)**2) 
b = math.sqrt((xa - xc)**2 + (ya - yc)**2) 
c = math.sqrt((xb - xa)**2 + (yb - ya)**2) 
ra = (b + c - a)/2 
rb = (c + a - b)/2 
rc = (a + b - c)/2 

和所需的半徑是ra, rb, rc。 (我不知道如何將a'等轉換成Python,所以我使用了ra等)。值a, b, c是三角形邊的長度。請注意,我從鏈接的文章中稍微更改了公式,以使它們更加對稱並令人滿意。

+0

謝謝,這很好!將它應用於三個維度很容易嗎?所以''A'點的xa,ya,za','B'點的'xb,yb,zb'和點'C'的'xc,yc,zc'? – justachap

+1

如果您的意思是在三點*的平面上查找三個相切圓*的半徑,那麼您可以很容易地將其應用於三維。只需調整'a,b,c'的公式以在三維空間中找到三角形的邊:'a = math.sqrt((xb-xc)** 2 +(yb - yc)** 2 +(zb - ZC)** 2)'。你不需要調整半徑'ra'等的公式。 –