/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* color_sin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: lkantzer <lkantzer@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/26 01:15:14 by lkantzer #+# #+# */ /* Updated: 2025/03/28 14:14:21 by lkantzer ### ########.fr */ /* */ /* ************************************************************************** */
fract-ol
Mandelbrot et Julia, au pixel près
Un explorateur de fractales : zoom centré sur le curseur, Julia paramétrable, coloration sinusoïdale.
- 2
- fractales
- au curseur
- zoom
- sinusoïdale
- coloration
La suite
Chaque pixel de la fenêtre est un nombre complexe. On lui applique la même suite, encore et encore, et on regarde si elle part à l'infini.
z(n+1) = z(n)² + c
- Mandelbrot
- z part de zéro, et c est le point de l'écran. L'ensemble est celui des c dont la suite reste bornée.
- Julia
- L'inverse : c est fixé pour toute l'image, et c'est z qui part du point de l'écran. Déplacer c redessine entièrement la figure.c = −0,7 + 0,27015 i
- Divergence
- Dès que le module de z dépasse 2, la suite ne revient jamais : on s'arrête et on garde le rang atteint. Le test se fait sur le carré, pour s'épargner une racine par itération.x² + y² > 4
- Plafond
- Un point qui n'a pas divergé au bout du nombre maximal d'itérations est déclaré dans l'ensemble, et peint en noir.
- Couleur
- Le rang de divergence entre dans trois sinusoïdes décalées, une par canal — c'est ce décalage qui remplace les bandes plates d'un simple modulo par un dégradé continu.
Le zoom ne touche pas à la suite : il ne change que la fenêtre du plan complexe que les pixels vont lire. D'où l'intérêt de la recentrer sur le curseur plutôt que sur le milieu de l'écran.
Molette pour zoomer — le point sous le curseur reste fixe, comme dans le projet en C. En mode Julia, maintenez Maj et déplacez la souris : le paramètre complexe suit le curseur et la figure se réécrit en direct.
- 01Chaque pixel est un nombre complexe itéré jusqu'à divergence
- 02Le zoom se fait autour de la souris, pas du centre de la fenêtre
- 03Palettes sinusoïdales décalées par canal : pas de bandes plates
- 04Écriture directe dans le tampon image, un seul envoi à l'écran
Zoomer là où on regarde
Un zoom centré sur la fenêtre rend l'exploration en profondeur inutilisable. Recentrer sur le curseur tient en trois lignes et change tout à l'usage.