IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Construire un tableau hexagonale


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut Construire un tableau hexagonale
    Bonjour a tous , j'ai envie / besoin , de construire un tableau hexagonale

    Cad que chaque élément du tableau doit avoir 6 voisins . On peut stocker ce tableau sous la forme d'une tableau d'un type contenant les adresses des 6 voisins ... Le probléme est le remplissage de ce voisin , je dois m'arranger pour que l'ensemble soit cohérant et je ne vois pas du tous comment faire . Merci de votre aide .

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    tous ce que je sais sur le sujet c'est que c'était une méthode courante en stockage d'informations dans les entreprises d'imageries il y a pas mal d'années.
    Voilà un lien vers une thèse de quelqu'un qui a utilisé ce genre de maillage, demandes lui : Jean Carle http://www.laria.u-picardie.fr/Rubri...soutenues.html
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Tu peux coder ça dans un tableau à deux dimensions classique.
    Graphiquement, ça reviendrait à considérer qu'une ligne sur deux est décalée d'une demi-case.
    Les voisins d'une cellule (i,j) sont alors (i=ligne, j=colonne) :
    - (i-1, j-1+(i modulo 2))
    - (i-1, j+(i mod 2))
    - (i,j-1)
    - (i,j+1)
    - (i+1,j-1+(i mod 2))
    - (i+1,j+(i mod 2))
    Ceci en considérant que les lignes impaires sont décalées d'une demi-case vers la gauche par rapport aux lignes paires.

  4. #4
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Yo charly, cherche "système radiciel", cela va te donner des idées

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Par défaut
    Et il y aussi un ancien message ici
    http://www.developpez.net/forums/showthread.php?t=17474

  6. #6
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    ai donné réponse dans autre post:

    http://www.developpez.net/forums/sho...d.php?t=230592

  7. #7
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    Citation Envoyé par borisd
    Tu peux coder ça dans un tableau à deux dimensions classique.
    Graphiquement, ça reviendrait à considérer qu'une ligne sur deux est décalée d'une demi-case.
    Les voisins d'une cellule (i,j) sont alors (i=ligne, j=colonne) :
    - (i-1, j-1+(i modulo 2))
    - (i-1, j+(i mod 2))
    - (i,j-1)
    - (i,j+1)
    - (i+1,j-1+(i mod 2))
    - (i+1,j+(i mod 2))
    Ceci en considérant que les lignes impaires sont décalées d'une demi-case vers la gauche par rapport aux lignes paires.
    hello Boris, cette solution peut marcher, mais tout dépend de ce que tu veux faire avec. Si c'est juste récupérer les coordonnées, c'est bon.
    Perso, j'ai un algo qui considère qu'un hexagone = deux cases, une sur deux est remplie.
    Je gère deux référentiels : un référentiel de base dont le centre est le centre de ma grille, et un référentiel annexe, dont le centre est l'hexagone dont on veut trouver les voisins.
    Le référencement se fait en deux temps :
    1/ trouver les coordonnées de l'hexagone dont on veut les voisins dans le référentiel central
    2/ récupérer les voisins en utilisant un schéma fixe : se déplacer de case en case pour récupérer le contenu de chaque cellule et remplir un tableau des voisins.

    Est-ce que ça correspond à ce que tu cherche, Charly ?

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Je trouve ma proposition plutôt simple et efficace (accès direct à une cellule, calcul des voisins ne nécessitant pas d'initialisation, en O(1) et sans calcul complexe).
    Il est probable qu'elle ne réponde pas à toutes les exigences et il est toujours mieux d'avoir sous la main des solutions variées pour un même problème. Cela dit, on ne sait pas trop si nos réponses conviennent à Charly ?

  9. #9
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    sorry, mais solution pas la plus simple (cf autre post)

Discussions similaires

  1. [Tableaux] Construire un tableau de manière récursive
    Par eclipse012 dans le forum Langage
    Réponses: 26
    Dernier message: 23/01/2007, 15h59
  2. [XSLT] construire un tableau JavaScript
    Par Mike35 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/10/2006, 14h21
  3. [Tableaux] Construire un tableau compliqué
    Par Bomba dans le forum Langage
    Réponses: 5
    Dernier message: 08/06/2006, 16h38
  4. [HTML] Construire un tableau colonne par colonne ?
    Par Cthulhu 22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/05/2005, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo