Даны две прямые и точка между ними
Итак, даны две прямые 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 г.
Свидетельство о публикации №221020800174