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

  1. 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
    1. neosqualls
       
      Bonjour KX,

      Merci ta solution me semble maintenant évidente ! comme quoi un oeil neuf ... Merci à tous pour vos aides.
      0
  2. 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
  3. 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
    1. neosqualls
       
      Malheureusement je n'ai aucune connaissance en la matière ...
      0