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.
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.
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---
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.
Partager