# 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)