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 Sam 22 Oct 2022 - 18:09 | |
| C'est vrai qu'on est un peu hors sujet mais bon.... Y a pas photo le code de Marc JL35 est super simple ! Mais pour le charme de la programmation et des belles formules c'est Papydall le grand vainqueur !!! PS : je viens de voir que j'ai confondu JL35 avec Marc. Rendons donc à Ceasar....
Dernière édition par Minibug le Dim 23 Oct 2022 - 20:32, édité 2 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 22 Oct 2022 - 21:47 | |
| Merci pour Minibug pour cet honneur ! Pour ne pas polluer ce post sérieux, je publierai mes fantaisies dans un autre endroit. | |
| | | 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 22 Oct 2022 - 22:15 | |
| - Citation :
- Pour ne pas polluer ce post sérieux, je publierai mes fantaisies dans un autre endroit.
Non non Papydall ne change rien. C'est a prendre sur le ton de l'humour... | |
| | | 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 Dim 23 Oct 2022 - 16:46 | |
| @papydall Restes avec nous! Je suis fan de tes programmes Il m'a fallu trois semaines pour avaler le repère spèrique. Ta récréation tombe à pic @minibug je vais te voler ta mise ne forme, elle me plait beaucoup L'avantage de faire des erreurs, c'est de pouvoir les exploiter. Ce n'est pas glorieux mais, je viens de coder une bricole pour identifier la face active du cube. Faute de mieux, je garde l'erreur - Code:
-
rem " Programme RUBICKS CUBE par Mindstorm rem " Mais avec l'aide de pas mal de monde! Rem " dans l'ordre alphabetique rem " Jack marc minibub papydall silverman
label quitter,ActionRotationCameraxyp,ActionRotationCameraxym,ActionRotationCamerazp,ActionRotationCamerazm
scene3d 1:full_space 1 :color 1,240,234,199 form 2:Left 2,600:height 2,800:top 2,0:width 2,200 print_target_is 2 dim i%,j%,x,y,z,d,c,r,cub,mesh,rot(3,3,3),pos(3,3,3),B(2,2),A(2,2),camxy,camz,camp ,y1% dim butxy,butz,xc%,yc%,zc% ,xcux%,ycux%,zcux% ,xcuy%,ycuy%,zcuy%,xcuz%,ycuz%,zcuz% dim anglconstrxy,anglconstrz dim calp,calxy,calz,xcal%,ycal%,zcal% ,correctifatan% ,correccal%
camxy=45 camz=54.735 cam_position 10,10,10
triedre() CommandesManuel() CommandesRotationCamera() constructionmesh() constructioncube() positionmesh() chainage() controlCam() rem "zone programme en cours" wait 200 x=0:y=0:z=0 d=10 r=1 rotationprogressive() rem "fin de zone" on_click 513,ActionRotationCameraxym on_click 514,ActionRotationCameraxyp on_click 515,ActionRotationCamerazp on_click 516,ActionRotationCamerazm
end quitter: terminate return '________________________________________________________________________ ActionRotationCameraxyp: butxy=45 RotationCamera() butxy=0 return ActionRotationCameraxym: butxy=-45 RotationCamera() butxy=0 return ActionRotationCamerazp: butz=-45 RotationCamera() butz=0 return ActionRotationCamerazm: butz=45 RotationCamera() butz=0 return '___________________________________________________________________________ sub constructionmesh() for j%=1 to 9 for i%=1 to 3 mesh=(100*i%)+j% 3d_mesh mesh 3d_load_object mesh,"cube.3ds" 3d_load_texture mesh, "cube.bmp" next i% next j% end_sub '__________________________________________________________________________ sub constructioncube() for j%=1 to 9 for i%=1 to 3 cub=(10*i%)+j% 3d_cube cub,1 next i% next j% end_sub '_________________________________________________________________________ sub chainage() for j%=1 to 9 for i%=1 to 3 cub=(i%*10)+j% mesh=(i%*100)+j% 3d_chain cub,mesh next i% next j% end_sub '_________________________________________________________________________ sub positionmesh() for j%=1 to 3 z=2.01*(2-j%) c=j%*100 3d_position c+1,0,0,z 3d_position c+2,0,2.01,z 3d_position c+3,0,-2.01,z 3d_position c+4,2.01,0,z 3d_position c+5,2.01,2.01,z 3d_position c+6,2.01,-2.01,z 3d_position c+7,-2.01,0,z 3d_position c+8,-2.01,2.01,z 3d_position c+9,-2.01,-2.01,z next j% end_sub '_________________________________________________________________________ sub triedre() 3d_cube 1,1 :3d_scale 1,12,0.1,0.1 3d_cube 2,1 :3d_scale 2,0.1,12,0.1 3d_cube 3,1 :3d_scale 3,0.1,0.1,12 3d_cone 4,.8,.3 :3d_x_position 4,6 :3d_z_rotate 4,-90 3d_cone 5,.8,.3 :3d_y_position 5,6 3d_cone 6,.8,.3 :3d_z_position 6,6 :3d_x_rotate 6,-90 3d_text 7,"X" : 3d_x_position 7,6.5 3d_text 8,"Y" : 3d_y_position 8,6.5 3d_text 9,"Z" : 3d_z_position 9,7.1 :3d_y_rotate 9,90 end_sub '_________________________________________________________________________
sub CommandesManuel() button 501:top 501,50 :left 501,75:width 501,25 :height 501,25 :caption 501,"Front <" button 502:top 502,50 :left 502,100:width 502,25 :height 502,25 :caption 502,"Front >" button 503:top 503,50 :left 503,25:width 503,25 :height 503,25 :caption 503,"Lef <" button 504:top 504,50 :left 504,50:width 504,25 :height 504,25 :caption 504,"Lef >" button 505:top 505,50 :left 505,125:width 505,25 :height 505,25 :caption 505,"Right <" button 506:top 506,50 :left 506,150:width 506,25 :height 506,25 :caption 506,"Right >" button 507:top 507,25 :left 507,75:width 507,25 :height 507,25 :caption 507,"Up <" button 508:top 508,25 :left 508,100:width 508,25 :height 508,25 :caption 508,"Up >" button 509:top 509,75 :left 509,75:width 509,25 :height 509,25 :caption 509,"Down <" button 510:top 510,75 :left 510,100:width 510,25 :height 510,25 :caption 510,"Down >" button 511:top 511,100 :left 511,75:width 511,25 :height 511,25 :caption 511,"Back <" button 512:top 512,100 :left 512,100:width 512,25 :height 512,25 :caption 512,"Back >" end_sub
'__________________________________________________________________________ sub CommandesRotationCamera() button 513:top 513,200 :left 513,80:width 513,40 :height 513,40 :caption 513,"<left" button 514:top 514,200 :left 514,460:width 514,40 :height 514,40 :caption 514,"right>" button 515:top 515,10 :left 515,280:width 515,40 :height 515,40 :caption 515,"up >" button 516:top 516,400 :left 516,280:width 516,40 :height 516,40 :caption 516,"down >" end_sub '___________________________________________________________________________ sub control() cub=15 anglconstrxy=45 :anglconstrz=54.735
A(0,0)=2.01 A(0,1)=2.01 A(0,2)=2.01 A(1,0)=o3d_x_rotate (cub) A(1,1)=o3d_y_rotate (cub) A(1,2)=o3d_z_rotate (cub) print_y_locate 180 print " cub" + str$ (cub) + " rotation" print " rcX | "+ str$(A(1,0)) print " rcY | "+ str$(A(1,1)) print " rcZ | "+ str$(A(1,2))
RotationCalcul()
end_sub
'_________________________________________________________________________
sub controlCam() if yc% >0 and xc% >0 print_y_locate 100 print " Up vert " print "Left orange;Front blanc;Right rouge " print " Down jaune " else if Yc% >0 and xc% < 0 print_y_locate 100 print " Up vert " print "Left rouge;Front Bleu;Right orange " print " Down jaune " else if yc% >0 and zc% >0 print_y_locate 100 print " Up vert " print "Left bleu;Front orange;Right blanc " print " Down jaune " else if yc% >0 and zc% <0 print_y_locate 100 print " Up vert " print "Left blanc;Front rouge;Right bleu " print " Down jaune " else if yc% <0 and xc% >0 print_y_locate 100 print " Up jaune " print "Left rouge;Front blanc;Right orange " print " Down vert " else if yc% <0 and xc% <0 print_y_locate 100 print " Up jaune " print "Left orange;Front Bleu;Right rouge " print " Down vert " else if yc% <0 and zc% >0 print_y_locate 100 print " Up jaune " print "Left blanc;Front orange;Right bleu " print " Down vert " else if yc% <0 and zc% <0 print_y_locate 100 print " Up jaune " print "Left bleu;Front rouge;Right blanc " print " Down vert " end_if end_if end_if end_if end_if end_if end_if end_if print_y_locate 0 print " " print " position Cam " print " Xcam |"+str$(xc%)+" " print " YCam |"+str$(yc%)+" " print " ZCam |"+str$(zc%)+" " print " "
end_sub
'________________________________________________________________________
sub RotationCamera() camxy= camxy+butxy camz= camz+butz camp=17.32050808
xc%=camp*(cos(degree_to_radian (camz))*cos(degree_to_radian (camxy))) zc%=camp*(cos(degree_to_radian (camz))*sin(degree_to_radian (camxy))) yc%=camp* (sin(degree_to_radian (camz))) cam_position xc%,yc%,zc% ' orientation de la caméra par MARC. y1% = wrap_value(camz) if (y1% >= 0 and y1% < 90) or (y1% > 270 and y1% < 360) cam_roll 0 else cam_roll 180 end_if controlCam() end_sub
'__________________________________________________________________________
sub rotationprogressive()
for i%=1 to 3 z=r*30*i% 3d_rotate d+1,x,y,z 3d_rotate d+2,x,y,z 3d_rotate d+3,x,y,z 3d_rotate d+4,x,y,z 3d_rotate d+5,x,y,z 3d_rotate d+6,x,y,z 3d_rotate d+7,x,y,z 3d_rotate d+8,x,y,z 3d_rotate d+9,x,y,z wait 300 next i% control() end_sub
'_________________________________________________________________________
sub RotationCalcul() dim cal2xy, cal2z, cal2p
rem "zonne de programme en cours rem a suivre A(1,0) A(1,1) rem "fin de zone calxy= A(1,2)+anglconstrxy calz=anglconstrz calp=1.732 xcal%=calp*(sin(degree_to_radian (calz))*cos(degree_to_radian (calxy))) ycal%=calp*(sin(degree_to_radian (calz))*sin(degree_to_radian (calxy))) zcal%=calp* (cos(degree_to_radian (calz))) cal2p=sqr((xcal% *xcal%)+(ycal% *ycal%)+(zcal% * zcal%)) if (xcal%>0) cal2xy=atn(ycal%/xcal%) else if xcal% <0 and ycal% >=0 cal2xy=atn(ycal% /xcal%)+pi else if xcal% <0 and ycal% <0 cal2xy=atn(ycal% /xcal%)-pi else if xcal% =0 and ycal% >0 cal2xy=pi/2 else cal2xy% =-pi/2 end_if end_if end_if end_if cal2z=acos (zcal% /cal2p ) A(2,0)=(xcal% *A(0,0)) A(2,1)=(ycal% *A(0,1)) A(2,2)=(zcal% *A(0,2)) print_y_locate 260 print " résultat calcul " print " " print " mesh repère orthonormé " print " Xcal |"+str$(xcal%)+" " print " YCal |"+str$(ycal%)+" " print " ZCal |"+str$(zcal%)+" " print " " print " mesh repère spherique " print " Pcal2 |"+str$(cal2p)+" " print " Calxy2 |"+str$(radian_to_degree(cal2xy))+" " print " calz2 |"+str$(radian_to_degree(cal2z))+" " print " " print " mesh nouvelle position " print " X2 | "+ str$(A(2,0))+" " print " Y2 | "+ str$(A(2,1))+" " print " Z2 | "+ str$(A(2,2))+" "
end_sub
Dernière édition par mindstorm le Lun 24 Oct 2022 - 9:10, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| | | | 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 23 Oct 2022 - 19:12 | |
| Bonsoir à tous !
Sujet : rectangles à coins arrondis.
Merci à Papydall et JL35 qui ont arrondi les angles ! Je mets vos codes de côté.
Bonne soirée à tous !
Dernière édition par Marc le Mar 25 Oct 2022 - 17:36, é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 Dim 23 Oct 2022 - 20:29 | |
| | |
| | | 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 Mar 25 Oct 2022 - 22:03 | |
| Bonjour à tous je but depuis dimanche sur une chose toute simple!!! Je ne trouve pas la façon d'automatiser les choix pour une variable cub101(2,2) Je prends toutes les propositions Merci d'avance - Code:
-
sub positionmesh() for j%=1 to 3 z=2.01*(2-j%) c=j%*100 3d_position c+1,0,0,z 3d_position c+2,0,2.01,z 3d_position c+3,0,-2.01,z 3d_position c+4,2.01,0,z 3d_position c+5,2.01,2.01,z 3d_position c+6,2.01,-2.01,z 3d_position c+7,-2.01,0,z 3d_position c+8,-2.01,2.01,z 3d_position c+9,-2.01,-2.01,z next j% cub101(0,0)=o3d_x_position 101: cub101(0,1)=o3d_y_position 101: cub101(0,2)=o3d_z_position 101 | |
| | | 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 Mar 25 Oct 2022 - 22:30 | |
| Bonsoir Mindstorm, Remplace ta dernière ligne par celle-ci : - Code:
-
cub101(0,0)=o3d_x_position(101): cub101(0,1)=o3d_y_position(101): cub101(0,2)=o3d_z_position(101) | |
| | | 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 Mar 25 Oct 2022 - 22:45 | |
| OUPS ce n'est pas là le problème je cherche a sélectionner par le chiffre x une variable cub(x)(2,2) un petit code la dernière ligne ne fonctionne pas - Code:
-
dim a1(2,2),a2(2,2) dim n,i,j,k dim g a1(0,0)=1 a1(0,1)=2 a1(0,2)=3
n=0 g=1 a2(n,0)=a1(0,0)
print a2(0,0) print a1(n,n) print a1(n,n+1) rem mais print ag(n,n+1) | |
| | | 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 Mar 25 Oct 2022 - 23:25 | |
| - Citation :
- la dernière ligne ne fonctionne pas
Dans la dernière ligne : print ag(n,n+1)ag(n,b+1) n'est pas déclaré comme tableau de variables. Il manque : dim ag(...,...) - Citation :
- je cherche a sélectionner par le chiffre x une variable cub(x)(2,2)
cub(x)(2,2) : Cette syntaxe n'est pas permise. Tu peux créer un tableau à 3 dimensions : cube( _ , _ , _ ) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Mer 26 Oct 2022 - 0:05 | |
| @mindstorm Je répond par téléphone car mon PC est parti pour faire une cure de jouvence Tu fais Sélect g Case 1: print a1(...) Case 2: print a2(...) Etc.. End_select | |
| | | 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 26 Oct 2022 - 21:04 | |
| Merci papydall C'est vraiment très pratique, je suis tout de même inquiet devant la masse de données à manipuler et j'admire les astuces de compression du code misent en place pour le programme auquel tu as participé avec Silverman et Minibug. Dommage que les fonctions 3D ne soient pas plus développé avec Panoramic, cela aurai était si facile . J'espère allez au bout tout de même car c'est une bonne occasion d'apprendre et c'était l’essentiel de ma motivation. - Code:
-
dim cub101(2,2,2),cub102(2,2,2) ,cub103(2,2) ,v,a,b,i,n
cub101(0,1,0)=10 cub102(0,2,0)=20 cub103(0,0)=30 n=1
for i=1 to 3 v=i select v case 1:a=cub101(0,n,0)+cub102(0,2,0) :test():print a :cub101(0,n,0)=a:print cub101(0,n,0) case 2:a=cub101(0,1,0):b=10*a :print_y_locate 30 : print b case 3:a=(cub103(0,0))*10 :print a end_select wait 700 next i wait 1000 end
sub test() a=a+1 end_sub
Dernière édition par mindstorm le Mer 26 Oct 2022 - 23:07, édité 1 fois | |
| | | 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 Mer 26 Oct 2022 - 21:50 | |
| Bonsoir à tous ! Disponible depuis le lien ci-dessous, voici une nouvelle évolution de ma version simplifiée du Rubik’s Cube. Ce n’est plus qu’un seul et unique fichier .bas. Il n’y a plus besoin des fichiers externes 3DS et de la texture BMP. Il me reste à réaliser la rubrique de l’Aide. Ce devrait être fait d’ici la fin de semaine. A bientôt ! Lien de téléchargement : https://e-nautia.com/yoda/disk?p=10369384Une petite illustration pour décorer ce fil de discussion | |
| | | 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 26 Oct 2022 - 23:15 | |
| Très belle réalisation Marc tous marche très bien. C'est une très bonne idée d'inclure les fichiers sources.
| |
| | | 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 Jeu 27 Oct 2022 - 0:19 | |
| Merci Mindstorm ! - Mindstorm a écrit:
- C'est une très bonne idée d'inclure les fichiers sources.
Au départ, cette idée était pour palier un défaut d’esthétique lors de la rotation des couronnes. Les facettes non utiles de chaque cube n’étaient pas noires comme dans un vrai Rubik’s Cube. Comme parade, j’ai préféré dessiner les textures en pur Panoramic plutôt que d’avoir 26 fichiers de texture différents sur le disque dur. J’ai donc ajouté deux sous-programmes dans mon code : - La sub creerTextureVierge() qui dessine la texture de base avec seulement les empreintes en gris foncé des "gommettes" à appliquer plus tard ; - La sub collerGommettes() qui colore uniquement les faces utiles pour chaque cube, avant de coller la texture sur les 3d_mesh. - Code:
-
' ------------------------------------------------------------------------------ sub creerTextureVierge() ' creer picture caché create_hide picture 45 create_show width 45,512 height 45,512 color 45,0,0,0 2d_target_is 45 ' dessiner empreinte pour gommette colorée 2d_fill_color 20,20,20 2d_pen_color 20,20,20 2d_rectangle 0,0,110,106 2d_fill_color 0,0,0 2d_pen_color 0,0,0 ' coin supérieur gauche de la gommette 2d_line 0,0,8,0 2d_line 0,1,5,1 2d_line 0,2,3,2 2d_line 0,3,2,3 2d_line 0,4,2,4 2d_line 0,4,0,8 ' coin supérieur droit de la gommette 2d_line 102,0,110,0 2d_line 105,1,110,1 2d_line 107,2,110,2 2d_line 108,3,110,3 2d_line 108,4,110,4 2d_line 109,5,109,8 ' coin inférieur droit de la gommette 2d_line 109,98,109,101 2d_line 108,101,110,107 2d_line 108,102,110,108 2d_line 107,103,110,109 2d_line 105,104,110,110 2d_line 102,105,110,111 ' coin inférieur gauche de la gommette 2d_line 0,98,0,101 2d_line 0,101,2,101 2d_line 0,102,2,102 2d_line 0,103,3,103 2d_line 0,104,5,104 2d_line 0,105,8,105
' mise en memoire de l'empreinte image 46 2d_image_copy 46,0,0,110,106 ' copier l'empreinte des gommettes sur la texture (1 par face du cube) 2d_image_paste 46,137,137 :' emplacement gommette rouge 2d_image_paste 46,10,137 :' emplacement gommette verte 2d_image_paste 46,265,137 :' emplacement gommette bleue 2d_image_paste 46,392,137 :' emplacement gommette orange 2d_image_paste 46,137,10 :' emplacement gommette blanche 2d_image_paste 46,138,264 :' emplacement gommette jaune
' mise en mémoire de la texture 2d_image_copy 46,0,0,512,512 end_sub ' ------------------------------------------------------------------------------ sub collerGommettes() ' colorier les gommettes puis appliquer la texture sur le cube 1 2d_image_paste 46,0,0 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 190,190,216,43,44 :' face rouge 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 1,47
' texture cube 2 2d_image_paste 46,0,0 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 190,190,216,43,44 :' face rouge 2d_image_copy 47,0,0,511,511 3D_image_texture 2,47
' texture cube 3 2d_image_paste 46,0,0 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 190,190,216,43,44 :' face rouge 2d_image_copy 47,0,0,511,511 3D_image_texture 3,47
' texture cube 4 2d_image_paste 46,0,0 2d_flood 190,190,216,43,44 :' face rouge 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 4,47
' texture cube 5 2d_image_paste 46,0,0 2d_flood 190,190,216,43,44 :' face rouge 2d_image_copy 47,0,0,511,511 3D_image_texture 5,47
' texture cube 6 2d_image_paste 46,0,0 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 190,190,216,43,44 :' face rouge 2d_image_copy 47,0,0,511,511 3D_image_texture 6,47
' texture cube 7 2d_image_paste 46,0,0
2d_flood 190,60,255,255,255 :' face blanche 2d_flood 190,190,216,43,44 :' face rouge 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 7,47
' texture cube 8 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 190,190,216,43,44 :' face rouge 2d_image_copy 47,0,0,511,511 3D_image_texture 8,47
' texture cube 9 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 190,190,216,43,44 :' face rouge 2d_image_copy 47,0,0,511,511 3D_image_texture 9,47
' texture cube 10 2d_image_paste 46,0,0 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 10,47
' texture cube 11 2d_image_paste 46,0,0 2d_flood 190,325,255,255,37 :' face jaune 2d_image_copy 47,0,0,511,511 3D_image_texture 11,47
' texture cube 12 2d_image_paste 46,0,0 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 190,325,255,255,37 :' face jaune 2d_image_copy 47,0,0,511,511 3D_image_texture 12,47
' texture cube 13 2d_image_paste 46,0,0 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 13,47
' texture cube 15 2d_image_paste 46,0,0 2d_flood 320,190,42,75,183 :' face bleue 2d_image_copy 47,0,0,511,511 3D_image_texture 15,47
' texture cube 16 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 16,47
' texture cube 17 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_image_copy 47,0,0,511,511 3D_image_texture 17,47
' texture cube 18 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 320,190,42,75,183 :' face bleue 2d_image_copy 47,0,0,511,511 3D_image_texture 18,47
' texture cube 19 2d_image_paste 46,0,0 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 450,190,255,127,0 :' face orange 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 19,47
' texture cube 20 2d_image_paste 46,0,0 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 450,190,255,127,0 :' face orange 2d_image_copy 47,0,0,511,511 3D_image_texture 20,47
' texture cube 21 2d_image_paste 46,0,0 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 190,325,255,255,37 :' face jaune 2d_flood 450,190,255,127,0 :' face orange 2d_image_copy 47,0,0,511,511 3D_image_texture 21,47
' texture cube 22 2d_image_paste 46,0,0 2d_flood 450,190,255,127,0 :' face orange 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 22,47
' texture cube 23 2d_image_paste 46,0,0 2d_flood 450,190,255,127,0 :' face orange 2d_image_copy 47,0,0,511,511 3D_image_texture 23,47 ' texture cube 24 2d_image_paste 46,0,0 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 450,190,255,127,0 :' face orange 2d_image_copy 47,0,0,511,511 3D_image_texture 24,47 ' texture cube 25 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 450,190,255,127,0 :' face orange 2d_flood 60,180,42,196,75 :' face verte 2d_image_copy 47,0,0,511,511 3D_image_texture 25,47
' texture cube 26 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 450,190,255,127,0 :' face orange 2d_image_copy 47,0,0,511,511 3D_image_texture 26,47
' texture cube 27 2d_image_paste 46,0,0 2d_flood 190,60,255,255,255 :' face blanche 2d_flood 320,190,42,75,183 :' face bleue 2d_flood 450,190,255,127,0 :' face orange 2d_image_copy 47,0,0,511,511 3D_image_texture 27,47 end_sub
Résultat : Cette modification terminée, à côté de mon fichier .bas, il restait le cube.3ds d’un poids inférieur à 1ko… Allez hop ! Pour 35 lignes de code en plus, je l’embarque dans le code-source sous forme de ligne DATAs : - Code:
-
data 77,77,205,3,0,0,2,0,10,0,0,0,3,0,0,0,61,61,189,3,0,0,62,61,10,0,0,0,3,0,0,0 data 255,175,163,0,0,0,0,160,16,0,0,0,67,117,98,101,49,95,97,117,118,0,32,160,24 data 0,0,0,17,0,9,0,0,0,255,255,255,18,0,9,0,0,0,255,255,255,80,160,14,0,0,0,48 data 0,8,0,0,0,0,0,64,160,14,0,0,0,48,0,8,0,0,0,80,0,48,160,24,0,0,0,17,0,9,0,0 data 0,48,48,48,18,0,9,0,0,0,48,48,48,16,160,24,0,0,0,17,0,9,0,0,0,0,0,0,18,0,9 data 0,0,0,0,0,0,0,161,8,0,0,0,3,0,0,162,33,0,0,0,0,163,19,0,0,0,67,117,98,101 data 49,95,97,117,46,98,109,112,0,81,163,8,0,0,0,0,1,0,1,10,0,0,0,0,0,128,63,0 data 64,0,3,0,0,67,117,98,101,49,0,0,65,244,2,0,0,96,65,54,0,0,0,0,0,128,63,0,0 data 0,0,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0 data 0,0,0,0,0,0,0,16,65,40,1,0,0,24,0,0,0,128,191,0,0,128,63,0,0,128,191,0,0,128 data 191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,63,0,0,128,63,0,0,128,191,0 data 0,128,191,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,191,0,0,128,63,0,0,128 data 191,0,0,128,191,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,191,0,0 data 128,63,0,0,128,191,0,0,128,63,0,0,128,191,0,0,128,191,0,0,128,63,0,0,128,191 data 0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0,128,191,0,0 data 128,191,0,0,128,63,0,0,128,63,0,0,128,191,0,0,128,63,0,0,128,63,0,0,128,191 data 0,0,128,191,0,0,128,63,0,0,128,191,0,0,128,191,0,0,128,63,0,0,128,63,0,0,128 data 63,0,0,128,191,0,0,128,63,0,0,128,63,0,0,128,191,0,0,128,63,0,0,128,191,0,0 data 128,191,0,0,128,63,0,0,128,191,0,0,128,191,0,0,128,63,0,0,128,63,0,0,128,63 data 0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,191,0,0,128,63,0,0,128 data 63,0,0,128,191,0,0,128,63,64,65,200,0,0,0,24,0,59,70,125,62,233,94,64,63,59 data 70,125,62,58,252,1,63,193,140,128,62,59,152,64,63,28,198,128,62,40,22,1,63 data 16,223,110,59,233,94,64,63,16,223,110,59,58,252,1,63,28,139,127,62,135,41 data 128,63,52,17,255,62,40,22,1,63,193,140,128,62,254,70,1,63,55,172,255,62,186 data 95,64,63,28,198,128,62,55,225,131,62,58,47,255,62,254,70,1,63,55,172,255,62 data 135,41,128,63,42,144,0,63,84,119,64,63,58,47,255,62,59,152,64,63,42,144,0,63 data 173,113,1,63,28,139,127,62,186,95,64,63,237,16,127,63,11,110,1,63,52,17,255 data 62,55,225,131,62,97,235,63,63,11,110,1,63,209,149,63,63,84,119,64,63,237,16 data 127,63,151,147,64,63,209,149,63,63,173,113,1,63,97,235,63,63,151,147,64,63 data 32,65,200,0,0,0,12,0,22,0,20,0,13,0,6,0,13,0,15,0,22,0,6,0,4,0,5,0,1,0,6,0,1 data 0,0,0,4,0,6,0,18,0,7,0,3,0,6,0,3,0,10,0,18,0,6,0,6,0,16,0,9,0,6,0,9,0,12,0,6 data 0,6,0,21,0,23,0,19,0,6,0,19,0,17,0,21,0,6,0,11,0,14,0,2,0,6,0,2,0,8,0,11,0,6 data 0,48,65,42,0,0,0,67,117,98,101,49,95,97,117,118,0,12,0,0,0,1,0,2,0,3,0,4,0,5 data 0,6,0,7,0,8,0,9,0,10,0,11,0,80,65,54,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 data 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0
A bientôt !
Dernière édition par Marc le Jeu 27 Oct 2022 - 13:50, édité 2 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 Jeu 27 Oct 2022 - 12:39 | |
| Ah oui félicitation Marc ! Je vais voir si je peux m'inspirer de cela dans la réalisation de Silverman Et embarquer les fichiers bmp dans l'exécutable ou les transformer en data... En tout cas bravo pour ce soucis du détail ! | |
| | | 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 Jeu 27 Oct 2022 - 13:45 | |
| Bonjour et merci Minibug ! - Minibug a écrit:
- Je vais voir si je peux m'inspirer de cela dans la réalisation de Silverman
Et embarquer les fichiers bmp dans l'exécutable ou les transformer en data...
N’hésite pas à copier-coller. Ma version de Rubik’s Cube est construite autour du moteur de Silverman. Tu n’auras pas trop de problèmes pour y greffer mes modifications. Bonne continuation ! | |
| | | 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 27 Oct 2022 - 19:15 | |
| Bonsoir à tous il est également possible de mettre toutes les textures des cubes sur un seul fichier .bmp Ainsi avec sept images (les six couleurs et le gris)dans un seul tout petit fichier, nous construisons tous les cubes. C'est la solution pour alléger les scènes 3D ou pour faire une mosaïque. merci pour tes explications | |
| | | 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 28 Oct 2022 - 19:41 | |
| Bonsoir à tous ! J’ai terminé la rubrique d’ Aide du Rubik’s Cube. Voilà qui sonne la fin de la partie développement de cette version simplifiée. Lien de téléchargement : https://e-nautia.com/yoda/disk?p=10370608Copie d'écran de la rubrique d'aide : La suite de la rubrique lorsque l'on descend l'ascenseur : Le jeu est entièrement fonctionnel. Merci de m’informer de toute erreur, faute ou bug. A bientôt ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 29 Oct 2022 - 14:18 | |
| J’ai mélangé le cube ; je l’ai retourné ; j’ai cliqué sur une des icônes pour le faire retourner, et … voilà le résultat ! NB : je n’ai pas pu reproduire l’erreur une autre fois, heureusement ! | |
| | | 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 29 Oct 2022 - 15:10 | |
| Bonjour Papydall !
J’ai effectué des dizaines, voire des centaines de manipulations sans avoir rencontré cette erreur externe. L’erreur constatée est, pour moi, une instabilité dans le langage Panoramic lorsque l’on manipule des floats. J’ai déjà rencontré cette erreur externe dans d’autres programmes en Panoramic.
Parfois, une simple addition d’un float avec la valeur 0.5 provoque l’erreur externe. C’est très aléatoire.
Affaire à suivre !
Merci pour tes tests !
Bon dimanche ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Projet d'un Rubik's cube en 3D Sam 29 Oct 2022 - 17:31 | |
| - Marc a écrit:
- L’erreur constatée est, pour moi, une instabilité dans le langage Panoramic lorsque l’on manipule des floats. J’ai déjà rencontré cette erreur externe dans d’autres programmes en Panoramic.
Je confirme ! | |
| | | 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 Mar 1 Nov 2022 - 20:25 | |
| Bonsoir tout le monde ! J'ai profité de cette journée pour mettre à jour le programme. J'ai repris la dernière version que Silverman a réalisé. Du coup maintenant on a un programme presque complet : - Il y a les 9 icônes de déplacement des couronnes - 2 icônes pour permettre de choisir entre un cube mélangé ou un cube initialisé. - 1 icône pour l'aide - 1 icône pour quitter. - Et une sauvegarde automatique de l'état du cube quand on quitte le programme. Il me reste à voir : - la gestion de la sauvegarde quand on quitte par la croix en haut a droite - L'ajout du sous-programme de Marc concernant le déplacement du cube à la souris - Voir s'il est possible de gérer une solution en mode automatique en attendant vous pouvez télécharger le programme ici. Bonne soirée à tous ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Projet d'un Rubik's cube en 3D Ven 4 Nov 2022 - 15:40 | |
| Bonjour à tous, @Minibug C'est téléchargé et testé, reste à l'utiliser. à + | |
| | | 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
| |
| |
| |