Files
42_INT_04_fdf/README.md
2024-01-15 23:38:48 +01:00

52 lines
1.5 KiB
Markdown

# FDF - fil de fer
### this is an exercise to discover 3D drawing, keyboard events, and pixel images manipulation
it reads a map, which is a simple text file like this :
```
0 0 0 0 0
0 0 0 0 0
0 10 0 0 0
0 0 0 0 0
0 0 0 0 0
```
and it converts it into a rectangular net, like a landscape with the height equal to the numbers :
![example 3D of map before modification](assets/fdf_demo_1.jpg)
we can modify the map to change the 3D drawing :
![example 3D of map after modifications](assets/fdf_demo_2.jpg)
### it is based on a library called [minilibx](https://github.com/42Paris/minilibx-linux), which is like a simplified version of X11
some of the difficulties of this program :
- finding the equations to transform a 2D drawing into a perspective
- drawing a line between two points
- bits manipulation for colors
- organization of the code to take care of all the events and transformations
- building images instead of asking the minilibx library to draw each pixel one by one
it can listen to keyboards events to transform the 3D, like turning around, zooming... :
**zoom :**
![example 3D of map after modifications](assets/fdf_loop_zoom_element.gif)
**turn :**
![example 3D of map after modifications](assets/fdf_loop_turn_left_pyramide.gif)
![example 3D of map after modifications](assets/fdf_loop_turn_down_pylone.gif)
**move :**
![example 3D of map after modifications](assets/fdf_loop_move_down_tube.gif)
**change height :**
![example 3D of map after modifications](assets/fdf_loop_change_height_50.gif)