2016-12-03 3 views
1

Я изо всех сил пытаюсь преобразовать формулу из этого article и перевести ее на Python или любой код, в основном потому, что мне трудно читать математические уравнения. В идеале, учитывая позицию , В и С, выяснить радиусы а «, Ь» и с» для изображения слева. Любая помощь будет действительно рассмотрена.Tangent Circles at Triangle Vertices

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

Спасибо, что отлично работает! Было бы легко применить это к трем измерениям? Итак, 'xa, ya, za' для точки' A', 'xb, yb, zb' для точек' B' и 'xc, yc, zc' для точки' C'? – justachap

+1

Если вы хотите найти радиусы трех касательных окружностей * в плоскости трех точек *, да, вы можете легко применить это к трем измерениям. Просто отрегулируйте формулы для 'a, b, c', чтобы найти стороны треугольника в 3-пространстве:' a = math.sqrt ((xb - xc) ** 2 + (yb - yc) ** 2 + (zb - гс) ** 2) '. Вам не нужно настраивать формулы радиусов 'ra' и т. Д. –