papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Zoom sur Mandelbrot Ven 11 Déc 2015 - 1:23 | |
| Voici un code. - Code:
-
rem ============================================================================ rem Zoom sur Mandelbrot rem ============================================================================ Init() t = number_ticks Draw()
t = number_ticks -t caption 20,caption$(20) + " : " +str$(t/1000) + " s" end rem ============================================================================ SUB Init()
dim sz,kt,m,xmin,xmax,ymin,ymax,dx,dy,r%,g%,b%,t width 0,700 : height 0,700 sz = width(0)-100 picture 10 : full_space 10 : width 10,sz : height 10,sz top 10,50 : left 10,50 2d_target_is 10 : print_target_is 10 : color 10,0,0,0 alpha 20 : top 20,10 : left 20,200 : font_bold 20 : font_name 20,"tahoma" font_size 20,14 : font_color 20,0,0,255 : caption 20,"Zoom sur Mandelbrot" caption 0,"<ESC> pour arrêter" kt = 50 : m = 4 xmin = -0.50 : xmax = 0000 : ymin = 0.50 : ymax = 1 ' xmin = -0.15 : xmax = -.05 : ymin = 0.90 : ymax = 1 ' xmin = -0.14 : xmax = -.13 : ymin = 0.98 : ymax = .99 END_SUB rem ============================================================================ SUB Draw() dim_local a,b,d,k%,n,tx,x,y
dx = (xmax-xmin)/sz : dy = (ymax-ymin)/sz for x = xmin to xmax step dx for y = ymin to ymax step dy k% = 0 : a = 0 : b = 0 repeat tx = a*a-b*b+x : b = 2*b*a+y : a = tx: d = a*a+b*b : k% = k%+1 until not ((d <= m) and (k% < kt))
k% = k%*5000 : Integer2RGB(k%) 2d_pen_color r%,g%,b% 2d_point (x-xmin)/dx,(ymax-y)/dy if scancode = 27 then exit_sub next y next x
2d_pen_color 0,0,0 for n = 0 to 9 2d_line n*sz/10,sz,n*sz/10,0 print_locate n*sz/10,5 : print xmin+(xmax-xmin)*n/10 print_locate 5,n*sz/10 : print ymax-(ymax-ymin)*n/10 2d_line sz,n*sz/10,0,n*sz/10 next n
END_SUB rem ============================================================================ ' Convertir une couleur de valeur entière en couleur RGB SUB Integer2RGB(couleur%) R% = int(mod(Couleur%,256)) G% = int(mod(Couleur%,65536)/256) B% = int(couleur%/65536) END_SUB rem ============================================================================
Vous avez les choix suivants : 1) Vous lancez le programme. Vous vous installez confortablement devant votre écran. Vous pouvez même faire un bon petit somme. Et patientez, patientez, patientez, …. L’image finira bien par sortir ! 2) Vous lancez le programme. Vous allez tondre votre pelouse ou faire sortir votre chien. Vous pouvez même vous rendre au super marché pour faire vos provisions. Et espérez qu’à votre retour, l’image sera toute prête. 3) Vous n’avez ni le temps ni l’envie ni la patience nécessaire. Mais vous vous demandez de quoi s’agit-il ? Alors cliquez sur - image:
Image obtenue après 4252.368 s; soit plus de 70 mn.
4) Ultime choix : envoyez le tout à la corbeille et allez vaquer à vos affaires. Edit : J'ai modifié le code pour corriger l'erreur signalée par Silvermann
Dernière édition par papydall le Ven 11 Déc 2015 - 23:19, édité 1 fois (Raison : Correction de l'erreur signalée par Ilverman) | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Zoom sur Mandelbrot Ven 11 Déc 2015 - 2:20 | |
| Très joli ! Ca paraît si simple, et pourtant, l'effet est superbe ! | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 11 Déc 2015 - 2:33 | |
| Je dirai même plus, c' est joli. | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Zoom sur Mandelbrot Ven 11 Déc 2015 - 4:14 | |
| Merci Klaus. Merci Ygeronimi. L’inconvénient c’est le temps (très long) mis pour la réalisation ! - Spoiler:
- Spoiler:
| |
|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Zoom sur Mandelbrot Ven 11 Déc 2015 - 11:54 | |
| Bonjour à tous!
@papydall Pas mal! Mais j'ai trouvé une erreur dans la sub de conversion de la couleur, si couleur=16777215 alors r%=0, g%=257, b%=0. Le résultat aurait dû être : r%=255, g%=255, b%=255. | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Zoom sur Mandelbrot Ven 11 Déc 2015 - 23:24 | |
| Merci Silverman pour avoir signalée cette erreur. C’était une grosse erreur de programmation de ma part . J’ai rectifié mon tir. C’est corrigé et j’ai édité le code ci-haut. Merci une fois de plus. Voici le résultat | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Zoom sur Mandelbrot Sam 12 Déc 2015 - 0:33 | |
| | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Zoom sur Mandelbrot Sam 12 Déc 2015 - 1:03 | |
| Oui, c’est chouette. Mais ça ne n’ulule pas ; ça ne hue pas ; ça ne chuinte pas. Ça plait tout simplemznt. | |
|
Contenu sponsorisé
| Sujet: Re: Zoom sur Mandelbrot | |
| |
|