{"id":23131747,"url":"https://github.com/faithbyte/fdf","last_synced_at":"2025-04-04T07:28:57.459Z","repository":{"id":161890276,"uuid":"464109441","full_name":"faithByte/fdf","owner":"faithByte","description":"A fun project to visualize 3D landscapes in isometric projection, applying line drawing algorithms, linear transformations, and height-map rendering.","archived":false,"fork":false,"pushed_at":"2023-05-15T15:03:32.000Z","size":18073,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-09T18:41:27.016Z","etag":null,"topics":["3d-projection-to-2d","bresenham-line-drawing-algorithm","maps","minilibx","wireframe"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faithByte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-27T10:53:58.000Z","updated_at":"2024-12-10T15:10:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"a259ae8d-aa97-4d38-a6ec-dd8ca04099a3","html_url":"https://github.com/faithByte/fdf","commit_stats":null,"previous_names":["faithbyte/fdf"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithByte%2Ffdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithByte%2Ffdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithByte%2Ffdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithByte%2Ffdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faithByte","download_url":"https://codeload.github.com/faithByte/fdf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247138015,"owners_count":20889972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-projection-to-2d","bresenham-line-drawing-algorithm","maps","minilibx","wireframe"],"created_at":"2024-12-17T11:16:02.142Z","updated_at":"2025-04-04T07:28:57.430Z","avatar_url":"https://github.com/faithByte.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fdf\nThis project is about creating a simple wireframe model representation of a 3D landscape by linking various points (x, y, z) thanks to line segments (edges).\n___\n## Requirements\n### Requirements for Linux:\n* make\n* gcc\n* package xorg \n* package libxext-dev \n* package libbsd-dev\n\n➜ Requirements installation for Debian Distributions:\n``` shell\nsudo apt-get install gcc make xorg libxext-dev libbsd-dev\n```\n\n### Requirements for Mac:\n* Xquartz\n\n➜ Requirements installation:\n``` shell\nBrew install Xquartz\nreboot\nxeyes\n```\n\n## Installation\n``` shell\ngit clone https://github.com/irhesri/fdf.git\ncd fdf\nmake bonus\n```\n\n## Usage\n* Start The executable:\n``` \n./fdf_bonus [map name]\n```\n\u003eNote:\n\u003e* If the map doesn't exist in the same directory you should provide the path along with name [path/name].\n\u003e* The map extension should always be **.fdf**\n\n### The map:\nEach number represents a point in space:\n * The horizontal position corresponds to its axis.\n * The vertical position corresponds to its ordinate.\n * The value corresponds to its altitude, and it may contain a comma followed by the color of the line in hexa.\n\n#### Example :\n\n``` shell\n./fdf_bonus ./maps/julia.fdf\n```\n\n\u003cdiv align=\"center\"\u003e\n  \n  ![fdf julia](./maps/readme/julia.gif)\n  \n   \n  \u003csup\u003e in this example i tried all the keys except of \u003ckbd\u003e p \u003c/kbd\u003e \u003c/sup\u003e\n\u003c/div\u003e\n\n## Controls:\n* \u003ckbd\u003e + \u003c/kbd\u003e \u003ckbd\u003e - \u003c/kbd\u003e : Zoom in and out\n* \u003ckbd\u003e ↑ \u003c/kbd\u003e \u003ckbd\u003e ↓ \u003c/kbd\u003e : Translation up and down\n* \u003ckbd\u003e ← \u003c/kbd\u003e \u003ckbd\u003e → \u003c/kbd\u003e : Translation left and right \n* \u003ckbd\u003e w \u003c/kbd\u003e \u003ckbd\u003e s \u003c/kbd\u003e : Changing the altitude (z)\n* \u003ckbd\u003e a \u003c/kbd\u003e \u003ckbd\u003e d \u003c/kbd\u003e : Rotation\n* \u003ckbd\u003e p \u003c/kbd\u003e : Parallel projection\n* \u003ckbd\u003e ESC \u003c/kbd\u003e : Close the window\n\n## Restrictions:\n* Only the next functions are allowed:\n\u003eopen, close, read, write, malloc, free, perror, strerror, exit\n\u003e\n\u003eAll functions of the math\n\u003e\n\u003eAll functions of the MiniLibX\n* You must use the MiniLibX.\n* Global variables are forbidden.\n\n## Credits\nThe mlx library used in the project was provided by [Minilibx](https://github.com/42Paris/minilibx-linux).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaithbyte%2Ffdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaithbyte%2Ffdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaithbyte%2Ffdf/lists"}