Mai 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 | 31 | | | Calendrier |
|
| | Moire de Kolomyjec | |
| | Auteur | Message |
---|
Parpaiun
Nombre de messages : 192 Age : 84 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Moire de Kolomyjec Lun 27 Avr 2015 - 10:40 | |
| Chers amis, c'est mon deuxième inutilitaire cette fois le plus curieux à voir comme œuvre d'art mathématique ! William J. Kolomyjec , né aux Etats-Unis en 1947, est un artiste de dessins sur ordinateur. Ayant découvert cette extraordinaire image de lui sans programme ni formule, sur un bouquin consacré aux arts sur ordinateur, j’ai dû me débrouiller seul pour l’obtenir mathématiquement par ce programme. Il y a cinq niveaux reconnaissables à leur couleur distincte. Le premier niveau commence au centre avec 12 branches isolées et parfaitement équidistantes l’une de l’autre. A chaque niveau, chaque branche augmente d’une autre selon une progression arithmétique : 1, 2, 3, 4 et 5. Tant et si bien qu’au cinquième niveau, on a finalement 1440 branches ! Pour bien distinguer à vue leurs extrémités, la résolution de votre écran doit être suffisamment élevée ! Code: - Code:
-
rem Auteur: Parpaiun rem Date-version: 16/04/2015 label suite dim a,an,ap,b,c,d,g,i,ir,j,lim,niveau dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym Caption 0,"Moire de William J. Kolomyjec" lim=288 dim xe(lim),ye(lim),xr(lim),yr(lim),lonbran(5),kol(5) rem Longueur des branches de chaque niveau lonbran(1)=30: lonbran(2)=60: lonbran(3)=100 lonbran(4)=160: lonbran(5)=220 ir=44: ray = 0: p=12 xc = 300: yc = 220 : rem Centre de la figure xm = xc: ym = yc cls 2d_point xc,yc for niveau = 1 to 5 rem Couleurs de chaque niveau select niveau case 1 r = 0: g = 255: b = 0 case 2 r = 255 : g = 152 : b = 0 case 3 r = 133 : g = 88 : b = 255 case 4 r = 255 : g = 0 : b = 0 case 5 r = 0 : g = 0 : b = 0 end_select 2D_pen_color r,g,b p = p * niveau: ap = 360 / p : an = ap / 2 ray = lonbran(niveau) : rem rayon par niveau a = niveau: c = 0 : d = 0 for i=1 to p if niveau=1 then goto suite a = a + 1 if a > niveau c = c + 1: a = 1 xm = xe(c): ym = ye(c) end_if suite: rad=3.14159265 / 180 x = xc + ray * cos(an*rad) y = yc + ray * sin(an*rad) 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x: yr(d)= y an = an + ap next i wait 900 rem Mise à jour des données for j=1 to d xe(j)=xr(j): ye(j)=yr(j) next j next niveau end Voilà, dites moi un peu ce que vous pensez de ça ! Merci pour votre visite. Amitiés de Parpaiun | |
| | | Klaus
Nombre de messages : 12276 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Moire de Kolomyjec Lun 27 Avr 2015 - 10:50 | |
| Très beau résultat, et avec si peu de lignes ! Bravo ! Pour plus de visibilité, j'ai changé un peu les paramètres: - Code:
-
rem Auteur: Parpaiun rem Date-version: 16/04/2015 label suite dim a,an,ap,b,c,d,g,i,ir,j,lim,niveau dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym Caption 0,"Moire de William J. Kolomyjec" : full_space 0 lim=288 dim xe(lim),ye(lim),xr(lim),yr(lim),lonbran(5),kol(5) rem Longueur des branches de chaque niveau lonbran(1)=60: lonbran(2)=100: lonbran(3)=160 lonbran(4)=230: lonbran(5)=350 ir=44: ray = 0: p=12 xc = screen_x/2: yc = screen_y/2-10 : rem Centre de la figure xm = xc: ym = yc cls 2d_point xc,yc for niveau = 1 to 5 rem Couleurs de chaque niveau select niveau case 1 r = 0: g = 255: b = 0 case 2 r = 255 : g = 152 : b = 0 case 3 r = 133 : g = 88 : b = 255 case 4 r = 255 : g = 0 : b = 0 case 5 r = 0 : g = 0 : b = 0 end_select 2D_pen_color r,g,b p = p * niveau: ap = 360 / p : an = ap / 2 ray = lonbran(niveau) : rem rayon par niveau a = niveau: c = 0 : d = 0 for i=1 to p if niveau=1 then goto suite a = a + 1 if a > niveau c = c + 1: a = 1 xm = xe(c): ym = ye(c) end_if suite: rad=3.14159265 / 180 x = xc + ray * cos(an*rad) y = yc + ray * sin(an*rad) 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x: yr(d)= y an = an + ap next i wait 900 rem Mise à jour des données for j=1 to d xe(j)=xr(j): ye(j)=yr(j) next j next niveau end | |
| | | Yannick
Nombre de messages : 8610 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 27 Avr 2015 - 12:14 | |
| Bel effet ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Moire de Kolomyjec Lun 27 Avr 2015 - 13:28 | |
| J'aime beaucoup, du coup je donne ma coolorisation à moi ^^ - Code:
-
rem Auteur: Parpaiun rem Date-version: 16/04/2015
label suite
dim a,an,ap,b,c,d,g,i,ir,j,niveau dim lim : lim=288 dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym dim xe(lim * 2),ye(lim * 2),xr(lim * 2),yr(lim),lonbran(5),kol(5)
Caption 0,"Moire de William J. Kolomyjec" : full_space 0
rem Longueur des branches de chaque niveau lonbran(1)=60: lonbran(2)=100: lonbran(3)=160: lonbran(4)=230: lonbran(5)=350
ir=44: ray = 0: p=12 : xc = screen_x/2: yc = screen_y/2-10 : xm = xc: ym = yc rad=3.14159265 / 180
cls : 2d_pen_width 2 for niveau = 1 to 5 p = p * niveau: ap = 360 / p : an = ap / 2 : a = niveau: c = 0 : d = 0 ray = lonbran(niveau) : rem rayon par niveau for i=1 to p if niveau=1 then goto suite a = a + 1 if a > niveau then c = c + 1: a = 1 : xm = xe(c): ym = ye(c) suite: x = xc + ray * cos(an*rad) : y = yc + ray * sin(an*rad) 2D_pen_color (niveau + 1)*20 + (x/10),(niveau +1)*22 + abs((screen_y/10)-(y/4)),(niveau + 1)*22 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x : yr(d)= y an = an + ap next i wait 300 rem Mise à jour des données for j=1 to d : xe(j)=xr(j): ye(j)=yr(j) : next j next niveau end | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Moire de Kolomyjec Lun 27 Avr 2015 - 16:26 | |
| Bon c'est trop calme, je vous mets une variation monochrome sur le même thème: - Code:
-
rem Auteur: Parpaiun rem Date-version: 16/04/2015
label suite
dim a,an,ap,b,c,d,g,i,ir,j,niveau dim lim : lim=288 dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym dim xe(lim * 2),ye(lim * 2),xr(lim * 2),yr(lim),lonbran(5),kol(5)
Caption 0,"Moire de William J. Kolomyjec" : full_space 0
rem Longueur des branches de chaque niveau lonbran(1)=60: lonbran(2)=100: lonbran(3)=160: lonbran(4)=230: lonbran(5)=350
ir=44: ray = 0: p=12 : xc = screen_x/2: yc = screen_y/2-10 : xm = xc: ym = yc rad=3.14159265 / 180
color 0,220,60,60 cls : 2d_pen_width 2 for niveau = 1 to 5 p = p * niveau: ap = 360 / p : an = ap / 2 : a = niveau: c = 0 : d = 0 ray = lonbran(niveau) : rem rayon par niveau for i=1 to p if niveau=1 then goto suite a = a + 1 if a > niveau then c = c + 1: a = 1 : xm = xe(c): ym = ye(c) suite: x = xc + ray * cos(an*rad) : y = yc + ray * sin(an*rad) 2D_pen_color niveau * ((x+50)/30) + niveau * abs((screen_y/40)-(y/20)),niveau * ((x+50)/30) + niveau * abs((screen_y/40)-(y/20)), niveau * ((x+50)/30) + niveau * abs((screen_y/40)-(y/20)) 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x : yr(d)= y an = an + ap next i wait 300 rem Mise à jour des données for j=1 to d : xe(j)=xr(j): ye(j)=yr(j) : next j next niveau end et sa cousine colorée: - Code:
-
rem Auteur: Parpaiun rem Date-version: 16/04/2015
label suite
dim a,an,ap,b,c,d,g,i,ir,j,niveau dim lim : lim=288 dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym dim xe(lim * 2),ye(lim * 2),xr(lim * 2),yr(lim),lonbran(5),kol(5)
Caption 0,"Moire de William J. Kolomyjec" : full_space 0
rem Longueur des branches de chaque niveau lonbran(1)=60: lonbran(2)=100: lonbran(3)=160: lonbran(4)=230: lonbran(5)=350
ir=44: ray = 0: p=12 : xc = screen_x/2: yc = screen_y/2-10 : xm = xc: ym = yc rad=3.14159265 / 180
color 0,20,20,20 cls : 2d_pen_width 2 for niveau = 1 to 5 p = p * niveau: ap = 360 / p : an = ap / 2 : a = niveau: c = 0 : d = 0 ray = lonbran(niveau) : rem rayon par niveau for i=1 to p if niveau=1 then goto suite a = a + 1 if a > niveau then c = c + 1: a = 1 : xm = xe(c): ym = ye(c) suite: x = xc + ray * cos(an*rad) : y = yc + ray * sin(an*rad) 2D_pen_color abs(255 - niveau * ((x+50)/12)),abs(255 - niveau * ((y+50)/15)), abs(255 - niveau * 102) 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x : yr(d)= y an = an + ap next i wait 300 rem Mise à jour des données for j=1 to d : xe(j)=xr(j): ye(j)=yr(j) : next j next niveau end | |
| | | papydall
Nombre de messages : 6998 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Moire de Kolomyjec Lun 27 Avr 2015 - 18:35 | |
| Salut tout le monde. Je suis très content d’avoir parmi nous un ‘artiste mathématicien’ ! Personnellement j’adore la beauté des êtres mathématiques sortis d’une simple équation. D’ailleurs, j’ai posté sur ce Forum plein de petites œuvres , fruits de quelques recettes à base de SIN, de COS et consoeurs. Revenons à nos moutons ou plutôt à ton code pour la moire de ce Monsieur Kolomyjec. Le résultat est beau, c’est certain. Nous avons, parmi nous, un coloriste du forum (il se reconnait), c’est bien. Nous avons également un Papydall GOTOphobe. Je n’aime pas GOTO, et à chaque fois où je vois cette instruction, je cherche à l’ignorer en modifiant le code. J’ai aussi une mauvaise vue et je préfère un code aéré pour mieux voir. J’ai parti du code modifié par Klaus, pour le réécrire à ma façon : aérer le code, ignorer LABEL et GOTO, pour la colorisation je laisse faire notre coloriste. Une autre petite remarque : - Code:
-
rad=3.14159265 / 180
Cette ligne se trouve à l’intérieure d’une boucle FOR … NEXT ; mieux vaut faire cette initialisation une seule fois , en début du code, c’est ce que j’ai fais. Parpaium, tout ce blabla n’ôte aucun mérite à ton code : c’est très bien ce que tu as fait. Mais (tu t’habitueras) je pinaille parfois pour un oui, pour un non ! Bon, voici, ma modification - Code:
-
rem Auteur: Parpaiun rem Date-version: 16/04/2015
dim a,an,ap,b,c,d,g,i,ir,j,lim,niveau dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym Caption 0,"Moire de William J. Kolomyjec" full_space 0 lim=288 dim xe(lim),ye(lim),xr(lim),yr(lim),lonbran(5),kol(5) rem Longueur des branches de chaque niveau
lonbran(1)=60: lonbran(2)=100: lonbran(3)=160 lonbran(4)=230: lonbran(5)=350 ir=44: ray = 0: p=12
xc = screen_x/2: yc = screen_y/2-10 : rem Centre de la figure xm = xc: ym = yc rad=3.14159265 / 180 cls 2d_point xc,yc for niveau = 1 to 5 rem Couleurs de chaque niveau select niveau case 1 : r = 0: g = 255: b = 0 case 2 : r = 255 : g = 152 : b = 0 case 3 : r = 133 : g = 88 : b = 255 case 4 : r = 255 : g = 0 : b = 0 case 5 : r = 0 : g = 0 : b = 0 end_select 2D_pen_color r,g,b p = p * niveau: ap = 360 / p : an = ap / 2 ray = lonbran(niveau) : rem rayon par niveau a = niveau: c = 0 : d = 0 for i = 1 to p if niveau <> 1 a = a + 1 if a > niveau c = c + 1: a = 1 xm = xe(c): ym = ye(c) end_if end_if x = xc + ray * cos(an*rad) y = yc + ray * sin(an*rad) 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x: yr(d)= y an = an + ap next i wait 900 rem Mise à jour des données for j=1 to d xe(j)=xr(j): ye(j)=yr(j) next j next niveau end
Parpaium, continue de nous épater par tes réalisations.
Dernière édition par papydall le Mar 28 Avr 2015 - 6:34, édité 1 fois | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Moire de Kolomyjec Lun 27 Avr 2015 - 22:43 | |
| @Parpaiun au lieu de faire rad = 3.1415...etc... tu peux écrire que pi = 4*ATN(1) et faire avec ça (n'écoute pas papydall qui va te dire que c'est ACOS(-1)... quoique...) | |
| | | papydall
Nombre de messages : 6998 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Moire de Kolomyjec Mar 28 Avr 2015 - 0:27 | |
| JL35 ne veux pas que je dise PI = ACOS(-1) : OK Alors, je dis PI = 2*ASIN(1) | |
| | | Nardo26
Nombre de messages : 2294 Age : 55 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Moire de Kolomyjec Mar 28 Avr 2015 - 2:04 | |
| Honnêtement, dans ta version, tu peux facilement te passer du GOTO jicehel... | |
| | | papydall
Nombre de messages : 6998 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Moire de Kolomyjec Mar 28 Avr 2015 - 2:06 | |
| - Code:
-
rem ============================================================================ rem Un papillon pour Parpaium rem Par Papydall rem ============================================================================ Init() Papillon(80) end
rem ============================================================================ SUB Init() dim x,y,xc,yc,t,pi,p,rho : ' Variables globales full_space 0 : color 0,0,0,0 : ' Plein écran, fond noir xc = width(0)/2 : yc = height(0)/2-25 : ' Coordonnées du centre de l'écran pi = acos(-1) : p = pi/180 : ' Le step de l'angle en radian (équivalant 1°)
END_SUB rem ============================================================================ ' Tracé d'un papillon SUB Papillon(r) cls : 2d_pen_color 255,255,0 : caption 0,"Un joli papillon" Rho = exp(cos(t)) -2*cos(4*t) + power(sin(t/36),5) x = xc + r*rho*sin(t) : y = yc - r*rho*cos(t) : 2d_poly_from x,y for t = 0 to 72*pi step p Rho = exp(cos(t)) -2*cos(4*t) + power(sin(t/36),5) x = xc + r*rho*sin(t) : y = yc - r*rho*cos(t) : 2d_poly_to x,y next t END_SUB rem ============================================================================
| |
| | | Parpaiun
Nombre de messages : 192 Age : 84 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Re: Moire de Kolomyjec Mar 28 Avr 2015 - 6:06 | |
| | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Moire de Kolomyjec Mar 28 Avr 2015 - 10:40 | |
| Tu as raison Nardo, je n'ai pas fais attention comme ça marchait bien. Du coup, je mets une autre colorisation sans GOTO dedans - Code:
-
rem Moire de KOLOMYJEC rem Auteur: Parpaiun rem Date-version: 16/04/2015
dim a,an,ap,b,c,d,g,i,ir,j,niveau dim lim : lim=288 dim p,r,rad,ray,r$,x,xc,xm,y,yc,ym dim xe(lim * 2),ye(lim * 2),xr(lim * 2),yr(lim),lonbran(5),kol(5)
Caption 0,"Moire de William J. Kolomyjec" : full_space 0
rem Longueur des branches de chaque niveau lonbran(1)=60: lonbran(2)=100: lonbran(3)=160: lonbran(4)=230: lonbran(5)=350
ir=44: ray = 0: p=12 : xc = screen_x/2: yc = screen_y/2-10 : xm = xc: ym = yc rad=3.14159265 / 180
color 0,20,20,20 cls : 2d_pen_width 4 for niveau = 1 to 5 p = p * niveau: ap = 360 / p : an = ap / 2 : a = niveau: c = 0 : d = 0 ray = lonbran(niveau) : rem rayon par niveau for i=1 to p if niveau > 1 then a = a + 1 if a > niveau then c = c + 1: a = 1 : xm = xe(c): ym = ye(c) x = xc + ray * cos(an*rad) : y = yc + ray * sin(an*rad) 2D_pen_color abs(127 * cos(an) - (5-niveau) * 26), abs(127 * sin(an)- (5-niveau) * 26) , ( 5 - niveau) * 51 2D_line xm,ym,x,y if niveau < 5 then d = d + 1: xr(d) = x : yr(d)= y an = an + ap next i wait 300 rem Mise à jour des données for j=1 to d : xe(j)=xr(j): ye(j)=yr(j) : next j next niveau end
| |
| | | Contenu sponsorisé
| Sujet: Re: Moire de Kolomyjec | |
| |
| | | | Moire de Kolomyjec | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |