Bonjour à tous.
Allez, ce problème il est pour vous, mais si vous trouvez, ca m'aidera aussi. :id:
Le concept est très simple, il s'agit de faire un rubik's cube.
Bon, jvais pas vous demander ca. Ma question est plus précise, mais suffisamment large pour que vous ayiez le choix de la methode.
La voici : comment représenter le cube, de manière à pouvoir automatiser son comportement quelquesoit la face que l'on tourne.
Actuellement, je procède ainsi : le cube est composé de 26 petits cubes (8 sommets, 12 aretes, et 6 centres). Le cube est composé de 6 faces, et grossièrement, deux faces adjacentes partagent un même cube (un pointeur dira-t-on( respectivement trois cubes) ).
Jusque là conceptuellement tout va bien. Mais c'est après que ca chie. Lorsque l'on veut tourner le coté gauche du cube (peu importe le sens), nous appliquons une rotation de la face gauche, et les cubes avant la rotation ont pris la position d'autres cubes! Il s'agit alors de mettre à jour les pointeurs des faces (sinon en tournant la face de derrière, nous ne bougerions pas les bons cubes!) qui partageaient les cubes substitués.
Donc ici, un problème. Clairement le premier est la duplication de donnée, avec le cube partagé entre deux faces.
Deuxième problème : Lors de la numérotation des cubes, je procède ainsi. Un cube en bas a gauche, en bas au milieu, en bas a droite, milieu a gauche, centre, milieu a droite, haut gauche, haut milieu, haut droit.
je fais ca pour chaque face, en tournant le cube suivant z, pis pour les faces du dessus ou du dessous, je numérote en tournant suivant y.
Le problème, c'est que c'est pas du tout automatique, puisque si on rotate tout le cube suivant z mettons d'un quart de tour, alors on accede pas au même cube en accedant avec bas gauche pour la face du dessus que avant la rotation.
Sauriez-vous trouver un moyen de représentation permettant de s'affranchir de l'état d'un cube et de pouvoir rester relatif? (cad ne pas avoir à mettre à jour les "pointeurs" du cube, et si c'est le cas, que le traitement soit le même quelque soit la face qu'on tourne). De même, trouver un moyen de représentation permettant de pouvoir manipuler l'entourage relativement et non de manière absolue (bas gauche, etc)?
A vos cerveaux
Evidemment, on s'en sort, mais ca n'a rien de joli.
C'est aussi une occasion d'utiliser ses neurones pour qqch de concret!
ok, c'est qu'un pov rubik's cube :id:
Pour info, c'est pour tester la balise canvas du html5. Ce sera une belle occasion pour le getContext('3d') qui a l'air plutot sexy. M'enfin au pire une projo c'est pas la mort mais bon canvas quand tu nous tiens :zen: