diff options
Diffstat (limited to 'src/sets.c')
-rw-r--r-- | src/sets.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/sets.c b/src/sets.c new file mode 100644 index 0000000..6787a6e --- /dev/null +++ b/src/sets.c @@ -0,0 +1,46 @@ +/* + * sets.c + * + * Created on: 15.01.2018 + * Author: Superleo1810 + */ + +#include "sets.h" + +u32 mandelbrot_s(double x, double y, u32 iterations) +{ + double cx = x, cy = y, x2; + u32 m = 0; + while(m <= iterations && (x*x)+(y*y) <= 4) + { + x2 = x; + x = (x*x) - (y*y) + cx; + y = 2.0*x2*y + cy; + m++; + } + return m; +} + +u32 mandelbrot_r(double x, double y, u32 iterations) +{ + return _mandelbrot_r(x, y, 0.0, 0.0, 0, iterations, 4.0); +} + +u32 _mandelbrot_r(double x, double y, double zx, double zy, u32 n, u32 iterations, double threshold) +{ + if ((n <= iterations) && ((zx * zx + zy * zy) < threshold)) { + double zx_new = (zx * zx - zy * zy + x); + double zy_new = (2 * zx * zy + y); + if ((zx_new == zx) && (zy_new == zy)) { + return iterations; + } + n = _mandelbrot_r(x, y, zx_new, zy_new, n + 1, iterations, threshold); + } + return n; +} + +u32 julia(double x, double y, u32 iterations) +{ + // TODO: Julia-Menge + return 0; +} |