Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mcombeau/fract-ol

One of the first graphical projects at 42 school, fract-ol introduces us to 2D programming with fractal generation.
https://github.com/mcombeau/fract-ol

42 42born2code 42cursus 42paris 42projects 42school c fract-ol fract-ol-42 fractal-algorithms fractal-geometry fractal-images fractal-rendering fractals fractol fractol-42 hexadecimal-color

Last synced: about 2 months ago
JSON representation

One of the first graphical projects at 42 school, fract-ol introduces us to 2D programming with fractal generation.

Awesome Lists containing this project

README

        

# fract-ol


Fract'ol fract-ol 42 project badge

One of the first graphical projects at 42 school, fract-ol generates beautiful fractals from the complex numbers of an iterative mathematical construct. A fractal is a fragmented geometrical figure that infinitely repeats itself at smaller scales. This project uses the school's graphical library, MiniLibX.

![Fract-ol mono-colored Mandelbrot by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Mandelbrot.png)

# Status

Finished: 22/04/2022.

Grade: 125%.

# Usage

---

Note that this project was tested on Linux only. It may run on MacOS with small adjustments to the Makefile, as described in hsmits and jvan-sni's [42 Docs](https://harm-smits.github.io/42docs/libs/minilibx/getting_started.html).

---

## Installing and Compiling Fract-ol

Clone the repository, including the embedded MiniLibX repository:
```shell
git clone https://github.com/mcombeau/fract-ol.git && cd fract-ol && git submodule init && git submodule update
```

You will now be in the correct directory for compilation. Compile with ```make```. Fract-ol should now be ready!

## Executing Fract-ol

At execution time, you must specify a fractal to display. You may also provide other optional parameters:

```shell
./fractol
```

Types are :
* ```M```, ```m```, or ```1```: Mandelbrot fractal
* ```J```, ```j```, or ```2```: Julia fractal
* ```B```, ```b```, or ```3```: Burning Ship fractal
* ```T```, ```t```, or ```4```: Tricorn fractal
* ```X```, ```x```, or ```5```: Mandelbox fractal

For the Julia fractal set (and only this set), two additional parameters can be specified as calculation values. These represent a complex number that will change the shape of the Julia fractal. They must be fractional numbers between 2.0 and -2.0. For example:

```shell
./fractol J 0.285 -0.01
```

Additionally, you may specify a hexadecimal color for the fractal display:

```shell
./fractol M 00CCFF
```

Please note that for the Julia set, the color option will only be available after specifying calculation values:

```shell
./fractol J -0.4 0.6 65CD87
```

## Fract-ol Controls

While Fractol is running, the following set of controls are available:

ControlsAction
 W  A  S  D  or  ▲  ◄  ▼  ► Move
 - ,  +  or  scroll wheel Zoom in and out
 space Change color scheme
 left click Shift Julia set [Julia only]
 1 ,  2 ,  3 ,  4 , or  5 Switch fractals
 esc  or close windowQuit fract-ol

# Screenshots

## Mandelbrot set

![Fract-ol purple and yellow striped Mandelbrot by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Mandelbrot-2.png)
![Fract-ol red bllue and green striped Mandelbrot by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Mandelbrot-3.png)
![Fract-ol sun crest purple Mandelbrot by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Mandelbrot-4.png)

## Julia set

![Fract-ol purple green and yellow Julia by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Julia.png)
![Fract-ol red swirl Julia by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Julia-2.png)
![Fract-ol blue snowflake Julia by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Julia-3.png)

## Burning ship set

![Fract-ol golden burning ship by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Burning-Ship.png)

## Mandelbox set

![Fract-ol brown tribal Mandelbox by mcombeau](https://github.com/mcombeau/fract-ol/blob/main/screenshots/Fractol-Mandelbox.png)

---
Made by mcombeau: [email protected] | LinkedIn: [mcombeau](https://www.linkedin.com/in/mia-combeau-86653420b/) | Website: [codequoi.com](https://www.codequoi.com)