Calculo da distancia entre dois pontos. Me ajudem
22/05/2003
0
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
RaizQuadrada ( 2 elev(x2-x1) + 2 elev(y2-y1) )
2 elev(x2-x1) = 2 elevado ao resultado de x2-x1.
Obrigado
Acardoso
Curtir tópico
+ 0
Responder
Posts
22/05/2003
Fábio Rodrigues
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!!!!
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
Clique aqui para fazer login e interagir na Comunidade :)