Курсовая работа: Простая замкнутая ломаная кривая
a1:=2*(B.x-C.x)+2*k*(B.y-C.y);
b1:=2*b2*(B.y-C.y)+(sqr(C.x)-sqr(B.x))+(sqr(C.y)-sqr(B.y));
c1:=sqr(B.x-T.x)+sqr(B.y-T.y)-sqr(C.x-T.x)-sqr(C.y-T.y);
O.x:=(-c1-b1)/a1;
O.y:=k*O.x+b2;
end;
End;
{Функция истина если три точки лежат на одной прямой}
FUNCTION S_3(T,B,C:tochka):Boolean;
{Функция истина если точка Т принадлежит отрезку ВС}
Function Prin(T,B,C:tochka):boolean;
Begin
If S_3(T,B,C) then
if (((B.x<=T.x)and(T.x<=C.x)) or ((C.x<=T.x)and(T.x<=B.x))) and
(((B.y<=T.y)and(T.y<=C.y)) or ((C.y<=T.y)and(T.y<=B.y)))
then Prin:=true
else Prin:=false
elsePrin:=false
End;
{Возвращает расстояние между точкой и отрезком ВС}
Function R_TO(T,B,C:tochka):real;
Var T1:tochka;
Begin
Osn(T,B,C,T1);
If prin(T1,B,C) then R_TO:=R_tt(T1,T)
else if R_tt(T,B)<=R_tt(T,C) then R_TO:=R_tt(T,B)
else R_TO:=R_tt(T,C)
End;
{Строит ломанную через точки с номера n1 до n2}