π
<-
Chat plein-écran
[^]

fractale : ensemble de julia

fractale : ensemble de julia

Message non lude loupiot » 24 Sep 2017, 21:18

je vous présente mon code générant d'autres fractales, liées à l'ensemble de mandelbrot ; elles appartiennent à l'ensemble de julia
Attention : Ce code ne fonctionne pas si votre numworks tourne avec une version 1.2 ou supérieure. Un script est présenté plus tard sur ce topic pour les version 1.2 ou supérieure.
Code: Tout sélectionner
import kandinsky
N_iteration = 40
X_min = -2
X_max = 2
Y_min = -2
Y_max = 2
for x in range(320):
    for y in range(240):
        c_r = -1
        c_i = 0.3
        z_r = X_min +(X_max-X_min)*x/320
        z_i = Y_min +(Y_max-Y_min)*y/240
        i=0
        while (i < N_iteration ) and ((z_r*z_r)+(z_i*z_i) < 4):
            i+1=i
            stock = z_r
            z_r = z_r * z_r - z_i * z_i +  c_r
            z_i = 2 * stock * z-i + c_i
        rgb = int(255*i/N_iteration)
        col = kandinsky.color(rgb,rgb,rgb)
        kandinsky.set_pixel(x,y,col)

ça affiche ça
Image
Alors oui, le programme est très proche du programme fourni avec la version bêta du python, mais j'y ai mis 4 variables permettant de modifier les parties du plan affichées par la calculatrice (et de faire des zooms)
exemple avec c_r et c_i = 0.36 :

Image

c'est pas mal, mais en modifiant un peu le plan :

Image

ça donne d'un coup plus envie :p (pensez à augmenter le nombre d'itérations)
c'est pratique quand la fractale générée n'est pas connexe

Pour modifier les couleurs, il suffit de modifier la 20ème ligne de code (pensez à rajouter int( entre chaque "rgb" car chaque valeur se doit d'être entière
pour c_r = 0.3 et c_i = 0.5 :

Image

c_r = 0.285 et c_i = 0.013 avec recadrage

Image

amusez vous bien :p
Dernière édition par loupiot le 19 Fév 2018, 17:54, édité 3 fois.
Avatar de l’utilisateur
loupiotProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 1.9%
 
Messages: 158
Images: 4
Inscription: 30 Oct 2015, 13:23
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2A ENS Lyon maths

Re: fractale : ensemble de julia

Message non lude Ti64CLi++ » 24 Sep 2017, 21:30

Waouh, magnifique loupiot :bj:
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: fractale : ensemble de julia

Message non lude Hamza.S » 24 Sep 2017, 21:33

@loupiot tu nous avais caché tes talents.
c'est très joli, franchement bravo :bj:

dommage qu'il n'y ait pas de logiciel de transfert pour numworks pour le moment
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4463
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: fractale : ensemble de julia

Message non lude critor » 24 Sep 2017, 21:33

Super ! :bj:
Le tout premier programme NumWorks publié par la communauté, je me trompe ? ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.2%
 
Messages: 41493
Images: 14577
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: fractale : ensemble de julia

Message non lude Ti64CLi++ » 24 Sep 2017, 21:35

Quelqu'un peut m'expliquer comment marche les codes qui dessinent des fractales, avec des couleurs :D
Je ne sais pas du tout comment ca marche :(
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: fractale : ensemble de julia

Message non lude loupiot » 25 Sep 2017, 22:34

les fractales sont générées en appliquant à un nombre complexe Z une suite du type Zn+1 = Z²+C avec C un complexe
Quand on a un résultat borné, on peut colorier le point Z du plan. Fais ça pour tout le plan et t'obtient une belle fractale :)
Quand il y a des couleurs comme dans ce programme, c'est en général qu'on colorie selon la "vitesse" avec laquelle Zn diverge ; plus ça prend un temps long, plus le point est clair
En réalité on prend le nombre d'itération que ça a prit pour comprendre que la suite diverge
j'espère que j'ai été clair :p
Avatar de l’utilisateur
loupiotProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 1.9%
 
Messages: 158
Images: 4
Inscription: 30 Oct 2015, 13:23
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2A ENS Lyon maths

Re: fractale : ensemble de julia

Message non lude parisse » 26 Sep 2017, 11:42

Une maniere assez generale pour generer une fractale est la suivante: on se donne une equation polynomiale
$mathjax$P(z)=0$mathjax$
dans
$mathjax$\mathbb{C}$mathjax$
, par exemple
$mathjax$P(z)=z^3-1$mathjax$
, on applique la methode de Newton pour la resoudre
$mathjax$u_{n+1}=u_n-P(u_n)/P'(u_n)$mathjax$
. Selon la valeur initiale
$mathjax$u_0$mathjax$
, la suite convergera vers un des points fixes, c'est-a-dire une des racines complexes de P ou divergera. On peut alors donner une couleur au point du plan d'affixe
$mathjax$u_0$mathjax$
en fonction de la racine vers laquelle on converge, ou une autre couleur s'il n'y a pas convergence (numerique) au bout d'un nombre maximal d'iterations.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.8%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: fractale : ensemble de julia

Message non lude Ti64CLi++ » 26 Sep 2017, 21:02

Ok, merci il me semble que j'ai compris. Je vais essayer de faire ma proper fractale :)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: fractale : ensemble de julia

Message non lude parisse » 27 Sep 2017, 06:36

On notera d'ailleurs que l'absence de complexes dans le module Python de la Numworks rend le code de fractales plus difficile a lire et comprendre, et sa conception fastidieuse.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.8%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: fractale : ensemble de julia

Message non lude loupiot » 19 Fév 2018, 22:14

Voici le script pour les versions 1.2 ou supérieur.
Il faut créer un script, qui s'appelle julia.py
Code: Tout sélectionner
from kandinsky import*
def julia(c,N_i,xmin,xmax,ymin,ymax):
    """c'est une fonction qui prend en entrées :
    c un nombre complexe,
    N_i le nombre d'itérations,
    xmin et autres la fenêtre du plan que l'on va afficher"""

    if type(N_i*xmin*xmax*ymin*ymax)==complex or N_i<1 or xmin>=xmax or ymin>=ymax:
        """juste pour vérifier que les paramètres correspondent bien à leur utilité ...
        On peut enlever ce if si on est sûr de pas faire n'importe quoi :p """
        return "N_i>=1, xmin<xmax, ymin<ymax"
    else:
        for x in range(320):
            for y in range(222):
                i=0
                z=xmin+(xmax-xmin)*x/320+(ymax-(ymax-ymin)*y/222)*1J
                while i<N_i and abs(z)<=2:
                    z=z*z+c
                    i+=1
                rgb=int(255*i/N_i)
                col=color(rgb,rgb,rgb)
                set_pixel(x,y,col)


cette nouvelle version corrige aussi un autre problème, c'est que l'ancien script générait des images qui étaient le miroir de ce qu'on attendait.
Avatar de l’utilisateur
loupiotProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 1.9%
 
Messages: 158
Images: 4
Inscription: 30 Oct 2015, 13:23
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2A ENS Lyon maths


Retourner vers Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1380 utilisateurs:
>1340 invités
>35 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)