Окружность проведена через две точки касательно к объекту
 

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

Точки, через которые проводятся сопрягающие окружности, должны быть собственными точками вещественной плоскости.

Если в процессе расчета обнаруживается, что при заданных значениях входных параметров реализовать сопряжение невозможно, то при установленном флажке NIL в выходной параметр заносится значение NIL-объекта.

Если тип объекта, указанного в любом из входных параметров, оказывается несовместимым с типом этого параметра, то при установленном флажке NIL в выходной параметр заносится значение NIL-объекта.

 
Параметры
Типы объектов
Функциональное назначение параметров
Окружность 1
Окружность
Первая касательная окружность
Точка 1
Точка
Точка касания первой касательной окружности и объекта (прямой или окружности)
Окружность 2
Окружность
Вторая касательная окружность
Точка 2
Точка
Точка касания второй касательной окружности и объекта (прямой или окружности)
Исходная точка 1
Точка
Первая точка, через которую проведена окружность
Исходная точка 2
Точка
Вторая точка, через которую проведена окружность
Прямая (окружность)
Прямая (окружность)
Объект (прямая или окружность), к которому строятся сопрягающие окружности
 

Пояснение к реализации функции:

Функция реализована на основе преобразования инверсии. Через точку p проводится произвольная (например радиусом 100) окружность dinv, относительно которой выполняется инверсионное преобразование входных объектов. Точка p1 преобразуется в точку i_p1. Объект l1 (прямая или окружность) преобразуется в окружность okr1. Операция проведения касательных прямых oo1 и oo2 из точки i_p1 позволяет получить образы окружностей сопряжения okr1 и okr2 и точек касания в преобразовании инверсии. Прообразы находятся обратным преобразованием oo1, oo2, pp1 и pp2 относительно окружности инверсии dinv.

Входные параметры: p, p1 и l1.

Выходные параметры: okr1, t1, okr2 и t2.

Алгоритм "Главный"
1
Точка p задана координатами -158.6 и -33.3 .
2
Точка p1 задана координатами -159 и 71.7 .
3
Прямая l1 задана координатами двух точек: X1= -240.5 , Y1= -172.5 , X2= 161.5 , Y2= -75.5 .
4
Величина chisl есть 100 .
5
Окружность dinv задана центром p и радиусом chisl .
6
Объект i_p1 есть результат инверсного преобразования объекта p1 относительно окружности dinv .
7
Объект i_l1 есть результат инверсного преобразования объекта l1 относительно окружности dinv .
8
Точка касания pp1 на окружности i_l1 и касательная oo1 из точки i_p1 .
9
Точка касания pp2 на окружности -i_l1 и касательная oo2 из точки i_p1 .
10
Объект t1 есть результат инверсного преобразования объекта pp1 относительно окружности dinv .
11
Объект t2 есть результат инверсного преобразования объекта pp2 относительно окружности dinv .
12
Объект okr1 есть результат инверсного преобразования объекта oo1 относительно окружности dinv .
13
Объект okr2 есть результат инверсного преобразования объекта oo2 относительно окружности dinv .

структура функции

 

Прототип команды: DH Согласование Окружность1 Точка1 Окружность2 Точка2 ; Исходная_точка1 Исходная_точка2 Прямая(окружность) .

 
Пример:

Провести две окружности через две точки p1 и p2 таким образом, чтобы они касались заданной прямой o1.


Алгоритм "Главный"
1
Прямая o1 задана координатами двух точек: X1= -266.5 , Y1= 44.5 , X2= 211.5 , Y2= -137.5 .
2
Точка p1 задана координатами -90.5 и 148.5 .
3
Точка p2 задана координатами -30.5 и -10.5 .
4
Окружности d1 и d2 касаются в точках p3 и p4 объекта o1, проходя через точки p1 и p2 .