Как рассчитать точку центра Внутреннего Содди в декартовой форме координат? - PullRequest
0 голосов
/ 10 апреля 2020

Я начинаю проект, который включает в себя упаковку кругов и буду размещать диски разных размеров с центрами, расположенными в треугольнике; то есть 3 окружности, которые касаются друг друга, образуя криволинейную три angular область между ними, повторяемую заново. Именно в этот регион я хочу расположить «дерзкий круг», касающийся остальных трех кругов. Хотя у меня есть уравнение для расчета радиуса такого круга, уравнение для вычисления его декартового центра, кажется, невозможно найти.

Я искал inte rnet уже несколько недель и нашел ссылки на Кимберлинга числа - X (176) - это Центр Внутренней Содди, который меня интересует (иногда его называют точкой равного обхода). Мои поиски привели меня к Wolfram MathWorld https://mathworld.wolfram.com/EqualDetourPoint.html, но я не могу понять, как применить это к вычислению декартовых координат.

Я наткнулся на концепцию барицентри c координаты и уравнения для расчета их для внутреннего центра Содди, но затем не удается найти способ преобразования в (x, y) форму.

StackExchange имеет несколько ссылок на круг Содди, это https://math.stackexchange.com/questions/1475359/center-of-soddy-circle выглядит особенно многообещающе, но, кажется, есть ключевые шаги в последовательности пропущенных вычислений.

Может кто-нибудь предложить решение или выбросить sh из вышеприведенного сообщения StackExchange для преимущества нематематика?

Ваша помощь будет высоко ценится!

1 Ответ

1 голос
/ 11 апреля 2020

К для преобразования Барицентри c точка P=(L1:L2:L3) в треугольнике ABC в декартовы координаты используйте:

xP = L1*xA+L2*xB+L3*xC
yP = L1*yA+L2*yB+L3*yC

, чтобы найти равную точку обхода :

s = (a+b+c)/2;
delta = sqrt(s*(s-a)*(s-b)*(s-c));
//barycentric coordinates
L1 = a+delta/(s-a);
L2 = b+delta/(s-b);
L3 = c+delta/(s-c);
LSum = L1+L2+L3;
L1 = L1/LSum;
L2 = L2/LSum;
L3 = L3/LSum;


//cartesian coordinates
xEDP = L1*xA+L2*xB+L3*xC;
yEDP = L1*yA+L2*yB+L3*yC;

rInnerSoddy = sqrt((xEDP-xA)^2+(yEDP-yA)^2)-rA;

, где s и delta - соответственно полупериметр и площадь треугольника.

enter image description here

Lambdas на изображении выше не являются длинами в декартовом пространстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...