-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
42 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,42 @@ | ||
# fractol | ||
42 fractol project | ||
|
||
# Fract'ol | ||
|
||
## Fractol is a project from 42 School written in C, focused on creating visually stunning fractals. | ||
|
||
On this project, I learned about graphics programming and gained an understanding of how to draw complex visual patterns like fractals on the screen, as well as how to handle events such as zooming and color customization. Additionally, I gained insights into the mathematical concepts behind fractals. | ||
|
||
This project follows the the 42 norm | ||
|
||
|
||
## Minilibx | ||
|
||
The MiniLibX is a minimalist graphics library developed by 42. It provides a set of functions for creating graphical applications in C. Operating primarily by interfacing with the X Window System (X11), which is a standard protocol for managing graphical user interfaces on Unix-like operating systems. | ||
|
||
https://github.com/42Paris/minilibx-linux | ||
|
||
For this project, the MiniLibX version for Linux (minilibx_linux) was used. | ||
### Usage | ||
|
||
- Run `make` inside the repository, and the Makefile will automatically install the MiniLibX for Linux (minilibx-linux) and generate the binary named `fractol`. | ||
|
||
|
||
|
||
- You can run three different commands to generate different fractals: | ||
|
||
```bash | ||
./fractol mandelbrot | ||
./fractol julia <real> <imag> | ||
./fractol fern | ||
``` | ||
-- This will create a Mandelbrot set, Julia set, and a Barnsley fern, respectively. | ||
## Events | ||
|
||
- You can zoom in and out by pressing the '+' and '-' keys. Additionally, you can use the mouse scroll wheel, and the zoom will follow the mouse pointer. | ||
|
||
- You can add more red, green, or blue by pressing 'r', 'g', or 'b', respectively. | ||
|
||
- By pressing 'i', you can increase the precision, however, the more precise it becomes, the slower the rendering. | ||
|
||
- You can press 'Esc' or click the 'x' button on the top right corner to close the window. | ||
|
||
- You can move the view by pressing the arrow keys. |