Avril 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 |
|
| | Concours de Sapin de Noël | |
|
+4Jicehel Marc papydall Jean Claude 8 participants | |
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Concours de Sapin de Noël Mer 16 Déc 2015 - 13:32 | |
| Bonjour à tous, Je vais bientôt m'absenter pour rejoindre mes enfants et petit-enfants et passer Noël en famille. Avant de partir, je vous offre ce sapin de Noël, et je lance un défit: "Faire un plus beau sapin que le mien" La barre est facile à atteindre et j'en vois déjà certains qui sont plus-que aptent à faire mieux, (faut dire que ce n'est pas difficile). Règle du concours: Faire un code 100% Panoramic ou Pangine2D. Avenant à la première règle: Les sapins réalisés avec FBpano de Jean Debord ou en utilisant kff.dll de Klaus sont les bienvenus, mais ne seront classés à part, pour que tous puissent participer chacun à son niveau. Vous avez jusqu'au 31 décembre 2015 pour présenter vos oeuvre d'art. J'organiserais dès le 02 janvier 2016 un sondage pour classer le plus beau d'entre-vous tous.
Voici le mien: - Code:
-
dim x,y,n%,x2,y2,r,r2,p%,cr,cg,cb label fin color 0,0,0,0 full_space 0 ' height 0,screen_y : width 0,700 on_close 0,fin x=(width(0)/2)-16 : y=30 2d_pen_color 0,155,0 : 2d_pen_width 1 2d_point x,y
Sapin() : boule() END rem ============================================================================ SUB boule() x=(width(0)/2)-25 : y=40 : r=8 for n%=1 to 14 : x=x+15:y=y+40 : 2d_circle x,y,rnd(r) : next n% x=(width(0)/2)-25 : y=40 while p%<500 p%=p%+1 x=(width(0)/2)-25 : y=40 for n%=1 to 14 x=x+15:y=y+40 cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 next n% x=(width(0)/2)-10 : y=40 for n%=1 to 14 x=x-15:y=y+40 cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 next n% x=(width(0)/2)-15 : y=40 for n%=1 to 14 y=y+40 cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 : 2d_fill_color 255,200,200 : 2d_pen_color 255,200,200 :' 2d_circle x,y,r2
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 next n% x=(width(0)/2)-25 : y=40 for n%=1 to 14 x=x+7:y=y+40 cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 next n% x=(width(0)/2)-10 : y=40 for n%=1 to 14 x=x-7:y=y+40 cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 next n% x=(width(0)/2)-230 : y=600 for n%=1 to 14 x=x+30.4 cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6
cr=rnd(255) : cg=rnd(255) : cb=rnd(255) 2d_fill_color cr,cg,cb :2d_pen_color cr,cg,cb 2d_circle x,y,r : r2=r/6 next n% end_while END_SUB ' ------------------------------------------------------------------------------ SUB Sapin() for n%=1 to 300 x=x+1:y=y+2 2d_circle x,y,3 : 2d_fill_color 0,100,0 ' 2d_point x,y next n% x=(width(0)/2)-16 : y=30 for n%=1 to 300 x=x-1:y=y+2 : 2d_circle x,y,3 : 2d_fill_color 0,100,0 ' 2d_point x,y next n% for n%=1 to 600 x=x+1:' y=y+2 2d_circle x,y,3 : 2d_fill_color 0,100,0 ' 2d_point x,y next n% x=(width(0)/2)-16-30 : x2=x+60 :y=y+3: y2=y+200 : 2d_fill_color 100,50,0 :2d_pen_color 50,10,0 2d_rectangle x,y,x2,y2 END_SUB
fin: terminate return
A vos clavier et joyeux Noël à tous | |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Mer 16 Déc 2015 - 16:05 | |
| Je veux bien participer puisque je ne risquerais pas une amande si je rate mon sapin ! Quand dois-je poster mon code ? Tout de suite ou j’attends jusqu’à la date du 31 ? | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Concours de Sapin de Noël Mer 16 Déc 2015 - 17:00 | |
|
Dernière édition par Jean Claude le Jeu 17 Déc 2015 - 8:17, édité 1 fois | |
| | | Invité Invité
| Sujet: Re: Concours de Sapin de Noël Mer 16 Déc 2015 - 21:23 | |
| Bonsoir, Je ne sais pas si j'y participerais, je suis pris sur autre chose qui est plus important pour moi.
Là ou je ne suis pas d'accord, tout du moins pour le principe d'un concours, c'est de publier son code dès le départ. Pourquoi ?, parce que celui qui publie aussitôt, il aura perdu. Les autres sauront comment le battre. En voyant l’œuvre, ils auront une meilleure idée, ne serait en mettant une meilleurs colorisation.
Par contre si l'idée est de voir comment on pourrait améliorer un code pour la représentation d'un sapin, là c'est différent. C'est l'ensemble des participants qui intervient pour faire des propositions. |
| | | Invité Invité
| Sujet: Re: Concours de Sapin de Noël Mer 16 Déc 2015 - 23:17 | |
| J'espère que je n'ai pas jeté un froid, car mon opinion ne compte pas plus que la votre. L'idée de Jean Claude peut-être réveillera le forum! |
| | | Marc
Nombre de messages : 2380 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| | | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 1:26 | |
| Ma proposition / suggestion / vision, etc.. Fixer une date à partir de laquelle on peut poster son code, mais pas AVANT comme le suggère Cosmos. Disons dans l’après-midi du 31 décembre ou dans la soirée, à partir de l’heure H et avant minuit. Ceux qui veulent participer auront suffisamment du temps et ne sauront pas ce que les autres mijotent dans leur coin. - Marc37 a écrit:
- Si personne ne participe j'aurai peut-être une chance de gagner !
Tu aura certainement une chance de gagner même si les concourants sont nombreux. Il ne faut pas chercher à être meilleur que les autres. Il suffit d’être meilleur que soi !A méditer. | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 8:12 | |
| Bonjour à tous, Bon, je ne m'attendait pas à déclencher des contestations. Le but est bien de mettre un peu d'ambiance sur le forum, dans la bonne humeur. C'est une compétition, serte, mais il n'y a rien à gagner, sauf la satisfaction d'avoir relevé le challenge. Je vais vous raconter une histoire: En décembre 1986, j'avais acheté mon premier ordinateur (un Amstrad CPC6128). Dans le manuel, il y avait un code-source d'un super sapin de Noël. Alors (dans le plus grand secret), je me suis tapé le listing à la mimine (comme dirait Ygeronimi) et le résultat était très joli. Le 24 décembre au soir, je place le PC sous le sapin près à fonctionner. Au matin du 25 décembre, ma femme et moi nous réveillons nos trois enfants (9,6 et 1 an) et bien entendu les 2 plus grands se précipitent dans le salon pour voir si le père Noël est passé. Je vois encore leurs visages émerveillés devant ce sapin lumineux sur l'écran du PC. Ce fut ma récompense. Alors on oublie le concours, il n'y aura pas de classement. Chacun pourra donner son avis et ça suffira. Et s'il apparaît des supers sapins sur ce forum, on pourra en faire profiter nos petits (enfants ou petits enfants). Nouvelle règle: il n'y a plus de règle. | |
| | | Invité Invité
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 9:39 | |
| - Jean Claude a écrit:
- Bon, je ne m'attendait pas à déclencher des contestations.
C'est pas vraiment une contestation, Jean Claude, mais normalement lorsqu'il y a un concours, et qu'on sait contre quoi on concours, obligatoirement, on trouve à faire mieux. Autrement c'est une bonne idée. La récompense sera un bisous et les meilleurs vœux de Jean Claude. et peut-être un chèque de 10.000 euros (A vrai dire, c'est pas beaucoup!) Bien, j'ai un gros chantier à faire. |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 10:58 | |
| | |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 18:05 | |
| - Jean Claude a écrit:
- Nouvelle règle: il n'y a plus de règle.
Tu as interdis la règle. Est-ce que le compas est permis ? Comme il n’y a plus de règle, voici mon code pour le sapin de Noël. Ça n’a pas trop de ressemblance avec un sapin, mais c’est …. du Papydall. - Code:
-
rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ rem LE SAPIN DE NOEL rem PAR PAPYDALL rem 100% PANORAMIC rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ Sapin() end rem ============================================================================ SUB Sapin() Presentation() Init() Principe() Verification() Evolution() Dessin() Fougere() END_SUB rem ============================================================================ SUB Presentation() dim_local i FULL_SPACE 0 SCENE3D 1 : COLOR 1, 0,0,0 : display 3D_TEXT 1,"PAPYDALL VOUS SOUHAITE" FULL_SPACE 1 : 3D_COLOR 1,0,0,255 : 3D_POSITION 1,-7,-.5,1 FOR i = 0 TO 360 STEP 2: 3D_X_ROTATE 1,i : PAUSE 10 : NEXT i FOR i = 1 TO .005 STEP -.005 : 3D_SCALE 1,i,i,i : PAUSE 20 : NEXT i 3D_TEXT 2,"DES BONNES FETES" : 3D_COLOR 2,255,0,0 3D_POSITION 2,-8+3,-.5,1 FOR i = 0 TO 360 STEP 2: 3D_Y_ROTATE 2,i : PAUSE 10 : NEXT i FOR i = 1 TO .005 STEP -.005 : 3D_SCALE 2,i,i,i : PAUSE 20 : NEXT i 3D_TEXT 3,"A TOUTES ET A TOUS" : 3D_COLOR 3,0,255,0 3D_POSITION 3,-1.5,-.5,1 FOR i = 0 TO 500 STEP 2 : 3D_Y_ROTATE 3,i : 3D_Z_ROTATE 3,i : PAUSE 30 : NEXT i FOR i = 1 TO .000 STEP -.005 : 3D_SCALE 3,i,i,i : PAUSE 30 : NEXT i 3D_TEXT 4,"JOYEUSES FETES DE NOEL" 3D_POSITION 4,-1.5,-.5,1 : 3D_COLOR 4,255,255,0 FOR i = .01 TO 1.5 STEP .005 : 3D_SCALE 4,i/2,i/2,i/2 : PAUSE 30 : NEXT i for i = -1.5 to -5 step -.05 : 3d_position 4,i,0-i*.7,1 :pause 30: next i FOR i = 0 TO 360 STEP 2 : 3D_X_ROTATE 4,i : PAUSE 10 : 3D_COLOR 4,255,0,0 : NEXT i : pause 500 FOR i = 360 TO 0 STEP -2: 3D_X_ROTATE 4,i : PAUSE 10 : 3D_COLOR 4,0,255,0 : NEXT i for i = 1 to 5 : 3d_color 4,255,0,0 : pause 500 : 3d_color 4,255,255,0 : pause 500 : next i 3D_TEXT 5,"100% PANORAMIC" : 3D_POSITION 5,-4.5,2.5,1 : 3D_COLOR 5,0,255,0 3D_TEXT 6,"BONNES FETES" : 3D_POSITION 6,-4,.2,1 : 3D_COLOR 6,0,0,255 3D_TEXT 7,"PAR PAPYDALL" : 3D_POSITION 7,-4,-.8,1 : 3D_COLOR 7,0,255,255 3D_TEXT 8,"<ESC> POUR CONTINUER ..." : 3D_POSITION 8,-3,-1.5,2 : 3D_COLOR 8,255,0,255 3D_SCALE 8,.2,.2,.2 3D_TEXT 9,"100% MATHEMATIQUES" : 3D_POSITION 9,-5.8,1.2,1 : 3D_COLOR 9,255,0,0 repeat for i = -1 to -5 step -.1 3d_position 8,i,-1,2 : pause 100 : if scancode = 27 then exit_repeat next i for i = -5 to -1 step .1 3d_position 8,i,-1,2 : pause 100 : if scancode = 27 then exit_repeat next i until scancode = 27 delete 1 END_SUB rem ============================================================================ SUB Init() dim xm,ym ,NumCh% dim NbEvol%,AngRamDeg, princ$,Lp%,ram%,r,i%,L$,L0princ%,Lgprinc%,L1princ% dim ch$(20),L0%(20),L1%(20),xn(200),yn(200),a(200) dim Long%,plus$ dim Lch% ,n%, c , L ,x, y ,f dim angle, pasmax, dpas,ramax%,nb%,pas,noeud%,rf,h% full_space 0 : width 0,screen_x-200 picture 10 : full_space 10 : color 10,0,0,0 : 2d_target_is 10 height 10,780 : top 10,50 : print_target_is 10
xm = 700 : ym = 750 caption 0,"Admirez : Les mathématiques au travail ... <ESC> pour arrêter" SCENE3D 1 : full_space 1 : height 1,100 : COLOR 1, 0,0,0 3D_TEXT 4,"BONNE FETE DE NOEL" : 3d_x_rotate 4,30 3d_position 4,-5,0,1 : 3D_COLOR 4,255,255,0 : display
END_SUB REM ============================================================================ ' ============================================================================== ' Essayez l'un des principes suivants ' vous pouvez entrer vos propres principes, en veillant bien à respecter ' la methode du codage. ' Une ouverture de ramification doit toujours être suivie d'une fermeture ' NbEvol% : nombre d'évolutions > 2 ' AngRamDeg : angle de ramification en degrés 0 < AngRamDeg < 90 ' f : facteur de pas pour le tracé (à ajuster) ' ============================================================================== rem Codage du principe d évolution : rem ================================
rem 0 : Fleur rem 1 : Tige rem 3 : Fin de ramification rem 4 : Ouverture de ramification à gauche rem 5 : Ouverture de ramification au hasard rem 6 : Ouverture de ramification à droite" REM ============================================================================ SUB Principe() princ$ = "1440316030366031403031140360310" : NbEvol% = 6 : AngRamDeg = 25 : f = 55 ' princ$ = "1403603140360310" : NbEvol% = 6 : AngRamDeg = 25 : f = 27 ' princ$ = "1415030361503031140360310" : NbEvol% = 15 : AngRamDeg = 16 : f = 28 ' princ$ = "140360310" : NbEvol% = 7 : AngRamDeg = 20 : f = 6 ' princ$ = "14031603140310" : NbEvol% = 6 : AngRamDeg = 20 : f = 10 ' princ$ = "14036031403160310" : NbEvol% = 6 : AngRamDeg = 25 : f = 24 ' princ$ = "1603140316031503140310" : NbEvol% = 5 : AngRamDeg = 36 : f = 18 ' princ$ = "150316031403160340310" : NbEvol% = 5 : AngRamDeg = 29 : f = 16
END_SUB REM ============================================================================ SUB Verification() repeat if scancode = 27 then terminate Lp% = len(princ$) ram% = 0 : r = 0 for i% = 1 to Lp% L$ = mid$(princ$,i%,1) if L$ = "0" L0princ% = L0princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "1" L1princ% = L1princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "3" ram% = ram% - 1 else if (L$ = "4") or (L$ = "6") or (L$ = "5") ram% = ram% + 1 else R = 1 end_if end_if end_if end_if next i% until (R < 1) and (ram% = 0) ch$(1) = "0" : L0%(1) = 1 : L1%(1) = 0 AngRamDeg = AngRamDeg * pi / 180
END_SUB REM ============================================================================ SUB Evolution() for NumCh% = 1 to (NbEvol% - 1) Long% = 0 for i% = 1 to len(ch$(NumCh%)) L$ = mid$(ch$(NumCh%),i%,1) if L$ = "0" plus$ = princ$ L0%(NumCh% + 1) = L0%(NumCh% + 1) + L0princ% L1%(NumCh% + 1) = L1%(NumCh% + 1) + L1princ% if ram% <> 0 then long% = long% + lgprinc% end_if if L$ = "1" plus$ = "11" L1%(NumCh% + 1) = L1%(NumCh% + 1) + 2 if ram% = 0 then Long% = Long% + 2 end_if if L$ = "5" plus$ = str$(int(rnd(2)+2)*2) ram% = ram% + 1 end_if if L$ = "3" if ram% > ramax% then ramax% = ram% ram% = ram% - 1 plus$ = "3" end_if if (L$ = "4") or (L$ = "6") plus$ = L$ : ram% = ram% + 1 end_if ch$(NumCh% + 1) = ch$(NumCh% + 1) + plus$ next i% if NumCh% < (NbEvol% - 1) then Erreur() next NumCh% END_SUB REM ============================================================================ SUB Erreur() Lch% = len(ch$(NumCh% + 1))+ L1%(NumCh% + 1)+ L0%(NumCh% + 1)*(Lp% - 1) if Lch% > 32767 then n% = NumCh% + 1 : NumCh% = NbEvol% : NbEvol% = n% ' La chaîne à traiter est trop longue. ' Vous serez limité à la géneration n° NumCh% + 1 END_SUB REM ============================================================================ SUB Dessin()
2d_fill_color 0,0,0 : 2d_rectangle 10,20,760,700 angle = pi/2 : pasmax = ym*f/long% : dpas = (pasmax/3)/ramax% 2d_pen_width 5 : 2d_pen_color 0,255,0 : 2d_line xm,ym,xm,ym-40 : 2d_pen_width 1 font_color 10,255,255,255 : font_bold 10 : font_size 10,18 print_locate 50,750 : print "Les Mathématiques au travail. Veuillez patienter ..." print_locate width(10)-300,750 : print "... <ESC> pour arrêter"
for NumCh% = 1 to NbEvol% y = ym -20 : x = xm for i% = 1 to len(ch$(NumCh%)) nb% = val(mid$(ch$(NumCh%),i%,1)) : pas = pasmax - noeud% * dpas : rf = pas/8 select nb%+1 case 1 : fleur() case 2 : tige() case 3 : rien() case 4 : fermer() case 5 : ouvrir() case 6 : hasard() case 7 : ouvrir() end_select display if scancode = 27 then end next i% next NumCh%
END_SUB REM ============================================================================ SUB Rien() ' Ne rien faire ! END_SUB REM ============================================================================ SUB Tige() c = x : L = y x = x + pas * cos(angle) : y = y - pas * sin(angle) 2d_pen_color 0,255,0 : 2d_line c,l,x,y END_SUB REM ============================================================================ SUB Fleur() dim_local r : r = int(rnd(2)) pas = pas - (2*rf) : Tige() c = x + rf * cos(angle) : L = y - rf * sin(angle) 2d_fill_on : 2d_fill_color 255,50,0 2d_pen_color 255,0,0 : 2d_circle c, L, rf+1 +r END_SUB REM ============================================================================ SUB Ouvrir() noeud% = noeud% + 1 : a(noeud%) = angle : xn(noeud%) = x : yn(noeud%) = y angle = angle + (5 - nb%) * AngRamDeg END_SUB REM ============================================================================ SUB Hasard() Ouvrir() h% = rnd(2) + 1 if h% = 2 then : angle = angle + AngRamDeg : else : angle = angle - AngRamDeg END_SUB REM ============================================================================ SUB Fermer() x = xn(noeud%) : y = yn(noeud%) : angle = a(noeud%) : noeud% = noeud% - 1 END_SUB REM ============================================================================ REM &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& REM ============================================================================ ' C'est un type de fractales assez original qui a été introduit par Michael Barnsley. ' Ce type de fractales n'est pas facile à expliquer à des non-mathématiciens. ' Leur structure est décrite par un ensemble de fonctions affines qui calculent ' les transformations appliquées à chaque point par homothétie, translation et rotation. ' Chaque transformation utilise 2 fonctions pour calculer les nouvelles valeurs x1 et y1 ' des coordonnées x et y de chaque point.
' ax + by + e = x1 ' cx + dy + f = y1
' Enfin une probabilité comprise entre 0 et 1 est associée à chaque transformation. ' Ces images sont donc construites par un processus aléatoire : ' On voit apparaître sur l'écran des points de plus en plus nombreux qui dessinent ' une forme floue, puis de plus en plus précise. ' En général le programme permet de fixer le critère d'arrêt du calcul. ' Plus le temps choisi est long, plus les images sont précises. rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ SUB Fougere() dim_local maxpoints,p,p1,p2,p3,x,y,n,xt,xn,yn maxPoints = 100000 p1 = .77 : p2 = .89 : p3 = .99 : ' Pourcentage de probabilités x = 0 : y = 0 : n = 1 : ' point initial repeat xn = int(rnd(width(0))) : yn = int(rnd(height(0)-300)) p = Rnd(1) : ' 0 <= p < 1 xt = x if p < p1 : ' transformation T1 x = 0.85 * x + 0.04 * y + 0.075 : y = -0.04 * xt + 0.85 * y + 0.18 else if p < p2 : ' transformation T2 x = 0.20 * x - 0.26 * y + 0.4 : y = 0.23 * xt + 0.22 * y + 0.045 else if p < p3 : ' transformation T3 x = -0.15 * x + 0.28 * y + 0.575 : y = 0.26 * xt + 0.24 * y - 0.086 else : ' transformation T4 x = 0.5 : y = 0.16 * y end_if end_if end_if if n > 100 if mod(n,50) = 0 xn = int(rnd(width(0))) : yn = int(rnd(height(0)-300)) 2d_pen_color 255,255,255 : 2d_fill_color 255,255,255 2d_circle xn,yn,int(rnd(4)) end_if 2d_pen_color 0,255,0 : 2d_point 600*x-100, 600-500*y : ' 1ère fougère 2d_pen_color 255,mod(n,255),0 : 2d_point 850-600*x, 600-500*y : ' 2ème fougère 2d_pen_color mod(n,255),mod(n,255),0 : 2d_point 520+ 600*x, 600-500*y : ' 3ème fougère 2d_pen_color 0,mod(n,255),255 : 2d_point 1450-600*x, 600-500*y : ' 4ème fougère display end_if n = n + 1 until scancode = 27 caption 0,"VIVE LES MATHEMATIQUES !!! " END_SUB rem ============================================================================
- Voici ce que ça donne:
| |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 21:36 | |
|
Dernière édition par Jean Claude le Ven 18 Déc 2015 - 7:40, édité 1 fois | |
| | | Marc
Nombre de messages : 2380 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 22:12 | |
| @Papydall Bravo ! C'est M A G N I F I Q U E ! ! Et comme d'habitude, avec un source très pédagogique. Nous sommes gâtés ! MERCI de ton partage. | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Concours de Sapin de Noël Jeu 17 Déc 2015 - 23:42 | |
| Bravo, c'est une belle démonstration de l'utilisation des maths. Très chouette (je me demande quelle image je vais avoir cette fois ci ) | |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Ven 18 Déc 2015 - 0:37 | |
| - Jean claude a écrit:
- Bravo Papydall,
J'ai retouché ton code, pour que le sapin ressemble à un sapin, et c'est super.
Je le mettrai en ligne avant dimanche pour laisser du temps aux compétiteur de présenter les leurs. Tu verras c'est super beau ! Touche et retouche et re-retouche tant que tu voudras cher ami. Mon code, une fois sur le Forum, ça devient du domaine public. - Marc37 a écrit:
- @Papydall
Bravo ! C'est M A G N I F I Q U E ! !
Et comme d'habitude, avec un source très pédagogique.
Nous sommes gâtés ! MERCI de ton partage.
Merci Marc. Ça me fait vraiment plaisir. - Jicehel a écrit:
- Bravo, c'est une belle démonstration de l'utilisation des maths. Très chouette (je me demande quelle image je vais avoir cette fois ci )
Merci Jicehel. | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Concours de Sapin de Noël Ven 18 Déc 2015 - 8:28 | |
| Bonjour à tous, Dernier Weekend avant Noël, Je vous livre la version de Papydall, modifiée par mes soins. - Code:
-
rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ rem LE SAPIN DE NOEL rem PAR PAPYDALL rem 100% PANORAMIC rem ============================================================================ rem Version modifiée par Jean Claude, pour le plaisir. rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ dim ww Sapin() end rem ============================================================================ SUB Sapin() Presentation() Init(): color 0,0,0,0 Principe() Verification() Evolution() Dessin() Fougere() END_SUB rem ============================================================================ SUB Presentation() dim_local i FULL_SPACE 0 SCENE3D 1 : COLOR 1, 0,0,0 : display 3D_TEXT 1,"PAPYDALL ET JEAN-CLAUDE VOUS SOUHAITENT" FULL_SPACE 1 : 3D_COLOR 1,0,0,255 : 3D_POSITION 1,-7,-.5,1 FOR i = 0 TO 360 STEP 2: 3D_X_ROTATE 1,i : PAUSE 10 : NEXT i FOR i = 1 TO .005 STEP -.005 : 3D_SCALE 1,i,i,i : PAUSE 20 : NEXT i 3D_TEXT 2,"DES BONNES FÊTES" : 3D_COLOR 2,255,0,0 3D_POSITION 2,-8+3,-.5,1 FOR i = 0 TO 360 STEP 2: 3D_Y_ROTATE 2,i : PAUSE 10 : NEXT i FOR i = 1 TO .005 STEP -.005 : 3D_SCALE 2,i,i,i : PAUSE 20 : NEXT i 3D_TEXT 3,"À TOUTES ET À TOUS" : 3D_COLOR 3,0,255,0 3D_POSITION 3,-1.5,-.5,1 FOR i = 0 TO 500 STEP 2 : 3D_Y_ROTATE 3,i : 3D_Z_ROTATE 3,i : PAUSE 30 : NEXT i FOR i = 1 TO .000 STEP -.005 : 3D_SCALE 3,i,i,i : PAUSE 30 : NEXT i 3D_TEXT 4,"JOYEUSES FÊTES DE NOEL" 3D_POSITION 4,-1.5,-.5,1 : 3D_COLOR 4,255,255,0 FOR i = .01 TO 1.5 STEP .005 : 3D_SCALE 4,i/2,i/2,i/2 : PAUSE 30 : NEXT i for i = -1.5 to -5 step -.05 : 3d_position 4,i,0-i*.7,1 :pause 30: next i FOR i = 0 TO 360 STEP 2 : 3D_X_ROTATE 4,i : PAUSE 10 : 3D_COLOR 4,255,0,0 : NEXT i : pause 500 FOR i = 360 TO 0 STEP -2: 3D_X_ROTATE 4,i : PAUSE 10 : 3D_COLOR 4,0,255,0 : NEXT i for i = 1 to 5 : 3d_color 4,255,0,0 : pause 500 : 3d_color 4,255,255,0 : pause 500 : next i 3D_TEXT 5,"100% PANORAMIC" : 3D_POSITION 5,-4.5,2.5,1 : 3D_COLOR 5,0,255,0 3D_TEXT 6,"BONNES FÊTES" : 3D_POSITION 6,-4,.2,1 : 3D_COLOR 6,0,0,255 3D_TEXT 7,"PAR PAPYDALL" : 3D_POSITION 7,-4,-.8,1 : 3D_COLOR 7,0,255,255 3D_TEXT 8,"<ESC> POUR CONTINUER ..." : 3D_POSITION 8,-3,-1.5,2 : 3D_COLOR 8,255,0,255 3D_SCALE 8,.2,.2,.2 3D_TEXT 9,"100% MATHEMATIQUES" : 3D_POSITION 9,-5.8,1.2,1 : 3D_COLOR 9,255,0,0 repeat for i = -1 to -5 step -.1 3d_position 8,i,-1,2 : pause 100 : if scancode = 27 then exit_repeat next i for i = -5 to -1 step .1 3d_position 8,i,-1,2 : pause 100 : if scancode = 27 then exit_repeat next i until scancode = 27 delete 1 END_SUB rem ============================================================================ SUB Init() dim xm,ym ,NumCh% dim NbEvol%,AngRamDeg, princ$,Lp%,ram%,r,i%,L$,L0princ%,Lgprinc%,L1princ% dim ch$(20),L0%(20),L1%(20),xn(200),yn(200),a(200) dim Long%,plus$ dim Lch% ,n%, c , L ,x, y ,f dim angle, pasmax, dpas,ramax%,nb%,pas,noeud%,rf,h% full_space 0 :' width 0,screen_x-200 picture 10 : full_space 10 : color 10,0,0,0 : 2d_target_is 10 height 10,780 : top 10,50 : print_target_is 10 full_space 0 xm = 700 : ym = 750 caption 0,"Admirez : Les mathématiques au travail ... Patientez" SCENE3D 1 : full_space 1 : height 1,100 : COLOR 1, 0,0,0 3D_TEXT 4,"BONNE FETE DE NOEL" : 3d_x_rotate 4,30 3d_position 4,-5,0,1 : 3D_COLOR 4,255,255,0 : display
END_SUB REM ============================================================================ ' ============================================================================== ' Essayez l'un des principes suivants ' vous pouvez entrer vos propres principes, en veillant bien à respecter ' la methode du codage. ' Une ouverture de ramification doit toujours être suivie d'une fermeture ' NbEvol% : nombre d'évolutions > 2 ' AngRamDeg : angle de ramification en degrés 0 < AngRamDeg < 90 ' f : facteur de pas pour le tracé (à ajuster) ' ============================================================================== rem Codage du principe d évolution : rem ================================
rem 0 : Fleur rem 1 : Tige rem 3 : Fin de ramification rem 4 : Ouverture de ramification à gauche rem 5 : Ouverture de ramification au hasard rem 6 : Ouverture de ramification à droite" REM ============================================================================ SUB Principe() princ$ = "1440316030366031403031140360310" : NbEvol% = 4 : AngRamDeg = 35 : f = 8
' princ$ = "1403603140360310" : NbEvol% = 6 : AngRamDeg = 25 : f = 27 ' princ$ = "1415030361503031140360310" : NbEvol% = 15 : AngRamDeg = 16 : f = 28 ' princ$ = "140360310" : NbEvol% = 7 : AngRamDeg = 20 : f = 6 ' princ$ = "14031603140310" : NbEvol% = 6 : AngRamDeg = 20 : f = 10 ' princ$ = "14036031403160310" : NbEvol% = 6 : AngRamDeg = 25 : f = 24 ' princ$ = "1603140316031503140310" : NbEvol% = 5 : AngRamDeg = 36 : f = 18 ' princ$ = "150316031403160340310" : NbEvol% = 5 : AngRamDeg = 29 : f = 16
END_SUB REM ============================================================================ SUB Verification() repeat if scancode = 27 then terminate Lp% = len(princ$) ram% = 0 : r = 0 for i% = 1 to Lp% L$ = mid$(princ$,i%,1) if L$ = "0" L0princ% = L0princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "1" L1princ% = L1princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "3" ram% = ram% - 1 else if (L$ = "4") or (L$ = "6") or (L$ = "5") ram% = ram% + 1 else R = 1 end_if end_if end_if end_if next i% until (R < 1) and (ram% = 0) ch$(1) = "0" : L0%(1) = 1 : L1%(1) = 0 AngRamDeg = AngRamDeg * pi / 180 END_SUB REM ============================================================================ SUB Evolution() for NumCh% = 1 to (NbEvol% - 1) Long% = 0 for i% = 1 to len(ch$(NumCh%)) L$ = mid$(ch$(NumCh%),i%,1) if L$ = "0" plus$ = princ$ L0%(NumCh% + 1) = L0%(NumCh% + 1) + L0princ% L1%(NumCh% + 1) = L1%(NumCh% + 1) + L1princ% if ram% <> 0 then long% = long% + lgprinc% end_if if L$ = "1" plus$ = "11" L1%(NumCh% + 1) = L1%(NumCh% + 1) + 2 if ram% = 0 then Long% = Long% + 2 end_if if L$ = "5" plus$ = str$(int(rnd(2)+2)*2) ram% = ram% + 1 end_if if L$ = "3" if ram% > ramax% then ramax% = ram% ram% = ram% - 1 plus$ = "3" end_if if (L$ = "4") or (L$ = "6") plus$ = L$ : ram% = ram% + 1 end_if ch$(NumCh% + 1) = ch$(NumCh% + 1) + plus$ next i% if NumCh% < (NbEvol% - 1) then Erreur() next NumCh% END_SUB REM ============================================================================ SUB Erreur() Lch% = len(ch$(NumCh% + 1))+ L1%(NumCh% + 1)+ L0%(NumCh% + 1)*(Lp% - 1) if Lch% > 32767 then n% = NumCh% + 1 : NumCh% = NbEvol% : NbEvol% = n% ' La chaîne à traiter est trop longue. ' Vous serez limité à la géneration n° NumCh% + 1 END_SUB REM ============================================================================ SUB Dessin() 2d_fill_color 0,0,0 : 2d_rectangle 10,20,720,700 angle = pi/2 : pasmax = ym*f/long% : dpas = (pasmax/3)/ramax% 2d_pen_width 5 : 2d_pen_color 0,50,0: 2d_line xm-60,ym-60,xm-60,ym-40 : 2d_pen_width 1 font_color 10,255,255,255 : font_bold 10 : font_size 10,18 print_locate 50,750 :' print "Les Mathématiques au travail. Veuillez patienter ..." print_locate width(10)-300,750 :' print "... <ESC> pour arrêter" for NumCh% = 1 to NbEvol% y = ym -60 : x = xm-60 for i% = 1 to len(ch$(NumCh%)) nb% = val(mid$(ch$(NumCh%),i%,1)) : pas = pasmax - noeud% * dpas : rf = pas/8 select nb%+1 case 1 : fleur() case 2 : tige() case 3 : rien() case 4 : fermer() case 5 : ouvrir() case 6 : hasard() case 7 : ouvrir() end_select display if scancode = 27 then end next i% next NumCh% END_SUB REM ============================================================================ SUB Rien() ' Ne rien faire ! END_SUB REM ============================================================================ SUB Tige() c = x : L = y x = x + pas * cos(angle) : y = y - pas * sin(angle) 2d_pen_width 3 2d_pen_color 20,50,0 : 2d_line c,l,x,y 2d_pen_width 1 END_SUB REM ============================================================================ SUB Fleur() dim_local r : r = int(rnd(4)) pas = pas - (2*rf) : Tige() c = x + rf * cos(angle) : L = y - rf * sin(angle) 2d_fill_on : 2d_fill_color rnd(255),rnd(250),rnd(250) 2d_pen_color rnd(255),rnd(255),rnd(255) : 2d_circle c, L, rf+1 +r END_SUB REM ============================================================================ SUB Ouvrir() noeud% = noeud% + 1 : a(noeud%) = angle : xn(noeud%) = x : yn(noeud%) = y angle = angle + (5 - nb%) * AngRamDeg END_SUB REM ============================================================================ SUB Hasard() Ouvrir() h% = rnd(3) + 1 if h% = 2 then : angle = angle + AngRamDeg : else : angle = angle - AngRamDeg END_SUB REM ============================================================================ SUB Fermer() x = xn(noeud%) : y = yn(noeud%) : angle = a(noeud%) : noeud% = noeud% - 1 END_SUB REM ============================================================================ REM &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& REM ============================================================================ ' C'est un type de fractales assez original qui a été introduit par Michael Barnsley. ' Ce type de fractales n'est pas facile à expliquer à des non-mathématiciens. ' Leur structure est décrite par un ensemble de fonctions affines qui calculent ' les transformations appliquées à chaque point par homothétie, translation et rotation. ' Chaque transformation utilise 2 fonctions pour calculer les nouvelles valeurs x1 et y1 ' des coordonnées x et y de chaque point.
' ax + by + e = x1 ' cx + dy + f = y1
' Enfin une probabilité comprise entre 0 et 1 est associée à chaque transformation. ' Ces images sont donc construites par un processus aléatoire : ' On voit apparaître sur l'écran des points de plus en plus nombreux qui dessinent ' une forme floue, puis de plus en plus précise. ' En général le programme permet de fixer le critère d'arrêt du calcul. ' Plus le temps choisi est long, plus les images sont précises. rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ SUB Fougere() dim_local maxpoints,p,p1,p2,p3,x,y,n,xt,xn,yn maxPoints = 0 p1 = .77 : p2 = .89 : p3 = .99 : ' Pourcentage de probabilités x = 0 : y = 0 : n = 1 : ' point initial repeat maxPoints=maxPoints+1 xn = int(rnd(width(0))) : yn = int(rnd(height(0)-300)) p = Rnd(1) : ' 0 <= p < 1 xt = x if p < p1 : ' transformation T1 x = 0.85 * x + 0.04 * y + 0.075 : y = -0.04 * xt + 0.85 * y + 0.18 else if p < p2 : ' transformation T2 x = 0.40 * x - 0.26 * y + 0.4 : y = 0.23 * xt + 0.22 * y + 0.045 else if p < p3 : ' transformation T3 x = -0.15 * x + 0.28 * y + 0.575 : y = 0.26 * xt + 0.24 * y - 0.086 else : ' transformation T4 x = 0.5 : y = 0.16 * y end_if end_if end_if if n > 100 if mod(n,50) = 0 xn = int(rnd(width(0))/1.2) : yn = int(rnd(height(0)-300))-50 2d_pen_color 0,0,0 : 2d_fill_color 255,rnd(255),rnd(255) ww=int(rnd(12)) 2d_circle xn,yn-280,ww pause 50 2d_pen_color 0,0,0 : 2d_fill_color 0,0,0 2d_circle xn,yn-280,ww end_if 2d_pen_color 0,255,0 : 2d_point 500*x-100, 600-500*y : ' 1ère fougère 2d_pen_color 255,mod(n,255),0 : 2d_point 750-600*x, 600-500*y : ' 2ème fougère 2d_pen_color mod(n,255),mod(n,255),0 : 2d_point 520+ 600*x, 600-500*y : ' 3ème fougère 2d_pen_color 0,mod(n,255),255 : 2d_point 1450-600*x, 600-500*y : ' 4ème fougère display end_if n = n + 1 until maxPoints>8000 print_locate 50,750 : print " JOYEUX NÖEL À TOUS !!! "
' scancode = 27 caption 0,"VIVE LES MATHEMATIQUES !!! " END_SUB rem ============================================================================ | |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 18 Déc 2015 - 10:28 | |
| not correct expression line 149 | |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 18 Déc 2015 - 10:41 | |
| J' étais pas encore sous la version 27.i5 C' est très joli ! | |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Ven 18 Déc 2015 - 12:44 | |
| @ygeronimi La ligne 149 est un REM. L’erreur est sans doute dans la ligne 146 - Code:
-
AngRamDeg = AngRamDeg * pi / 180 A cause de la constante PI qui n’est pas reconnue dans les versions inférieures à la courante. Si tu utilises (encore !!!) une version inférieure à V09.27i5, il suffit de déclarer une variable PI, un truc comme : - Code:
-
DIM PI : PI = ACOS(-1) @Jean Claude Bravo pour la modif, surtout les voyelles majuscules accentuées, mais tu as laissé NOËL (NOEL sans tréma.) - Spoiler:
En arabe Tunisien, le mot « tréma » est un petit gros mot, ce qui me fait rire : Noël sans tréma
Essayer d’utiliser un autre principe dans SUB Principe() en ligne 101. Ça donne d’autres images toutes plus belles les unes que les autres. | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Concours de Sapin de Noël Ven 18 Déc 2015 - 13:24 | |
| Bien vu Papydall, pour les tréma, je n'ai pas osé me tremper dans cette affaire... J'ai fait pas mal d'essais dans la SUB Principe() et ça m'a permis de faire un sapin made in china. A+ - Code:
rem ============================================================================ rem Version modifiée par Jean Claude, pour le plaisir. rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ dim ww,x,y,x2,y2,x3,y3 Sapin() end rem ============================================================================ SUB Sapin() Presentation() Init(): color 0,0,0,0 Principe() Verification() Evolution() Dessin() Fougere() END_SUB rem ============================================================================ SUB Presentation() dim_local i FULL_SPACE 0 SCENE3D 1 : COLOR 1, 0,0,0 : display 3D_TEXT 1,"PAPYDALL ET JEAN-CLAUDE VOUS SOUHAITENT" FULL_SPACE 1 : 3D_COLOR 1,0,0,255 : 3D_POSITION 1,-7,-.5,1 FOR i = 0 TO 360 STEP 2: 3D_X_ROTATE 1,i : PAUSE 10 : NEXT i FOR i = 1 TO .005 STEP -.005 : 3D_SCALE 1,i,i,i : PAUSE 20 : NEXT i 3D_TEXT 2,"DES BONNES FÊTES" : 3D_COLOR 2,255,0,0 3D_POSITION 2,-8+3,-.5,1 FOR i = 0 TO 360 STEP 2: 3D_Y_ROTATE 2,i : PAUSE 10 : NEXT i FOR i = 1 TO .005 STEP -.005 : 3D_SCALE 2,i,i,i : PAUSE 20 : NEXT i 3D_TEXT 3,"À TOUTES ET À TOUS" : 3D_COLOR 3,0,255,0 3D_POSITION 3,-1.5,-.5,1 FOR i = 0 TO 500 STEP 2 : 3D_Y_ROTATE 3,i : 3D_Z_ROTATE 3,i : PAUSE 30 : NEXT i FOR i = 1 TO .000 STEP -.005 : 3D_SCALE 3,i,i,i : PAUSE 30 : NEXT i 3D_TEXT 4,"JOYEUSES FÊTES DE NOËL" 3D_POSITION 4,-1.5,-.5,1 : 3D_COLOR 4,255,255,0 FOR i = .01 TO 1.5 STEP .005 : 3D_SCALE 4,i/2,i/2,i/2 : PAUSE 30 : NEXT i for i = -1.5 to -5 step -.05 : 3d_position 4,i,0-i*.7,1 :pause 30: next i FOR i = 0 TO 360 STEP 2 : 3D_X_ROTATE 4,i : PAUSE 10 : 3D_COLOR 4,255,0,0 : NEXT i : pause 500 FOR i = 360 TO 0 STEP -2: 3D_X_ROTATE 4,i : PAUSE 10 : 3D_COLOR 4,0,255,0 : NEXT i for i = 1 to 5 : 3d_color 4,255,0,0 : pause 500 : 3d_color 4,255,255,0 : pause 500 : next i 3D_TEXT 5,"100% PANORAMIC" : 3D_POSITION 5,-4.5,2.5,1 : 3D_COLOR 5,0,255,0 3D_TEXT 6,"BONNES FÊTES" : 3D_POSITION 6,-4,.2,1 : 3D_COLOR 6,0,0,255 3D_TEXT 7,"PAR PAPYDALL" : 3D_POSITION 7,-4,-.8,1 : 3D_COLOR 7,0,255,255 3D_TEXT 8,"<ESC> POUR CONTINUER ..." : 3D_POSITION 8,-3,-1.5,2 : 3D_COLOR 8,255,0,255 3D_SCALE 8,.2,.2,.2 3D_TEXT 9,"100% MATHEMATIQUES" : 3D_POSITION 9,-5.8,1.2,1 : 3D_COLOR 9,255,0,0 y=60 : y2=60 : y3=60 3d_sphere 10,2 :3D_COLOR 10,255,255,255 : x=-20: 3d_position 10,x,y,-50 3d_sphere 11,2 :3D_COLOR 11,255,0,0 : x2=-10: 3d_position 11,x2,y2,-50 3d_sphere 12,2 :3D_COLOR 12,0,0,255 : x3=-30: 3d_position 12,x3,y3,-50
repeat for i = -1 to -5 step -.1 3d_position 8,i,-1,2 : pause 100 : if scancode = 27 then exit_repeat y=y-1 : 3d_position 10,x,y,-50 : y2=y2-1 : 3d_position 11,x2,y2,-50 : y3=y3-1: 3d_position 12,x3,y3,-50 next i for i = -5 to -1 step .1 3d_position 8,i,-1,2 : pause 100 : if scancode = 27 then exit_repeat y=y-1 : 3d_position 10,x,y,-50 : y2=y2-1 : 3d_position 11,x2,y2,-50 : y3=y3-1 : 3d_position 12,x3,y3,-50 next i until scancode = 27 delete 1 END_SUB rem ============================================================================ SUB Init() dim xm,ym ,NumCh% dim NbEvol%,AngRamDeg, princ$,Lp%,ram%,r,i%,L$,L0princ%,Lgprinc%,L1princ% dim ch$(20),L0%(20),L1%(20),xn(200),yn(200),a(200) dim Long%,plus$ dim Lch% ,n%, c , L ,f dim angle, pasmax, dpas,ramax%,nb%,pas,noeud%,rf,h% full_space 0 :' width 0,screen_x-200 picture 10 : full_space 10 : color 10,0,0,0 : 2d_target_is 10 height 10,780 : top 10,50 : print_target_is 10 full_space 0 xm = 700 : ym = 750 caption 0,"Admirez : Les mathématiques au travail ... Patientez" SCENE3D 1 : full_space 1 : height 1,100 : COLOR 1, 0,0,0 3D_TEXT 4,"BONNE FETE DE NOËL" : 3d_x_rotate 4,30 3d_position 4,-5.5,0,1 : 3D_COLOR 4,255,rnd(255),0 : display
END_SUB REM ============================================================================ ' ============================================================================== ' Essayez l'un des principes suivants ' vous pouvez entrer vos propres principes, en veillant bien à respecter ' la methode du codage. ' Une ouverture de ramification doit toujours être suivie d'une fermeture ' NbEvol% : nombre d'évolutions > 2 ' AngRamDeg : angle de ramification en degrés 0 < AngRamDeg < 90 ' f : facteur de pas pour le tracé (à ajuster) ' ============================================================================== rem Codage du principe d évolution : rem ================================
rem 0 : Fleur rem 1 : Tige rem 3 : Fin de ramification rem 4 : Ouverture de ramification à gauche rem 5 : Ouverture de ramification au hasard rem 6 : Ouverture de ramification à droite" REM ============================================================================ SUB Principe() ' princ$ = "1440316030366031403031140360310" : NbEvol% = 4 : AngRamDeg = 35 : f = 8
' princ$ = "1403603140360310" : NbEvol% = 6 : AngRamDeg = 25 : f = 27 ' princ$ = "1415030361503031140360310" : NbEvol% = 15 : AngRamDeg = 16 : f = 28 ' princ$ = "140360310" : NbEvol% = 7 : AngRamDeg = 20 : f = 6 ' princ$ = "14031603140310" : NbEvol% = 6 : AngRamDeg = 20 : f = 10 princ$ = "14036031403160310" : NbEvol% = 4 : AngRamDeg = 35 : f = 4 ' princ$ = "1603140316031503140310" : NbEvol% = 5 : AngRamDeg = 36 : f = 18 ' princ$ = "150316031403160340310" : NbEvol% = 5 : AngRamDeg = 29 : f = 16
END_SUB REM ============================================================================ SUB Verification() repeat if scancode = 27 then terminate Lp% = len(princ$) ram% = 0 : r = 0 for i% = 1 to Lp% L$ = mid$(princ$,i%,1) if L$ = "0" L0princ% = L0princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "1" L1princ% = L1princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "3" ram% = ram% - 1 else if (L$ = "4") or (L$ = "6") or (L$ = "5") ram% = ram% + 1 else R = 1 end_if end_if end_if end_if next i% until (R < 1) and (ram% = 0) ch$(1) = "0" : L0%(1) = 1 : L1%(1) = 0 AngRamDeg = AngRamDeg * pi / 180 END_SUB REM ============================================================================ SUB Evolution() for NumCh% = 1 to (NbEvol% - 1) Long% = 0 for i% = 1 to len(ch$(NumCh%)) L$ = mid$(ch$(NumCh%),i%,1) if L$ = "0" plus$ = princ$ L0%(NumCh% + 1) = L0%(NumCh% + 1) + L0princ% L1%(NumCh% + 1) = L1%(NumCh% + 1) + L1princ% if ram% <> 0 then long% = long% + lgprinc% end_if if L$ = "1" plus$ = "11" L1%(NumCh% + 1) = L1%(NumCh% + 1) + 2 if ram% = 0 then Long% = Long% + 2 end_if if L$ = "5" plus$ = str$(int(rnd(2)+2)*2) ram% = ram% + 1 end_if if L$ = "3" if ram% > ramax% then ramax% = ram% ram% = ram% - 1 plus$ = "3" end_if if (L$ = "4") or (L$ = "6") plus$ = L$ : ram% = ram% + 1 end_if ch$(NumCh% + 1) = ch$(NumCh% + 1) + plus$ next i% if NumCh% < (NbEvol% - 1) then Erreur() next NumCh% END_SUB REM ============================================================================ SUB Erreur() Lch% = len(ch$(NumCh% + 1))+ L1%(NumCh% + 1)+ L0%(NumCh% + 1)*(Lp% - 1) if Lch% > 32767 then n% = NumCh% + 1 : NumCh% = NbEvol% : NbEvol% = n% ' La chaîne à traiter est trop longue. ' Vous serez limité à la géneration n° NumCh% + 1 END_SUB REM ============================================================================ SUB Dessin() 2d_fill_color 0,0,0 : 2d_rectangle 10,20,720,700 angle = pi/2 : pasmax = ym*f/long% : dpas = (pasmax/3)/ramax% 2d_pen_width 5 : 2d_pen_color 0,50,0: 2d_line xm-60,ym-60,xm-60,ym-40 : 2d_pen_width 1 font_color 10,255,255,255 : font_bold 10 : font_size 10,18 print_locate 50,750 :' print "Les Mathématiques au travail. Veuillez patienter ..." print_locate width(10)-300,750 :' print "... <ESC> pour arrêter" for NumCh% = 1 to NbEvol% y = ym -60 : x = xm-60 for i% = 1 to len(ch$(NumCh%)) nb% = val(mid$(ch$(NumCh%),i%,1)) : pas = pasmax - noeud% * dpas : rf = pas/8 select nb%+1 case 1 : fleur() case 2 : tige() case 3 : rien() case 4 : fermer() case 5 : ouvrir() case 6 : hasard() case 7 : ouvrir() end_select display if scancode = 27 then end next i% next NumCh% END_SUB REM ============================================================================ SUB Rien() ' Ne rien faire ! END_SUB REM ============================================================================ SUB Tige() c = x : L = y x = x + pas * cos(angle) : y = y - pas * sin(angle) 2d_pen_width 3 2d_pen_color 20,50,0 : 2d_line c,l,x,y 2d_pen_width 1 END_SUB REM ============================================================================ SUB Fleur() dim_local r : r = int(rnd(4)) pas = pas - (2*rf) : Tige() c = x + rf * cos(angle) : L = y - rf * sin(angle) 2d_fill_on : 2d_fill_color rnd(255),rnd(250),rnd(250) 2d_pen_color rnd(255),rnd(255),rnd(255) : 2d_circle c, L, rf+1 +r END_SUB REM ============================================================================ SUB Ouvrir() noeud% = noeud% + 1 : a(noeud%) = angle : xn(noeud%) = x : yn(noeud%) = y angle = angle + (5 - nb%) * AngRamDeg END_SUB REM ============================================================================ SUB Hasard() Ouvrir() h% = rnd(3) + 1 if h% = 2 then : angle = angle + AngRamDeg : else : angle = angle - AngRamDeg END_SUB REM ============================================================================ SUB Fermer() x = xn(noeud%) : y = yn(noeud%) : angle = a(noeud%) : noeud% = noeud% - 1 END_SUB REM ============================================================================ REM &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& REM ============================================================================ ' C'est un type de fractales assez original qui a été introduit par Michael Barnsley. ' Ce type de fractales n'est pas facile à expliquer à des non-mathématiciens. ' Leur structure est décrite par un ensemble de fonctions affines qui calculent ' les transformations appliquées à chaque point par homothétie, translation et rotation. ' Chaque transformation utilise 2 fonctions pour calculer les nouvelles valeurs x1 et y1 ' des coordonnées x et y de chaque point.
' ax + by + e = x1 ' cx + dy + f = y1
' Enfin une probabilité comprise entre 0 et 1 est associée à chaque transformation. ' Ces images sont donc construites par un processus aléatoire : ' On voit apparaître sur l'écran des points de plus en plus nombreux qui dessinent ' une forme floue, puis de plus en plus précise. ' En général le programme permet de fixer le critère d'arrêt du calcul. ' Plus le temps choisi est long, plus les images sont précises. rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================ SUB Fougere() dim_local maxpoints,p,p1,p2,p3,x,y,n,xt,xn,yn maxPoints = 0 p1 = .77 : p2 = .89 : p3 = .99 : ' Pourcentage de probabilités x = 0 : y = 0 : n = 1 : ' point initial repeat maxPoints=maxPoints+1 xn = int(rnd(width(0))) : yn = int(rnd(height(0)-300)) p = Rnd(1) : ' 0 <= p < 1 xt = x if p < p1 : ' transformation T1 x = 0.85 * x + 0.04 * y + 0.075 : y = -0.04 * xt + 0.85 * y + 0.18 else if p < p2 : ' transformation T2 x = 0.40 * x - 0.26 * y + 0.4 : y = 0.23 * xt + 0.22 * y + 0.045 else if p < p3 : ' transformation T3 x = -0.15 * x + 0.28 * y + 0.575 : y = 0.26 * xt + 0.24 * y - 0.086 else : ' transformation T4 x = 0.5 : y = 0.16 * y end_if end_if end_if if n > 100 if mod(n,50) = 0 xn = int(rnd(width(0))/1.2) : yn = int(rnd(height(0)-300))-50 2d_pen_color 0,0,0 : 2d_fill_color 255,rnd(255),rnd(255) ww=int(rnd(12)) 2d_circle xn,yn-280,ww pause 100 2d_pen_color 0,0,0 : 2d_fill_color 0,0,0 2d_circle xn,yn-280,ww end_if 2d_pen_color 0,255,0 : 2d_point 500*x-100, 600-500*y : ' 1ère fougère 2d_pen_color 255,mod(n,255),0 : 2d_point 750-600*x, 600-500*y : ' 2ème fougère 2d_pen_color mod(n,255),mod(n,255),0 : 2d_point 520+ 600*x, 600-500*y : ' 3ème fougère 2d_pen_color 0,mod(n,255),255 : 2d_point 1450-600*x, 600-500*y : ' 4ème fougère display end_if n = n + 1 until maxPoints>8000 print_locate 50,750 : print " JOYEUX NÖEL À TOUS !!! "
' scancode = 27 caption 0,"VIVE LES MATHEMATIQUES !!! " END_SUB rem ============================================================================
| |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Ven 18 Déc 2015 - 14:25 | |
| Il te reste à faire un Sapin made in Sahara. - Spoiler:
- Spoiler:
| |
| | | Invité Invité
| Sujet: Re: Concours de Sapin de Noël Sam 19 Déc 2015 - 1:26 | |
| Je crois que là, personne ne pourra battre Papydall, et cela me donnait raison. Lorsqu'on voit les capacités de cette homme, on voit mal comment on pourrait le faire. Il y a toujours la possibilité de faire un e sapin e avec un espace entre, et on aurait deux boules Bon je sors. Désolé, mais parfois je ne me contrôle pas. Honte à moi! |
| | | papydall
Nombre de messages : 6996 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Concours de Sapin de Noël Sam 19 Déc 2015 - 2:55 | |
| | |
| | | bignono
Nombre de messages : 1127 Age : 66 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Concours de Sapin de Noël Sam 19 Déc 2015 - 8:05 | |
| bonjour à tous ! Je suis vraiment ébahi devant le programme de papydall. Les mathématiques, c'est magique! Bon, j'apporte ma modeste contribution, vraiment modeste, car je n'ai guère de temps en ce moment, les fêtes de fin d'année approchent et beaucoup de choses à faire ...! mon programme vraiment vite fait ce matin: - Spoiler:
full_space 0 : scene3d 1 : full_space 1 : color 1,40,10,40 cam_position 0,6,13:point_position 0,6,12:light_position 0,0,12
' neige 3d_plane 3 3d_load_texture 3,"c:\mesprog\neige.jpg" :' à ajuster 3d_scale 3,35,35,35 : 3d_rotate 3,90,0,0 : 3d_position 3,0,0,2 3d_u_tile 3,15 : 3d_v_tile 3,15
' tronc 3d_cylinder 4,10,0.5,0.1 : 3d_position 4,0,5,0 :3d_color 4,128,64,0
' cone 1 sommet 3d_cone 5,3,1.5 : 3d_position 5,0,9,0 : 3d_color 5,0,100,0
' cone 2 sous-sommet 3d_cone 6,3,2 : 3d_position 6,0,8,0 : 3d_color 6,0,100,0
' cone 3 central 3d_cone 7,3,2.5 : 3d_position 7,0,7,0 : 3d_color 7,0,100,0
' cone 4 avant dernier 3d_cone 8,3,3 : 3d_position 8,0,6,0 : 3d_color 8,0,100,0
' cone 5 bas 3d_cone 9,3,3.5 : 3d_position 9,0,5,0 : 3d_color 9,0,100,0
' boule 1 3d_sphere 10,0.2 : 3d_position 10,0,4.4,2.8 : 3d_color 10,95,0,0
' boule 2 3d_sphere 11,0.2 : 3d_position 11,2,5.5,1.5 : 3d_color 11,100,50,0
' boule 3 3d_sphere 12,0.3 : 3d_position 12,-1.8,6.5,1 : 3d_color 12,0,0,100
' boule 4 3d_sphere 13,0.1 :3d_position 13,-2,4.4,2 : 3d_color 13,75,0,0
' boule 5 3d_sphere 14,0.3 : 3d_position 14,1,6.5,2 : 3d_color 14,85,0,195
' boule 6 3d_sphere 15,0.4 : 3d_position 15,-0.5,7.5,1.5 : 3d_color 15,0,150,120
' boule 7 3d_sphere 16,0.2 : 3d_position 16,-1,5.4,2 : 3d_color 16,200,170,0
' J 1 3d_text 17,"J" 3d_rotate 17,0,33,0 : 3d_position 17,0.4,5,2.6 : 3d_color 17,150,0,0
' J 2 3d_text 18,"J" 3d_rotate 18,0,150,0 : 3d_position 18,-1,2.93,3.2 : 3d_color 18,110,0,150
' J 3 3d_text 19,"JJ" 3d_rotate 19,0,336,0 : 3d_position 19,2,2,-1 : 3d_color 19,0,120,240
' pointe 3d_cone 20,1,0.1 : 3d_position 20,0,10.8,0 : 3d_color 20,70,0,0
' boule sur la pointe 3d_sphere 21,0.5 : 3d_position 21,0,11.2,0 : 3d_color 21,70,0,0
' JOYEUX NOËL 3d_text 22,"JOYEUX NOËL ET BONNE ANNÉE À TOUS !!!" 3d_scale 22,2,2,2 : 3d_position 22,-17,18,0
while scancode<>27 pause 700 : 3d_color 22,rnd(250),rnd(250),rnd(250) 3d_transparent 22,rnd(200) end_while terminate
et l'image neige.jpg: A + | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Concours de Sapin de Noël Sam 19 Déc 2015 - 8:53 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Concours de Sapin de Noël | |
| |
| | | | Concours de Sapin de Noël | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |