Calcul de distance avec des cases

Résolu
cs_cyber37 Messages postés 110 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 19 novembre 2010 - 16 juin 2007 à 18:01
tsainvet Messages postés 95 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 14 décembre 2017 - 13 mai 2009 à 00:57
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

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 2
16 juin 2007 à 18:44
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
3
cs_cyber37 Messages postés 110 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 19 novembre 2010
17 juin 2007 à 18:24
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
0
tsainvet Messages postés 95 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 14 décembre 2017
13 mai 2009 à 00:57
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 
0
Rejoignez-nous