Skip to content

"This project involves creating graphically beautiful fractals."

Notifications You must be signed in to change notification settings

Patthh/42_fract-ol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42 Fract-ol

███████╗██████╗░░█████╗░░█████╗░████████╗░░░░░░░█████╗░██╗░░░░░
██╔════╝██╔══██╗██╔══██╗██╔══██╗╚══██╔══╝░░░░░░██╔══██╗██║░░░░░
█████╗░░██████╔╝███████║██║░░╚═╝░░░██║░░░█████╗██║░░██║██║░░░░░
██╔══╝░░██╔══██╗██╔══██║██║░░██╗░░░██║░░░╚════╝██║░░██║██║░░░░░
██║░░░░░██║░░██║██║░░██║╚█████╔╝░░░██║░░░░░░░░░╚█████╔╝███████╗
╚═╝░░░░░╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░░░░╚═╝░░░░░░░░░░╚════╝░╚══════╝

📖 What is fractol 🌀?

A program that generates stunning fractal visualizations

        Fractol is a project associated with the curriculum of École 42, a coding school known for its project-based learning approach. The Fractol project uses the C programming language and the MinilibX graphics library to render various types of fractals including Mandelbrot and Julia. The goal of this project is to teach students about computer graphics, complex number mathematics, optimization techniques, and event-driven programming while creating visually mesmerizing mathematical art.

✅ Status

Project completion status

Completed on: 2024-09-07
110/100

🚀 Usage

To clone and compile:

git clone https://github.com/Patthh/42_fract-ol.git
cd 42_fract-ol && make

To run the program:

./fractol [fractal_type] [optional_parameters]

For example:

./fractol mandelbrot
./fractol julia 0.285 0.01

✨ Features

  • 🎨 Multiple fractal sets (Mandelbrot, Julia)
  • 🖱️ Interactive zoom with mouse wheel
  • 🌈 Psychedelic color schemes with dynamic shifting
  • 🔍 Precise navigation with keyboard arrows
  • 🎮 Interactive Julia set parameter modification
  • 🧮 Configurable iteration depth for detail control
  • ⭐ Bonus part:
    • The zoom follows the actual mouse position
    • In addition to the zoom: moving the view by pressing the arrows keys.
    • Make the color range shift

Warning

High zoom levels and iteration counts may result in decreased performance

🛠️ Implementation Details

Core Components

The Fractol program consists of these main components:

Component Description
🎯 MinilibX Integration Window management and pixel drawing
🧮 Complex Number Math Calculations for fractal generation algorithms
🔄 Event Handling Mouse and keyboard input processing
🌈 Color Mapping Converting iteration values to vibrant color schemes
🖼️ Rendering Engine Efficient pixel-by-pixel image generation
📏 Viewport Management Translation, scaling, and boundaries control

Note

"To see a World in a Grain of Sand, And a Heaven in a Wild Flower, Hold Infinity in the palm of your hand, And Eternity in an hour" - William Blake

Fractal Zoom
A journey into infinite mathematical beauty



Made with ❤️ and lots of 🧠

About

"This project involves creating graphically beautiful fractals."

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published