Fonction distance entre deux points

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 732 fois - Téléchargée 31 fois

Contenu du snippet

Une petite fonction ki renvoi la distance entre 2 points en entier.

Source / Exemple :


function Distance(X, Y, X2, Y2: integer): integer;
begin
result := round(sqrt(sqr(X2-X)+sqr(Y2-Y)));
end;

A voir également

Ajouter un commentaire

Commentaires

tsainvet
Messages postés
95
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
14 décembre 2017

bon bin jai trouver ma solution bien que les chiffres a vigule il en veut pas

si vous avez une un solution

voici le code

unit Unit10;

interface

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

type
TForm10 = class(TForm)
Edit5: TEdit;
Button1: TButton;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit6: TEdit;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form10: TForm10;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
VAR
d: real;
ax, ay, bx, by, vitesse, temps: Extended;
heure, minute : Extended;
seconde : integer;
begin
ax := StrToInt(Edit1.Text);
ay := StrToInt(Edit2.Text);

bx := StrToInt(Edit3.Text);
by := StrToInt(Edit4.Text);
vitesse := StrToInt(Edit5.Text);

// calcul de la distance entre A et B
d := sqrt(power(ax - bx, 2) + power(ay - by, 2));

temps := d * vitesse;

heure := temps / 60 ;
minute := temps - (Floor(heure) * 60);
seconde := round((temps - (Floor(heure) * 60) - Floor(minute)) * 60);

DateTimePicker3.Time := DateTimePicker2.Time + (heure / 24);
DateTimePicker4.Date := DateTimePicker1.Date + (heure / 24);

Edit6.Text := IntToStr(Floor(heure))+' h '+
IntToStr(Floor(minute))+' min '+
IntToStr(seconde)+' sec';

end;


end.
tsainvet
Messages postés
95
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
14 décembre 2017

bonjour vous allez etres peut etre mes sauveur ?
voila jai une question ?
jai essayer vos formule mais j'obtien pas ce que je veux ?
j'explique rapido ce que je souhaite faire
jaimerais calculé la distance d'un point a un autre

sachant que le point est representé par un carré sur une grille de 200 par 200 carré


ex: village xa yb et je vais au village xb yb
je met 00:12 minute par carré a me deplacé

je part a une date et heure que je choisi

combien de temp je vais mettre et a quel heures j'arrive et a quel date

voila

exemple :


//cordonnées saisie dans un Tedit


village Tedit1 (xa) Tedit2 (ya)
village Tedit3 (xb) Tedit1 (yb)

//saisie du temp de déplacement en minute
temps dep tedit4 (00:12)
TM

//saisie heure de depart
heures dep tedit5(00:00:00)
HD

//saisie date de depart
date dep tedit6 (01 décembre 2009)
DDP

// afficHage calcule deplacement EN TEMP de (xa,yb) à (xb,yb)
AFICHAGE TDP tedit7(05:55:00)


//affichage heure arrivée
heure arrivée tedit9(00:00:00)
HAR

//affichage date arrivé
AR tedit8 (02 décembre 2009)



seriez vous m'expliqué comment je peu posé cela ?

j'y suis arrivé sous excel maissou delphi j'y arrive po
voici mon mail perso tsainvet@yahoo.fr si jamais vous auriez un petit exemple a me montrer ou juste pour d'autre info .. si vous y arrivé vous me sorté de la panade.

merci
fabiin
Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
bien vu :-)
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
26
Sachez qu'il existe une fonction dans la librairie Math.pas qui calcule l'hypoténuse, car il faut bien appeler les choses par leur nom, et qui renvoie un résultat de type Extended.
------------------------------------------------
Hypot calcule la longueur de l'hypoténuse.
Unité : Math
Catégorie : routines trigonométriques

function Hypot(X, Y: Extended): Extended;

soit :
Result := Hypot((X2-x), (Y2-Y));
fabiin
Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
lol ;)
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.