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 |
|
|
| Toujour les boules | |
| | Auteur | Message |
---|
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Toujour les boules Ven 21 Mai 2010 - 6:08 | |
| Elles se maitrisent petit a petit - Code:
-
dim p(7,2),L ,n,x,y,z dim g(7,2) ,d,i
scene3d 2 width 2,640 height 2,480
color 2,100,0,100 for L=1 to 7 3D_sphere L, 1.5 3d_color L,0,20*l,150+(l*10) Cam_position 12,5,-10
Light_position L, 0, 45
p(L,1)=4.0-(rnd(80)/10.0) p(L,2)=4.0-(rnd(80)/10.0) g(L,1)=rnd(3600) g(L,2)=rnd(3600) next L repeat d=d+1 for n=1 to 7
g(n,1)=(g(n,1)+2) g(n,2)=g(n,2)+4
x=p(n,1)+(3.0*sin(g(n,1))) y=3+(8.0*sin(g(n,2))) z=p(n,2)+(3.0*cos(g(n,1)))
3d_x_position n ,x
3d_y_position n ,y
3d_z_position n ,z display
light_position x,y,z
wait 20 next n until d=10 for n= 1 to 7 3d_x_position n ,2+n 3d_y_position n ,5 3d_z_position n ,z display wait 80 next n wait 200 for n= 1 to 7 3d_color n,110+(n*20),20*l,150+(n*10) display wait 200
next n 3d_y_position 1 ,6 3d_y_position 3 ,4 display 3d_x_position 4 ,-3.9 display
for n=3 to 7 3d_hide n next n 3d_x_position 2 ,0 3d_y_position 2 ,5 3d_z_position 2 ,0 for i=0 to 90 step .1 x=0+7*(cos(0+i)) y=0+7*(sin(0+i)) 3d_color 2,239,219,0 3d_color 1,0,100,180 Light_position 1, 0,5
3d_x_position 1 ,x 3d_z_position 1 ,y display wait 40
next i
end
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 15:27 | |
| Pas mal le coup du satellite ! mais c'est pas sympa de ne pas avoir prévu une possibilité d'arrêt, on se demande si ça va être infini (comme le cosmos).
D'autre part, l'indentation de ton programme, c'est en le collant ici ou c'est d'origine ? parce que sur la fin c'est un peu n'importe quoi... | |
| | | Invité Invité
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 16:27 | |
| |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 16:52 | |
| L'identation est d-origine ( désolé mais j'ai fait ça sur le pouce). ce n'est que pour m'amuser avec la 3d. Si la terre tourne trop vite c'est parcequ'elle est en retard. | |
| | | Invité Invité
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 17:02 | |
| En retard de combien de secondes????? |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 17:46 | |
| Pas mal pour un début ! J'ai regardé le mouvement de la "Terre" autour du "Soleil" et il y a moyen de l'optimiser. Attention: je ne veux pas jouer au professeur! 1 - pour gagner en vitesse d'exécution, on peut retirer: - Code:
-
3d_color 2,239,219,0 3d_color 1,0,100,180 Light_position 1,0,5 de la boucle car se sont des constantes qui n'ont pas besoin d'être calculées à chaque fois. Lorsqu'on fait une boucle avec une variable (i) on ne met dans la boucle que les expressions qui contiennent cette variable. Le reste n'a pas besoin d'être recalculé. 2 - pour gagner encore en vitesse d'exécution, tu peux remplacer: - Code:
-
x=0+7*(cos(0+i)) y=0+7*(sin(0+i))
par: - Code:
-
x=7*cos(i) y=7*sin(i)
et retirer: - Code:
-
3d_z_position 2 ,0 qui ne sert à rien, un objet étant créé avec z=0. Et de plus, tu n'utilises pas la coordonnée Z: tout le mouvement s'effectue dans le plan XY. 3 - enfin, il n'y a pas besoin de calculer des sinus et cosinus grace à la commande 3D_CHAIN. Il suffit de "chainer" la Terre au Soleil et la Terre va suivre les mouvements du Soleil. L'astuce est alors de faire pivoter le Soleil autour de son axe Y et la Terre va tourner autour de lui: - Code:
-
dim i
' la fenêtre de visualisation scene3d 2 width 2,640 height 2,480 color 2,100,0,100 ' la Terre 3D_sphere 1, 1.5 ' le Soleil 3D_sphere 2, 1.5 ' l'observateur Cam_position 12,5,-10 ' la lumière Light_position 0, 0, 45 ' on positionne la Terre 3d_x_position 1 ,7 3d_y_position 1 ,0 ' on positionne le Soleil 3d_x_position 2 ,0 3d_y_position 2 ,5 ' retiré de la boucle car pas besoin de les répéter 3d_color 2,239,219,0 3d_color 1,0,100,180 Light_position 1,0,5 ' on chaine la Terre au Soleil 3D_chain 1,2 ' on fait tourner le Soleil sur son axe Y for i=0 to 360 3d_y_rotate 2,i wait 10 next i end
| |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 18:58 | |
| Merci je n'avais pas encore compris l'utilisation de 3D_chain. ce n'est pas trop le code qui avait de l'importance au moment de la programmation pour moi mais le résultat su l'écran. j'aime bien voir ce que l'on peut faire avec la 3d. Mais tu a raison les résultats en optimisant le programme donnent des effets différents. En fait il faudrait des exemples plus nombreux. Et surtout. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Toujour les boules Ven 21 Mai 2010 - 21:06 | |
| Dans l'exemple de Jack, je trouve l'éclairage de la terre plus réaliste si on fait Light_Position 1,5,0 au lieu de 1,0,5 | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 22 Mai 2010 - 17:08 | |
| - Citation :
- La terre tourne un peu trop vite autour du soleil!!!
Ca doit être ce qui la rend un peu trop ovale (effet centrifuge) ! | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| | | | Contenu sponsorisé
| Sujet: Re: Toujour les boules | |
| |
| | | | Toujour les boules | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |