Exemple de programme fonctionnant avec Azur
Posté le 21/01/2023 22:33
Hello,
Juste un petit post pour montrer à la communauté un petit exemple d'utilisation de
Azur (pouvant servir de base pour de vrais bons gros projets).
Ce petit programme passe par les shaders pour tracer les fractales dites de Mandelbrot et de Julia.
Ces deux fractales vérifient pour chacun des points du plan des complexes (l'axe x de l'écran étant assimilé à l'axe des réels et l'axe y de l'écran à l'axe des imaginaires) la convergence (ou non) d'une suite quadratique complexe donnée par Z_(n+1) = Z_(n)^2 + C.
Dans le cas de la fractale de Mandelbrot, nommée d'après le mathématicien français Benoît MANDELBROT (1924-2010), on choisit Z_(n+1) = Z_(n)^2 + C avec Z_(0)=0+0*i et C=A+B*i qui couvre le plan des complexes.
Dans le cas de la fractale de Julia, nommée d'après le mathématicien français Gaston JULIA (1893-1978), on choisit Z_(n+1) = Z_(n)^2 + C avec C=A+B*i donnée au départ (il y a donc une multitudes de fractales de Julia) et Z_(0) qui couvre le plan des complexes.
Le module de calcul de la suite quadratique a été codé par Lephé en ASM, et ça dépote un max !!!
Le dépôt est ici :
MandAzur
Je joins la version compilée en g3a à ce post.
Touches du programme :
[EXIT] quitte vers l'OS
[F1] à
[F4] pour afficher/effacer les infos à l'écran
[F5] et
[F6] : switche entre mode Mandelbrot (F5) et Julia (F6)
[OPTN] : mets la résolution de Azur en scale 1 (396x224)
[VARS] : mets la résolution de Azur en scale 2 (198x112) (moins beau mais beaucoup plus rapide)
Pour la fractale de Julia seulement :
[SHIFT]+
[Croix directionnelle] : change la valeur de C (C = A + B*i)
[SHIFT+LEFT] : A = A - 0.002
[SHIFT+RIGHT] : A = A + 0.002
[SHIFT+DOWN] : B = B - 0.002
[SHIFT+UP] : B = B + 0.002
A et B sont limitées sur le domaine [-2.000 .. 2.000]
Si la calculatrice est connectée en USB avec fxlink en mode surveillance
[7] : prend un screenshot
[8] : start video
[9] : stop video
Voili voilou
et @RDP
Fichier joint