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 |
|
|
| J'ai copié sur Bignono | |
|
+5bignono Minibug Yannick Jicehel papydall 9 participants | |
Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Sam 1 Sep 2012 - 20:06 | |
| Salut tout le monde. Vous pouvez télécharger sur mon Web-Dav un exemple de programme d’enchainements d’objets 3DS (en fait, des jolis poissons). http://www.mydrive.ch/Identifiant: panoramic@papydall Mot de passe: panoramic123 Dossier : 3D Fichier : poissons.zip Dézipez le fichier dans un répertoire de votre choix, lancez poissons.bas et ...... admirez ! Vous pouvez apportez toute modification que vous jugez utile ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: J'ai copié sur Bignono Sam 1 Sep 2012 - 23:28 | |
| papydall, j'ai fais une petite modif sur ton programme de poisson (C'est cool pour visualiser une bibliothèque d'objet comme tu le présente, j'aime beaucoup ) Je l'ai modifié pour 2 raisons: la première est sans doute liée à W7, mais dans ta version, certaines images reste en gris chez moi (sans doute qu'il n'a pas encore eu le temps de charger la texture quand il créé l'objet, un truc du genre). La seconde raison, c'est que je voulais éloigner un peu l'objet du fond pour qu'il ne soit pas coupé en tournant. Voilà, ça donne ça: - Code:
-
dim i,j,f,p, rep$,imag$ rep$ = dir_current$ + "\"
f=0.8 : p= -14+20*f font_bold 0 : font_size 0,30 : print_locate 300,300 : print "PATIENTEZ" full_space 0 : scene3d 1 : full_space 1 : color 1,100,100,0 cam_position 0,0,15 : point_position 0,0,0
for j = 2 to 29 3d_plane 1 : 3d_scale 1,8,3.75,1 : 3d_z_position 1,-10 imag$ = rep$ + "fish" + str$(j-1) 3d_load_texture 1,rep$ + "fond"+str$(int(rnd(9)+1))+".bmp" 3d_u_tile 1,1 : 3d_v_tile 1,1 3d_mesh j : 3d_load_object j,imag$ +".3ds" : 3d_load_texture j,imag$+".bmp" caption 0, "Affiche : " + "fish" + str$(j-1)+".3ds" 3d_y_rotate j,90 : 3d_x_rotate j,90 for i = 0.005 to f step 1/200 : 3d_scale j,i/2,i/2,i/2 : 3d_position j,0,0,-14+20*i : display : next i for i = 0 to 180 : 3d_z_rotate j,i : wait 20 : display if scancode <> 0 then terminate next i for i = f to 0.005 step -1/800 : 3d_scale j,i/2,i/2,i/2 : 3d_position j,0,0,p-20*(f-i) : display : next i 3d_delete 1 : 3d_delete j next j | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Dim 2 Sep 2012 - 0:14 | |
| Salut Jicehel Ta petite motif est excellente. J’adopte Tu as sans doute remarqué que fish23, fish25, etc. sont très petits et on ne les distingue pas. J’ai modifié un peu le code pour les visualiser d’autant plus qu’ils sont très jolis ! Et à la fin de la série, j’affiche un autre fond. - Code:
-
dim i,j,f,p, rep$,imag$ rep$ = dir_current$ + "\"
f=0.8 : p= -14+20*f font_bold 0 : font_size 0,30 : print_locate 300,300 : print "PATIENTEZ" full_space 0 : scene3d 1 : full_space 1 : color 1,100,100,0 cam_position 0,0,15 : point_position 0,0,0
for j = 2 to 29 3d_plane 1 : 3d_scale 1,8,3.75,1 : 3d_z_position 1,-10 imag$ = rep$ + "fish" + str$(j-1) 3d_load_texture 1,rep$ + "fond"+str$(int(rnd(9)+1))+".bmp" 3d_u_tile 1,1 : 3d_v_tile 1,1 3d_mesh j : 3d_load_object j,imag$ +".3ds" : 3d_load_texture j,imag$+".bmp" caption 0, "Affiche : " + "fish" + str$(j-1)+".3ds" 3d_y_rotate j,90 : 3d_x_rotate j,90 for i = 0.005 to f step 1/200 if j = 24 or j > 25 then 3d_scale j , 30*i,30*i,30*i : else : 3d_scale j,i/2,i/2,i/2 3d_position j,0,0,-14+20*i : display : next i for i = 0 to 180 : 3d_z_rotate j,i : wait 20 : display if scancode <> 0 then terminate next i for i = f to 0.005 step -1/800 if j = 24 or j > 25 then 3d_scale j,30*i,30*i,30*i : else: 3d_scale j,i/2,i/2,i/2 3d_position j,0,0,p-20*(f-i) : display : next i 3d_delete 1 : 3d_delete j next j 3d_plane 1 : 3d_scale 1,8,3.75,1 : 3d_z_position 1,-10 3d_load_texture 1,rep$ + "11.jpg" 3d_u_tile 1,1 : 3d_v_tile 1,1 caption 0,"TERMINE"
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: J'ai copié sur Bignono Dim 2 Sep 2012 - 0:39 | |
| nickel, pour gagner du temps pour regarder les derniers poissons et pour ne pas avoir à remodifier les variables si je veux le regarder lentement j'ai rajouté v pour faire varier la vitesse (0.1 hyper lent, 1 très lent, 50 très rapide,100 hyper rapide) comme ça si tu l'applique à tes autre bibliothèque d'objet, le code peut être repris très vite (En les mettant tous dans le même alignement avant bien sûr comme pour les poissons) - Code:
-
dim i,j,f,p,v, rep$,imag$ rep$ = dir_current$ + "\"
f=0.8 : p= -14+20*f : v=10 font_bold 0 : font_size 0,30 : print_locate 300,300 : print "PATIENTEZ" full_space 0 : scene3d 1 : full_space 1 : color 1,100,100,0 cam_position 0,0,15 : point_position 0,0,0
for j = 2 to 29 3d_plane 1 : 3d_scale 1,8,3.75,1 : 3d_z_position 1,-10 imag$ = rep$ + "fish" + str$(j-1) 3d_load_texture 1,rep$ + "fond"+str$(int(rnd(9)+1))+".bmp" 3d_u_tile 1,1 : 3d_v_tile 1,1 3d_mesh j : 3d_load_object j,imag$ +".3ds" : 3d_load_texture j,imag$+".bmp" caption 0, "Affiche : " + "fish" + str$(j-1)+".3ds" 3d_y_rotate j,90 : 3d_x_rotate j,90 for i = 0.005 to f step 1/(1500/v) if j = 24 or j > 25 then 3d_scale j , 30*i,30*i,30*i : else : 3d_scale j,i/2,i/2,i/2 3d_position j,0,0,-14+20*i : display : next i for i = 0 to 180 3d_z_rotate j,i if v<50 then wait 50/v display if scancode <> 0 then terminate next i for i = f to 0.005 step -1/(1200/v) if j = 24 or j > 25 then 3d_scale j,30*i,30*i,30*i : else: 3d_scale j,i/2,i/2,i/2 3d_position j,0,0,p-20*(f-i) : display : next i 3d_delete 1 : 3d_delete j next j 3d_plane 1 : 3d_scale 1,8,3.75,1 : 3d_z_position 1,-10 3d_load_texture 1,rep$ + "11.jpg" 3d_u_tile 1,1 : 3d_v_tile 1,1 caption 0,"TERMINE"
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Dim 2 Sep 2012 - 0:53 | |
| Pour la vitesse, V = 10 est un bon compromis | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 2 Sep 2012 - 2:15 | |
| Comme un petit poisson.... Joli très joli, j'espère faire aussi bien un jours... Bravo ! papydall ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 1:45 | |
| @ tous les pros de la 3d,
y 'a t il un moyen de connaitre la taille originale de l'image contenue dans un fichier *.3ds du moins LxH ? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 4:06 | |
| J’ai trouvé ceci . J’ai téléchargé. Ça a l’air sympa. Je commence à voir comment ça marche, mais il fait tard, très tard et je crains une indigestion ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 6:38 | |
| Moi je planchais là dessus : - Code:
-
' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ 3DS Viewer version 1.0 ¤ ' ¤ créé par ygeronimi ¤ ' ¤ le 02/09/2012 ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
dim x% dim D$,D3D$,DL$ dim Menu%,F$ dim File$,V,Dir%,x,y,z ' ------------------------------------------------------------------------------ label Init_prog,Init_Doss label Menu,Selection,Valid_Selection,Init_Scene,Langue,APp,AIde label Affichage,Zoom,Rotation_X,Rotation_Y,Rotation_Z,Direction label Quitter ' ****************************************************************************** width 0,1400:height 0,820:top 0,(screen_y-820)/2:left 0,(screen_x-1400)/2:caption 0,"3DS Viewer" font_name 0,"Times new roman":font_size 0,10
main_menu 1 for x%=2 to 5:sub_menu x% :parent x%,1:on_click x%,Menu:next x% caption 2,"Liste":caption 3,"langue":caption 4,"A Propos...":caption 5,"Aide"
scene3d 11:top 11,0:left 11,0:width 11,1184:height 11,762:color 11,0,0,0 3d_target_is 11
container 12:top 12,0 :left 12,1194:height 12,70 :caption 12,chr$(32)+"Zoom"+chr$(32) font_color 12,120,20,10 scroll_bar 121:parent 121,12:top 121,25:left 121,13:width 121,160:min 121,1:max 121,2000 position 121,0.001:on_change 121,Zoom alpha 122:parent 122,12:top 122,45:left 122,80:font_color 122,0,0,255
container 13:top 13,75:left 13,1194:height 13,120:caption 13,chr$(32)+"Rotation de l'objet"+chr$(32) font_color 13,120,20,10 alpha 131:parent 131,13:top 131,15 :left 131,13:caption 131,"Axe X":font_color 131,0,0,255 scroll_bar 132:parent 132,13:top 132,30:left 132,13:width 132,160:min 132,0:max 132,359 position 132,0:on_change 132,Rotation_X alpha 133:parent 133,13:top 133,50 :left 133,13:caption 133,"Axe Y":font_color 133,0,0,255 scroll_bar 134:parent 134,13:top 134,65:left 134,13:width 134,160:min 134,0:max 132,359 position 134,0:on_change 134,Rotation_Y alpha 135:parent 135,13:top 135,85 :left 135,13:caption 135,"Axe Z":font_color 135,0,0,255 scroll_bar 136:parent 136,13:top 136,100:left 136,13:width 136,160:min 136,0:max 132,359 position 136,0:on_change 136,Rotation_Z
container 14:top 14,200:left 14,1194:height 14,120:caption 14,chr$(32)+"Déplacement de l' objet"+chr$(32) font_color 14,120,20,10 for x%=141 to 150:button x% :parent x%,14:font_name x%,"webdings":font_size x%,12 :on_click x%,Direction:next x% for x%=141 to 148:width x%,30:height x%,30:next x% for x%=149 to 150:width x%,30:height x%,15:next x% top 141,20:left 141,80 top 142,20:left 142,110 :caption 142,"5" top 143,20:left 143,140 top 144,50:left 144,80 :caption 144,"3" top 145,50:left 145,140:caption 145,"4" top 146,80:left 146,80 top 147,80:left 147,110 :caption 147,"6" top 148,80:left 148,140 top 149,50:left 149,110 :caption 149,"5" top 150,65:left 150,110 :caption 150,"6"
container 15:top 15,325:left 15,1194:height 15,250:caption 15,chr$(32)+"Caméra"+chr$(32) font_color 15,120,20,10
container 16:top 16,580:left 16,1194:height 16,70 :caption 16,chr$(32)+"Couleur de l' objet"+chr$(32) font_color 16,120,20,10
container 17:top 17,655:left 17,1194:height 17,70 :caption 17,chr$(32)+"Texture de l' objet"+chr$(32) font_color 17,120,20,10
dlist 99
gosub Init_prog on_close 0,Quitter end ' ****************************************************************************** Init_Prog: gosub Init_Doss return ' ------------------------------------------------------------------------------ Init_Doss: D$=dir_current$ if dir_exists(D$+"\3D")=0 then dir_make D$+"\3D" D3D$=D$+"\3D" if dir_exists(D$+"\Langues")= 0 then dir_make D$+"\Langues" DL$=D$+"\Langues" return ' ------------------------------------------------------------------------------ Menu: for x%=2 to 5 if clicked(x%)=1 then Menu%=x% next x% select Menu% case 2 gosub Selection case 3 gosub Langue case 4 gosub APp case 5 gosub Aide end_select return ' ------------------------------------------------------------------------------ Selection: form 100:width 100,200:height 100,300:caption 100,"Sélection" font_name 100,"Times new roman":font_size 100,10 command_target_is 100 list 101:width 101,184:height 101,240:on_double_click 101,Valid_Selection alpha 102:top 102,240:left 102,5:caption 102,"Double cliquez pour sélectionner" font_color 102,0,0,255 ' Placement de l'appli dans le dossier où sont les fichiers 3d dir_change D3D$ ' Récupération des adresses des fichiers 3DS et 3ds F$=file_find_first$ if file_extract_extension$(F$)=".3DS" or file_extract_extension$(F$)=".3ds" then item_add 99,F$ F$=file_find_next$ while F$<>"_" if file_extract_extension$(F$)=".3DS" or file_extract_extension$(F$)=".3ds" then item_add 99,F$ F$=file_find_next$ end_while file_find_close ' Affichage des fichiers récupérés dans le list 101 for x%=1 to count(99) F$=item_read$(99,x%) item_add 101,left$(file_extract_name$(F$),len(file_extract_name$(F$))-4) next x% command_target_is 0 return ' ------------------------------------------------------------------------------ Valid_Selection: if o3d_object_exists(1)=1 then 3d_delete 1 File$=D3D$+"\"+item_read$(99,item_index(101)) 3d_mesh 1 3d_load_object 1,File$ gosub Init_Scene clear 99 delete 100 return ' ------------------------------------------------------------------------------ Init_Scene: 3d_scale 1,0.0001,0.0001,0.0001 position 121,1:position 132,0:position 134,0:position 136,0 return ' ------------------------------------------------------------------------------ Langue: message "En cours d'écriture" return ' ------------------------------------------------------------------------------ APp: message "En cours d'écriture" return ' ------------------------------------------------------------------------------ Aide: message "Sera créé si nécessaire" return ' ------------------------------------------------------------------------------ Affichage: return ' ------------------------------------------------------------------------------ Zoom: V=position(121)/1000 3d_scale 1,V,V,V caption 122,str$(V) return ' ------------------------------------------------------------------------------ Rotation_X: 3d_x_rotate 1,position(132) return ' ------------------------------------------------------------------------------ Rotation_Y: 3d_y_rotate 1,position(134) return ' ------------------------------------------------------------------------------ Rotation_Z: 3d_z_rotate 1,position(136) return ' ------------------------------------------------------------------------------ Direction: for x%=141 to 150 if clicked(x%)=1 then Dir%=x% next x% select Dir% case 141 ' decale vers haut gauche y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y+0.1:x=x-0.1:3d_position 1,x,y,z case 142 ' decale vers haut y=o3d_y_position(1):y=y+0.1:3d_y_position 1,y case 143 ' decale vers haut droit y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y+0.1:x=x+0.1:3d_position 1,x,y,z case 144 ' decale vers gauche x=o3d_x_position(1):x=x-0.1:3d_x_position 1,x case 145 ' decale vers droite x=o3d_x_position(1):x=x+0.1:3d_x_position 1,x case 146 ' decale vers bas gauche y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y-0.1:x=x-0.1:3d_position 1,x,y,z case 147 ' decale vers bas y=o3d_y_position(1):y=y-0.1:3d_y_position 1,y case 148 ' decale vers bas droite y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y-0.1:x=x+0.1:3d_position 1,x,y,z case 149 ' decale vers fond z=o3d_z_position(1):z=z+0.1:3d_z_position 1,z case 150 ' decale vers avant z=o3d_z_position(1):z=z-0.1:3d_z_position 1,z end_select return ' ------------------------------------------------------------------------------ ' Place des #include
' ------------------------------------------------------------------------------ Quitter: terminate mais c'est loin d'être fini ... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 9:07 | |
| Bon début ygeromini Par contre, je pense qu'il y a une petite erreur dans Valid_Selection utilisation de la list 99 oiur la list 101 - Code:
-
Valid_Selection: if o3d_object_exists(1)=1 then 3d_delete 1 File$=chr$(34)+D3D$+"\"+item_read$(101,item_index(101))+".3DS"+chr$(34) 3d_mesh 1 : 3d_load_object 1,File$ gosub Init_Scene clear 99 : delete 100 return | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 12:36 | |
| Bien vu, Jicehel ! J'ai aussi un petit problème de rotation sur les axes Y et Z qui ne se fait pas à 360° mais je ne sais pas pourquoi... edit : le source qui fonctionne, - Code:
-
' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ' ¤ 3DS Viewer version 1.0 ¤ ' ¤ créé par ygeronimi ¤ ' ¤ le 02/09/2012 ¤ ' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
dim x% dim D$,D3D$,DL$ dim Menu%,F$ dim File$,V,Dir%,x,y,z ' ------------------------------------------------------------------------------ label Init_prog,Init_Doss label Menu,Selection,Valid_Selection,Init_Scene,Langue,APp,AIde label Affichage,Zoom,Rotation_X,Rotation_Y,Rotation_Z,Direction label Quitter ' ****************************************************************************** width 0,1400:height 0,820:top 0,(screen_y-820)/2:left 0,(screen_x-1400)/2:caption 0,"3DS Viewer" font_name 0,"Times new roman":font_size 0,10
main_menu 1 for x%=2 to 5:sub_menu x% :parent x%,1:on_click x%,Menu:next x% caption 2,"Liste":caption 3,"langue":caption 4,"A Propos...":caption 5,"Aide"
scene3d 11:top 11,0:left 11,0:width 11,1184:height 11,762:color 11,0,0,0 3d_target_is 11
container 12:top 12,0 :left 12,1194:height 12,70 :caption 12,chr$(32)+"Zoom"+chr$(32) font_color 12,120,20,10 scroll_bar 121:parent 121,12:top 121,25:left 121,13:width 121,160:min 121,1:max 121,20000 position 121,0.001:on_change 121,Zoom alpha 122:parent 122,12:top 122,45:left 122,80:font_color 122,0,0,255
container 13:top 13,75:left 13,1194:height 13,120:caption 13,chr$(32)+"Rotation de l'objet"+chr$(32) font_color 13,120,20,10 alpha 131:parent 131,13:top 131,15 :left 131,13:caption 131,"Axe X":font_color 131,0,0,255 scroll_bar 132:parent 132,13:top 132,30:left 132,13:width 132,160:min 132,0:max 132,359 position 132,0:on_change 132,Rotation_X alpha 133:parent 133,13:top 133,50 :left 133,13:caption 133,"Axe Y":font_color 133,0,0,255 scroll_bar 134:parent 134,13:top 134,65:left 134,13:width 134,160:min 134,0:max 134,359 position 134,0:on_change 134,Rotation_Y alpha 135:parent 135,13:top 135,85 :left 135,13:caption 135,"Axe Z":font_color 135,0,0,255 scroll_bar 136:parent 136,13:top 136,100:left 136,13:width 136,160:min 136,0:max 136,359 position 136,0:on_change 136,Rotation_Z
container 14:top 14,200:left 14,1194:height 14,120:caption 14,chr$(32)+"Déplacement de l' objet"+chr$(32) font_color 14,120,20,10 for x%=141 to 150:button x% :parent x%,14:font_name x%,"webdings":font_size x%,12 :on_click x%,Direction:next x% for x%=141 to 148:width x%,30:height x%,30:next x% for x%=149 to 150:width x%,30:height x%,15:next x% top 141,20:left 141,80 top 142,20:left 142,110 :caption 142,"5" top 143,20:left 143,140 top 144,50:left 144,80 :caption 144,"3" top 145,50:left 145,140:caption 145,"4" top 146,80:left 146,80 top 147,80:left 147,110 :caption 147,"6" top 148,80:left 148,140 top 149,50:left 149,110 :caption 149,"5" top 150,65:left 150,110 :caption 150,"6"
container 15:top 15,325:left 15,1194:height 15,250:caption 15,chr$(32)+"Caméra"+chr$(32) font_color 15,120,20,10
container 16:top 16,580:left 16,1194:height 16,70 :caption 16,chr$(32)+"Couleur de l' objet"+chr$(32) font_color 16,120,20,10
container 17:top 17,655:left 17,1194:height 17,70 :caption 17,chr$(32)+"Texture de l' objet"+chr$(32) font_color 17,120,20,10
dlist 99
gosub Init_prog on_close 0,Quitter end ' ****************************************************************************** Init_Prog: gosub Init_Doss return ' ------------------------------------------------------------------------------ Init_Doss: D$=dir_current$ if dir_exists(D$+"\3D")=0 then dir_make D$+"\3D" D3D$=D$+"\3D" if dir_exists(D$+"\Langues")= 0 then dir_make D$+"\Langues" DL$=D$+"\Langues" return ' ------------------------------------------------------------------------------ Menu: for x%=2 to 5 if clicked(x%)=1 then Menu%=x% next x% select Menu% case 2 gosub Selection case 3 gosub Langue case 4 gosub APp case 5 gosub Aide end_select return ' ------------------------------------------------------------------------------ Selection: form 100:width 100,200:height 100,300:caption 100,"Sélection" font_name 100,"Times new roman":font_size 100,10 command_target_is 100 list 101:width 101,184:height 101,240:on_double_click 101,Valid_Selection alpha 102:top 102,240:left 102,5:caption 102,"Double cliquez pour sélectionner" font_color 102,0,0,255 ' Placement de l'appli dans le dossier où sont les fichiers 3d dir_change D3D$ ' Récupération des adresses des fichiers 3DS et 3ds F$=file_find_first$ if file_extract_extension$(F$)=".3DS" or file_extract_extension$(F$)=".3ds" then item_add 99,F$ F$=file_find_next$ while F$<>"_" if file_extract_extension$(F$)=".3DS" or file_extract_extension$(F$)=".3ds" then item_add 99,F$ F$=file_find_next$ end_while file_find_close ' Affichage des fichiers récupérés dans le list 101 for x%=1 to count(99) F$=item_read$(99,x%) item_add 101,left$(file_extract_name$(F$),len(file_extract_name$(F$))-4) next x% command_target_is 0 return ' ------------------------------------------------------------------------------ Valid_Selection: if o3d_object_exists(1)=1 then 3d_delete 1 File$=D3D$+"\"+item_read$(99,item_index(101)) 3d_mesh 1 3d_load_object 1,File$ gosub Init_Scene clear 99 delete 100 return ' ------------------------------------------------------------------------------ Init_Scene: 3d_scale 1,0.0001,0.0001,0.0001 position 121,1:position 132,0:position 134,0:position 136,0 return ' ------------------------------------------------------------------------------ Langue: message "En cours d'écriture" return ' ------------------------------------------------------------------------------ APp: message "En cours d'écriture" return ' ------------------------------------------------------------------------------ Aide: message "Sera créé si nécessaire" return ' ------------------------------------------------------------------------------ Affichage: return ' ------------------------------------------------------------------------------ Zoom: V=position(121)/10000 3d_scale 1,V,V,V caption 122,str$(V) return ' ------------------------------------------------------------------------------ Rotation_X: 3d_x_rotate 1,position(132) return ' ------------------------------------------------------------------------------ Rotation_Y: 3d_y_rotate 1,position(134) return ' ------------------------------------------------------------------------------ Rotation_Z: 3d_z_rotate 1,position(136) return ' ------------------------------------------------------------------------------ Direction: for x%=141 to 150 if clicked(x%)=1 then Dir%=x% next x% select Dir% case 141 ' decale vers haut gauche y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y+0.1:x=x-0.1:3d_position 1,x,y,z case 142 ' decale vers haut y=o3d_y_position(1):y=y+0.1:3d_y_position 1,y case 143 ' decale vers haut droit y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y+0.1:x=x+0.1:3d_position 1,x,y,z case 144 ' decale vers gauche x=o3d_x_position(1):x=x-0.1:3d_x_position 1,x case 145 ' decale vers droite x=o3d_x_position(1):x=x+0.1:3d_x_position 1,x case 146 ' decale vers bas gauche y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y-0.1:x=x-0.1:3d_position 1,x,y,z case 147 ' decale vers bas y=o3d_y_position(1):y=y-0.1:3d_y_position 1,y case 148 ' decale vers bas droite y=o3d_y_position(1):x=o3d_x_position(1):z=o3d_z_position(1) y=y-0.1:x=x+0.1:3d_position 1,x,y,z case 149 ' decale vers fond z=o3d_z_position(1):z=z+0.1:3d_z_position 1,z case 150 ' decale vers avant z=o3d_z_position(1):z=z-0.1:3d_z_position 1,z end_select return ' ------------------------------------------------------------------------------ ' Place des #include
' ------------------------------------------------------------------------------ Quitter: terminate l'image de départ est au 1/10000, donc il ne faut pas s'affoler si certaines sont invisibles au départ et nécessite un Zoom, c'est pour les grands objets. Si il y a un moyen de récupérer la taille LxH dans le fichier 3ds avant l'affichage, je suis preneur...
Dernière édition par ygeronimi le Lun 3 Sep 2012 - 18:21, édité 1 fois (Raison : correction du bug de rotation sur Y et Z) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 12:53 | |
| @ Jicehel, Je t'ai répondu trop vite... c'est fait exprès car certains fichiers sont avec une extension en minuscules (*.3ds) d'autres en majuscules (*.3DS) et si je ne passe pas par un dlist pour stocker l'adresse complète de l'image et que je recompose celle ci comme tu l'as fait au lieu de renvoyer vers celle stockée dans le dlist, j'ai une erreur d' adresse de fichier. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 13:00 | |
| Je n'ai fait que modifier le numéro car en ayant les 2 objet 99 et 101, j'avais une erreur dans mon prog Par contre bizarre ton problème d'erreur si le nom du fichier est en majuscules ou minuscules, normalement, il ne tient pas compte de ça pour ouvrir un fichier. Si tu fait un test simple d'ouverture de fichier, tu verras, majuscule ou minuscule, il n'en tient pas compte (en tout cas sous Windows) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 13:21 | |
| Je vais revoir çà de près.( ouverture des fichiers ) Pour la mise en mémoire dans list ou dlist , je suis obligé de le faire comme çà ( spécifier le format de l'extension) sinon il charge pas tout. Pour la lecture : file$=item_read$( "dlist", "N° deligne sélectionné dans list") chez moi çà fonctionne... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 14:52 | |
| Salut ygeronimi J’ai lancé ton programme et j’obtiens un écran noir sans aucune autre chose (ni menu, ni bouton, rien) et il n’y a aucun moyen d’en sortir sauf le moyen brutal de mettre fin à la tache. Je vais étudier un peu le programme pour mieux voir !
!!! EN TOUT CAS BIENVENU DANS LE MONDE MERVEILLEUX DE LA D !!! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 16:14 | |
| Dis Ygeronimi : ton écran mesure un kilomètre ou quoi ? Après avoir étudier un peu le programme, j’ai changé ceci : Ligne 17 : adaptation à mon écran (sinon, je ne vois qu’un écran noir et aucun moyen de sortir !) - Code:
-
width 0,1400:height 0,820: top 0,(screen_y-780)/2:left 0,(screen_x-1040)/2:caption 0,"3DS Viewer"
Pour Init_Doss Je pense qu’il est plus clair si le sous-répertoire « …\langues » se trouve dans le répertoire « …3D » et non dans un répertoire indépendant - Code:
-
Init_Doss: D$=dir_current$ if dir_exists(D$+"\3D")=0 then dir_make D$+"\3D" D3D$=D$+"\3D" if dir_exists(D3D$+"\Langues")= 0 then dir_make D3D$+"\Langues" DL$=D3D$+"\Langues" return
Après ces modifications, j’ai lancé le programme. Le menu s’affiche : c’est bon signe. Je clique sur ‘Liste’ : mauvaise surprise : ‘List index out of bounds (0)’ Je retourne pour voir. A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 16:41 | |
| Le répertoire « …\3D » étant crée mais il est encore VIDE ! C’est la cause de l’erreur ‘List index out of bounds(0) Pour éviter cette erreur, ajoute un test avant l’affichage des fichiers récupérés dans list 101 - Code:
-
' Affichage des fichiers récupérés dans le list 101 if count(99) > 0 for x%=1 to count(99) F$=item_read$(99,x%) item_add 101,left$(file_extract_name$(F$),len(file_extract_name$(F$))-4) next x% end_if
J’ai chargé un fichier .3DS dans le répertoire « …\3D » et je vais m’amuser à tester. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 17:51 | |
| @ papydall, Effectivement j'ai un écran plat assez récent, donc style 16/9 mais j'ai longtemps eu un "vieux gros cul" carré qui me donnait de drôles de visuels avec les dernières appli ou page de site fait pour les écrans récents. Je t'avoue que pour l'instant je cherche juste à faire ce que je ne sais pas encore faire ( la partie 3D) ... ...et voir si cela fonctionne . Pour l'interface et les fonctions annexes, je verrai plus tard... Edit :Pour le dossier 3D, je l'ai placé pour regrouper tout les fichiers 3ds au même endroit mais on peut aussi mettre un "open_dialog" pour ouvrir un fichier où qu'il soit placé dans l'ordi ou sur un stockage externe... ...cela peut encore évoluer... tout comme les boutons, qui actuellement sont actifs même si il n'y a pas d'objets chargés et ne sont pas très beau ... En fait, j'ai posté pour jeter ma base de travail sur le tapis... ...mais ce n'est qu'une base . Tout les containers sont visibles et ont une place fixe mais là aussi on peut faire évoluer les choses... Donc pour en revenir à mes moutons, je teste les commandes pour visualiser ce que chacune d'elle fait en espérant que cela fonctionne... Le problème actuel est la taille de la zone 3d du fichier 3ds chargé pour réglé 3d_scale à l'affichage . Et je ne comprends pas pourquoi 3D_Y_Rotate et 3D_Z_Rotate ne me font pas des rotations à 360° .Pour info mon écran est de 1600 x 900 | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 19:00 | |
| J'ai toujours des abstract error avec ton programme. Je suis obligé de faire une modification dans le sous-programme Valid_Selection par: File$=D3D$+"\"+item_read$(101,item_index(101))+".3DS"
J'ai aussi modifié les dimensions (ligne 17) par: width 0,1380:height 0,780:top 0,(screen_y-780)/2:left 0,(screen_x-1380)/2:caption 0,"3DS Viewer" | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 19:45 | |
| Bonsoir ygeronimi, J'ai du mal à suivre l'évolution de ton prog... Pourrais-tu le mettre dans ton webdav stp ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 19:47 | |
| Et tu n'as plus de "abstrack error" avec ta modif ? Pour les dimensions, chacun voit en fonction de son écran... Edit : @ Nardo, Pour l'instant, plus rien n'évolue... ... je réponds sur le forum... ( Si, je viens de travailler quelques images pour remplacer les boutons... ) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: J'ai copié sur Bignono Lun 3 Sep 2012 - 20:51 | |
| Un autre truc, ton scale est trop petit, du coup pleins d'objets font n'importe quoi sans doute par problème d'arrondi dû a des chiffres trop faibles.
J'ai fais une autre modif sur Init_Scene: position 121,1:position 132,0:position 134,0:position 136,0 gosub zoom return
et sur zoom: V=position(121)/1000 if O3D_object_exists(1) = 1 then 3d_scale 1,V,V,V caption 122,str$(V) return
Par contre j'ai encore quelques abstract error dont je n'arrive pas à connaitre l'origine, mais le programme fonctionne. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 20:58 | |
| Abstract error est un grand mystère. Je pense qu'il vient quand l' objet est plus grand que le scene3d...
JACK !!! une petite explication...? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 3 Sep 2012 - 21:04 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: J'ai copié sur Bignono | |
| |
| | | | J'ai copié sur Bignono | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |