3DPolyViewer


Sommaire :

  1. Introduction
  2. Logiciel et fonctionnalités
  3. Mes tâches dans le projet
  4. Projet et évolutions
  5. Téléchargement

Introduction

Ce projet a été réalisé en équipe. Celle-ci comportant 3 membres, qui comptait : Élodie Estival, Guillaume Pascal et moi même. Ce projet a été réalisé dans le cadre d’un sujet d’Algorithmique en 1ère année de DUT (Mars à Mai 2013).

 

Il a été réalisé sous Qt 4.8.4, qui est un framework C++ très performant et multiplateforme. C’est à dire une suite de logiciels comprenant Qt Creator (IDE), Qt Designer (Mise en forme de fenêtres graphiques), Qt Linguist (aide aux traductions), etc…

Plus de détails sur le site de Qt.

 

Pour structurer et faciliter notre travail au cours du projet, nous avons utilisé le gestionnaire de version Git, notre dépôt étant hébergé sur Bitbucket. Tout ceci permettant d’avoir un contrôle des sources, et une meilleure organisation pour le projet. Ainsi que Visual Studio 2010 pour l’IDE.

 

Il nous avait été donné un délai de 2 mois pour mener à bien ce projet. Ce délai nous a été suffisant pour proposer une solution logiciel répondant au sujet (celle présentée ici même !).

 

Je vous présente donc le projet 3DPolyViewer !

logo de l'application 3DPolyViewer

Logo de 3DPolyViewer

flèche haut

Le logiciel et ses fonctionnalités

Screenshot de l'application 3DPolyViewer

Ce logiciel est une Visionneuse de polyèdres convexes, mais aussi un éditeur de ces mêmes polyèdres. Le logiciel réalise des projections en perspective et orthogonale. Ces projections sont réalisées sans utiliser le module OpenGL de Qt. Grâce aux différentes projections effectuées on obtient des « vues », qui sont en fait des emplacements d’où regarde la caméra. On retrouve parmi celles-ci : une vue de face, de droite, de dessus, orthogonale et perspective.

 

Le logiciel permet d’ouvrir des fichiers au format .pol (polyèdre). C’est un format spécifique à l’application.

Contenu d'un fichier .pol

Ce format peut paraitre compliqué au premier abord mais il ne l’est pas. Quelques explications :

  • Le Fichier doit toujours commencer par POL, sans quoi il ne sera pas lu.
  • La seconde ligne est très importante, elle indique par le premier chiffre le nombre de sommets du polyèdre.
  • Le second indique le nombre de face du polyèdre.
  • Le troisième le nombre de sommets de la face ayant le plus de sommet.
  • Sur l’exemple, de la ligne 3 à 10, on retrouve les coordonnées (x, y, z) d’un sommet.
  • Toujours sur l’exemple, de la ligne 11 à 16, ce sont les faces. Le premier chiffre indique le nombre de sommet de la face. Les autres indique le numéro du sommet utilisé.

L’application comporte quelques exemples de polyèdres pour mieux comprendre le fonctionnement.

 

Une fois un polyèdre ouvert vous pouvez le déplacer, le tourner, zoomer, dé-zoomer…. Grâce aux réglages caméra.

Voir Screen:

Les différents réglages de la caméra pour 3DPolyViewer

 

Ou alors le visionner dans une autre vue que celle par défaut, en sélectionnant la vue via la barre d’outils.

 

Il est possible de changer la couleur du polyèdre si celle vous déplait 😉

 

Le logiciel comporte aussi un module d’export d’image, c’est de ce module dont il est question lors de la petite anecdote du logiciel. Ce module permet de prendre la scène affichée et de l’exporter en image .png ou .jpg. Cette fonction peut s’avérer utile.

Anecdote amusante : L’icône du logiciel a été créé grâce au logiciel lui même !! Oh ! me direz-vous, lisez la suite vous comprendrez. 😉

 

Un des points forts de cette application, c’est qu’elle offre la possibilité d’éditer les fichier .pol en temps réel via un éditeur. Grâce à lui, il est possible de modifier le fichier .pol et de le prévisualiser directement, et même d’enregistrer les modifications apportées. Ceci est particulièrement utile pour créer par exemple un fichier .pol depuis le début. :)

Editeur de .pol de 3DPolyViewer

Il est à noter que l’application supporte l’internationalisation.

 

Enfin le logiciel intègre une aide complète sur son fonctionnement. Fort appréciable 😀
flèche haut

Mes tâches dans le projet

Et moi ? J’ai fait quoi dans tout ça ?!?

Mes principales tâches ont été les suivantes :

  • Ma première tâche a été d’apporter quelques outils mathématiques au projet. (classe C++ de matrices, et matrices de transformations).
  • Je me suis ensuite occupé de l’interface.
  • Puis j’ai passé beaucoup de temps pour la gestion des mouvements de la caméra et du polyèdre à la souris.

Mouvement d'un objet 3D avec 3DPolyViewer

  • Ma dernière grosse tâche a été de faire fonctionner un système de Undo / Redo grâce aux raccourcis habituels Ctrl +Z et Ctrl + Y.

flèche haut

Le projet en bref et évolutions

L’application est actuellement disponible en français et en anglais. Comme je l’ai mentionné, notre logiciel supporte l’internationalisation, il serait donc possible de le traduire dans d’autres langues encore.

 

Un ajout de fonctionnalités n’est pas écarté.

 

Ce projet s’est révélé très intéressant, surtout sur l’aspect 3D Mathématiques, qui pouvait s’avérer parfois complexe. En effet il s’agissait de réaliser des projections centrales, le centre de projection étant le point d’où la caméra « regarde ».

Il faut passer d’un polyèdre ayant des coordonnées dans l’espace 3D à des coordonnées homogènes, permettant de le représenter sur une image 2D.

 

Pour résoudre cette problématique, nous avons utilisé des relations matricielles (vues en cours de Mathématiques).

Parmi les matrices utilisées il y a une matrice de calibration de la caméra, et une matrice permettant le changement de repère.

 

En appliquant les relations mathématiques correctement, on obtient l’image 2D du polyèdre 3D. Les rotations et/ou déplacements du polyèdres proviennent de l’application d’une matrice de rotation et/ou translation aux coordonnées 3D du polyèdre.

Si vous souhaitez plus de détails, faites m’en part.

 

Vous pouvez aussi consulter un autre article sur 3DPolyViewer, écrit par Guillaume Pascal.
flèche haut

Téléchargement

Si cela vous intéresse, vous pouvez donc dès à présent télécharger ce logiciel GRATUITEMENT ! Grâce au lien ici présent.

 

Notes : Au cours de vos tests si vous rencontrer un problème, plantage, etc.. Veuillez le signalez dans les commentaires, ou me contacter directement sur mon mail.
Contactez moi !

 

Vous souhaitez plus de détails à propos de 3DPolyViewer, demandez moi, je vous répondrais le plus précisément possible, et je rajouterai les remarques pertinentes sur cet article.

 

Vous désirez un article sur Qt, faites moi le savoir par les commentaires, et précisez aussi ce qui vous intéresserait de savoir sur Qt.
flèche haut

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Le temps imparti est dépassé. Merci de recharger le CAPTCHA.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>