52 lines
1.5 KiB
Markdown
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 :
|
|
|
|

|
|
|
|
we can modify the map to change the 3D drawing :
|
|
|
|

|
|
|
|
### 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 :**
|
|
|
|

|
|
|
|
**turn :**
|
|
|
|

|
|

|
|
|
|
**move :**
|
|
|
|

|
|
|
|
**change height :**
|
|
|
|

|
|
|