Calcul de distance avec des cases [Résolu]

Signaler
Messages postés
110
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2010
-
Messages postés
95
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
14 décembre 2017
-
voila bonjours a tous je me demande coment on fait pour calculer la distance entre 2 "cases"

enfin je veut faire un simulateur qui dit le nombres de cases entre la premiere et la 2 eme

en gros faire genre :

case (5-100) est a X cases de la case (20,58)
quand je dit case en faite c'est une position ^^ au debut je pensais que c'etait le calcul (avec l'exemple du dessus) : (5-20)+(-100+58)
(en gros chercher la diference entre 5 et 20 puis l'aditionner a la difference entre -100 et 58

en faisant par rapport a une feuille de tableur google la formule pour trouver le nombres de cases qui les separe est :

POWER(POWER(D45-D46;2,0)+POWER(E45-E46;2,0);0,5)

je sais pas trop comment expliquer en faite mais sa revien a faire comme sur se lien :
http://ulzbug.free.fr/calculator.xls
a la case J45

3 réponses

Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Salut !
Mais c'est tout soimplement le théorème de Pythagore ! A condition bien sûr que toutes tes cases aient même taille et soient carrées.
Dans ce cas:

<hr size="2" width="100%" />uses
  Math;

[...]

var
  X1, X2, Y1, Y2: Integer;
  Distance: Double;
begin
  Distance := Hypot(X1 - X2, Y1 - Y2)
end;
<hr size="2" width="100%" />Avec, dans ton cas, X1 5, Y1 -100, X2 = 20, Y2 = 58

N'est-ce pas trivial ?

A++
Flo
Messages postés
110
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
19 novembre 2010

a c'est juste pythagore ! que je suis bete ^^ en plus pythagore est le truck le plus simple (a la calculette bien sur lol car pour calculer les racinecaré a la main  ....) bref donc merci pour ta reponse et je vais tester ! merci
Messages postés
95
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
14 décembre 2017

voila si cela peu aidé  je suis sur la creation  dun outils de calcule pour  un jeu de strategie en ligne ..
qui etait  tribalwars  je suis actuelement entrain de le mettre a jours pour guerre tribal  et kingAge

peu etre trouvera tu  ce que tu a besoin dans ce peti bout de code ...

(( mettre  dans la liste des uses     math))

procedure TForm1.BitBtn1Click(Sender: TObject);
 VAR
  d,vitesse: real;
  ax, ay, bx, by,temps: Extended;
  heure, minute : Extended;
  seconde : integer;


  lancier:Real;
  lancier1:string;


begin


//************ ici on met la valeur  de déplacement  de l'unité choisi
lancier:=18
 lancier1:=FloatToStr(lancier);

//************************* ici  coordonnée  village ax ay


  ax := StrToInt(Edit1.Text);  
  ay := StrToInt(Edit2.Text);

//***************************ici coordonnée village by dy


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


  vitesse :=lancier;


//******************************************ici  on calcule  la distance entre les deux villages
   d := sqrt(power(ax - bx, 2) + power(ay - by, 2));


//******************************************ici on calcule  le temp de deplacement
  temps := d * vitesse;
  heure :=  temps / 60 ;
  minute := temps - (Floor(heure) * 60);
  seconde := round((temps - (Floor(heure) * 60) - Floor(minute)) * 60);


//********************************  ici on choisi la date et heure de depart et  on affiche le résulta
  
DateTimePicker3.Time := DateTimePicker2.Time + (heure / 24);
  DateTimePicker4.Date := DateTimePicker1.Date + (heure / 24);


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


end;

j'espere que ça aidera