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 |
|
|
| Les Bolygones | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Les Bolygones Jeu 8 Mar 2012 - 0:55 | |
| Salut tout le monde Panoramicien! Aujourd'hui, je vous propose les Bolygones. Avec un B : si,si, c'est pas une erreur! Petit rappel : Considerons un cercle de rayon 1 dans lequel on fait varier un angle A de 0 à 360° avec un pas donné p. On appelle BOLYGONE d'ordre N l'enveloppe des cordes joignant tout angle A à l'angle N * A où N est un entier superieur à 1. Mais rien ne nous empêche d'essayer des valeurs décimales de N comme N = 1.5 ou N = 2.5 etc... Dans ce cas, pour que la courbe se referme sur elle-même, on doit indiquer une periode de 4pi au lieu de 2pi. On sait que tout point d'un cercle centré à l'origine des axes a pour coordonnées cartésiennes : X = R * COS(A) Y = R * SIN(A) Comme le rayon du cercle vaut 1, on aura pour un point quelconque d'angle au centre A : X = COS(A) Y = SIN(a) et le point au centre N*A : X = COS(N*A) Y = SIN(N*A) - Code:
-
rem '**************************************************** rem '* * rem '* Les Bolygones par Papydall * rem '* * rem '**************************************************** dim titre$ : titre$ = "Les Bolygones" width 0,600 : height 0,600 caption 0,"Papydall vous présente " + titre$ dim LX,LY,XI,XM,YI,YM,x1,y1,x2,y2,x,y,ordre,angle dim pi : pi = 4*atn(1)
LX = 500 : LY = 500 : ' dimentions de l'écran graphique Xi = -1 : XM = 1 : YI = -1 : YM = 1 : ' coordonnées des bords de l'écran
2d_pen_color 255,0,0
' **************************************************************************
' L'ordre d'un bolygone est normalement un entier > 1. La periode est 2*pi ' Mais rien ne nous empêche d'essayer des valeurs décimales. C'est plus beau ' Dans ce cas, pour tracer complètement la courbe,la periode doit-être 4*pi
' ************************************************************************** for ordre = 1.5 to 20 step .5 cls print_locate 10,550 : print "Bolygone d'ordre : "; ordre for angle = 0 to 4*pi step pi/90 x = cos(angle) : y = sin(angle) x1 = 20 + lx * (x-xi)/(xm-xi) : y1 = 20 + ly * (y-yi)/(ym - yi) x = cos(ordre * angle) : y = sin(ordre * angle) x2 = 20 + lx * (x-xi)/(xm-xi) : y2 = 20 + ly * (y-yi)/(ym - yi) 2d_line x1,y1,x2,y2 next angle wait 1000 next ordre end
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 1:34 | |
| Super joli, mais comme tu sais, j'aime bien les couleurs alors j'ai fais la version ci dessous colorisée, j'en ai profité pour modifier un peu le figure en augmentant la période pour proposer d'autres variantes de tes figures. - Code:
-
rem '**************************************************** rem '* * rem '* Les Bolygones par Papydall * rem '* * rem '**************************************************** dim titre$ : titre$ = "Les Bolygones" width 0,600 : height 0,600 : caption 0,"Papydall vous présente " + titre$ dim LX,LY,XI,XM,YI,YM,x1,y1,x2,y2,x,y,ordre,angle dim pi : pi = 4*atn(1)
LX = 500 : LY = 500 : ' dimentions de l'écran graphique Xi = -1 : XM = 1 : YI = -1 : YM = 1 : ' coordonnées des bords de l'écran
' ************************************************************************** ' L'ordre d'un bolygone est normalement un entier > 1. La periode est 2*pi ' Mais rien ne nous empêche d'essayer des valeurs décimales. C'est plus beau ' Dans ce cas, pour tracer complètement la courbe,la periode doit-être 4*pi ' **************************************************************************
for ordre = 0 to 20 step .25 cls if ordre = 1 then ordre=0.95 if ordre = 1.2 then ordre = 1.25 print_locate 10,550 : print "Bolygone d'ordre : "; ordre for angle = 0 to 8*pi step pi/90 x = cos(angle) : y = sin(angle) x1 = 20 + lx * (x-xi)/(xm-xi) : y1 = 20 + ly * (y-yi)/(ym - yi) x = cos(ordre * angle) : y = sin(ordre * angle) x2 = 20 + lx * (x-xi)/(xm-xi) : y2 = 20 + ly * (y-yi)/(ym - yi) 2d_pen_color 255-angle*9,angle*9,angle*9 2d_line x1,y1,x2,y2 if key_down_code = 27 then terminate next angle wait 1000 next ordre 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: Les Bolygones Jeu 8 Mar 2012 - 1:51 | |
| Jicehel, ta modification est superbe! Bravo | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 9:45 | |
| Bonjour Papydall, C'est très joli, et tout ça me rappelle les petits programmes de dessin que je faisais sur mon Hector. J'adorais faire des rosaces multicolores. D'ailleurs, il suffit d'aller sur Wikipedia et de transcrire les formules mathématiques des diverses formes que l'on connait dans notre univers et qui ont été mises en équations tels que ces mots savants et plus ou moins explicites: cardioïde, cissoïde, clothoïde, conchoïde, cycloïde, Epicycloïde, Hypocicloïde, Helice, Nephroïde, spirale, Hypotrochoïde, épitrochoïde, trochoïde, ovale, etc... Vite fait, j'ai transcrit celle de l'épicycloïde je crois et ça donne ceci: - Code:
-
dim i,x,y,r,q,p dim pi : pi = 4*atn(1) p=100:r=10:q=p/r full_space 0 for i=-1*pi to pi step pi/720 x=r*((q+1)*cos(i)-cos(i*(q+1)))+500 y=r*((q+1)*sin(i)-sin(i*(q+1)))+400 ' x=((p+r)*cos(i))-r*cos(i*((p+r)/r))+500 ' y=((p+r)*sin(i))-r*sin(i*((p+r)/r))+400 2d_point x,y next i Libre à vous tous d'adapter ces formules mathématiques et les diverses formes. Rien ne vous empèche de calculer par exemple un point x1,y1 d'un cardioïde et un point x2,y2 d'un cycloïde et de les joindre par un 2d_line x1,y1,x2,y2 et d'en voir le résultat graphique. Je suis sur que l'on peut faire des figures aussi jolies que les fractales ou les ensembles de Julia! Bonne Journée à tous! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 10:36 | |
| Voici pour illustrer ce que je disais sur mon post précédent une petite figure: - Code:
-
dim i,x1,y1,x2,y2,r,q,p dim pi : pi = 4*atn(1) p=100:r=10:q=p/r color 0,0,0,0:full_space 0 for i=-1*pi to pi step pi/360 ' 2d_pen_color abs(128-i*40),abs(64-i*60),abs(32-i*70) 2d_pen_color abs(251-i),abs(64-i*60),abs(32-i*70) x1=r*((q+1)*cos(i)-cos(i*(q+1)))+500 y1=r*((q+1)*sin(i)-sin(i*(q+1)))+400 x2=sqr(power(y1,2)*(power(y1,2)-power(pi/10,2))/(power(x1,2)-power((pi/10)*3,2))) y2=sqr(power(x1,2)*(power(x1,2)-power((pi/10)*3,2))/(power(y1,2)-power(pi/10,2)))-300 ' 2d_point x1,y1 ' 2d_point x2,y2 2d_line x1,y1,x2,y2 next i Amusez vous aussi à changer les - des 2 formules par des /,* ou +. Vous verrez des formes différentes! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: triangle de Sierpinski Jeu 8 Mar 2012 - 10:51 | |
| Bonjour amis Panoramiciens! Voici le triangle de Sierpinski..... - Code:
-
' **************************************************** ' * * ' * LE TRIANGLE DE SIERPINSKI * ' * par PAPYDALL * ' * * ' **************************************************** dim titre$ : titre$ = "L E T R I A N G L E D E S I E R P I N S K I" width 0,800 : height 0,700 caption 0,"PAPYDALL vous présente " + titre$ dim x1,x2,y1,y2,k,l,a,b
x1 = 400 : x2 = 400 : y1 = 0 : y2 = 0 print "Veuillez patienter...." for k = 1 to 100000 l = int (rnd (3)) if l = 0 then x1 = (x2 + 400) / 2 : y1 = y2 / 2 if l = 1 then x1 = x2 / 2 : y1 = (y2 + 600) / 2 if l = 2 then x1 = (x2 + 800) / 2 : y1 = (y2 + 600) / 2 a = int (y1 / 2.4) : b = int (x1 / 3.2) 2d_pen_color a, b, 255 - a : 2d_point x1, y1 x2 = x1 : y2 = y1 next k print "Terminé" end
...... et la fougère de Barnsley - Code:
-
' **************************************************** ' * * ' * L A F O U G E R E D E B A R N S L E Y * ' * * ' * par Papydall * ' * * ' **************************************************** dim titre$ width 0,800 : height 0,800 titre$ = "L A F O U G E R E D E B A R N S L E Y" caption 0,"Papydall vous présente " + titre$ dim x,y,n,r,x1,y1 label fin 2d_pen_color 0,255,0 print " <ECHAP> pour terminer" x = 0 : y = 0 for n = 1 to 50000 r = rnd (1) if r <= 0.01 : x = 0 :y = 0.16 * y else if r <= 0.08 : x = 0.2 * x - 0.26 * y : y = 0.23 * x + 0.22 * y + 1.6 else if r <= 0.15 : x = -0.15 * x + 0.28 * y : y = 0.26 * x + 0.24 * y + 0.44 else x = 0.85 * x + 0.04 * y : y = -0.04 * x + 0.85 * y + 1.6 end_if end_if end_if x1 = (x + 3) * 70 : y1 = 700 - y * 70 2d_point x1, y1 : 2d_point 800-x1,700-y1 if asc(inkey$) = 27 then goto fin next n print "Terminé" fin: end
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 11:28 | |
| Le triangle de sierpinski, je connaissais et il a du être abordé dans le forum, mais la fougère de barnsley, là je découvre. Je ne connaissais pas. Merci à toi de nous faire connaitre ces diverses formes. Comme quoi on peut faire une infinité de choses avec quelques formules mathématiques! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 11:37 | |
| Que de jolies courbes, je pense que je vais me faire un récap avec un petit lanceur puisque Papydall nous donne les noms, les autres, j'éssayerais d'en trouver un. Papydall, il ne faut pas hésiter à utiliser la 3D, c'est encore plus impressionnant en principe.
| |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 13:02 | |
| ô la, la fougère, c'est mag-ni-fi-que!!!! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 13:08 | |
| Bon, je suis allé faire un tour sur wikipédia et j'ai trouvé le Leminscate de Gérono. Je lui ai adjoint un coefficient a pour le multiplier plusieurs fois. Mais en changeant les termes de l'équation on peut faire de belles courbes encore là. Il y a matière à réflexion! Ah, cette géométrie et ces mathématiques! L'une ne va pas sans l'autre! - Code:
-
dim i,x1,y1,pi,a pi=4*atn(1) full_space 0 for a=50 to 300 step 10 for i=-1*pi to pi step pi/360 x1=a*sin(i)+500:y1=a*sin(i)*cos(i)+400 2d_point x1,y1 next i next a A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 13:42 | |
| Bien joli tout ça ! J'avais acheté autrefois un bouquin édité par le Palais de la Découverte: 'Courbes mathématiques', avec toutes les formules, il va falloir que je l'exhume.
Ce qui me stupéfie toujours, c'est la rapidité de tracé des figures, par rapport aux basics d'autrefois, où c'était d'une lenteur abominable ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Les bolygones Jeu 8 Mar 2012 - 13:57 | |
| Bonjour Bignono. Je me rappelle que cette courbe s'appelle Lemniscate de Bernoulli. Derrière des formules mathématiques très simples (ou obscures ? peut-être pour certains) se cachent souvent des courbes très esthétiques. Mais la notion de beauté est tout à fait relative. Si on ne voit pas tout seul la beauté dans une fleure, dans un nuage de genre cumulus,dans une formule mathématique,dans une courbe , dans le visage d'une femme, etc...Alors , là, personne, absolument personne ne pourra nous l'expliquer. Quant à moi,ces courbes polaires et autres ,me fascinent toujours. Là, je commence à divaguer. Donc je me tais. A +
Dernière édition par papydall le Ven 9 Mar 2012 - 0:15, édité 1 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Les bolygones Jeu 8 Mar 2012 - 14:17 | |
| Salut Jicehel. Voici un lien si ça t'interresse. mathcurve.com/ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 14:22 | |
| - papydall a écrit:
- Salut Jicehel.
Voici un lien si ça t'interresse. mathcurve.com/ | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 14:26 | |
| Effectivement, c'est une variante du lemniscate de Bernouilli, comme le lemniscate de Both. J'ai choisi celui de Gérono, car les courbes me paraissaient plus agréable à l'oeil. Quant à la beauté tu as parfaitement raison. L'univers entier est une beauté géométrique et mathématique! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 14:52 | |
| Ah, c'est matheux ... perso, ça fait bien longtemps que j'ai oublié toutes ces appelations. En tout cas ,ej teste tout ça ce soir et je regarderais le site. Merci pour le lien | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Les bolygones Jeu 8 Mar 2012 - 15:20 | |
| Bignono,j'ai ajouté une légère modification à ton code. Admire le resultat! - Code:
-
dim i,x1,y1,pi,a pi=4*atn(1) full_space 0 for a=50 to 300 step 10 for i=-1*pi to pi step pi/360 x1=a*sin(i)+500:y1=a*sin(i)*cos(i)+400 2d_pen_color 255,0,0 : 2d_point x1,y1 : 2d_point y1 + 100 ,x1 - 100 2d_pen_color 0,255,0 : 2d_point y1 - 200,x1 - 100 2d_pen_color 0,0,255 : 2d_point y1 + 400,x1 - 100 next i next a
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Les bolygones Jeu 8 Mar 2012 - 17:20 | |
| Et cette modif... - Code:
-
dim i,x1,y1,pi,a ,d ,debut,fin,pas pi=4*atn(1) debut = -10 * pi : fin = 10 * pi : pas = pi/180 full_space 0 for d = 3 to 21 step 2 : cls print "Veuillez patienter.... <ESC> pour arrêter "; for a=200 to 300 step 10 for i = debut to fin step pas x1=a*sin(i/d)+500:y1=a*sin(i)*cos(i/d)+400 2d_pen_color 255,0,0 : 2d_point x1,y1 2d_pen_color 0,0,255 : 2d_point y1 + 100 ,x1 - 100 next i : if scancode = 27 then end next a : wait 1000 next d print "Fin"
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 17:35 | |
| Magnifique ! et pratique la touche Esc pour stopper. (un seul petit reproche, pour moi, c'est le full_space qui masque tout l'écran, mais bon, ça se discute). | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 22:28 | |
| Coucou, j'ai mon internet qui marche mal, j'ai testé, c'est sympa, surtout le dernier de Papydall. J'y vais de ma variante de la version d'avant que j'ai testé en premier, pour la colorisation des courbes. Je pense aussi que le bouton <Echap> marche mieux avec le code ci dessous: - Code:
-
label fin dim i,x1,y1,a dim a$ : a$ ="" dim pi : pi=4*atn(1) height 0, 450 : width 0, 1150 print "Veuillez patienter.... <ESC> pour arrêter "; for a=1 to 200 step 3 for i=-1*pi to pi step pi/360 x1=a*sin(i):y1=a*sin(i)*cos(i) 2d_pen_color 255,20 + abs(i) * 60,255 - abs(i) * 60 : 2d_point x1+150, y1+200 : 2d_point y1+650, x1 +200 2d_pen_color 125 + 26 *i ,255,20 + abs(i) * 60 : 2d_point x1+650, y1+200 : 2d_point y1+150, x1 +200 2d_pen_color 255,255 - abs(i) * 60,20 + abs(i) * 50 : 2d_point x1+900, y1+200 : 2d_point y1+900, x1 +200 2d_pen_color 255 - abs(i) * 60,20 + abs(i) * 60,255 : 2d_point x1+400, y1+200 : 2d_point y1+400, x1 +200 a$ = inkey$ : if asc(a$) = 27 then goto fin next i next a fin: print "-- Programme terminé --" | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Les Bolygones Jeu 8 Mar 2012 - 23:33 | |
| Bon pour innover et essayer de vous convaincre de faire vos courbes en 3D, je vous refais une petite démo de courbe en 3D, on ne sait jamais ... - Code:
-
label fin dim i,j,k, a$ dim x,y,z,x1,y1,z1 dim w dim pi: pi=4*atn(1) full_space 0 scene3D 1 : full_space 1 cam_x_position 0 : cam_y_position 3 : cam_z_position 3 : ' positionne la camera point_x_position 0 : point_y_position 0 : point_z_position 0 : ' objectif dirigé vers le centre light_x_position -5 : light_y_position 15 : light_z_position 50 : ' positionne la lumiere
x=0 : y=0: z=0 : k = 100 w = SQR(1-x*x+y*y)
for i=-2*Pi to 2*Pi step 0.1 x1=x+2*w*(w-z)*cos(i) : y1=y+2*w*(w-z)*sin(i) : z1=z+2*w*(w-z)*cos(i)*cos(i) 3D_sphere k,0.1 : 3d_color k,(8+i)*16,125 + i*18, 125 -i*18 :3d_position k,x1,y1,z1 k=k+1 : a$ = inkey$ : if asc(a$) = 27 then goto fin next i
for i = -1*Pi to Pi step 0.2 x= x - cos(i) : y= 3 + sin(i)*y : z=3 cam_x_position x : cam_y_position y : cam_z_position z a$ = inkey$ : if asc(a$) = 27 then goto fin wait 200 next i fin: print "-- Programme terminé --" | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Les bolygones Ven 9 Mar 2012 - 0:00 | |
| C'est dire qu'avec peu de chose, on peut faire beaucoup de choses. Quant à la 3D,jicehel, c'est magnifique, mais je fais mes premiers pas en Panoramic! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Les Bolygones Ven 9 Mar 2012 - 10:15 | |
| Salut à tous,
Pour que ce soit encore plus beau, j'ajoute "color 0,0,0,0" en première ligne sur vos codes. Je trouve que les couleurs ressortent mieux sur un fond noir
Sur celui de Jicehel c'est "color 1,0,0,0" pour le scene3D.
A+
| |
| | | Contenu sponsorisé
| Sujet: Re: Les Bolygones | |
| |
| | | | Les Bolygones | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |