Calculo da distancia entre dois pontos. Me ajudem

22/05/2003

2

Preciso fazer a seguinte conta :
RaizQuadrada ( 2 elev(x2-x1) + 2 elev(y2-y1) )

2 elev(x2-x1) = 2 elevado ao resultado de x2-x1.

Obrigado


Responder

Posts

Bom, a distância entre dois pontos é dada por -->
d=(((X2-X1)^2)+((Y2-Y1)^2)))^(1/2) onde ^ é o operador exponencial
em delphi isso fica da seguinte forma:

=========================
d:=sqrt(sqr(X2-X1)+sqr(y2-y1))
=========================

* a função sqrt retorna a raiz quadrada;
* a função sqr retorna o quadrado;

Caso voce queira ver como fica o projeto teste funcionando faça o seguinte: Crie um novo formulário e adicione quatro edits e um label e um botão. Apague tudo que estiver escrito na unit do form e cole o seguinte texto:

=============================================
unit unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var x1,x2,y1,y2,dis:currency;
begin
X1:=strtocurr(edit1.text);
X2:=strtocurr(edit3.text);
Y1:=strtocurr(edit2.text);
Y2:=strtocurr(edit4.text);
dis:=sqrt(sqr(X2-X1)+sqr(y2-y1));
label1.Caption :=currtostr(dis);
end;

end.
==========================================

Espero que isto resolva o seu problema!!!!


Responder