FONCTION DISTANCE ENTRE DEUX POINTS

Signaler
Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
-
Messages postés
95
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
14 décembre 2017
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11941-fonction-distance-entre-deux-points

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.
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
Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
bien vu :-)
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
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));
Afficher les 6 commentaires