Даны две прямые и точка между ними

Задача чрезвычайно важная в теории машин и механизмов.
Итак, даны две прямые y1 и y2 . Между ними находится точка Р. Это видно на рисунке. Нужно найти координаты центров и радиусы двух окружностей, которые касались бы обеих прямых, а одна из точек пересечений окружностей совпала бы с точкой Р.
Все формулы четко показаны на чертеже. Нужно отметить одно обстоятельство: развернутая формула справа и наверху - это две ортогональные биссектрисы. Из них необходимо выбрать ту, которая находится в зоне точки Р. То есть необходимо верно выбрать знак: плюс или минус. Формулы проверены на конкретном примере. Текст программы на языке Yabasic:

rem DVE PRIAMIE I TOCHKA P
a1=5:b1=2:a2=1:b2=1:xp=3:yp=8
print "a1=";:print a1;
print "   b1=";:print b1
print "a2=";:print a2;
print "   b2=";:print b2
print "xp=";:print xp;
print "   yp=";:print yp
k2=sqrt(a2^2+1):k1=sqrt(a1^2+1)
ab1=(a1*k2+a2*k1)/(k2+k1)
ab2=(a1*k2-a2*k1)/(k2-k1)
bb1=(b1*k2+b2*k1)/(k2+k1)
bb2=(b1*k2-b2*k1)/(k2-k1)
print "ab1=";:print ab1;
print "   bb1=";:print bb1
print "ab2=";:print ab2;
print "   bb2=";:print bb2
input w
if w=1 then ab=ab1:bb=bb1:fi
if w=2 then ab=ab2:bb=bb2:fi
print "ab=";:print ab;
print "   bb=";:print bb
v=(b1-bb)^2/(a1^2+1)-xp^2-(bb-yp)^2
t=2*((a1-ab)*(b1-bb)/(a1^2+1)+ab*(yp-bb)+xp)
q=-(a1*ab+1)^2/(a1^2+1)
x01=(-t+sqrt(t^2-4*q*v))/(2*q)
y01=ab*x01+bb
x02=(-t-sqrt(t^2-4*q*v))/(2*q)
y02=ab*x02+bb
print "x1=";:print x01;
print "   y1=";:print y01
print "x2=";:print x02;
print "   y2=";:print y02
R1=sqrt((x01-xp)^2+(y01-yp)^2)
R2=sqrt((x02-xp)^2+(y02-yp)^2)
print "r1=";:print R1;
print "   r2=";:print R2

Результат расчетов следующий:

a1=5   b1=2
a2=1   b2=1
xp=3   yp=8
ab1=1.86852   bb1=1.21713
ab2=-0.535184   bb2=0.616204
?1
ab=1.86852   bb=1.21713
x1=2.68169   y1=6.22791
x2=4.98358   y2=10.529
r1=1.80045   r2=3.21412

В центре программы печатается "?1". Это единственное место в программе, где вводится ручное управление. Если w=1, то принимаем в формуле плюс, если w=2, то соответственно минус. Данная процедура легко выполняется при анализе наклонов заданных прямых (то есть знаков коэффициентов при иксе) и координат точки Р.
Пример, который я привел, был проверен геометрическими построениями циркулем и линейкой. Результаты полностью совпали.

8 февраля 2021 г.


Рецензии