Calcul de distance avec des cases [Résolu]

Messages postés
111
Date d'inscription
mardi 25 octobre 2005
Dernière intervention
19 novembre 2010
- 16 juin 2007 à 18:01 - Dernière réponse :
Messages postés
96
Date d'inscription
samedi 27 mars 2004
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
1105
Date d'inscription
dimanche 1 août 2004
Dernière intervention
17 août 2008
16 juin 2007 à 18:44
3
Merci
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

Merci florenth 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de florenth
Messages postés
111
Date d'inscription
mardi 25 octobre 2005
Dernière intervention
19 novembre 2010
17 juin 2007 à 18:24
0
Merci
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
Commenter la réponse de cs_cyber37
Messages postés
96
Date d'inscription
samedi 27 mars 2004
Dernière intervention
14 décembre 2017
13 mai 2009 à 00:57
0
Merci
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 
Commenter la réponse de tsainvet

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.