[Réglé]Distance entre 2 hexagones - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Réglé]Distance entre 2 hexagones (/showthread.php?tid=1312) |
RE: Distance entre 2 hexagones - Scha - 21-06-2007 Je crois que j'ai compris le principe, mais j'aurai souhaité ne pas faire de géométrie pour ne pas alourdir la tache du serveur. Néanmoins, ta solution est peut-être effectivement la plus efficace, ou, tout du moins, la plus évolutive. Je ne sais pas trop comment "prendre les hexagones ou passe la droite", mais je suis peut-être trop fatigué. Merci, à bientôt. RE: Distance entre 2 hexagones - denisc - 21-06-2007 Scha a écrit :Et bien nous voilà donc avec 2 belles solutions. J'ai trouvé pourquoi... En fait, il faut décomposer le calcul. L'arrondi ne doit pas se faire à la fin, mais avant le calcul de la distance : On prend dX et dY comme convenu plus haut. Par contre, on prends dD = ENTIER (dY / 2) arrondi inférieur si dX paire et arrondi supérieur si dX impaire D= dX + dY - dD du coup, pour [3,3]=>[4,2] on a dX=1 impaire, dY=1 et dD=1 D=1+1-1=1 pour [3,0]=>[4,0] on a dX=1 impaire, dY=0 et dD=0 D=1+0-0=1 pour [2,0]=>[2,1] on a dX=0 paire, dY=1 et dD=0 D=0+1-0=0 pour [0,5] et [5,1] on a dX=5 impaire, dY=4 et dD=2 D=5+4-2=7 pour [0,5] et [5,2] on a dX=5 impaire, dY=3 et dD=2 D=5+3-2=6 pour [0,5] et [2,0] on a dX=2 paire, dY=5 et dD=2 D=2+5-2=5 RE: Distance entre 2 hexagones - denisc - 22-06-2007 On a donc les fonctions suivantes : Code PHP :
Bonne journée RE: Distance entre 2 hexagones - Scha - 22-06-2007 Hello, Non, désolé, ça ne fonctionne pas. Sur le coup, j'ai aussi pensé a un pb d'arrondi, mais quand on teste 3,0 vers 3,4, cela donne 2, au lieu de 4. La formule doit donc être un peu plus complexe, c'est dommage, elle me plaisait bien comme ça.:-) Je ne vais pas lâcher l'affaire, on est pas loin du bon code. Merci. RE: Distance entre 2 hexagones - denisc - 22-06-2007 On teste celui-ci??? Code PHP :
Ce qyui permet de gérer le cas particulier du X constant RE: Distance entre 2 hexagones - Scha - 22-06-2007 Prenons la case de départ A:2,2. La case 1,1 est adjacente a A et donne : dX=1, dY=1 La case 3,1 n'est pas adjacente a A. Pourtant, elle donne aussi dX=1 et dY=1. Il faut donc ajouter un paramètre à la formule, car dX et dY ne peuvent pas être suffisants... Mais je reconnais que je ne sais pas lequel... :-) Merci de ta patience. RE: Distance entre 2 hexagones - pascal - 22-06-2007 en utilisant la carte proposée par denis : dX = Xa - Xb; dY = Ya - Yb; D = racine( dX * dX + dY * dY) ( arrondi à l'entier supérieur si on ne tombe pas sur un entier[/php] ) A+ Pascal RE: Distance entre 2 hexagones - denisc - 22-06-2007 Ca ne marche pas non plus, qd dX = dY = 1, tu a D=2... Mais ça ne marche pas sur [1,1] [2,2] qui se touchent :/ RE: Distance entre 2 hexagones - pascal - 22-06-2007 denisc a écrit :Ca ne marche pas non plus, qd dX = dY = 1, tu a D=2... Mais ça ne marche pas sur [1,1] [2,2] qui se touchent :/ ça, c'est parce que le bord n'est pas droit. A+ Pascal RE: Distance entre 2 hexagones - denisc - 22-06-2007 En fait, j'ai fait quelques essais de calcul... Ma formule est correcte SAUF pour quelques cases adjacentes... |