Javascript : Calcul de coordonnées

neosqualls -  
 neosqualls -
Bonjour,

Je m'arrache les cheveux depuis plusieurs avec le problème suivant :

http://imageshack.us/photo/my-images/856/calfe.jpg/

Je cherche comment déterminer le nombre de case sur X et sur Y entre les deux carrés rouge (en gros les cases en bleues).

C'est plus compliqué qu'il n'y parait, la difficulté vient de la numérotation des cases ...

Merci par avance.

3 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Rien ne t'empêche de considérer implicitement une autre numérotation des cases.

Par exemple, pour chaque case (x,y) de ta numérotation actuelle tu considères la numérotation (X,Y)=(2x+y%2,y).

Avec cette nouvelle numérotation, il est facile de voir que pour aller de (X,Y) à (X',Y') il faut max(abs(X'-X),abs(Y'-Y))-1 cases bleues. En repassant dans la numérotation initiale cela donne donc : max(abs(2x'+y'%2-2x-y%2),abs(y'-y))-1

Exemple de ton dessin, (x,y)=(0,1) et (x',y')=(3,3) :
max(abs(2*3+3%2-2*0-1%2),abs(3-1))-1=max(6,2)-1=5

Il ne te reste plus qu'à comprendre, vérifier, et traduire en JavaScript...
1
neosqualls
 
Bonjour KX,

Merci ta solution me semble maintenant évidente ! comme quoi un oeil neuf ... Merci à tous pour vos aides.
0
Heliotte Messages postés 1561 Statut Membre 92
 
est-ce que ceci http://cjoint.com/data/0KxxnqITeLB_calcul_de_coordonnees.pdf peut t'aider à résoudre le problème ?
0
ngounou25 Messages postés 110 Statut Membre 4
 
Salut neosqualls.

j'ai une proposition de solution, mais son accessibilité dépend fortement ton niveau de connaissance en théorie des graphes. En as-tu déjà entendu parlée ? L'as-tu déjà abordée ?

-------------------
Cordialement
-1
neosqualls
 
Malheureusement je n'ai aucune connaissance en la matière ...
0