- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Finding distance between two points.

Question:

How can I find the distance between two points?

Answer:

The following example shows how to tell the distance between two

points. In this example, the caption of the form shows the current

point and distance from the center of the form. The y coordinates are

inverted to show a more natural north orientation where north is

directly up.



Example:



funcTion Distance(Pt1 : TPoint;

                  Pt2 : TPoint) : Double;

var

  dx : LongInt;

  dy : LongInt;

begin

  dx:= pt1.x - pt2.x;

  dy:= pt1.y - pt2.y;

  Result := Sqrt((Dx * Dx) + (Dy * Dy));

end;



procedure TForm1.FormMouseMove(Sender: TObject; Shift: 

TShiftState; X,  Y: Integer);

var

  Pt1 : TPoint;

  Pt2 : TPoint;

  Dist : Double;

begin

  Pt1.x :=  Form1.Width div 2;

  Pt1.y  :=  Form1.Height div 2;

  Pt2.x := x;

  Pt2.y := y;

  Dist := Distance(Pt1, Pt2);

  Form1.Caption := IntToStr(Pt2.x - Pt1.x) + #32 +

                   IntToStr(Pt1.y - Pt2.y) + ' = ' +

                   FloatToStr(Dist);

end;                  





procedure TForm1.FormPaint(Sender: TObject);

begin

  Form1.Canvas.MoveTo(Form1.Width div 2,

                      0);

  Form1.Canvas.LineTo(Form1.Width div 2,

                      Form1.Height);

  Form1.Canvas.MoveTo(0,

                      Form1.Height div 2);

  Form1.Canvas.LineTo(Form1.Width,

                      Form1.Height div 2);

end;



procedure TForm1.FormResize(Sender: TObject);

begin

  Invalidate;

end;




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile