2016-12-03 125 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'等的公式。 –