Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Projet d'un Rubik's cube en 3D | |
|
+7mindstorm Jack Jean Claude silverman Marc jjn4 Minibug 11 participants | |
Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Jeu 8 Sep 2022 - 23:17 | |
| Oui, tu poses la caméra en x,y,z avec CAM_POSITION x,y,z, et après tu la fais pointer à l'endroit indiqué par POINT_POSITION x,y,z ! Et voila !! | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Projet d'un Rubik's cube en 3D Ven 9 Sep 2022 - 8:14 | |
| - Minibug a écrit:
- - D'où ma question : serait t-il possible de 'rattacher' ces tuiles à une sorte de parent virtuel ?
- Il suffirait ensuite de déplacer ce parent en x y ou z et les tuiles suivraient le mouvement correspondant... ... ou bien il existe peut être déjà une solution... Il existe la commande 3D_CHAIN qui réalise cela. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Ven 9 Sep 2022 - 11:56 | |
| Bonjour Jack, Effectivement c'est un peu ça. Mais pas tout à fait !!! Je t'invite à lancer le source ci-dessous pour mieux comprendre et cliques sur TOURNER. Lorsque j'associe les faces elles gardent bien l'orientation me se 'détachent' les unes des autres... est ce qu'il serait possible de les 'souder' les unes aux autres et qu'elles restent 'collés' à la tuile qui est chainée ? En fait je voudrai faire tourner la couronne complète avec les 9 faces + celles des cotés. D'où l'idée de 'coller' les tuiles entre elles. Merci d'avance pour ta réponse PS : Code maj le 10.09.22 à 18h31 - Code:
-
' ------------------------------------------------------------------------------ ' Test de la 3D pour la création d'un RUBIK S CUBE ' Par Minibug et avec l'aide de Marc - Septembre 2022
' Code réalisé à partir du programme de Marc : ' https://panoramic.1fr1.net/t5843-objet-3d_plane-realisation-d-un-de-en-3d ' ------------------------------------------------------------------------------
declaration() creation_graphique()
POINT_POSITION 0,0,0
END
' ------------------------------------------------------------------------------
SUB declaration()
' couleur de la face r,v,b , rotation de la face X,Y,Z et position X,Y,Z des 9 tuiles de la faces DATA 0,250,250 , 0,0,0 , -10,-5,15 , -10,5,15 , -10,15,15 , 0,-5,15 , 0,5,15 , 0,15,15 , 10,-5,15 , 10,5,15 , 10,15,15 : ' Face avant DATA 0,250,0 , 0,180,0 , -10,-5,-15 , -10,5,-15 , -10,15,-15 , 0,-5,-15 , 0,5,-15 , 0,15,-15 , 10,-5,-15 , 10,5,-15 , 10,15,-15 : ' Face arriere DATA 0,0,250 , 270,0,0 , -10,-10,10 , 0,-10,10 , 10,-10,10 , -10,-10,0 , 0,-10,0 , 10,-10,0 , -10,-10,-10 , 0,-10,-10 , 10,-10,-10 : ' Face dessous DATA 250,250,0 , 90,0,0 , -10,20,10 , 0,20,10 , 10,20,10 , -10,20,0 , 0,20,0 , 10,20,0 , -10,20,-10 , 0,20,-10 , 10,20,-10 : ' Face dessus DATA 250,0,0 , 0,90,0 , 15,-5,10 , 15,5,10 , 15,15,10 , 15,-5,0 , 15,5,0 , 15,15,0 , 15,-5,-10 , 15,5,-10 , 15,15,-10 : ' Face droite DATA 250,0,250 , 0,-90,0 , -15,-5,10 , -15,5,10 , -15,15,10 , -15,-5,0 , -15,5,0 , -15,15,0 , -15,-5,-10 , -15,5,-10 , -15,15,-10 : ' Face gauche LABEL Move , Clic , Quit DIM no% , n% , face% , xcam% , ycam% , zcam% , rotx , roty DIM px%(54) , py%(54) , pz%(54) DIM clic% DIM Form% , Picture% , Image% , Scene% DIM BoutonAvant% , BoutonArriere% , BoutonGauche% , BoutonDroit% , BoutonDessus% , BoutonDessous% , BoutonTourner% END_SUB
' ------------------------------------------------------------------------------
SUB rotationFaceAvant() dim_local r% , n% ' Face avant 3D_CHAIN 1,5 : 3D_CHAIN 2,5 : 3D_CHAIN 3,5 : 3D_CHAIN 4,5 : 3D_CHAIN 6,5 : 3D_CHAIN 7,5 : 3D_CHAIN 8,5 : 3D_CHAIN 9,5 3D_CHAIN 19,5 : 3D_CHAIN 20,5 : 3D_CHAIN 21,5 : 3D_CHAIN 28,5 : 3D_CHAIN 29,5 : 3D_CHAIN 30,5 3D_CHAIN 37,5 : 3D_CHAIN 38,5 : 3D_CHAIN 39,5 : 3D_CHAIN 46,5 : 3D_CHAIN 47,5 : 3D_CHAIN 48,5
for r% = 0 to 90 STEP 9 for n% = 1 to 9 3d_z_rotate n%,r% PAUSE 1 next n% next r% 3D_CHAIN_BREAK 1,5 : 3D_CHAIN_BREAK 2,5 : 3D_CHAIN_BREAK 3,5 : 3D_CHAIN_BREAK 4,5 : 3D_CHAIN_BREAK 6,5 : 3D_CHAIN_BREAK 7,5 : 3D_CHAIN_BREAK 8,5 : 3D_CHAIN_BREAK 9,5 3D_CHAIN_BREAK 19,5 : 3D_CHAIN_BREAK 20,5 : 3D_CHAIN_BREAK 21,5 : 3D_CHAIN_BREAK 28,5 : 3D_CHAIN_BREAK 29,5 : 3D_CHAIN_BREAK 30,5 3D_CHAIN_BREAK 37,5 : 3D_CHAIN_BREAK 38,5 : 3D_CHAIN_BREAK 39,5 : 3D_CHAIN_BREAK 46,5 : 3D_CHAIN_BREAK 47,5 : 3D_CHAIN_BREAK 48,5
END_SUB
' ------------------------------------------------------------------------------
SUB creation_graphique()
DIM_LOCAL f%,i%,n% , r%,v%,b% , rtx%,rty%,rtz% , dx%,dy%,dz%
HEIGHT no%,800 : WIDTH no%,800 : ON_CLOSE no%, Quit : Form%=no% : no%=no%+1
PICTURE no% : HEIGHT no%,50 : WIDTH no%,50 : Picture%=no% : no%=no%+1 IMAGE no% : Image%=no% : no%=no%+1
SCENE3D no% : HEIGHT no%,800 : WIDTH no%,800 : COLOR no%,50,50,50 : ON_MOUSE_MOVE no%,Move Scene%=no% : no%=no%+1 FOR i%=1 TO 6 PANEL no% : LEFT no%,10 : TOP no%,717 : WIDTH no%,100 : HEIGHT no%,35 FONT_SIZE no%,12 : no%=no%+1 NEXT i% CAPTION no%-6,"Avant" : COLOR no%-6,50,250,250 : ON_CLICK no%-6,Clic : BoutonAvant%=no%-6 CAPTION no%-5,"Arrière" : COLOR no%-5,0,250,0 : LEFT no%-5,120 : ON_CLICK no%-5,Clic : BoutonArriere%=no%-5 CAPTION no%-4,"A gauche" : COLOR no%-4,250,0,250 : LEFT no%-4,230 : ON_CLICK no%-4,Clic : BoutonGauche%=no%-4 CAPTION no%-3,"A droite" : COLOR no%-3,250,0,0 : LEFT no%-3,340 : ON_CLICK no%-3,Clic : BoutonDroit%=no%-3 CAPTION no%-2,"Dessus" : COLOR no%-2,250,250,0 : LEFT no%-2,450 : ON_CLICK no%-2,Clic : BoutonDessus%=no%-2 CAPTION no%-1,"Dessous" : COLOR no%-1,0,0,250 : LEFT no%-1,560 : ON_CLICK no%-1,Clic : BoutonDessous%=no%-1 PANEL no% : LEFT no%,670 : TOP no%,717 : WIDTH no%,100 : HEIGHT no%,35 CAPTION no%,"Tourner" : FONT_SIZE no%,12 : ON_CLICK no%,Clic : BoutonTourner%=no% : no%=no%+1
2D_TARGET_IS Picture% : 2D_FILL_ON ' Création des tuiles FOR f%=1 TO 6 READ r% : READ v% : READ b% : READ rtx% : READ rty% : READ rtz% FOR i% = 1 TO 9 n%=n%+1 3D_PLANE n% : 3D_V_TILE n%,1 : 3D_U_TILE n%,1 2D_FILL_COLOR r%,v%,b% : 2D_RECTANGLE 2,2,48,48 2D_IMAGE_COPY Image%,0,0,50,50 : 3D_IMAGE_TEXTURE n%,Image% 3D_ROTATE n%,rtx%,rty%,rtz% READ px%(n%) : READ py%(n%) : READ pz%(n%) 3D_X_POSITION n%,px%(n%) : 3D_Y_POSITION n%,py%(n%) : 3D_Z_POSITION n%,pz%(n%) NEXT i% NEXT f% CAM_MOVE -50 END_SUB
' ------------------------------------------------------------------------------
Move: rotx=(MOUSE_X_POSITION(Scene%)/100) : roty=(MOUSE_Y_POSITION(Scene%)/100) xcam%=70*COS(rotx) : ycam%=70*COS(roty) : zcam%=70*SIN(rotx) CAM_POSITION xcam%,ycam%,zcam% CAPTION 0,STR$(xcam%)+" / "+STR$(ycam%)+" / "+STR$(zcam%)
RETURN
' ------------------------------------------------------------------------------
Clic:
clic%=NUMBER_CLICK POINT_POSITION 0,0,0 IF clic%=BoutonAvant% THEN CAM_Z_POSITION 50 : COLOR BoutonGauche%,250,0,250 : COLOR BoutonDroit%,250,0,0 : face%=1 IF clic%=BoutonArriere% THEN CAM_Z_POSITION -50 : COLOR BoutonDroit%,250,0,250 : COLOR BoutonGauche%,250,0,0 : face%=0 IF clic%=BoutonGauche% THEN IF face%=1 : CAM_X_POSITION -50 : ELSE : CAM_X_POSITION 50 : END_IF IF clic%=BoutonDroit% THEN IF face%=1 : CAM_X_POSITION 50 : ELSE : CAM_X_POSITION -50 : END_IF IF clic%=BoutonDessus% THEN CAM_Y_POSITION 50 IF clic%=BoutonDessous% THEN CAM_Y_POSITION -50 IF clic%=BoutonTourner% THEN rotationFaceAvant() RETURN ' ------------------------------------------------------------------------------
Quit:
TERMINATE RETURN
' ------------------------------------------------------------------------------
Dernière édition par Minibug le Sam 10 Sep 2022 - 18:31, édité 5 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 12:02 | |
| Au secours Marc... Je suis vraiment trop nul en trigonométrie !! Pourrais tu m'aider stp dans la gestion de la souris pour faire tourner le cube ? En fait je voudrai faire que la caméra suive 1 cercle autour de l'objet un peu sur le même principe qu'un satellite autour de la terre. On sait maintenant qu'avec la fonction POINT_POSITION 0,0,0 la caméra pointe automatiquement vers l'objet. Il s'agit donc de positionner la caméra sur le cercle en calculant la position de la souris en x y et z. Pour l'horizontale ça fonctionne. Par contre pour la verticale là je sèche complétement... Merci d'avance pour ton aide PS : je remet le source à jour sur le précédent post. il s'agit du sous programme Move entre les lignes 130 et140. | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 14:20 | |
| @Minibug: J'ai regardé ton code et il me parait compliqué. Tu utilises des faces de cubes élémentaires (3D_PLANE), ce qui va t'obliger à chaque rotation de 9 cubes de gérer toutes les faces et de les mémoriser pour savoir quel 3D_PLANE appartient à quelle face.
Ton code n'est pas totalement commenté et j'ai eu du mal à le comprendre. J'ai cru comprendre que ta face avant est constituée de 9 faces (les 3D_PLANE de 1 à 9), mais en fait, elle doit contenir aussi les faces des 8 cubes visibles adjacents, car quand tu vas tourner cette face avant, les 9 faces vont tourner, mais il faudra faire tourner aussi les 12 faces appartenant aux cubes appartenant à cette face avant ! Et dans ce cas, les 3D_PLANE qui appartiennent aux faces contiguës vont changer de face.
En fait une face ne contient pas 9 3D_PLANE, mais 21 !
Quand tu tournes la face AVANT (les 9 faces roses), 3 cubes de la face DROITE rouge vont devenir des cubes de la nouvelle face DESSUS jaune, et ainsi de suite. Et il faut mémoriser tout cela, car les faces ne correspondent plus à la définition des 3D_PLANES du début.
Il faut penser aussi que tu peux tourner dans le sens des aiguilles d'une montre, mais aussi dans le sens inverse !
Moi, j'aurais fait faire tout ce travail par panoramic, en utilisant des 3D_MESH, sur lesquels j'applique une couleur différente par face. Cela est possible en utilisant un logiciel d'UV Mapping sur sa texture (l'exemple type est un dé avec les points sur ses faces). Ainsi, on n'a plus besoin de gérer et mémoriser les faces quand le 3D_MESH tourne... _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 14:35 | |
| Bonjour Jack ! Merci pour tes précieux conseils. J'avoue qu'étant débutant en 3D, je ne maitrise pas grand chose. Je teste, j'essais, je tente de comprendre les mécanismes. Je vais me servir de tes conseils et voir comment organiser tout ça si j'en suis capable... Encore merci, bon weekend et à bientôt. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 15:55 | |
| Bonjour à tous ! - Minibug a écrit:
- En fait je voudrai faire que la caméra suive 1 cercle autour de l'objet un peu sur le même principe qu'un satellite autour de la terre.
Je n'ai pas réussi. dès que la caméra passe en dessous du plan x, elle inverse son image. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 18:38 | |
| Bonjour Marc, oui j'ai testé plusieurs paramétrages mais rien n'y fait ! J'arrive à déplacer le cube en X mais pas en Y. Du moins pas le tour complet... Peut être que si Papydall passe par là... Je sais qu'il maitrise bien ce genre de choses... Ou même peut être Jack lui même ou quelqu'un d'autre... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 22:05 | |
| Marc, j'ai vu ton message concernant un bug sur la fonction POINT_POSITION mais malgré cela je n'arrive pas a corriger le problème. Pourrais tu m'indiquer la marche à suivre pour le code ci-dessus stp. Merci. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 10 Sep 2022 - 23:47 | |
| @Minibug
J'ai fait différents essais, je n'ai pas réussi à faire faire le tour complet à la caméra dans le sens vertical.
Les valeurs semblent bien évoluer mais la caméra fait demi-tour alors qu'il ne faudrait pas.
Je vais essayer avec une autre maquette pour voir si j'ai le même problème.
EDIT : Je viens d'achever ma maquette de Rubik's cube. J'ai le même problème pour faire tourner la caméra.
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Dim 11 Sep 2022 - 8:37 | |
| Bonjour Marc
Et si on changeait la position de la caméra avec POINT_POSITION juste avant qu'elle fasse demi-tour ? il y aura peut être moyen d'y arriver...
Cela dit c'est quand même bizarre cette histoire !! Si Jack peut regarder... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Projet d'un Rubik's cube en 3D Dim 11 Sep 2022 - 11:16 | |
| Bonjour Minibug ! - Citation :
- Et si on changeait la position de la caméra avec POINT_POSITION juste avant qu'elle fasse demi-tour ?
La caméra doit rester pointée vers le centre de l'objet. L'inversion apparait dès que l'on franchit PI. (180°) Je vais faire un essai en excentrant le cube pour le placer dans le premier quadrant, c'est à dire dans l'espace évoluant entre 0 et PI/2. (0 à 90°) | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Projet d'un Rubik's cube en 3D Lun 12 Sep 2022 - 12:49 | |
| Je ne trouve pas utile de faire le tour de l'objet par rotation verticale, il suffit de bloquer l'angle vertical entre -90 et +90 degrés. Les faces du dessus et dessous seront visibles, et les autres aussi grace à la rotation horizontale. Voici un code tiré d'un exemple que j'avais fais pour TheGamer : - Code:
-
dim px,py,pz,distance dim phi,teta,obj
degrees
scene3d 1 full_space 1 axes_show color 1,0,0,0 ' cursor_hide 1
' représentation du rubik's cube 3d_cube 9,0.5 ' objets représentant les différentes positions de la cam obj=10 distance=2 ' élévation verticale for teta=-90 to 89 step 10 ' horizontal for phi=0 to 359 step 45 obj=obj+1 px=distance*cos(teta)*cos(phi) py=distance*sin(teta) pz=distance*cos(teta)*sin(phi) 3d_box obj,0.1,0.1,0.2 :' représentation de la cam 3d_position obj,px,py,pz :' en différentes positions 3d_point_object obj,9 :' regarder le rubik's cube; mettre en REM pour voir la différence ' placer la cam à la position de la box nouvellement crée pour voir ce qui se passe ' cam_position px,py,pz : light_position px,py,pz : point_object 9 :' regarder le rubik's cube display pause 50 next phi next teta Il montre comment placer la caméra dans l'espace 3D autours d'un objet et la pointer vers lui, façon satellite | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Lun 12 Sep 2022 - 17:53 | |
| Bonjour Silverman, Cela fait plaisir de te voir. Ta présence est rare de ce temps ! Merci pour ton exemple. Je vais tenter de m'en inspirer. | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Projet d'un Rubik's cube en 3D Mer 14 Sep 2022 - 21:05 | |
| bonjour Minibug et Bonjour à tous Cela me ramène quelques années en en arrière et je suis particulièrement rouillé. Si je peux me permettre modestement et si j'ai bien suivi le post... Je me suis toujours appliqué à construire l'objet avant de l'animer. Tu utilises des cubes sur lesquels tu applique une texture et ensuite c'est le travail d'assemblage (liaison entre objet) et seulement ensuite tu passe à l'animation. un exemple simple: - Code:
-
dim i,y ,a ,h$,mn$,sec$ ,m$,s$ rem créer un monde 3D scene3d 1
3D_mesh 10 3D_load_object 10,"roue.3DS" 3D_scale 10,0.8 ,0.8,0.8 3D_load_texture 10,"cylinder.bmp" 3d_position 10,1,0,0 3d_y_rotate 10,250 3d_z_rotate 10,324 3D_mesh 11 3D_load_object 11,"roue.3DS" 3D_scale 11,0.8 ,0.8,0.8 3D_load_texture 11,"cylinder.bmp" 3d_position 11,0.68,0,0 3d_y_rotate 11,250 3d_z_rotate 11,324 3D_mesh 12 3D_load_object 12,"roue.3DS" 3D_scale 12,0.8 ,0.8,0.8 3D_load_texture 12,"cylinder.bmp" 3d_position 12,0.36,0,0 3d_y_rotate 12,250 3d_z_rotate 12,324 3D_mesh 13 3D_load_object 13,"roue.3DS" 3D_scale 13,0.8 ,0.8,0.8 3D_load_texture 13,"cylinder.bmp" 3d_position 13,0.04,0,0 3d_y_rotate 13,250 3d_z_rotate 13,324
for i=1 to 25 h$=left$(time$,2) mn$=mid$(time$,4,1) m$=mid$(time$,5,1) s$=mid$(time$,7,1) sec$=right$(time$,1)[img][url=https://servimg.com/view/18190143/118][img]https://i.servimg.com/u/f66/18/19/01/43/th/compte10.jpg[/img][/url][/img] pause 1000 3D_z_rotate 10,((val(sec$)-1)*36) 3D_z_rotate 11,((val(s$)-1)*36) 3D_z_rotate 12,((val(m$)-1)*36) 3D_z_rotate 13,((val(mn$)-1)*36)
next i pour le faire tourner il faut télécharger les éléments sur mon webdav mais c'est le code qui compte! enfin une petite image Pour t'aider une petite image de l’intérieur du cube, tu remarqueras le mécanisme interne qui vas te permettre de coder les liaisons entre chaque cube. Bon courage | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Jeu 15 Sep 2022 - 8:20 | |
| Bonjour Mindstorm, Merci pour tes conseils et ton code. Je vais regarder tout ça. Comme je l'ai expliqué plus haut, je ne suis pas du tout connaisseur en 3D et donc je découvre un peu plus chaque jour. Concernant les objets 3DS je ne sais pas s'il existe des outils gratuits ? De plus j'imagine qu'il me faudra utiliser pas mal de tutos pour comprendre... Et en plus les vacances sont finies, j'ai donc moins de temps à consacrer au projet ! | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Projet d'un Rubik's cube en 3D Jeu 15 Sep 2022 - 11:04 | |
| - Minibug a écrit:
- Cela fait plaisir de te voir. Ta présence est rare de ce temps !
Bien que peu actif, je jette toujours un coup d'oeil de temps en temps Je ne pense pas qu'un lociel de 3D soit nécéssaire pour ce projet. Chainer des planes revient à fabriquer un objet 3D. Il faut 3 planes pour obtenir un coin, 2 pour l'entre-deux coin et 1 pour le centre. Ca donne 4*3 + 4*2 +1 planes pour créer une couronne de 9 objets. Et pour la couronne centrale il faut 4*2 + 4 planes qui donne 8 objets. Au total pour les 3 couronnres, ça fera 53 planes pour 26 objets. La difficulté réside à mon avis dans le chainage des planes qui doit être réalisé dans un ordre précis pour obtenir un objet qui se place bien naturellement. Le coin haut/avant/droit n'est pas le coin haut/avant/gauche par exemple, donc le chainage doit bien être fait différement. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Jeu 15 Sep 2022 - 17:22 | |
| Salut Silverman, Ben en fait je suis ce que dit Jack : - Citation :
- Moi, j'aurais fait faire tout ce travail par panoramic, en utilisant des 3D_MESH, sur lesquels j'applique une couleur différente par face.
- Silverman a écrit:
- Je ne pense pas qu'un lociel de 3D soit nécéssaire pour ce projet. Chainer des planes revient à fabriquer un objet 3D.
C'est ce que j'ai fait dans le code enregistré dans les messages ci-dessus. (voir page précédente). Sauf que le chainage de Panoramic ne permet pas le déplacement de l'ensemble. C'est pour ça que j'envisage un objet 3D_MESH... Donc pour créer les objets 3D_MESH il faut un logiciel... Et c'est vrai que comme ça c'est plus simple pour le déplacement comme le montre aussi l'exemple de Mindstorm... Donc pour le moment je suis un peu au point mort ! | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Projet d'un Rubik's cube en 3D Jeu 15 Sep 2022 - 19:52 | |
| OUPS N'allons pas trop loin dans mon exemple le cylindre est fait en 3DS car il n'existe pas dans Panoramic. Pour ton projet, quelques cubes et à mon avis, une sphère serons suffisants. Ensuite un coup de logiciel de dessin ou mieux pour les puriste Panoramic et c'est tout. Je suis ton projet dans la mesure de mon temps libre mais je suis là. La 3D de Panoramic est très puissante avec une approche ludique. Sois sur que tu n'as pas beaucoup de lignes de code à écrire. Courage
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Ven 16 Sep 2022 - 7:21 | |
| Bonjour Mindstorm et bonjour à tous ! Ce qui pose problème n'est pas la création du cube mais son déplacement... Comme le montre le code du message ci dessus ! Lance le code et clique sur le bouton Tourner et tu comprendra... Même si les tuiles sont chainées entre elles, elles ne se déplacent pas dans le bon plan de la couronne. Il faudra donc recalculer la position de chaque tuile ! C'est pour cela que je parle de 3D_MESH comme l'indiqué Jack lui-même dans un poste ci-dessus ! Cela simplifiera le déplacement des différentes tuiles.
Dernière édition par Minibug le Ven 16 Sep 2022 - 7:28, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Ven 16 Sep 2022 - 7:21 | |
| | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Projet d'un Rubik's cube en 3D Ven 16 Sep 2022 - 23:04 | |
| Bonjour à tous ! @Minibug Salut Laurent ! Je viens d’animer la face droite du cube. Voilà qui vient s’ajouter à la face avant qui était déjà faite. Je n’ai pas continué depuis ton code-source du tout début. J’ai préféré travaillé sur une nouvelle base. Voici un de mes documents de travail pour aider à la compréhension ainsi qu’une démo avec animation des faces avant et droite. - Document de travail:
- Code:
-
dim angle% dim x%,y%,z% dim xp%,yp%,zp% dim xCamera%, yCamera%, zCamera%
degrees
creerInterfacegraphique()
cam_position 30,27,43 rotationFaceAvant() rotationFaceDroite()
end ' ------------------------------------------------------------------------------ sub rotationFaceDroite() dim_local r% ' Face droite [R] (coordonnées (z,y,x))
for r% = 0 to 360 3d_z_rotate 11,r% 3d_z_position 11,sqr(200)*cos(45+r%*(-1)) 3d_y_position 11,sqr(200)*sin(45+r%*(-1))
3d_z_rotate 12,r% 3d_z_position 12,10*cos(90+r%*(-1)) 3d_y_position 12,10*sin(90+r%*(-1))
3d_z_rotate 13,r% 3d_z_position 13,sqr(200)*cos(135+r%*(-1)) 3d_y_position 13,sqr(200)*sin(135+r%*(-1))
3d_z_rotate 14,r% 3d_z_position 14,10*cos(180+r%*(-1)) 3d_y_position 14,10*sin(180+r%*(-1))
3d_z_rotate 15,r% :' centre face droite [R]
3d_z_rotate 16,r% 3d_z_position 16,10*cos(r%*(-1)) 3d_y_position 16,10*sin(r%*(-1))
3d_z_rotate 17,r% 3d_z_position 17,sqr(200)*cos(-45+r%*(-1)) 3d_y_position 17,sqr(200)*sin(-45+r%*(-1))
3d_z_rotate 18,r% 3d_z_position 18,10*cos(-90+r%*(-1)) 3d_y_position 18,10*sin(-90+r%*(-1))
3d_z_rotate 19,r% 3d_z_position 19,sqr(200)*cos(-135+r%*(-1)) 3d_y_position 19,sqr(200)*sin(-135+r%*(-1))
' facettes adjacentes du dessus 3d_x_rotate 59,90-r% 3d_z_position 59,sqr(325)*cos(90-atn(10/15)+r%*(-1)) 3d_y_position 59,sqr(325)*sin(90-atn(10/15)+r%*(-1))
3d_x_rotate 56,90-r% 3d_z_position 56,sqr(225)*cos(90+r%*(-1)) 3d_y_position 56,sqr(225)*sin(90+r%*(-1))
3d_x_rotate 53,90-r% 3d_z_position 53,sqr(325)*cos(90+atn(10/15)+r%*(-1)) 3d_y_position 53,sqr(325)*sin(90+atn(10/15)+r%*(-1))
' facettes adjacentes de droite 3d_x_rotate 21,r% 3d_z_position 21,sqr(325)*cos(90+atn(15/10)+r%*(-1)) 3d_y_position 21,sqr(325)*sin(90+atn(15/10)+r%*(-1)) 3d_x_rotate 24,r% 3d_z_position 24,sqr(225)*cos(180+r%*(-1)) 3d_y_position 24,sqr(225)*sin(180+r%*(-1))
3d_x_rotate 27,r% 3d_z_position 27,sqr(325)*cos(180+atn(10/15)+r%*(-1)) 3d_y_position 27,sqr(325)*sin(180+atn(10/15)+r%*(-1)) pause 5
' facettes adjacentes de gauche 3d_x_rotate 3,r%*(-1) 3d_z_position 3,sqr(325)*cos(atn(10/15)+r%*(-1)) 3d_y_position 3,sqr(325)*sin(atn(10/15)+r%*(-1))
3d_x_rotate 6,r%*(-1) 3d_z_position 6,sqr(225)*cos(r%*(-1)) 3d_y_position 6,sqr(225)*sin(r%*(-1))
3d_x_rotate 9,r%*(-1) 3d_z_position 9,sqr(325)*cos(270+atn(15/10)+r%*(-1)) 3d_y_position 9,sqr(325)*sin(270+atn(15/10)+r%*(-1))
' facettes adjacentes de dessous 3d_x_rotate 43,270+r%*(-1) 3d_z_position 43,sqr(325)*cos(270+atn(10/15)+r%*(-1)) 3d_y_position 43,sqr(325)*sin(270+atn(10/15)+r%*(-1))
3d_x_rotate 46,270+r%*(-1) 3d_z_position 46,sqr(225)*cos(-90+r%*(-1)) 3d_y_position 46,sqr(225)*sin(-90+r%*(-1))
3d_x_rotate 49,270+r%*(-1) 3d_z_position 49,sqr(325)*cos(270-atn(10/15)+r%*(-1)) 3d_y_position 49,sqr(325)*sin(270-atn(10/15)+r%*(-1)) pause 20 next r% end_sub
' ------------------------------------------------------------------------------
sub rotationFaceAvant() dim_local r% ' Face avant [F](coordonnees (x,y,z))
for r% = 0 to 360 3d_z_rotate 1,r% 3d_x_position 1,sqr(200)*cos(135+R%) 3d_y_position 1,sqr(200)*sin(135+R%)
3d_z_rotate 2,r% 3d_x_position 2,10*cos(90+R%) 3d_y_position 2,10*sin(90+R%)
3d_z_rotate 3,r% 3d_x_position 3,sqr(200)*cos(45+R%) 3d_y_position 3,sqr(200)*sin(45+R%)
3d_z_rotate 4,r% 3d_x_position 4,10*cos(180+R%) 3d_y_position 4,10*sin(180+R%)
3d_z_rotate 5,r% :' centre face avant [F]
3d_z_rotate 6,r% 3d_x_position 6,10*cos(R%) 3d_y_position 6,10*sin(R%)
3d_z_rotate 7,r% 3d_x_position 7,sqr(200)*cos(-135+R%) 3d_y_position 7,sqr(200)*sin(-135+R%)
3d_z_rotate 8,r% 3d_x_position 8,10*cos(-90+R%) 3d_y_position 8,10*sin(-90+R%)
3d_z_rotate 9,r% 3d_x_position 9,sqr(200)*cos(-45+R%) 3d_y_position 9,sqr(200)*sin(-45+R%)
3d_y_rotate 57,r%*(-1) 3d_x_position 57,sqr(325)*cos(180-atn(15/10)+R%) 3d_y_position 57,sqr(325)*sin(180-atn(15/10)+R%)
3d_y_rotate 58,r%*(-1) 3d_x_position 58,sqr(225)*cos(90+R%) 3d_y_position 58,sqr(225)*sin(90+R%)
3d_y_rotate 59,r%*(-1) 3d_x_position 59,sqr(325)*cos(atn(15/10)+R%) 3d_y_position 59,sqr(325)*sin(atn(15/10)+R%)
3d_x_rotate 11,r% 3d_x_position 11,sqr(325)*cos(atn(10/15)+R%) 3d_y_position 11,sqr(325)*sin(atn(10/15)+R%) 3d_x_rotate 14,r% 3d_x_position 14,sqr(225)*cos(R%) 3d_y_position 14,sqr(225)*sin(R%)
3d_x_rotate 17,r% 3d_x_position 17,sqr(325)*cos(atn(10/15)*(-1)+R%) 3d_y_position 17,sqr(325)*sin(atn(10/15)*(-1)+R%)
3d_x_rotate 33,r%*(-1) 3d_x_position 33,sqr(325)*cos(180-atn(10/15)+R%) 3d_y_position 33,sqr(325)*sin(180-atn(10/15)+R%)
3d_x_rotate 36,r%*(-1) 3d_x_position 36,sqr(225)*cos(180+R%) 3d_y_position 36,sqr(225)*sin(180+R%)
3d_x_rotate 39,r%*(-1) 3d_x_position 39,sqr(325)*cos(180+atn(10/15)+R%) 3d_y_position 39,sqr(325)*sin(180+atn(10/15)+R%)
3d_y_rotate 41,r% 3d_x_position 41,sqr(325)*cos(270-atn(10/15)+R%) 3d_y_position 41,sqr(325)*sin(270-atn(10/15)+R%)
3d_y_rotate 42,r% 3d_x_position 42,sqr(225)*cos(-90+R%) 3d_y_position 42,sqr(225)*sin(-90+R%)
3d_y_rotate 43,r% 3d_x_position 43,sqr(325)*cos(270+atn(10/15)+R%) 3d_y_position 43,sqr(325)*sin(270+atn(10/15)+R%) pause 20 next r% end_sub ' ------------------------------------------------------------------------------ sub creerInterfacegraphique() height 0,800 width 0,800 creerFacettes()
creerScene3D()
creerFaceRouge() creerFaceVerte() creerFaceBleue() creerFaceOrange() creerFaceJaune() creerFaceBlanche() end_sub ' ------------------------------------------------------------------------------ sub creerFacettes() picture 1 width 1,50 height 1,50 color 1,20,20,20 creerModeleFacetteRouge() creerModeleFacetteVerte() creerModeleFacetteBleue() creerModeleFacetteOrange() creerModeleFacetteJaune() creerModeleFacetteBlanche() end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteRouge() 2d_pen_color 242,80,80 dessinerContourFacette() 2d_flood 15,15,232,40,40 image 2 2d_image_copy 2,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteVerte() 2d_pen_color 80,242,80 dessinerContourFacette() 2d_flood 15,15,40,232,40 image 3 2d_image_copy 3,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteBleue() 2d_pen_color 80,80,242 dessinerContourFacette() 2d_flood 15,15,40,40,232 image 4 2d_image_copy 4,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteOrange() 2d_pen_color 200,80,10 dessinerContourFacette() 2d_flood 15,15,220,100,20 image 5 2d_image_copy 5,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteJaune() 2d_pen_color 255,255,10 dessinerContourFacette() 2d_flood 15,15,245,245,0 image 6 2d_image_copy 6,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteBlanche() 2d_pen_color 255,255,255 dessinerContourFacette() 2d_flood 15,15,245,245,245 image 7 2d_image_copy 7,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub dessinerContourFacette() 2d_line 8,3,42,3 2d_line 42,4,44,4 2d_point 44,5 2d_line 45,6,45,8 2d_line 46,8,46,42 2d_line 45,42,45,44 2d_point 44,44 2d_line 42,45,44,45 2d_line 8,46,42,46 2d_line 6,45,8,45 2d_point 5,44 2d_line 4,42,4,44 2d_line 3,8,3,42 2d_line 4,6,4,8 2d_point 5,5 2d_line 6,4,8,4 end_sub ' ------------------------------------------------------------------------------ sub creerScene3D() scene3d 10 full_space 10 color 10,10,10,10 ' positionnement caméra cam_move -50 end_sub ' ------------------------------------------------------------------------------ sub creerFaceRouge() 3d_plane 1 3d_v_tile 1,1 3d_u_tile 1,1 3d_image_texture 1,2 3d_x_position 1,-10 3d_y_position 1,10 3d_z_position 1,15
3d_plane 2 3d_v_tile 2,1 3d_u_tile 2,1 3d_image_texture 2,2 3d_x_position 2,0 3d_y_position 2,10 3d_z_position 2,15 3d_plane 3 3d_v_tile 3,1 3d_u_tile 3,1 3d_image_texture 3,2 3d_x_position 3,10 3d_y_position 3,10 3d_z_position 3,15
3d_plane 4 3d_v_tile 4,1 3d_u_tile 4,1 3d_image_texture 4,2 3d_x_position 4,-10 3d_y_position 4,0 3d_z_position 4,15
3d_plane 5 3d_v_tile 5,1 3d_u_tile 5,1 3d_image_texture 5,2 3d_x_position 5,0 3d_y_position 5,0 3d_z_position 5,15
3d_plane 6 3d_v_tile 6,1 3d_u_tile 6,1 3d_image_texture 6,2 3d_x_position 6,10 3d_y_position 6,0 3d_z_position 6,15
3d_plane 7 3d_v_tile 7,1 3d_u_tile 7,1 3d_image_texture 7,2 3d_x_position 7,-10 3d_y_position 7,-10 3d_z_position 7,15
3d_plane 8 3d_v_tile 8,1 3d_u_tile 8,1 3d_image_texture 8,2 3d_x_position 8,0 3d_y_position 8,-10 3d_z_position 8,15
3d_plane 9 3d_v_tile 9,1 3d_u_tile 9,1 3d_image_texture 9,2 3d_x_position 9,10 3d_y_position 9,-10 3d_z_position 9,15 end_sub ' ------------------------------------------------------------------------------ sub creerFaceVerte() 3d_plane 31 3d_v_tile 31,1 3d_u_tile 31,1 3d_image_texture 31,3 3d_x_position 31,-15 3d_y_position 31,10 3d_z_position 31,-10 3d_y_rotate 31,-90
3d_plane 32 3d_v_tile 32,1 3d_u_tile 32,1 3d_image_texture 32,3 3d_x_position 32,-15 3d_y_position 32,10 3d_z_position 32,0 3d_y_rotate 32,-90 3d_plane 33 3d_v_tile 33,1 3d_u_tile 33,1 3d_image_texture 33,3 3d_x_position 33,-15 3d_y_position 33,10 3d_z_position 33,10 3d_y_rotate 33,-90
3d_plane 34 3d_v_tile 34,1 3d_u_tile 34,1 3d_image_texture 34,3 3d_x_position 34,-15 3d_y_position 34,0 3d_z_position 34,-10 3d_y_rotate 34,-90
3d_plane 35 3d_v_tile 35,1 3d_u_tile 35,1 3d_image_texture 35,3 3d_x_position 35,-15 3d_y_position 35,0 3d_z_position 35,0 3d_y_rotate 35,-90
3d_plane 36 3d_v_tile 36,1 3d_u_tile 36,1 3d_image_texture 36,3 3d_x_position 36,-15 3d_y_position 36,0 3d_z_position 36,10 3d_y_rotate 36,-90
3d_plane 37 3d_v_tile 37,1 3d_u_tile 37,1 3d_image_texture 37,3 3d_x_position 37,-15 3d_y_position 37,-10 3d_z_position 37,-10 3d_y_rotate 37,-90
3d_plane 38 3d_v_tile 38,1 3d_u_tile 38,1 3d_image_texture 38,3 3d_x_position 38,-15 3d_y_position 38,-10 3d_z_position 38,0 3d_y_rotate 38,-90
3d_plane 39 3d_v_tile 39,1 3d_u_tile 39,1 3d_image_texture 39,3 3d_x_position 39,-15 3d_y_position 39,-10 3d_z_position 39,10 3d_y_rotate 39,-90 end_sub ' ------------------------------------------------------------------------------ sub creerFaceBleue() 3d_plane 11 3d_v_tile 11,1 3d_u_tile 11,1 3d_image_texture 11,4 3d_x_position 11,15 3d_y_position 11,10 3d_z_position 11,10 3d_y_rotate 11,90
3d_plane 12 3d_v_tile 12,1 3d_u_tile 12,1 3d_image_texture 12,4 3d_x_position 12,15 3d_y_position 12,10 3d_z_position 12,0 3d_y_rotate 12,90 3d_plane 13 3d_v_tile 13,1 3d_u_tile 13,1 3d_image_texture 13,4 3d_x_position 13,15 3d_y_position 13,10 3d_z_position 13,-10 3d_y_rotate 13,90
3d_plane 14 3d_v_tile 14,1 3d_u_tile 14,1 3d_image_texture 14,4 3d_x_position 14,15 3d_y_position 14,0 3d_z_position 14,10 3d_y_rotate 14,90
3d_plane 15 3d_v_tile 15,1 3d_u_tile 15,1 3d_image_texture 15,4 3d_x_position 15,15 3d_y_position 15,0 3d_z_position 15,0 3d_y_rotate 15,90
3d_plane 16 3d_v_tile 16,1 3d_u_tile 16,1 3d_image_texture 16,4 3d_x_position 16,15 3d_y_position 16,0 3d_z_position 16,-10 3d_y_rotate 16,90
3d_plane 17 3d_v_tile 17,1 3d_u_tile 17,1 3d_image_texture 17,4 3d_x_position 17,15 3d_y_position 17,-10 3d_z_position 17,10 3d_y_rotate 17,90
3d_plane 18 3d_v_tile 18,1 3d_u_tile 18,1 3d_image_texture 18,4 3d_x_position 18,15 3d_y_position 18,-10 3d_z_position 18,0 3d_y_rotate 18,90
3d_plane 19 3d_v_tile 19,1 3d_u_tile 19,1 3d_image_texture 19,4 3d_x_position 19,15 3d_y_position 19,-10 3d_z_position 19,-10 3d_y_rotate 19,90 end_sub ' ------------------------------------------------------------------------------ sub creerFaceOrange() 3d_plane 21 3d_v_tile 21,1 3d_u_tile 21,1 3d_image_texture 21,5 3d_x_position 21,10 3d_y_position 21,10 3d_z_position 21,-15 3d_y_rotate 21,180
3d_plane 22 3d_v_tile 22,1 3d_u_tile 22,1 3d_image_texture 22,5 3d_x_position 22,0 3d_y_position 22,10 3d_z_position 22,-15 3d_y_rotate 22,180 3d_plane 23 3d_v_tile 23,1 3d_u_tile 23,1 3d_image_texture 23,5 3d_x_position 23,-10 3d_y_position 23,10 3d_z_position 23,-15 3d_y_rotate 23,180
3d_plane 24 3d_v_tile 24,1 3d_u_tile 24,1 3d_image_texture 24,5 3d_x_position 24,10 3d_y_position 24,0 3d_z_position 24,-15 3d_y_rotate 24,180
3d_plane 25 3d_v_tile 25,1 3d_u_tile 25,1 3d_image_texture 25,5 3d_x_position 25,0 3d_y_position 25,0 3d_z_position 25,-15 3d_y_rotate 25,180
3d_plane 26 3d_v_tile 26,1 3d_u_tile 26,1 3d_image_texture 26,5 3d_x_position 26,-10 3d_y_position 26,0 3d_z_position 26,-15 3d_y_rotate 26,180
3d_plane 27 3d_v_tile 27,1 3d_u_tile 27,1 3d_image_texture 27,5 3d_x_position 27,10 3d_y_position 27,-10 3d_z_position 27,-15 3d_y_rotate 27,180
3d_plane 28 3d_v_tile 28,1 3d_u_tile 28,1 3d_image_texture 28,5 3d_x_position 28,0 3d_y_position 28,-10 3d_z_position 28,-15 3d_y_rotate 28,180
3d_plane 29 3d_v_tile 29,1 3d_u_tile 29,1 3d_image_texture 29,5 3d_x_position 29,-10 3d_y_position 29,-10 3d_z_position 29,-15 3d_y_rotate 29,180 end_sub ' ------------------------------------------------------------------------------ sub creerFaceJaune() 3d_plane 41 3d_v_tile 41,1 3d_u_tile 41,1 3d_image_texture 41,6 3d_x_position 41,-10 3d_y_position 41,-15 3d_z_position 41,10 3d_x_rotate 41,-90
3d_plane 42 3d_v_tile 42,1 3d_u_tile 42,1 3d_image_texture 42,6 3d_x_position 42,0 3d_y_position 42,-15 3d_z_position 42,10 3d_x_rotate 42,-90 3d_plane 43 3d_v_tile 43,1 3d_u_tile 43,1 3d_image_texture 43,6 3d_x_position 43,10 3d_y_position 43,-15 3d_z_position 43,10 3d_x_rotate 43,-90
3d_plane 44 3d_v_tile 44,1 3d_u_tile 44,1 3d_image_texture 44,6 3d_x_position 44,-10 3d_y_position 44,-15 3d_z_position 44,0 3d_x_rotate 44,-90
3d_plane 45 3d_v_tile 45,1 3d_u_tile 45,1 3d_image_texture 45,6 3d_x_position 45,0 3d_y_position 45,-15 3d_z_position 45,0 3d_x_rotate 45,-90
3d_plane 46 3d_v_tile 46,1 3d_u_tile 46,1 3d_image_texture 46,6 3d_x_position 46,10 3d_y_position 46,-15 3d_z_position 46,0 3d_x_rotate 46,-90
3d_plane 47 3d_v_tile 47,1 3d_u_tile 47,1 3d_image_texture 47,6 3d_x_position 47,-10 3d_y_position 47,-15 3d_z_position 47,-10 3d_x_rotate 47,-90
3d_plane 48 3d_v_tile 48,1 3d_u_tile 48,1 3d_image_texture 48,6 3d_x_position 48,0 3d_y_position 48,-15 3d_z_position 48,-10 3d_x_rotate 48,-90
3d_plane 49 3d_v_tile 49,1 3d_u_tile 49,1 3d_image_texture 49,6 3d_x_position 49,10 3d_y_position 49,-15 3d_z_position 49,-10 3d_x_rotate 49,-90 end_sub ' ------------------------------------------------------------------------------ sub creerFaceBlanche() 3d_plane 51 3d_v_tile 51,1 3d_u_tile 51,1 3d_image_texture 51,7 3d_x_position 51,-10 3d_y_position 51,15 3d_z_position 51,-10 3d_x_rotate 51,90
3d_plane 52 3d_v_tile 52,1 3d_u_tile 52,1 3d_image_texture 52,7 3d_x_position 52,0 3d_y_position 52,15 3d_z_position 52,-10 3d_x_rotate 52,90 3d_plane 53 3d_v_tile 53,1 3d_u_tile 53,1 3d_image_texture 53,7 3d_x_position 53,10 3d_y_position 53,15 3d_z_position 53,-10 3d_x_rotate 53,90
3d_plane 54 3d_v_tile 54,1 3d_u_tile 54,1 3d_image_texture 54,7 3d_x_position 54,-10 3d_y_position 54,15 3d_z_position 54,0 3d_x_rotate 54,90
3d_plane 55 3d_v_tile 55,1 3d_u_tile 55,1 3d_image_texture 55,7 3d_x_position 55,0 3d_y_position 55,15 3d_z_position 55,0 3d_x_rotate 55,90
3d_plane 56 3d_v_tile 56,1 3d_u_tile 56,1 3d_image_texture 56,7 3d_x_position 56,10 3d_y_position 56,15 3d_z_position 56,0 3d_x_rotate 56,90
3d_plane 57 3d_v_tile 57,1 3d_u_tile 57,1 3d_image_texture 57,7 3d_x_position 57,-10 3d_y_position 57,15 3d_z_position 57,10 3d_x_rotate 57,90
3d_plane 58 3d_v_tile 58,1 3d_u_tile 58,1 3d_image_texture 58,7 3d_x_position 58,0 3d_y_position 58,15 3d_z_position 58,10 3d_x_rotate 58,90
3d_plane 59 3d_v_tile 59,1 3d_u_tile 59,1 3d_image_texture 59,7 3d_x_position 59,10 3d_y_position 59,15 3d_z_position 59,10 3d_x_rotate 59,90 end_sub Le code-source est brut. J’ai préféré travailler en degrés plutôt qu’en radians. Dans les différents calculs, il y a surement des simplifications à apporter... Pour l’instant, je n’ai pas essayé la préconisation de Jack qui recommande d’utiliser des 3D_MESH. Cette solution serait plus simple avec beaucoup moins de calculs et d'objets à déplacer. A suivre… | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 17 Sep 2022 - 9:39 | |
| bonjour Marc et bonjour à tous Oui effectivement belle réalisation. Belle finition. Bravo ! Concernant le déplacement c'est parfait. Mais si on déplace seulement d'un quart de tour comment ça va se passer sur les autres face ? Elles ne correspondent plus ! Et ça c'est un problème. Vu les possibilité de déplacements des éléments du cube, cette solution ne semble pas viable. j'ai une autre idée pour les déplacements mais je ne sais pas si c'est réalisable ! - Il faut que chaque tuile de chaque face soit numérotée (soit 6*9=54 éléments) pour connaitre son emplacement. - Pour chaque déplacement on créer une boite ou on pose une texture qui reprend chaque couleur de chaque tuile qui va être déplacer. - On cache les tuiles qui vont être déplacées et on remplace par la boite avec les textures des tuiles (en fait on fait une pseudo couronne avec 1 seule boite) - On déplace la boite dans le sens voulu (1/2 tour, 1/4 de tour, etc) - On change et on mémorise la couleur des tuiles qui ont été déplacer - On retire le boite qu'on a créé pour le déplacement - On affiche de nouveau les tuiles déplacées selon leurs nouvelles positions. Ce qui simplifie grandement le code car il n'y a plus qu'un seul déplacement. Je ne sais pas si mon explication est très clair. je vais déjà tester le principe des textures sur une boite. pour voir si cela est réalisable... Si c'est le cas, je pense qu'avec IMAGE et PICTURE on doit arriver à faire quelques chose. Le plus compliqué sera de mettre en mémoire les numéros des tuiles en fonction du déplacement. Mais cela reste certainement plus simple que le recalcule du déplacement des tuiles. Voilà mon idée ! Pour Marc et ceux qui maitrise la 3D, dites moi ce que vous en pensez et si d'après vous c'est réalisable ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 17 Sep 2022 - 12:26 | |
| - Minibug a écrit:
- Mais si on déplace seulement d'un quart de tour comment ça va se passer sur les autres face ? Elles ne correspondent plus !
Et ça c'est un problème. Vu les possibilité de déplacements des éléments du cube, cette solution ne semble pas viable. Pour l’instant je ne fais que le mécanisme des mouvements. La mémorisation des emplacements des facettes viendra dans un second temps…si j’y arrive ! Il faut donc faire une rotation complète de 360° pour ne pas mélanger des facettes. Voici le code-source avec la couronne supérieure opérationnelle. - Code:
-
degrees
creerInterfacegraphique()
cam_position 30,27,43 rotationFaceAvant() rotationFaceDroite() rotationFaceDessus() end ' ------------------------------------------------------------------------------ sub rotationFaceDessus() dim_local r% ' Face dessus [U] (coordonnées (x,z,y))
for r% = 0 to 360 3d_z_rotate 57,r% 3d_x_position 57,sqr(200)*cos(135-R%) 3d_z_position 57,sqr(200)*sin(135-R%)
3d_z_rotate 58,r% 3d_x_position 58,10*cos(90-R%) 3d_z_position 58,10*sin(90-R%)
3d_z_rotate 59,r% 3d_x_position 59,sqr(200)*cos(45-R%) 3d_z_position 59,sqr(200)*sin(45-R%)
3d_z_rotate 54,r% 3d_x_position 54,10*cos(180-R%) 3d_z_position 54,10*sin(180-R%)
3d_z_rotate 55,r% :' centre face avant [U]
3d_z_rotate 56,r% 3d_x_position 56,10*cos(R%*(-1)) 3d_z_position 56,10*sin(R%*(-1))
3d_z_rotate 51,r% 3d_x_position 51,sqr(200)*cos(225-R%) 3d_z_position 51,sqr(200)*sin(225-R%)
3d_z_rotate 52,r% 3d_x_position 52,10*cos(-90-R%) 3d_z_position 52,10*sin(-90-R%)
3d_z_rotate 53,r% 3d_x_position 53,sqr(200)*cos(-45-R%) 3d_z_position 53,sqr(200)*sin(-45-R%)
' facettes adjacentes à droite 3d_y_rotate 11,r%+90 3d_x_position 11,sqr(325)*cos(90-atn(15/10)+r%*(-1)) 3d_z_position 11,sqr(325)*sin(90-atn(15/10)+r%*(-1))
3d_y_rotate 12,r%+90 3d_x_position 12,sqr(225)*cos(r%*(-1)) 3d_z_position 12,sqr(225)*sin(r%*(-1))
3d_y_rotate 13,r%+90 3d_x_position 13,sqr(325)*cos(270+atn(15/10)+r%*(-1)) 3d_z_position 13,sqr(325)*sin(270+atn(15/10)+r%*(-1))
' facettes adjacentes à gauche 3d_y_rotate 31,r%-90 3d_x_position 31,sqr(325)*cos(180+atn(10/15)+r%*(-1)) 3d_z_position 31,sqr(325)*sin(180+atn(10/15)+r%*(-1))
3d_y_rotate 32,r%-90 3d_x_position 32,sqr(225)*cos(180+r%*(-1)) 3d_z_position 32,sqr(225)*sin(180+r%*(-1))
3d_y_rotate 33,r%-90 3d_x_position 33,sqr(325)*cos(180+atn(10/15)*(-1)+r%*(-1)) 3d_z_position 33,sqr(325)*sin(180+atn(10/15)*(-1)+r%*(-1))
' facettes adjacentes de dessus 3d_y_rotate 23,r%-180 3d_x_position 23,sqr(325)*cos(270+atn(10/15)+r%*(-1)) 3d_z_position 23,sqr(325)*sin(270+atn(10/15)+r%*(-1))
3d_y_rotate 22,r%-180 3d_x_position 22,sqr(225)*cos(270+r%*(-1)) 3d_z_position 22,sqr(225)*sin(270+r%*(-1))
3d_y_rotate 21,r%-180 3d_x_position 21,sqr(325)*cos(270-atn(10/15)+r%*(-1)) 3d_z_position 21,sqr(325)*sin(270-atn(10/15)+r%*(-1))
' facettes adjacentes de dessous 3d_y_rotate 1,r% 3d_x_position 1,sqr(325)*cos(90+atn(10/15)+r%*(-1)) 3d_z_position 1,sqr(325)*sin(90+atn(10/15)+r%*(-1))
3d_y_rotate 2,r% 3d_x_position 2,sqr(225)*cos(90+r%*(-1)) 3d_z_position 2,sqr(225)*sin(90+r%*(-1))
3d_y_rotate 3,r% 3d_x_position 3,sqr(325)*cos(90-atn(10/15)+r%*(-1)) 3d_z_position 3,sqr(325)*sin(90-atn(10/15)+r%*(-1)) pause 20 next r% end_sub ' ------------------------------------------------------------------------------ sub rotationFaceDroite() dim_local r% ' Face droite [R] (coordonnées (z,y,x))
for r% = 0 to 360 3d_z_rotate 11,r% 3d_z_position 11,sqr(200)*cos(45+r%*(-1)) 3d_y_position 11,sqr(200)*sin(45+r%*(-1))
3d_z_rotate 12,r% 3d_z_position 12,10*cos(90+r%*(-1)) 3d_y_position 12,10*sin(90+r%*(-1))
3d_z_rotate 13,r% 3d_z_position 13,sqr(200)*cos(135+r%*(-1)) 3d_y_position 13,sqr(200)*sin(135+r%*(-1))
3d_z_rotate 14,r% 3d_z_position 14,10*cos(180+r%*(-1)) 3d_y_position 14,10*sin(180+r%*(-1))
3d_z_rotate 15,r% :' centre face droite [R]
3d_z_rotate 16,r% 3d_z_position 16,10*cos(r%*(-1)) 3d_y_position 16,10*sin(r%*(-1))
3d_z_rotate 17,r% 3d_z_position 17,sqr(200)*cos(-45+r%*(-1)) 3d_y_position 17,sqr(200)*sin(-45+r%*(-1))
3d_z_rotate 18,r% 3d_z_position 18,10*cos(-90+r%*(-1)) 3d_y_position 18,10*sin(-90+r%*(-1))
3d_z_rotate 19,r% 3d_z_position 19,sqr(200)*cos(-135+r%*(-1)) 3d_y_position 19,sqr(200)*sin(-135+r%*(-1))
' facettes adjacentes du dessus 3d_x_rotate 59,90-r% 3d_z_position 59,sqr(325)*cos(90-atn(10/15)+r%*(-1)) 3d_y_position 59,sqr(325)*sin(90-atn(10/15)+r%*(-1))
3d_x_rotate 56,90-r% 3d_z_position 56,sqr(225)*cos(90+r%*(-1)) 3d_y_position 56,sqr(225)*sin(90+r%*(-1))
3d_x_rotate 53,90-r% 3d_z_position 53,sqr(325)*cos(90+atn(10/15)+r%*(-1)) 3d_y_position 53,sqr(325)*sin(90+atn(10/15)+r%*(-1))
' facettes adjacentes de droite 3d_x_rotate 21,r% 3d_z_position 21,sqr(325)*cos(90+atn(15/10)+r%*(-1)) 3d_y_position 21,sqr(325)*sin(90+atn(15/10)+r%*(-1)) 3d_x_rotate 24,r% 3d_z_position 24,sqr(225)*cos(180+r%*(-1)) 3d_y_position 24,sqr(225)*sin(180+r%*(-1))
3d_x_rotate 27,r% 3d_z_position 27,sqr(325)*cos(180+atn(10/15)+r%*(-1)) 3d_y_position 27,sqr(325)*sin(180+atn(10/15)+r%*(-1)) pause 5
' facettes adjacentes de gauche 3d_x_rotate 3,r%*(-1) 3d_z_position 3,sqr(325)*cos(atn(10/15)+r%*(-1)) 3d_y_position 3,sqr(325)*sin(atn(10/15)+r%*(-1))
3d_x_rotate 6,r%*(-1) 3d_z_position 6,sqr(225)*cos(r%*(-1)) 3d_y_position 6,sqr(225)*sin(r%*(-1))
3d_x_rotate 9,r%*(-1) 3d_z_position 9,sqr(325)*cos(270+atn(15/10)+r%*(-1)) 3d_y_position 9,sqr(325)*sin(270+atn(15/10)+r%*(-1))
' facettes adjacentes de dessous 3d_x_rotate 43,270+r%*(-1) 3d_z_position 43,sqr(325)*cos(270+atn(10/15)+r%*(-1)) 3d_y_position 43,sqr(325)*sin(270+atn(10/15)+r%*(-1))
3d_x_rotate 46,270+r%*(-1) 3d_z_position 46,sqr(225)*cos(-90+r%*(-1)) 3d_y_position 46,sqr(225)*sin(-90+r%*(-1))
3d_x_rotate 49,270+r%*(-1) 3d_z_position 49,sqr(325)*cos(270-atn(10/15)+r%*(-1)) 3d_y_position 49,sqr(325)*sin(270-atn(10/15)+r%*(-1)) pause 20 next r% end_sub
' ------------------------------------------------------------------------------
sub rotationFaceAvant() dim_local r% ' Face avant [F](coordonnees (x,y,z))
for r% = 0 to 360 3d_z_rotate 1,r% 3d_x_position 1,sqr(200)*cos(135+R%) 3d_y_position 1,sqr(200)*sin(135+R%)
3d_z_rotate 2,r% 3d_x_position 2,10*cos(90+R%) 3d_y_position 2,10*sin(90+R%)
3d_z_rotate 3,r% 3d_x_position 3,sqr(200)*cos(45+R%) 3d_y_position 3,sqr(200)*sin(45+R%)
3d_z_rotate 4,r% 3d_x_position 4,10*cos(180+R%) 3d_y_position 4,10*sin(180+R%)
3d_z_rotate 5,r% :' centre face avant [F]
3d_z_rotate 6,r% 3d_x_position 6,10*cos(R%) 3d_y_position 6,10*sin(R%)
3d_z_rotate 7,r% 3d_x_position 7,sqr(200)*cos(-135+R%) 3d_y_position 7,sqr(200)*sin(-135+R%)
3d_z_rotate 8,r% 3d_x_position 8,10*cos(-90+R%) 3d_y_position 8,10*sin(-90+R%)
3d_z_rotate 9,r% 3d_x_position 9,sqr(200)*cos(-45+R%) 3d_y_position 9,sqr(200)*sin(-45+R%)
3d_y_rotate 57,r%*(-1) 3d_x_position 57,sqr(325)*cos(180-atn(15/10)+R%) 3d_y_position 57,sqr(325)*sin(180-atn(15/10)+R%)
3d_y_rotate 58,r%*(-1) 3d_x_position 58,sqr(225)*cos(90+R%) 3d_y_position 58,sqr(225)*sin(90+R%)
3d_y_rotate 59,r%*(-1) 3d_x_position 59,sqr(325)*cos(atn(15/10)+R%) 3d_y_position 59,sqr(325)*sin(atn(15/10)+R%)
3d_x_rotate 11,r% 3d_x_position 11,sqr(325)*cos(atn(10/15)+R%) 3d_y_position 11,sqr(325)*sin(atn(10/15)+R%) 3d_x_rotate 14,r% 3d_x_position 14,sqr(225)*cos(R%) 3d_y_position 14,sqr(225)*sin(R%)
3d_x_rotate 17,r% 3d_x_position 17,sqr(325)*cos(atn(10/15)*(-1)+R%) 3d_y_position 17,sqr(325)*sin(atn(10/15)*(-1)+R%)
3d_x_rotate 33,r%*(-1) 3d_x_position 33,sqr(325)*cos(180-atn(10/15)+R%) 3d_y_position 33,sqr(325)*sin(180-atn(10/15)+R%)
3d_x_rotate 36,r%*(-1) 3d_x_position 36,sqr(225)*cos(180+R%) 3d_y_position 36,sqr(225)*sin(180+R%)
3d_x_rotate 39,r%*(-1) 3d_x_position 39,sqr(325)*cos(180+atn(10/15)+R%) 3d_y_position 39,sqr(325)*sin(180+atn(10/15)+R%)
3d_y_rotate 41,r% 3d_x_position 41,sqr(325)*cos(270-atn(10/15)+R%) 3d_y_position 41,sqr(325)*sin(270-atn(10/15)+R%)
3d_y_rotate 42,r% 3d_x_position 42,sqr(225)*cos(-90+R%) 3d_y_position 42,sqr(225)*sin(-90+R%)
3d_y_rotate 43,r% 3d_x_position 43,sqr(325)*cos(270+atn(10/15)+R%) 3d_y_position 43,sqr(325)*sin(270+atn(10/15)+R%) pause 20 next r% end_sub ' ------------------------------------------------------------------------------ sub creerInterfacegraphique() height 0,800 width 0,800 creerFacettes()
creerScene3D()
creerFaceRouge() creerFaceVerte() creerFaceBleue() creerFaceOrange() creerFaceJaune() creerFaceBlanche() end_sub ' ------------------------------------------------------------------------------ sub creerFacettes() picture 1 width 1,50 height 1,50 color 1,20,20,20 creerModeleFacetteRouge() creerModeleFacetteVerte() creerModeleFacetteBleue() creerModeleFacetteOrange() creerModeleFacetteJaune() creerModeleFacetteBlanche() end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteRouge() 2d_pen_color 242,80,80 dessinerContourFacette() 2d_flood 15,15,232,40,40 image 2 2d_image_copy 2,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteVerte() 2d_pen_color 80,242,80 dessinerContourFacette() 2d_flood 15,15,40,232,40 image 3 2d_image_copy 3,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteBleue() 2d_pen_color 80,80,242 dessinerContourFacette() 2d_flood 15,15,40,40,232 image 4 2d_image_copy 4,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteOrange() 2d_pen_color 200,80,10 dessinerContourFacette() 2d_flood 15,15,220,100,20 image 5 2d_image_copy 5,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteJaune() 2d_pen_color 255,255,10 dessinerContourFacette() 2d_flood 15,15,245,245,0 image 6 2d_image_copy 6,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub creerModeleFacetteBlanche() 2d_pen_color 255,255,255 dessinerContourFacette() 2d_flood 15,15,245,245,245 image 7 2d_image_copy 7,0,0,50,50 end_sub ' ------------------------------------------------------------------------------ sub dessinerContourFacette() 2d_line 8,3,42,3 2d_line 42,4,44,4 2d_point 44,5 2d_line 45,6,45,8 2d_line 46,8,46,42 2d_line 45,42,45,44 2d_point 44,44 2d_line 42,45,44,45 2d_line 8,46,42,46 2d_line 6,45,8,45 2d_point 5,44 2d_line 4,42,4,44 2d_line 3,8,3,42 2d_line 4,6,4,8 2d_point 5,5 2d_line 6,4,8,4 end_sub ' ------------------------------------------------------------------------------ sub creerScene3D() scene3d 10 full_space 10 color 10,10,10,10 ' positionnement caméra cam_move -50 end_sub ' ------------------------------------------------------------------------------ sub creerFaceRouge() 3d_plane 1 3d_v_tile 1,1 3d_u_tile 1,1 3d_image_texture 1,2 3d_x_position 1,-10 3d_y_position 1,10 3d_z_position 1,15
3d_plane 2 3d_v_tile 2,1 3d_u_tile 2,1 3d_image_texture 2,2 3d_x_position 2,0 3d_y_position 2,10 3d_z_position 2,15 3d_plane 3 3d_v_tile 3,1 3d_u_tile 3,1 3d_image_texture 3,2 3d_x_position 3,10 3d_y_position 3,10 3d_z_position 3,15
3d_plane 4 3d_v_tile 4,1 3d_u_tile 4,1 3d_image_texture 4,2 3d_x_position 4,-10 3d_y_position 4,0 3d_z_position 4,15
3d_plane 5 3d_v_tile 5,1 3d_u_tile 5,1 3d_image_texture 5,2 3d_x_position 5,0 3d_y_position 5,0 3d_z_position 5,15
3d_plane 6 3d_v_tile 6,1 3d_u_tile 6,1 3d_image_texture 6,2 3d_x_position 6,10 3d_y_position 6,0 3d_z_position 6,15
3d_plane 7 3d_v_tile 7,1 3d_u_tile 7,1 3d_image_texture 7,2 3d_x_position 7,-10 3d_y_position 7,-10 3d_z_position 7,15
3d_plane 8 3d_v_tile 8,1 3d_u_tile 8,1 3d_image_texture 8,2 3d_x_position 8,0 3d_y_position 8,-10 3d_z_position 8,15
3d_plane 9 3d_v_tile 9,1 3d_u_tile 9,1 3d_image_texture 9,2 3d_x_position 9,10 3d_y_position 9,-10 3d_z_position 9,15 end_sub ' ------------------------------------------------------------------------------ sub creerFaceVerte() 3d_plane 31 3d_v_tile 31,1 3d_u_tile 31,1 3d_image_texture 31,3 3d_x_position 31,-15 3d_y_position 31,10 3d_z_position 31,-10 3d_y_rotate 31,-90
3d_plane 32 3d_v_tile 32,1 3d_u_tile 32,1 3d_image_texture 32,3 3d_x_position 32,-15 3d_y_position 32,10 3d_z_position 32,0 3d_y_rotate 32,-90 3d_plane 33 3d_v_tile 33,1 3d_u_tile 33,1 3d_image_texture 33,3 3d_x_position 33,-15 3d_y_position 33,10 3d_z_position 33,10 3d_y_rotate 33,-90
3d_plane 34 3d_v_tile 34,1 3d_u_tile 34,1 3d_image_texture 34,3 3d_x_position 34,-15 3d_y_position 34,0 3d_z_position 34,-10 3d_y_rotate 34,-90
3d_plane 35 3d_v_tile 35,1 3d_u_tile 35,1 3d_image_texture 35,3 3d_x_position 35,-15 3d_y_position 35,0 3d_z_position 35,0 3d_y_rotate 35,-90
3d_plane 36 3d_v_tile 36,1 3d_u_tile 36,1 3d_image_texture 36,3 3d_x_position 36,-15 3d_y_position 36,0 3d_z_position 36,10 3d_y_rotate 36,-90
3d_plane 37 3d_v_tile 37,1 3d_u_tile 37,1 3d_image_texture 37,3 3d_x_position 37,-15 3d_y_position 37,-10 3d_z_position 37,-10 3d_y_rotate 37,-90
3d_plane 38 3d_v_tile 38,1 3d_u_tile 38,1 3d_image_texture 38,3 3d_x_position 38,-15 3d_y_position 38,-10 3d_z_position 38,0 3d_y_rotate 38,-90
3d_plane 39 3d_v_tile 39,1 3d_u_tile 39,1 3d_image_texture 39,3 3d_x_position 39,-15 3d_y_position 39,-10 3d_z_position 39,10 3d_y_rotate 39,-90 end_sub ' ------------------------------------------------------------------------------ sub creerFaceBleue() 3d_plane 11 3d_v_tile 11,1 3d_u_tile 11,1 3d_image_texture 11,4 3d_x_position 11,15 3d_y_position 11,10 3d_z_position 11,10 3d_y_rotate 11,90
3d_plane 12 3d_v_tile 12,1 3d_u_tile 12,1 3d_image_texture 12,4 3d_x_position 12,15 3d_y_position 12,10 3d_z_position 12,0 3d_y_rotate 12,90 3d_plane 13 3d_v_tile 13,1 3d_u_tile 13,1 3d_image_texture 13,4 3d_x_position 13,15 3d_y_position 13,10 3d_z_position 13,-10 3d_y_rotate 13,90
3d_plane 14 3d_v_tile 14,1 3d_u_tile 14,1 3d_image_texture 14,4 3d_x_position 14,15 3d_y_position 14,0 3d_z_position 14,10 3d_y_rotate 14,90
3d_plane 15 3d_v_tile 15,1 3d_u_tile 15,1 3d_image_texture 15,4 3d_x_position 15,15 3d_y_position 15,0 3d_z_position 15,0 3d_y_rotate 15,90
3d_plane 16 3d_v_tile 16,1 3d_u_tile 16,1 3d_image_texture 16,4 3d_x_position 16,15 3d_y_position 16,0 3d_z_position 16,-10 3d_y_rotate 16,90
3d_plane 17 3d_v_tile 17,1 3d_u_tile 17,1 3d_image_texture 17,4 3d_x_position 17,15 3d_y_position 17,-10 3d_z_position 17,10 3d_y_rotate 17,90
3d_plane 18 3d_v_tile 18,1 3d_u_tile 18,1 3d_image_texture 18,4 3d_x_position 18,15 3d_y_position 18,-10 3d_z_position 18,0 3d_y_rotate 18,90
3d_plane 19 3d_v_tile 19,1 3d_u_tile 19,1 3d_image_texture 19,4 3d_x_position 19,15 3d_y_position 19,-10 3d_z_position 19,-10 3d_y_rotate 19,90 end_sub ' ------------------------------------------------------------------------------ sub creerFaceOrange() 3d_plane 21 3d_v_tile 21,1 3d_u_tile 21,1 3d_image_texture 21,5 3d_x_position 21,10 3d_y_position 21,10 3d_z_position 21,-15 3d_y_rotate 21,180
3d_plane 22 3d_v_tile 22,1 3d_u_tile 22,1 3d_image_texture 22,5 3d_x_position 22,0 3d_y_position 22,10 3d_z_position 22,-15 3d_y_rotate 22,180 3d_plane 23 3d_v_tile 23,1 3d_u_tile 23,1 3d_image_texture 23,5 3d_x_position 23,-10 3d_y_position 23,10 3d_z_position 23,-15 3d_y_rotate 23,180
3d_plane 24 3d_v_tile 24,1 3d_u_tile 24,1 3d_image_texture 24,5 3d_x_position 24,10 3d_y_position 24,0 3d_z_position 24,-15 3d_y_rotate 24,180
3d_plane 25 3d_v_tile 25,1 3d_u_tile 25,1 3d_image_texture 25,5 3d_x_position 25,0 3d_y_position 25,0 3d_z_position 25,-15 3d_y_rotate 25,180
3d_plane 26 3d_v_tile 26,1 3d_u_tile 26,1 3d_image_texture 26,5 3d_x_position 26,-10 3d_y_position 26,0 3d_z_position 26,-15 3d_y_rotate 26,180
3d_plane 27 3d_v_tile 27,1 3d_u_tile 27,1 3d_image_texture 27,5 3d_x_position 27,10 3d_y_position 27,-10 3d_z_position 27,-15 3d_y_rotate 27,180
3d_plane 28 3d_v_tile 28,1 3d_u_tile 28,1 3d_image_texture 28,5 3d_x_position 28,0 3d_y_position 28,-10 3d_z_position 28,-15 3d_y_rotate 28,180
3d_plane 29 3d_v_tile 29,1 3d_u_tile 29,1 3d_image_texture 29,5 3d_x_position 29,-10 3d_y_position 29,-10 3d_z_position 29,-15 3d_y_rotate 29,180 end_sub ' ------------------------------------------------------------------------------ sub creerFaceJaune() 3d_plane 41 3d_v_tile 41,1 3d_u_tile 41,1 3d_image_texture 41,6 3d_x_position 41,-10 3d_y_position 41,-15 3d_z_position 41,10 3d_x_rotate 41,-90
3d_plane 42 3d_v_tile 42,1 3d_u_tile 42,1 3d_image_texture 42,6 3d_x_position 42,0 3d_y_position 42,-15 3d_z_position 42,10 3d_x_rotate 42,-90 3d_plane 43 3d_v_tile 43,1 3d_u_tile 43,1 3d_image_texture 43,6 3d_x_position 43,10 3d_y_position 43,-15 3d_z_position 43,10 3d_x_rotate 43,-90
3d_plane 44 3d_v_tile 44,1 3d_u_tile 44,1 3d_image_texture 44,6 3d_x_position 44,-10 3d_y_position 44,-15 3d_z_position 44,0 3d_x_rotate 44,-90
3d_plane 45 3d_v_tile 45,1 3d_u_tile 45,1 3d_image_texture 45,6 3d_x_position 45,0 3d_y_position 45,-15 3d_z_position 45,0 3d_x_rotate 45,-90
3d_plane 46 3d_v_tile 46,1 3d_u_tile 46,1 3d_image_texture 46,6 3d_x_position 46,10 3d_y_position 46,-15 3d_z_position 46,0 3d_x_rotate 46,-90
3d_plane 47 3d_v_tile 47,1 3d_u_tile 47,1 3d_image_texture 47,6 3d_x_position 47,-10 3d_y_position 47,-15 3d_z_position 47,-10 3d_x_rotate 47,-90
3d_plane 48 3d_v_tile 48,1 3d_u_tile 48,1 3d_image_texture 48,6 3d_x_position 48,0 3d_y_position 48,-15 3d_z_position 48,-10 3d_x_rotate 48,-90
3d_plane 49 3d_v_tile 49,1 3d_u_tile 49,1 3d_image_texture 49,6 3d_x_position 49,10 3d_y_position 49,-15 3d_z_position 49,-10 3d_x_rotate 49,-90 end_sub ' ------------------------------------------------------------------------------ sub creerFaceBlanche() 3d_plane 51 3d_v_tile 51,1 3d_u_tile 51,1 3d_image_texture 51,7 3d_x_position 51,-10 3d_y_position 51,15 3d_z_position 51,-10 3d_x_rotate 51,90
3d_plane 52 3d_v_tile 52,1 3d_u_tile 52,1 3d_image_texture 52,7 3d_x_position 52,0 3d_y_position 52,15 3d_z_position 52,-10 3d_x_rotate 52,90 3d_plane 53 3d_v_tile 53,1 3d_u_tile 53,1 3d_image_texture 53,7 3d_x_position 53,10 3d_y_position 53,15 3d_z_position 53,-10 3d_x_rotate 53,90
3d_plane 54 3d_v_tile 54,1 3d_u_tile 54,1 3d_image_texture 54,7 3d_x_position 54,-10 3d_y_position 54,15 3d_z_position 54,0 3d_x_rotate 54,90
3d_plane 55 3d_v_tile 55,1 3d_u_tile 55,1 3d_image_texture 55,7 3d_x_position 55,0 3d_y_position 55,15 3d_z_position 55,0 3d_x_rotate 55,90
3d_plane 56 3d_v_tile 56,1 3d_u_tile 56,1 3d_image_texture 56,7 3d_x_position 56,10 3d_y_position 56,15 3d_z_position 56,0 3d_x_rotate 56,90
3d_plane 57 3d_v_tile 57,1 3d_u_tile 57,1 3d_image_texture 57,7 3d_x_position 57,-10 3d_y_position 57,15 3d_z_position 57,10 3d_x_rotate 57,90
3d_plane 58 3d_v_tile 58,1 3d_u_tile 58,1 3d_image_texture 58,7 3d_x_position 58,0 3d_y_position 58,15 3d_z_position 58,10 3d_x_rotate 58,90
3d_plane 59 3d_v_tile 59,1 3d_u_tile 59,1 3d_image_texture 59,7 3d_x_position 59,10 3d_y_position 59,15 3d_z_position 59,10 3d_x_rotate 59,90 end_sub | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 17 Sep 2022 - 15:28 | |
| Excusez mon retard mais je ne suis pas à la maison la semaine (il faut bien travailler...) je vous ai fait un cube avec ces couleurs à télécharger sur le webdav j'ai une autre idée en pur Panoramic les faces sont lier au cube et donc tournent avec le cube (voir liaison dans la section 3D) et autre idée façon tour de passe passe comme en dessin animé (Hide ...) Bon courage | |
| | | Contenu sponsorisé
| Sujet: Re: Projet d'un Rubik's cube en 3D | |
| |
| | | | Projet d'un Rubik's cube en 3D | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |