Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Тангента к двум окружностям   Найти похожие ветки 

 
Галинка ©   (2007-07-16 18:08) [0]

На сделать тангенту к двум окружностям. Как это расчитать?? Решить систему трех уравнений? Или для каждой окружности решить систему уравнений типа sqr(x1)+sqr(y1) = sqr(r)
k1*x1 + b1 = y1
?
но тогда получится что для двух независимых "систем" фигур, будут разные решения. Относительно k1, b1. А они вроде должны быть одинаковыми, т.к. прямая то одна.


 
MBo ©   (2007-07-16 19:40) [1]

> тангенту к двум окружностям
Их в общем случае 4 штуки

Проще всего  превратить меньшую окружность в точку, для расчета пары (внешних) касательных уменьшить большую окружность на радиус меньшей,  а для второй пары - увеличить большую на тот же радиус.


 
Alx2 ©   (2007-07-16 23:28) [2]

Если аналитикой, то примерно так.

Для окружностей, расположенных центрами на оси x
x1 - координата центра окружности радиуса r1
x2 - координата центра окружности радиуса r2

уравнение прямой лучше задать в виде
-sin(phi)*x+cos(phi)*y=c

Тогда квадрат расстояния от точки с координатами (x0, y0) будет
S^2 = (-sin(phi)*x0+cos(phi)*y0-c)^2

Учитывая, что центры на оси ОХ, получим для решения систему
(-sin(phi)*x1-c)^2-r1^2=0,
(-sin(phi)*x2-c)^2-r2^2=0

Она элементарно решается, если взять тождество a^2-b^2=(a-b)*(a+b)

тогда касательные будут следующими:

1. c = (r2*x1+r1*x2)/(x1-x2),  phi = -arcsin((r1+r2)/(x1-x2));
2. c = -(r2*x1+r1*x2)/(x1-x2), phi = arcsin((r1+r2)/(x1-x2)) ;
3. c = (r2*x1-r1*x2)/(x1-x2),   phi = arcsin((r1-r2)/(x1-x2)) ;
4. c = (r1*x2-r2*x1)/(x1-x2),   phi = -arcsin((r1-r2)/(x1-x2));

Если центры не лежат на оси ОХ, то меняем поворотом систему координат так, чтобы исправить это.



Страницы: 1 вся ветка

Текущий архив: 2007.08.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
4-1172262992
Альберт
2007-02-23 23:36
2007.08.12
и опять окна с переменной прозрачностью..


15-1184306662
Ega23
2007-07-13 10:04
2007.08.12
sql.ru только у меня не открывается?


2-1184691358
Strange man
2007-07-17 20:55
2007.08.12
Скорость работы с объектами в Delphi


2-1184227921
Abcdef123
2007-07-12 12:12
2007.08.12
Как правильно прописать Очень длинный массив (перенос строки)


2-1184835818
pathfinder
2007-07-19 13:03
2007.08.12
Переделка компонентов..