# Fractals

This program was an attempt to make an object-oriented extendable system to generate Mandelbrot style fractals. It iterates over each pixel to see if it diverges and then assigns it a value based on that and then passes it to a different function to colour and then export to an image. My next goal is to allow it to use functions defined at runtime to save it having to keep being recompiled. Attempts at porting it to OpenGL and vulkan both failed (excessive artefacting and vulkan requiring a lot of setup that I found a bit difficult to understand)

## Examples

$$f(z_{n+1}) = z_n^2 + c$$ (Classic Mandelbrot)

$$f(z_{n+1}) = z_n^3 + c$$

$$f(z_{n+1}) = z_n^4 + c$$

$$f(z_{n+1}) = e^{z_n} + c$$

$$f(z_{n+1}) = \sin(z_n) + \cos(z_n) + c$$

Colouring methods

This Image contains the various colouring methods I made for it. From top left going clockwise:

- Sobel (Edge Detection)
- Linear Gradient \(Black \rightarrow White \rightarrow Blue\)
- Linear Gradient \(Black \rightarrow White\)
- Linear Gradient \(Blue \rightarrow White \rightarrow Black\)
- Linear Gradient \(White \rightarrow Black\)
- Cosine Palette