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 |
|
|
| Rotation d'une figure de base | |
| | Auteur | Message |
---|
Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Rotation d'une figure de base Jeu 25 Juin 2015 - 22:54 | |
| Et voici encore une de mes spécialités ! - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== ' Rien ne vous empêche de modifier les paramètres pour voir ce que ça donne ! dim amp,b,cx,cy,i,j,nc,px,py,rad,ray dim x(360),y(360) height 0,550 nc=4 :' Nombre de crêtes amp=30 :' Amplitude de l'oscillation ray=120 :' Rayon moyen de la figure rad=acos(-1)/180 ' ' Figure de Base cx=300: cy=250 for i=0 to 360 b=amp*sin(i*nc*rad) x(i)=cx+(ray+b)*cos(i*rad) y(i)=cy+(ray+b)*sin(i*rad) next i ' ' Contrôle de la figure de base for i=0 to 360 if i=0 2D_POLY_FROM x(i),y(i) else 2D_POLY_TO x(i),y(i) END_IF next i PAUSE 3000 cls ' REM On applique à cette figure une rotation circulaire ray=80 for i=0 to 360 step 6 for b=0 to 360 px=x(b)+ray*cos(i*rad) py=y(b)+ray*sin(i*rad) if b=0 2D_POLY_FROM px,py ELSE 2D_POLY_TO px,py END_IF next b next i
END Allez, allez Papydall ! Fais mieux que ça s'il te plait ! Et vogue la galère, et yo ho ho! Et une bouteille de rhum ! | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Rotation d'une figure de base Jeu 25 Juin 2015 - 23:12 | |
| C'est une affaire qui.............tourne rond | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Rotation d'une figure de base Jeu 25 Juin 2015 - 23:30 | |
| Le résultat est chouette et du coup je t'ai mis un peu de couleur. - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== ' Rien ne vous empêche de modifier les paramètres pour voir ce que ça donne ! dim amp,b,cx,cy,i,j,nc,px,py,rad,ray dim x(360),y(360) height 0,550 nc=4 :' Nombre de crêtes amp=30 :' Amplitude de l'oscillation ray=120 :' Rayon moyen de la figure rad=acos(-1)/180 color 0,0,0,0 ' ' Figure de Base cx=300: cy=250 for i=0 to 360 step 6 b=amp*sin(i*nc*rad) x(i)=cx+(ray+b)*cos(i*rad) y(i)=cy+(ray+b)*sin(i*rad) next i ' ' Contrôle de la figure de base for i=0 to 360 step 6 if i=0 2D_POLY_FROM x(i),y(i) else 2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2 2D_POLY_TO x(i),y(i) END_IF next i PAUSE 500 cls ' REM On applique à cette figure une rotation circulaire ray=80 for i=0 to 360 step 6 for b=0 to 360 step 6 px=x(b)+ray*cos(i*rad) py=y(b)+ray*sin(i*rad) if b=0 2D_POLY_FROM px,py ELSE 2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2 2D_POLY_TO px,py END_IF next b next i
END | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 0:55 | |
| - Parpaiun a écrit:
- Allez, allez Papydall ! Fais mieux que ça s'il te plait !
Une modification de ton code - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== Init() for i = 3 to 20 : Demarrer(i,30+10,120+80) : next i caption 0,"Terminé" print " !!! That's All Folks !!!" end rem ============================================================================ SUB Init() dim i,cx,cy,rad,x(360),y(360) full_space 0 cx = width(0)/2 : cy = height(0)/2 : rad=acos(-1)/180 color 0,0,0,0 : 2d_pen_color 255,255,0 font_color 0,255,0,0 : font_bold 0 : font_size 0,20 caption 0,">ESC> pour arrêter" END_SUB rem ============================================================================ SUB Demarrer(nc,amp,ray) dim_local i,b 2D_POLY_FROM cx+ray,cy for i = 0 to 360 b = amp * sin(i*nc*rad) x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad) 2D_POLY_TO x(i),y(i) next i Rotation() if key_down_code = 27 then Terminer() END_SUB rem ============================================================================ SUB Rotation() dim_local b,i,ray,px,py cls ray = 80 for i = 0 to 360 step 6 2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad) for b = 0 to 360 step 3 px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad) ' 2d_pen_color mod(x(i),255), mod(y(i),255),mod(b,255) 2D_POLY_TO px,py next b next i pause 1000 END_SUB rem ============================================================================ SUB Terminer() Caption 0, "Programme arrêté par l'utilisateur" end END_SUB rem ============================================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 1:34 | |
| C'est excellent mais comme moi je préfère en multi couleur, ça donne ça - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== Init() for i = 3 to 20 : Demarrer(i,30+10,120+80) : next i caption 0,"Terminé" print " !!! That's All Folks !!!" end rem ============================================================================ SUB Init() dim i,cx,cy,rad,x(360),y(360) full_space 0 cx = width(0)/2 : cy = height(0)/2 : rad=acos(-1)/180 color 0,0,0,0 : font_color 0,255,0,0 : font_bold 0 : font_size 0,20 caption 0,"<ESC> pour arrêter" END_SUB rem ============================================================================ SUB Demarrer(nc,amp,ray) dim_local i,b 2D_POLY_FROM cx+ray,cy for i = 0 to 360 b = amp * sin(i*nc*rad) x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad) 2D_POLY_TO x(i),y(i) next i Rotation() if key_down_code = 27 then Terminer() END_SUB rem ============================================================================ SUB Rotation() dim_local b,i,ray,px,py cls ray = 80 for i = 0 to 360 step 6 2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad) for b = 0 to 360 step 3 px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad) 2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2 2D_POLY_TO px,py next b next i pause 1000 END_SUB rem ============================================================================ SUB Terminer() Caption 0, "Programme arrêté par l'utilisateur" end END_SUB rem ============================================================================ Bonne nuit à tous et à tout à l'heure
Dernière édition par Jicehel le Ven 26 Juin 2015 - 8:06, édité 1 fois | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 2:33 | |
| Excellent ! Dommage qu'on ne puisse pas générer des économiseurs d'ecran avec Pano. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 6:03 | |
| C'est vraiment bluffant ! On dirait de la 3D. Bravo !! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 8:27 | |
| Une variante façon screensaver - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== Init() while 1 = 1 i = int(rnd(21)) Demarrer(i,30+10,120+80) cpt = cpt + 1 : if cpt = 3 then cls : cpt = 0 end_while end rem ============================================================================ SUB Init() dim i,cpt, cx,cy,rad,x(360),y(360) full_space 0 rad=acos(-1)/180 : cx = -200 : cy = -200 color 0,0,0,0 : font_color 0,255,0,0 : font_bold 0 : font_size 0,20 caption 0,"<ESC> pour arrêter" END_SUB rem ============================================================================ SUB Demarrer(nc,amp,ray) dim_local i,b, ocx, ocy ocx = cx while abs(ocx - cx) < 400 cx = int(rnd (width(0))) end_while ocy = cy while abs(ocy - cy) < 400 cy = int(rnd(height(0))) end_while ' 2D_POLY_FROM cx+ray,cy for i = 0 to 360 b = amp * sin(i*nc*rad) x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad) ' 2D_POLY_TO x(i),y(i) if key_down_code = 27 then Terminer() next i Rotation() END_SUB rem ============================================================================ SUB Rotation() dim_local b,i,ray,px,py ray = 80 for i = 0 to 360 step 6 2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad) for b = 0 to 360 step 3 px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad) 2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2 2D_POLY_TO px,py if key_down_code = 27 then Terminer() next b next i END_SUB rem ============================================================================ SUB Terminer() caption 0,"Terminé" print " !!! That's All Folks !!!" end END_SUB rem ============================================================================ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 11:33 | |
| Une variante de la variante screensaver pour remplir plus l'écran (codé rapidos au boulot car je l'avais dans la tête ce matin, mais je n'avais pas le temps avant de partir...) - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== Init() while 1 = 1 i = int(rnd(20)) + 1 Demarrer(i,30+10,120+80) cpt = cpt + 1 : if cpt = 5 then cls : cpt = 0 end_while end rem ============================================================================ SUB Init() dim i,cpt, cx,cy,rad,x(360),y(360) full_space 0 rad=acos(-1)/180 : cx = -200 : cy = -200 color 0,0,0,0 : font_color 0,255,0,0 : font_bold 0 : font_size 0,20 caption 0,"<ESC> pour arrêter" END_SUB rem ============================================================================ SUB Demarrer(nc,amp,ray) dim_local i,b, ocx, ocy ocx = cx while abs(ocx - cx) < 400 cx = int(rnd (width(0)*0.75)+0.15*width(0)) end_while ocy = cy while abs(ocy - cy) < 300 cy = int(rnd(height(0)*0.75)+0.15*width(0)) end_while ' 2D_POLY_FROM cx+ray,cy for i = 0 to 360 b = amp * sin(i*nc*rad) x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad) ' 2D_POLY_TO x(i),y(i) if key_down_code = 27 then Terminer() next i Rotation() END_SUB rem ============================================================================ SUB Rotation() dim_local b,i,ray,px,py ray = 80 for i = 0 to 360 step 6 2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad) for b = 0 to 360 step 3 px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad) if cpt = 0 then 2D_PEN_COLOR abs(x(i)-cx),abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2 if cpt = 1 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/2,abs(x(i)-cx),abs(y(i) - cy) if cpt = 2 then 2D_PEN_COLOR abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2, abs(x(i)-cx) if cpt = 3 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/2,(abs(x(i)-cx)+abs(y(i) - cy))/2, abs(x(i)-cx) if cpt = 4 then 2D_PEN_COLOR abs(y(i) - cy),(abs(x(i)-cx)+abs(y(i) - cy))/2,(abs(x(i)-cx)+abs(y(i) - cy))/2 2D_POLY_TO px,py if key_down_code = 27 then Terminer() next b next i END_SUB rem ============================================================================ SUB Terminer() caption 0,"Terminé" print " !!! That's All Folks !!!" end END_SUB rem ============================================================================ | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 11:59 | |
| Bravo Jicehel ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 13:48 | |
| et Parpaiun et Papydall car ce n'est qu'une variante de leurs codes | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 14:17 | |
| Il y a toujours beaucoup plus d’idées dans plusieurs têtes que dans une seule ! A propos, Parpaiun n'a pas soufflé mot depuis son partage du code! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Rotation d'une figure de base Ven 26 Juin 2015 - 22:49 | |
| Désolé de vous spammer mais j'ai modifier ma modification pour revenir à la pureté de ces belles lignes. En fait une seule image en rotation c'est plus joli et l'on joue sur le changement de forme et de principe de colorisation. Bon après j’arrête les variantes, mais j'aime vraiment ces tracés fait par Parpaiun / Papydall et j'aime bien les regarder. - Code:
-
REM Auteur: parpaiun REM Date-version: 25/06/2015 REM ===================================== Init() while 1 = 1 i = int(rnd(20)) + 1 Demarrer(i,20 + 5 * i,60 + 15*i) pause 3000 : cls end_while end rem ============================================================================ SUB Init() dim i, cx,cy,rad,x(360),y(360) full_space 0 rad=acos(-1)/180 : cx = -200 : cy = -200 color 0,0,0,0 : font_color 0,255,0,0 : font_bold 0 : font_size 0,20 caption 0,"<ESC> pour arrêter" END_SUB rem ============================================================================ SUB Demarrer(nc,amp,ray) dim_local i,b, ocx, ocy ocx = cx while abs(ocx - cx) < 400 cx = int(rnd (width(0)*0.55)+0.2*width(0)) end_while ocy = cy while abs(ocy - cy) < 300 cy = int(rnd(height(0)*0.55)+0.2*width(0)) end_while ' 2D_POLY_FROM cx+ray,cy for i = 0 to 360 b = amp * sin(i*nc*rad) x(i) = cx+(ray+b)*cos(i*rad) : y(i) = cy+(ray+b)*sin(i*rad) ' 2D_POLY_TO x(i),y(i) if key_down_code = 27 then Terminer() next i Rotation() END_SUB rem ============================================================================ SUB Rotation() dim_local b,i,ray,px,py, c ray = 80 c = abs(int(rnd(5) - 0.5)) for i = 0 to 360 step 6 2D_POLY_FROM x(0)+ray*cos(i*rad), y(0)+ray*sin(i*rad) for b = 0 to 360 step 3 px = x(b)+ray*cos(i*rad) : py = y(b)+ray*sin(i*rad) if c = 0 then 2D_PEN_COLOR abs(x(i)-cx)/2,abs(y(i) - cy)/2,(abs(x(i)-cx)+abs(y(i) - cy))/3 if c = 1 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/3,abs(x(i)-cx)/2,abs(y(i) - cy)/2 if c = 2 then 2D_PEN_COLOR abs(y(i) - cy)/2,(abs(x(i)-cx)+abs(y(i) - cy))/3, abs(x(i)-cx)/2 if c = 3 then 2D_PEN_COLOR (abs(x(i)-cx)+abs(y(i) - cy))/3,(abs(x(i)-cx)+abs(y(i) - cy))/3, abs(x(i)-cx)/2 if c = 4 then 2D_PEN_COLOR abs(y(i) - cy)/2,(abs(x(i)-cx)+abs(y(i) - cy))/3,(abs(x(i)-cx)+abs(y(i) - cy))/3 2D_POLY_TO px,py if key_down_code = 27 then Terminer() next b next i END_SUB rem ============================================================================ SUB Terminer() caption 0,"Terminé" print " !!! That's All Folks !!!" end END_SUB rem ============================================================================ | |
| | | Contenu sponsorisé
| Sujet: Re: Rotation d'une figure de base | |
| |
| | | | Rotation d'une figure de base | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |