Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
2-1184816137
zsergey
2007-07-19 07:35
2007.08.12
связка двух таблиц ...


6-1167768922
Moonglow
2007-01-02 23:15
2007.08.12
CrtSock


15-1184560988
de.
2007-07-16 08:43
2007.08.12
БД


8-1162944005
SamBrook
2006-11-08 03:00
2007.08.12
ANN - GDIplus 1.1 для Delphi


2-1184332482
GMH
2007-07-13 17:14
2007.08.12
вызываемая Getmodulefilemameex




   Наверх