/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/05 19:57:50 by ljiriste #+# #+# */
-/* Updated: 2024/01/19 13:43:01 by ljiriste ### ########.fr */
+/* Updated: 2024/04/25 09:30:49 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
#include "fractol.h"
#include <math.h>
+double normalize_count(int count, double norm, double color_stability)
+{
+ return (fmod((double)(count + 1 - log(log(norm) / log(2)) / log(2)) / color_stability, 1.));
+}
+
double general_julia(void *zeroth, double resolution,
void (*tested_f)(void *), int (*is_over_thresh)(void *))
{
z.r = x;
z.i = y;
if (complex_norm(c) > 4)
- return (0);
+ return (normalize_count(1, 4, settings->color_stability));
while (complex_norm(z) < 256 && count < settings->detail)
{
z = complex_add(complex_mul(z, z), c);
}
if (count == settings->detail)
return (-1);
- return (fmod((double)(count + 1 - log(log(complex_norm(z)) / log(2)) / log(2)) / settings->color_stability, 1.));
+ return (normalize_count(count, complex_norm(z), settings->color_stability));
}
double tricorn(t_set_man *settings, double x, double y)
z.r = 0;
z.i = 0;
if (complex_norm(c) > 4)
- return (0);
+ return (normalize_count(1, 4, settings->color_stability));
while (complex_norm(z) < 256 && count < settings->detail)
{
z = complex_add(complex_mul(complex_conj(z), complex_conj(z)), c);
}
if (count == settings->detail)
return (-1);
- return (fmod((double)(count + 1 - log(log(complex_norm(z)) / log(2)) / log(2)) / settings->color_stability, 1.));
+ return (normalize_count(count, complex_norm(z), settings->color_stability));
}