40 lines
859 B
ObjectPascal

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.