Skip to content

zenon0777/fract-ol-42

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fract-ol-42

42 Graphic Project - Fractal Drawer This project is about creating graphically beautiful fractals.

Foreword

Here’s what Wikipedia has to say on hydraulic fracturing: The "hydraulic fracturing," is the targeted disruption of geological formations with low permeability by means of injection under high pressure of a fluid to micro-cracking and crack the rock. This fracturing can be performed near the surface or at depth (over 1 km or more than 4 km in the case of shale gas) and from vertical wells, sloped or horizontal. This relatively old technique (1947), developed for conventional oil deposits, is renewed by its association with horizontal drilling (developed from 1980). It is the gradual mastery of the economic viability of this association for non-conventional deposits, who guided the recent development of the operation of these: it made available formerly inaccessible resources, or which have been exploited at exorbitant costs and slowly. It is carried out by fracturing the rock with a "stress" mécanique3 using a fluid injected under high pressure from a surface drilling, to increase the macro-porosity and the micro-porosity. The fluid could be the water, a slurry or a technical fluid whose viscosity was adjusted. This project is not called fract’oil and accordingly has no relation to hydraulic fracturing.

Terminology

The term fractal was first used by mathematician Benoit Mandelbrot in 1974. He based it on the Latin word fractus which means "broken" or "fractured". A fractal is an abstract mathematical object, like a curve or a surface, which pattern remains the same at every scale. Various natural phenomena – like the romanesco cabbage – have some fractal features.

Objectives

It’s time for you to create a basic computer graphics project! You are going to use the school graphical library: the MiniLibX! This library was developed internally and includes basic necessary tools to open a window, create images and deal with keyboard and mouse events. This will be the opportunity for you to get familiar with the MiniLibX, to discover or use the mathematical notion of complex numbers, to take a peek at the concept of optimization in computer graphics and practice event handling.

Rendering

• Your program must offer the Julia set and the Mandelbrot set.
• The mouse wheel zooms in and out, almost infinitely (within the limits of the computer). This is the very principle of fractals.
• You must be able to create different Julia sets by passing different parameters to the program.
• A parameter is passed on the command line to define what type of fractal will be displayed in a window.
◦ You can handle more parameters to use them as rendering options.
◦ If no parameter is provided, or if the parameter is invalid, the program displays a list of available parameters and exits properly.
• You must use at least a few colors to show the depth of each fractal. It’s even better if you hack away on psychedelic effects.

Graphic management

• Your program has to display the image in a window.
• The management of your window must remain smooth (changing to another window, minimizing, and so forth).
• Pressing ESC must close the window and quit the program in a clean way.
• Clicking on the cross on the window’s frame must close the window and quit the program in a clean way.
• The use of the images of the MiniLibX is mandatory.

Bonus

• One more different fractal (more than a hundred different types of fractals are referenced online).
• 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.