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 :

symétries dans un hexagone


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut symétries dans un hexagone
    Bonjour,
    Je vous soumet un petit problème (j'ai une partie de la solution, mais je pense qu'il y a beaucoup moins couteux et plus élégant).
    J'ai un assemblage rectangulaire dans lequel je vais mettre des mailles. l'ensemble de ces mailles va former un hexagone, dans lequel j'aimerai pouvoir gérer des symétries.

    en dessin cela donne : chaque - représente une case vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    °° 1234567
    01 ---f---
    02 --f-f--
    03 -f-f-f-
    04 f-f-f-f
    05 -f-f-f-
    06 f-f-f-f
    07 -f-f-f-
    08 f-f-f-f
    09 -f-f-f-
    10 f-f-f-f
    11 -f-f-f-
    12 --f-f--
    13 ---f---
    La structure est réalisée avec des cases rectangulaires, ce qui lui donne un aspect moin "aplati" que sur mon dessin, mais bref, passons.
    Dans cette structure, il y a des cases équivalentes.
    Si je découpe l'hexagone formé en six, je vais avoir six cadrans symétriques. Par conséquent, il y a des cases équivalentes : si l'on s'aide des coordonnées de ligne/colonne de chaque case (chaque lettre dans mon schéma), cela donne : la case (13;4) est équivalente par symétrie médiane à la case (1;4).
    Si je prend un secteur de cet hexagone de 60° et que, pour la pointe de ce secteur (case (13;4)), je cherche toutes les cases équivalentes, je vais trouver : (1;10), (1;4) (4;1) (7;4) (7;10).

    La question du jour : trouver un algorithme simple qui me donne, connaissant la composition d'un secteur de 60° la composition de tout l'hexagone obtenue après rotation de ce secteur.
    Dans l'exemple que j'ai donné toutes les cases sont identiques, mais dans la réalité ce n'est pas toujours le cas.
    Faire la même chose pour tous les types de symétries possibles dans un hexagone, et toutes les rotations.

  2. #2
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    je fais remonter, ça n'a pas l'air d'inspirer grand monde...
    J'ai vu qu'il y avait des codes pour gérer les structures hexagonales, mais en s'aidant du voisin. A priori je ne peux pas les utiliser dans ce cas là, sauf si qq'un me prouve le contraire, ce qui m'arrangerait bien

  3. #3
    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
    Citation Envoyé par titpuce
    je fais remonter, ça n'a pas l'air d'inspirer grand monde...
    faudrait que tu expliques mieux en particulier "Si je prend un secteur de cet hexagone de 60° et que, pour la pointe de ce secteur (case (13;4)), je cherche toutes les cases équivalentes, je vais trouver : (1;10), (1;4) (4;1) (7;4) (7;10)."

    En particulier, je dirais la même chose qu'à Charly: cherche "système radiciel" --> il existe une "base" (u,v) qui te permet de placer tes hexagones et de travailler simplement avec tes rotations.

    Ensuite, il te suffit de passer de ta base (u,v) à ta base standard (x,y).

  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
    Considère la base (i,j) suivante:



    - le centre est un centre d'un hexagone choisi par toi
    - i est le vecteur qui relie ce centre au centre de l'hexagone voisin "de droite"
    - j est le vecteur qui relie ce centre au centre de l'hexagone voisin "en haut à droite" (l'angle (i,j) est donc de 60 degrés)

    Dans cette base, tous les centres des hexagones s'écrivent ai+bj ou i,j sont des entiers relatifs. Par exemple, en partant du centre

    ....j-i.....j
    -i......0.....i
    ....-j....i-j

    Travailler avec des rotations est alors plus simple dans cette base (=réseau radiciel associé à notre hexagone)

  5. #5
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    merci Nemerle
    Zai toujours pas compris ce qu'était un système radiciel, mais je suppose que c'est un autre référentiel de base... Google n'est pas très causant dessus....

    Si je comprends bien ton explication, je dois dans mon algo travailler d'abord en ne considérant que les hexagones.
    Mais si j'ai trois couronnes d'hexagones autour de ma cellule centrale, comment calculer les coordonnées selon ton système ?
    Si je veux les coordonnées des trois cellules situées sous la cellule centrale je calcule :
    Est-ce exact ?

  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
    Citation Envoyé par titpuce
    Mais si j'ai trois couronnes d'hexagones autour de ma cellule centrale, comment calculer les coordonnées selon ton système

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul de la distance dans un repère hexagonal non orthonormé.
    Par vatelien69 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 16/09/2012, 18h07
  2. symétrie d'un pixel dans une image
    Par bechir ouni dans le forum Images
    Réponses: 2
    Dernier message: 23/04/2012, 13h03
  3. Réponses: 4
    Dernier message: 01/03/2009, 13h07
  4. Réponses: 5
    Dernier message: 26/06/2008, 19h08
  5. Encerclement dans hexagone
    Par chris28200 dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 15/12/2006, 11h42

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