Javascript : Calcul de coordonnées

Fermé
neosqualls - 23 nov. 2012 à 22:22
 neosqualls - 24 nov. 2012 à 10:24
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
24 nov. 2012 à 01:56
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
Bonjour KX,

Merci ta solution me semble maintenant évidente ! comme quoi un oeil neuf ... Merci à tous pour vos aides.
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
23 nov. 2012 à 23:14
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 96 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 5 juillet 2013 4
Modifié par ngounou25 le 23/11/2012 à 23:09
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
Malheureusement je n'ai aucune connaissance en la matière ...
0