Javascript : Calcul de coordonnées
neosqualls
-
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.
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.
A voir également:
- Javascript : Calcul de coordonnées
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Windows
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
3 réponses
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...
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...
est-ce que ceci http://cjoint.com/data/0KxxnqITeLB_calcul_de_coordonnees.pdf peut t'aider à résoudre le problème ?
Merci ta solution me semble maintenant évidente ! comme quoi un oeil neuf ... Merci à tous pour vos aides.