unit Ufonctions; //uses interface //function distance (ax,ay,bx,by,cx,cy : integer):real; function distance (ax,ay,bx,by : double):double; function entre(v,l1,l2:double):boolean; function dist_proj_ortho(ax,ay,bx,by,mx,my : double):double; implementation function distance (ax,ay,bx,by : double):double; begin // result:=sqrt((cx-ax)*(cx-ax)+(cy-ay)*(cy-ay))+sqrt((cx-bx)*(cx-bx)+(cy-by)*(cy-by))-sqrt((bx-ax)*(bx-ax) + (by-ay)*(by-ay)); result:=sqrt(sqr(bx-ax) + sqr(by-ay)); end; function entre(v,l1,l2:double):boolean; begin result:=(l1<=v)and(v<=l2) or (l2<=v)and(v<=l1); end; function dist_proj_ortho(ax,ay,bx,by,mx,my : double):double; begin if ax=bx then result:=abs(mx-ax); if ay=by then result:=abs(my-ay); if (ax<>bx) and (ay<>by) then result:=abs(((by-ay)/(bx-ax))*(mx-ax)+ay-my)/sqrt(1+sqr((by-ay)/(bx-ax))); end; end.