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 |
|
|
| un viewer 3d à améliorer pour notre ami YGERONIMI! | |
| | Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 8:11 | |
| Bonjour à tous - Citation :
- Exact, en fait Ygeronimi, tu es juste en panne d'idée
Une petite idée de programme et tu iras mieux en fait Ygeronimi, tu avais fait il y a quelques temps un viewer 3ds. Je crois que tu voulais pouvoir ouvrir les fichiers 3ds et md2, mais que tu ne savais pas comment faire pour les 2 dans le même programme. Il y a longtemps avant les sub j'avais fait un programme de ce genre que j'ai modifié avec quelques unes de tes idées de ton viewer. Je crois que tu peux certainement l'améliorer à la façon sub. Moi il me sert juste à visionner vite fait un objet 3ds ou md2 pour voir si il n'y a pas de problème avec les facettes et les sommets de l'objet avant de le charger dans wings3d pour éventuellement le modifier et le retravailler ou le retexturer! Le programme a quelques bugs, mais rien de bien méchant. Bon courage à toi si tu te sens inspiré. - Code:
-
dim i,fr%,fv%,fb%,t,rx,ry,rz,cx,cy,cz,pvx,pvy,pvz,lx,ly,lz,r%,v%,b%,tr%,x,y,z,F$,TX$,A$,ttr$ dim fgr%,fgv%,fgb%,d,bouton,dmin,dmax label fond,zoom,rotation,camera,vise,lumiere,colore,transp,direct,selection,init,texturer label fog_couleur,fog_mini,fog_maxi,vdelta,c166c109 ' ****************************************************************************** A$="VISIONNEUR 3DS_MD2 " full_space 0:hide 0:font_name 0,"Times new roman":font_size 0,10:caption 0,A$:show 0
main_menu 1 sub_menu 2 :parent 2,1:caption 2,"Ouvrir":on_click 2,selection
scene3d 49:top 49,0:left 49,0:width 49,1200:height 49,802:color 49,0,0,0 container 50:left 50,1203:width 50,376:top 50,000:height 50,802 container 51:parent 51,50:left 51,000:width 51,376:top 51,000:height 51,075:font_name 51,"Consolas":font_color 51,130,0,0:font_bold 51:caption 51," Couleur de fond ":' container règlage couleur de fond container 52:parent 52,50:left 52,000:width 52,376:top 52,075:height 52,035:font_name 52,"Consolas":font_color 52,130,0,0:font_bold 52:caption 52," ZOOM = 0.001 ": ' container règlage Zoom container 53:parent 53,50:left 53,000:width 53,090:top 53,110:height 53,405:font_name 53,"Consolas":font_color 53,130,0,0:font_bold 53:caption 53," ROTATION ": ' container règlage Rotation container 54:parent 54,50:left 54,095:width 54,090:top 54,110:height 54,405:font_name 54,"Consolas":font_color 54,130,0,0:font_bold 54:caption 54," CAMÉRA ": ' container règlage Caméra container 55:parent 55,50:left 55,190:width 55,090:top 55,110:height 55,405:font_name 55,"Consolas":font_color 55,130,0,0:font_bold 55:caption 55,"POINT VISÉ": ' container règlage Point visé container 56:parent 56,50:left 56,286:width 56,090:top 56,110:height 56,405:font_name 56,"Consolas":font_color 56,130,0,0:font_bold 56:caption 56," LUMIÈRE ": ' container règlage Lumière objet container 57:parent 57,50:left 57,000:width 57,376:top 57,515:height 57,095:font_name 57,"Consolas":font_color 57,130,0,0:font_bold 57:caption 57," Couleur et transparence de l'objet 3D ": ' container règlage Couleur objet container 58:parent 58,50:left 58,000:width 58,185:top 58,610:height 58,100:font_name 58,"Consolas":font_color 58,130,0,0:font_bold 58:caption 58," Position de l'objet 3D ": ' container règlage Position objet container 59:parent 59,50:left 59,185:width 59,191:top 59,610:height 59,100:' font_name 59,"Consolas":font_color 59,130,0,0:font_bold 59:caption 59," TEXTURE " container 60:parent 60,50:left 60,000:width 60,376:top 60,710:height 60,095:font_name 60,"Consolas":font_color 60,130,0,0:font_bold 60:caption 60," EFFET FOG "
scroll_bar 61:parent 61,51:left 61,5:top 61,015:width 61,256:min 61,0:max 61,255:on_change 61,fond scroll_bar 62:parent 62,51:left 62,5:top 62,035:width 62,256:min 62,0:max 62,255:on_change 62,fond scroll_bar 63:parent 63,51:left 63,5:top 63,055:width 63,256:min 63,0:max 63,255:on_change 63,fond
scroll_bar 64:parent 64,52:left 64,5:top 64,015:width 64,360:min 64,1:max 64,10000:on_change 64,zoom
scroll_bar 65:parent 65,53:vertical 65:left 65,05:top 65,27:height 65,360:min 65,-359:max 65,359:position 65,0:on_change 65,rotation scroll_bar 66:parent 66,53:vertical 66:left 66,35:top 66,27:height 66,360:min 66,-359:max 66,359:position 66,0:on_change 66,rotation scroll_bar 67:parent 67,53:vertical 67:left 67,65:top 67,27:height 67,360:min 67,-359:max 67,359:position 67,0:on_change 67,rotation
scroll_bar 68:parent 68,54:vertical 68:left 68,05:top 68,27:height 68,360:min 68,-100:max 68,100:position 68,0:on_change 68,camera scroll_bar 69:parent 69,54:vertical 69:left 69,35:top 69,27:height 69,360:min 69,-100:max 69,100:position 69,0:on_change 69,camera scroll_bar 70:parent 70,54:vertical 70:left 70,65:top 70,27:height 70,360:min 70,-100:max 70,100:position 70,5:on_change 70,camera
scroll_bar 71:parent 71,55:vertical 71:left 71,05:top 71,27:height 71,360:min 71,-100:max 71,100:position 71,0:on_change 71,vise scroll_bar 72:parent 72,55:vertical 72:left 72,35:top 72,27:height 72,360:min 72,-100:max 72,100:position 72,0:on_change 72,vise scroll_bar 73:parent 73,55:vertical 73:left 73,65:top 73,27:height 73,360:min 73,-100:max 73,100:position 73,0:on_change 73,vise
scroll_bar 74:parent 74,56:vertical 74:left 74,05:top 74,27:height 74,360:min 74,-100:max 74,100:position 74,0:on_change 74,lumiere scroll_bar 75:parent 75,56:vertical 75:left 75,35:top 75,27:height 75,360:min 75,-100:max 75,100:position 75,0:on_change 75,lumiere scroll_bar 76:parent 76,56:vertical 76:left 76,65:top 76,27:height 76,360:min 76,-100:max 76,100:position 76,5:on_change 76,lumiere
scroll_bar 77:parent 77,57:left 77,5:top 77,015:width 77,256:min 77,0:max 77,255:on_change 77,colore scroll_bar 78:parent 78,57:left 78,5:top 78,035:width 78,256:min 78,0:max 78,255:on_change 78,colore scroll_bar 79:parent 79,57:left 79,5:top 79,055:width 79,256:min 79,0:max 79,255:on_change 79,colore scroll_bar 80:parent 80,57:left 80,5:top 80,075:width 80,256:min 80,0:max 80,255:on_change 80,transp
alpha 081:parent 081,51:left 081,265:top 081,015:font_name 081,"Consolas":font_color 081,255,0,0:font_bold 081:caption 081,"ROUGE => 0" alpha 082:parent 082,51:left 082,265:top 082,035:font_name 082,"Consolas":font_color 082,0,155,0:font_bold 082:caption 082,"VERT ==> 0" alpha 083:parent 083,51:left 083,265:top 083,055:font_name 083,"Consolas":font_color 083,0,0,255:font_bold 083:caption 083,"BLEU ==> 0"
alpha 084:parent 084,53:left 084,008:top 084,012:font_name 084,"Arial":font_color 084,0,0,255:font_size 084,10:font_bold 084:caption 084,"X" alpha 085:parent 085,53:left 085,038:top 085,012:font_name 085,"Arial":font_color 085,0,0,255:font_size 085,10:font_bold 085:caption 085,"Y" alpha 086:parent 086,53:left 086,068:top 086,012:font_name 086,"Arial":font_color 086,0,0,255:font_size 086,10:font_bold 086:caption 086,"Z" alpha 087:parent 087,53:left 087,002:top 087,387:font_name 087,"Arial":font_color 087,190,0,0:font_size 087,08:font_bold 087:caption 087,"0°" alpha 088:parent 088,53:left 088,032:top 088,387:font_name 088,"Arial":font_color 088,190,0,0:font_size 088,08:font_bold 088:caption 088,"0°" alpha 089:parent 089,53:left 089,062:top 089,387:font_name 089,"Arial":font_color 089,190,0,0:font_size 089,08:font_bold 089:caption 089,"0°"
alpha 090:parent 090,54:left 090,008:top 090,012:font_name 090,"Arial":font_color 090,0,0,255:font_size 090,10:font_bold 090:caption 090,"X" alpha 091:parent 091,54:left 091,038:top 091,012:font_name 091,"Arial":font_color 091,0,0,255:font_size 091,10:font_bold 091:caption 091,"Y" alpha 092:parent 092,54:left 092,068:top 092,012:font_name 092,"Arial":font_color 092,0,0,255:font_size 092,10:font_bold 092:caption 092,"Z" alpha 093:parent 093,54:left 093,003:top 093,387:font_name 093,"Arial":font_color 093,190,0,0:font_size 093,08:font_bold 093:caption 093,"0" alpha 094:parent 094,54:left 094,033:top 094,387:font_name 094,"Arial":font_color 094,190,0,0:font_size 094,08:font_bold 094:caption 094,"0" alpha 095:parent 095,54:left 095,063:top 095,387:font_name 095,"Arial":font_color 095,190,0,0:font_size 095,08:font_bold 095:caption 095,"5"
alpha 096:parent 096,55:left 096,008:top 096,012:font_name 096,"Arial":font_color 096,0,0,255:font_size 096,10:font_bold 096:caption 096,"X" alpha 097:parent 097,55:left 097,038:top 097,012:font_name 097,"Arial":font_color 097,0,0,255:font_size 097,10:font_bold 097:caption 097,"Y" alpha 098:parent 098,55:left 098,068:top 098,012:font_name 098,"Arial":font_color 098,0,0,255:font_size 098,10:font_bold 098:caption 098,"Z" alpha 099:parent 099,55:left 099,003:top 099,387:font_name 099,"Arial":font_color 099,190,0,0:font_size 099,08:font_bold 099:caption 099,"0" alpha 100:parent 100,55:left 100,033:top 100,387:font_name 100,"Arial":font_color 100,190,0,0:font_size 100,08:font_bold 100:caption 100,"0" alpha 101:parent 101,55:left 101,063:top 101,387:font_name 101,"Arial":font_color 101,190,0,0:font_size 101,08:font_bold 101:caption 101,"0"
alpha 102:parent 102,56:left 102,008:top 102,012:font_name 102,"Arial":font_color 102,0,0,255:font_size 102,10:font_bold 102:caption 102,"X" alpha 103:parent 103,56:left 103,038:top 103,012:font_name 103,"Arial":font_color 103,0,0,255:font_size 103,10:font_bold 103:caption 103,"Y" alpha 104:parent 104,56:left 104,068:top 104,012:font_name 104,"Arial":font_color 104,0,0,255:font_size 104,10:font_bold 104:caption 104,"Z" alpha 105:parent 105,56:left 105,003:top 105,387:font_name 105,"Arial":font_color 105,190,0,0:font_size 105,08:font_bold 105:caption 105,"0" alpha 106:parent 106,56:left 106,033:top 106,387:font_name 106,"Arial":font_color 106,190,0,0:font_size 106,08:font_bold 106:caption 106,"0" alpha 107:parent 107,56:left 107,063:top 107,387:font_name 107,"Arial":font_color 107,190,0,0:font_size 107,08:font_bold 107:caption 107,"5"
alpha 108:parent 108,57:left 108,265:top 108,015:font_name 108,"Consolas":font_color 108,255,0,0:font_bold 108:caption 108,"ROUGE => 0" alpha 109:parent 109,57:left 109,265:top 109,035:font_name 109,"Consolas":font_color 109,0,155,0:font_bold 109:caption 109,"VERT ==> 0" alpha 110:parent 110,57:left 110,265:top 110,055:font_name 110,"Consolas":font_color 110,0,0,255:font_bold 110:caption 110,"BLEU ==> 0" alpha 111:parent 111,57:left 111,265:top 111,075:font_name 111,"Terminal":font_color 111,0,0,255:font_bold 111:caption 111,"TRANSPARENCE: 0"
for i=112 to 121:button i:parent i,58:font_name i,"wingdings":font_size i,12:on_click i,direct:next i for i=112 to 121:width i,26:height i,26:if i>119 then height i,13 next i left 112,35:top 112,20:caption 112,chr$(235):left 113,65:top 113,20:caption 113,chr$(233) left 114,95:top 114,20:caption 114,chr$(236):left 115,35:top 115,46:caption 115,chr$(231) left 116,95:top 116,46:caption 116,chr$(232):left 117,35:top 117,72:caption 117,chr$(237) left 118,65:top 118,72:caption 118,chr$(234):left 119,95:top 119,72:caption 119,chr$(238) left 120,65:top 120,46:caption 120,chr$(242):left 121,65:top 121,59:caption 121,chr$(241) alpha 122:parent 122,58:left 122,125:top 122,25:font_name 122,"Consolas":font_color 122,200,0,0:font_size 122,08:font_bold 122:caption 122,"X="+str$(x) alpha 123:parent 123,58:left 123,125:top 123,51:font_name 123,"Consolas":font_color 123,200,0,0:font_size 123,08:font_bold 123:caption 123,"Y="+str$(y) alpha 124:parent 124,58:left 124,125:top 124,77:font_name 124,"Consolas":font_color 124,200,0,0:font_size 124,08:font_bold 124:caption 124,"Z="+str$(z) alpha 125:parent 125,58:left 125,004:top 125,22:font_name 125,"Terminal":font_color 125,000,0,0:font_size 125,10:font_bold 125:color 125,200,200,200:caption 125,"0.01":on_click 125,vdelta alpha 126:parent 126,58:left 126,004:top 126,42:font_name 126,"Terminal":font_color 126,000,0,0:font_size 126,10:font_bold 126:color 126,200,200,200:caption 126,"0.1 ":on_click 126,vdelta alpha 127:parent 127,58:left 127,004:top 127,62:font_name 127,"Terminal":font_color 127,000,0,0:font_size 127,10:font_bold 127:color 127,000,255,255:caption 127," 1 ":on_click 127,vdelta alpha 128:parent 128,58:left 128,004:top 128,82:font_name 128,"Terminal":font_color 128,000,0,0:font_size 128,10:font_bold 128:color 128,200,200,200:caption 128," 10 ":on_click 128,vdelta
button 129:parent 129,59:left 129,070:top 129,05:width 129,120:height 129,20:font_bold 129:font_size 129,14:caption 129,"TEXTURE":on_click 129,texturer: ' container règlage Texture objet picture 130:parent 130,59:left 130,2:top 130,6:width 130,186:height 130,93
scroll_bar 131:parent 131,60:left 131,245:top 131,035:width 131,128:min 131,0:max 131,255:on_change 131,fog_couleur scroll_bar 132:parent 132,60:left 132,245:top 132,055:width 132,128:min 132,0:max 132,255:on_change 132,fog_couleur scroll_bar 133:parent 133,60:left 133,245:top 133,075:width 133,128:min 133,0:max 133,255:on_change 133,fog_couleur alpha 134:parent 134,60:left 134,250:top 134,10:color 134,0,0,0:font_name 134,"Lucida Console":font_size 134,14:caption 134," " alpha 135:parent 135,60:left 135,200:top 135,00:font_name 135,"Wingdings":font_size 135,30:font_color 135,255,0,0:caption 135,chr$(109):on_click 135,c166c109 alpha 136:parent 136,60:left 136,209:top 136,15:font_name 136,"Consolas" :font_size 136,08:font_color 136,255,0,0:caption 136,"OFF":on_click 136,c166c109
alpha 137:parent 137,60:left 137,005:top 137,15:font_name 137,"Arial":font_size 137,10:font_color 137,000,000,255:caption 137,"Distance Minimale" alpha 138:parent 138,60:left 138,210:top 138,35:font_name 138,"Arial":font_size 138,12:font_color 138,200,0,0:caption 138,str$(dmin) scroll_bar 139:parent 139,60:left 139,005:top 139,35:width 139,200:min 139,1:max 139,199:on_change 139,fog_mini
alpha 140:parent 140,60:left 140,005:top 140,55:font_name 140,"Arial":font_size 140,10:font_color 140,000,0,255:caption 140,"Distance Maximale" alpha 141:parent 141,60:left 141,210:top 141,75:font_name 141,"Arial":font_size 141,12:font_color 141,200,0,0:caption 141,str$(dmax) scroll_bar 142:parent 142,60:left 142,005:top 142,75:width 142,200:min 142,2:max 142,200:on_change 142,fog_maxi d=1 end
fog_couleur: fgr%=position(131):fgv%=position(132):fgb%=position(133):color 134,fgr%,fgv%,fgb% return
fog_mini: dmin=position(139)/2:caption 138,str$(dmin):fog_distance_min dmin if dmin>=dmax then position 142,position(139)+1 return fog_maxi: dmax=position(142)/2:caption 141,str$(dmax):fog_distance_max dmax if dmax<=dmin then position 139,position(142)-1 return
init: for i=65 to 80:position i,0:next i:position 64,1:position 70,5:position 76,5 gosub camera:gosub vise:gosub lumiere:x=0:y=0:z=0 if o3d_object_exists(1)=1 then 3d_position 1,x,y,z:gosub colore:gosub zoom:gosub rotation:gosub transp return
texturer: if o3d_object_exists(1)=0 then return if o3d_object_exists(1)=1 then 3d_delete 1:hide 130 if right$(F$,3)="3ds" then 3d_mesh 1 if right$(F$,3)="md2" then 3d_actor 1 3d_load_object 1,F$:3d_position 1,x,y,z:gosub colore:gosub zoom:gosub rotation:gosub transp TX$="":open_dialog 200:filter 200,"fichiers images: *.bmp,*.jpg|*.bmp;*.jpg" TX$=file_name$(200):TX$=lower$(TX$):delete 200 if TX$<>"_" if O3D_object_exists(1)=1 then 3d_load_texture 1,TX$ show 130:file_load 130,TX$:stretch_on 130 end_if caption 0,A$+F$+" "+TX$:return
selection: F$="":open_dialog 200:filter 200,"fichiers mesh actor: *.3ds,*.md2|*.3ds;*.md2" F$=file_name$(200):F$=lower$(F$):delete 200 if F$<>"_" if o3d_object_exists(1)=1 then 3d_delete 1:hide 130 if right$(F$,3)="3ds" then 3d_mesh 1 if right$(F$,3)="md2" then 3d_actor 1 3d_load_object 1,F$:gosub init for i=51 to 60:show i:next i end_if caption 0,A$+F$:return
vdelta: for i=125 to 128:color i,200,200,200:next i select number_click case 125:d=0.01 case 126:d=0.1 case 127:d=1 case 128:d=10 end_select color number_click,0,255,255 return
direct: x=o3d_x_position(1):y=o3d_y_position(1):z=o3d_z_position(1) select number_click case 112:y=y+d:x=x-d:' decale vers haut gauche case 113:y=y+d:' decale vers haut case 114:y=y+d:x=x+d:' decale vers haut droit case 115:x=x-d:' decale vers gauche case 116:x=x+d:' decale vers droite case 117:y=y-d:x=x-d:' decale vers bas gauche case 118:y=y-d:' decale vers bas case 119:y=y-d:x=x+d: ' decale vers bas droite case 120:z=z+d:' decale vers fond case 121:z=z-d:' decale vers avant end_select x=int((x+0.005)*100)/100:y=int((y+0.005)*100)/100:z=int((z+0.005)*100)/100 3d_position 1,x,y,z caption 122,"X="+str$(x):caption 123,"Y="+str$(y):caption 124,"Z="+str$(z) return
c166c109: if odd(bouton)=1 then font_color 135,255,0,0:font_color 60,130,0,0:caption 60," EFFET FOG ( OFF )":left 136,209:font_color 136,255,0,0:caption 136,"OFF":fog_off if even(bouton)=1 then font_color 135,0,155,0:font_color 60,0,130,0:caption 60," EFFET FOG ( ON )":left 136,212:font_color 136,0,130,0:caption 136,"ON":fog_on caption 135,chr$(166):wait 200:caption 135,chr$(109):bouton=bouton+1 return
alpha 136:parent 136,60:left 136,209:top 136,15:font_name 136,"Consolas" :font_size 136,08:font_color 136,255,0,0:caption 136,"OFF"
transp: tr%=position(80):caption 111,"TRANSPARENCE: "+str$(tr%):if o3d_object_exists(1)=1 then 3d_transparent 1,tr% return
colore: r%=position(77):v%=position(78):b%=position(79):if O3D_object_exists(1)=1 then 3d_color 1,r%,v%,b% caption 108,"ROUGE => "+str$(r%):caption 109,"VERT ==> "+str$(v%):caption 110,"BLEU ==> "+str$(b%) return
lumiere: lx=Position(74):ly=Position(75):lz=Position(76):light_position lx,ly,lz caption 105,lx:caption 106,ly:caption 107,lz return
vise: pvx=Position(71)/10:pvy=Position(72)/10:pvz=Position(73)/10:point_position pvx,pvy,pvz caption 099,pvx:caption 100,pvy:caption 101,pvz return
camera: cx=Position(68):cy=Position(69):cz=Position(70):cam_position cx,cy,cz caption 93,str$(cx):caption 94,str$(cy):caption 95,str$(cz) return
rotation: rx=position(65):caption 87,str$(rx)+"°":ry=position(66):caption 88,str$(ry)+"°":rz=position(67):caption 89,str$(rz)+"°" if o3d_object_exists(1)=1 then 3d_rotate 1,rx,ry,rz return
zoom: t=position(64)/1000:caption 52,chr$(32)+"ZOOM = "+str$(t)+chr$(32):if o3d_object_exists(1)=1 then 3d_scale 1,t,t,t return
fond: fr%=position(61):fv%=position(62):fb%=position(63):color 49,fr%,fv%,fb% caption 81,"ROUGE => "+str$(fr%):caption 82,"VERT ==> "+str$(fv%):caption 83,"BLEU ==> "+str$(fb%) return J'espère ainsi te redonner un peu d'inspiration pour nous faire quelques bons petits programmes! A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 13 Jan 2013 - 13:03 | |
| Effectivement, je me suis amusé un temps à faire un viewer 3d. j'en avais marre de ne pas pouvoir voir ces objets. J' ai regardé un peu ton code et je remarque une chose que je pensais pas permise dans la numérotation des objets : - Code:
-
Alpha 081 je ne pensais pas cela possible. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 14:20 | |
| Salut tout le monde. @Ygeronimi Oui tu peux utiliser une expression pour les identificateurs d’objets. Un identificateur d’objet peut être soit un nombre entier supérieur à zéro (le zéro est prédéfini pour FORM 0), soit un nombre décimai >= 1, soit même une expression mathématique quelconque pouvant rendre une valeur flottante >=1. Le code suivant est correct, mais est-il judicieux de coder de cette façon ? - Spoiler:
' UN identificateur d'objet peut être une valeur numérique entière ' ou décimale ou même une expression mathématique quelconque
label quit,hello,salut container 1 : top 1,20 : left 1,100 : width 1,400 : height 1,400 button 2 : parent 2,1 : top 2,50 : left 2,100 : caption 2,"Hello":on_click 2,hello button 2.76 : parent 2.76,1 : top 2.76,50 : left 2.76,200 :caption 2.76,"Salut":on_click 2.76,salut alpha 3+sin(.57) : parent 3+sin(.57),1 : top 3+sin(.57),200 : left 3+sin(.57),50 color 0003+sin(.57),0,0,255: font_color 0003+sin(.57),255,255,0 :font_bold 0003+sin(.57) caption 3+sin(.57),"Un identificateur d'objet peut être un nombre décimal" + chr$(13)+"ou même une expression numérique."+chr$(13)+"Par exemple, le mien est : 0003+sin(.57)" button 005*3.14159 : parent 005*3.14159,1 : top 005*3.14159,300 : left 005*3.14159,150 caption 005*3.14159,"QUITTER" : hint 005*3.14159,"Mon identificateur est : 005*3.14159":on_click 5*3.14159, quit end hello: hint 2,"Mon identificateur est 2" return
Salut: hint 2.76,"Mon identificateur est 2.76" return
quit: terminate
| |
| | | Invité Invité
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 15:12 | |
| Bonjour Papydall. J'ai été surpris par le fait d'utiliser des valeurs décimal pour les objets, et j'ai eu un doute. Effectivement ton exemple fonctionne, mais: - Code:
-
label quit,hello,salut container 1 : top 1,20 : left 1,100 : width 1,400 : height 1,400 button 2 : parent 2,1 : top 2,50 : left 2,100 : caption 2,"Hello":on_click 2,hello button 2.76 : parent 2.76,1 : top 2.76,50 : left 2.76,200 :caption 2.76,"Salut":on_click 2.76,salut alpha 3+sin(.57) : parent 3+sin(.57),1 : top 3+sin(.57),200 : left 3+sin(.57),50 color 0003+sin(.57),0,0,255: font_color 0003+sin(.57),255,255,0 :font_bold 0003+sin(.57) caption 3+sin(.57),"Un identificateur d'objet peut être un nombre décimal" + chr$(13)+"ou même une expression numérique."+chr$(13)+"Par exemple, le mien est : 0003+sin(.57)" button 005*3.14159 : parent 005*3.14159,1 : top 005*3.14159,300 : left 005*3.14159,150 caption 005*3.14159,"QUITTER" : hint 005*3.14159,"Mon identificateur est : 005*3.14159":on_click 5*3.14159, quit end hello: hint 2,"Mon identificateur est 2" return
Salut: hint 2.76,"Mon identificateur est :"+str$(number_click) return
quit: terminate Et là il y a un hic. Ton objet 2.76, est lu comme objet 3. Si tu rajoutes un: DLIST 3, là ça ne le valide pas. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 15:22 | |
| Il est vrai que la doc n'est pas entièrement explicite à ce sujet. Cependant, il est dit partout que le numéro d'objet est un entier ou un réel, plus grand que 0 et inférieur ou égal au nombre maximum des objets du système. On peut donc en déduire que l'expression dont le résultat est utilisé comme numéro d'objet est convertie de façon interne en entier avant d'être utilisée comme numéro d'objet. Il y a donc un arrondi. C'est la même chose pour d'autres valeurs: top, left, ... Regarde ceci: - Code:
-
button 1 top 1,11.3 message str$(top(1))
le programme affiche bien 11 et non 11.3. Partout où intuitivement on s'attend à un entier, des flottants (ou expressions donnant des valeurs flottantes) sont acceptés, mais automatiquement arrondis en entiers. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 15:30 | |
| En effet Le système arrondi la valeur décimal à l’entier le plus proche avant de l’affecter à l’objet. 1.25 est arrondi à 1 1.5 est arrondi à 2 Toute autre valeur entre 1 et 2 sera arrondie soit à 1 soit à 2. Ta remarque est donc tout à fait correcte. - Code:
-
list 1.25 : left 1.25 ,50 : ' arrondi à 1 list 1.5 : left 1.5, 200 : ' arrondi à 2 list 2 : ' ==> ERREUR : OBJECT already defined . Line : 4
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 15:33 | |
| Ce n'est pas un peu du vice que d'appeler un objet 3.1416 ? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 15:34 | |
| Dans ma doc, j'ai volontairement omis le fait de pouvoir mettre des réel, je trouve que ça embrouille plus qu'autre chose, j'ai mis entier positif inférieur au nombre d'objets maximums. Ce n'est pas tout à fait vrai comme le montre le programme, mais je trouve ça beaucoup plus clair est seul un esprit tordu pourrait les utiliser... Dans tes dents Bignono Non, je plaisante, je sais qu'il a fait ça exprès pour nous titiller un peu. Le seul intérêt d'utiliser les réel est l'usage pour les débutant qui ne mettent pas d'extension à leur variable. Genre utilisation de i ou de du no_objet. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 13 Jan 2013 - 15:53 | |
| Heu.... dans son code, Bignono nomme un objet alpha par : 081 et pas 3.1416 je pensais que le 0 devant 81 vaudrait une "Error", c'est tout... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 17:31 | |
| On peut mettre autant des zéros que l’on veut - Code:
-
LIST 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009999 La valeur maximale d’un identificateur est 9999, les zéros n’ont aucun effet. Par contre, vous ne pouvez pas écrire ceci : - Code:
-
list +2 Le signe + n'est pas permis, mais - Code:
-
list 0+2 est accepté. Il est bon de le savoir, c'est tout. A mois que l'on veut être SUPER PANORAMICIEN, je ne vois pas pourquoi on code ainsi (qui est tout à fait correct du point de vue syntaxe) - Code:
-
list 1/2+100*sqr(3+14*(abs(sin(1.5789)))) | |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! Dim 13 Jan 2013 - 17:38 | |
| @Klaus: - Citation :
- Il est vrai que la doc n'est pas entièrement explicite à ce sujet. Cependant, il est dit partout que le numéro d'objet est un entier ou un réel, plus grand que 0 et inférieur ou égal au nombre maximum des objets du système.
On peut donc en déduire que l'expression dont le résultat est utilisé comme numéro d'objet est convertie de façon interne en entier avant d'être utilisée comme numéro d'objet. Il y a donc un arrondi. C'est la même chose pour d'autres valeurs: top, left, ...
Dans ce cas, la conversion d'un réel en entier se fait vers l'entier le plus proche du réel (arrondi et non pas partie entière). | |
| | | Contenu sponsorisé
| Sujet: Re: un viewer 3d à améliorer pour notre ami YGERONIMI! | |
| |
| | | | un viewer 3d à améliorer pour notre ami YGERONIMI! | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |