Giter VIP home page Giter VIP logo

delaunay-triangulation's Introduction

Triangulation de Delaunay

Dépendances

  • Librairies de base du C
  • gcc
  • Librairie Graphique : OpenGL

Dossiers

Le projet est divisé en plusieurs dossiers :

  • SRC : contient toute les sources du projet (*.c *.h)
  • BIN : contient l'executable généré après compilation (delaunay). Un lien symbolique est également créé dans le repertoire source du projet afin de pourvoir exécuter immédiatement après compilation sans changer de dossier. Généré automatiquement si inexistant.
  • OBJ : contient les fichiers binaires compilés mais non linkés (.o). Généré automatiquement si inexistant.
  • DATA : contient des images (heightmap) pouvant être donné en entrée de l'algorithme pour obtenir une génération de points non aléatoire sur z.
  • DOC : contient l'ensemble des fichiers de documentation. Dossier et fichiers générés automatiquement à l'aide de doxygen.
  • RAPPORT : rapport LaTeX du projet.

Fichiers SRC/

Les sources du projet sont divisées en plusieurs fichiers (chaque *.c ayant sont *.h associé):

  • vertex : Structure et fonctions relatives aux sommets
  • simplex : Structure et fonctions relatives aux triangles
  • dll : Structure et fonctions relatives aux listes doublement chainées
  • fdp : Structure et fonctions relatives aux files de prioritées
  • triangulation : Structure et fonctions relatives à la triangulation et la génération du maillage
  • math_fn : Fonctions mathématiques (géométriques) utiles au programme (prédicat orientation, signe, déterminant…)
  • main : Point de départ de l'algorithme et gestion de l'affichage.
  • ressources.h : #define du projet. Pas de *.c associé

Se reporter à la documentation pour plus d'information

Fichiers /

  • Makefile
  • Doxyfile
  • README.md

Utilisation du programme

  • Compilation

      make
    
  • Génération de la documentation (optionel)

      make dox
    
  • Lancement du programme

      ./delaunay [-n NB_PTS] [-i INPUT_FILE | -z] [-f NB_SIMPX | -s GOF(%)] [-c DISPLAY_MODE]
    
    • -n NB_PTS : nombre de points générés aléatoirement en x, y, (et z si l'option -i n'est pas renseignée). Defaut : 10000

    Génération sur z

    • -i INPUT_FILE et -z : génération des points sur z, optionelles et mutuellement exclusives. Defaut : Génération des z selon une équation de chapeau mexicain.

      • -i : de la forme DATA/heightmap. Où heightmap est une image d'extension quelconque (elle sera automatiquement convertie en heightmap.pgm). Defaut : NULL

      • -z : génération aléatoire sur z

    Conditions d'arrêt

    • -f NB_SIMPX et -s GOF(%) : conditions d'arrêt, optionnelles et mutuellement exclusives. Defaut : arrêt quand tout les points ont été insérés.

      • -f arrête la triangulation une fois le nombre de facettes générées égal à NB_SIMPX (ou si le nombre maximum de facettes est atteint).

      • -s arrête la triangulation une fois le point le plus éloigné (en projection verticale) du triangle auquel il appartient inferieur à GOF/(100*zmax). Équivalent à un pourcentage d'amplitude maximale atteint. (-s 98 <=> 98% de fitting ).

    Affichage

    • -c DISPLAY_MODE : 0 ≤ DISPLAY_MODE ≤ 5. Defaut : 3

      • 0 : GL_POINTS
      • 1 : GL_LINES
      • 2 : GL_LINE_STRIP
      • 3 : GL_LINE_LOOP
      • 4 : GL_POLYGON
      • 5 : NO_DISPLAY
  • Interaction avec le programme

    • Souris : Le bouton 1 de la souris une fois enfoncé permet une rotation de la visualisation instinctive. La roulette permet le zoom et le dezoom.

    • Clavier : Différentes touches ont été configurées.

      • [SPACE] : 2D <=> 3D
      • [C] : Couleur uniforme (verte) <=> Gradient
      • [N] : Active/Desactive les normales (utile lors du passage en 2D)
      • [NUMPAD{0, 1, 2, 3, 4}] : Changement entre les différents DISPLAY_MODE
      • [T] : Active/Desactive l'affichage de ces informations dans la fenêtre.
      • [ESCAPE] : Quitte le programme.

    Les normales sont automatiquement désactivées (resp. activées) lors du passage en 2D (resp. 3D), mais peuvent être toutefois changées à l'aide de la touche [N] une fois le passage effectué.

Crédits

Maxime Sainlot

Master 2 Informatique Graphique et Image - Projet Géométrie Algorithmique

delaunay-triangulation's People

Contributors

fritzip avatar

Stargazers

 avatar

Watchers

James Cloos avatar Schoder Gael avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.