shade.ca
Games
Art
Coding
Beauty Contest
Reviews
Spoofs
Corporate site
Webcams
Links




Tell Me the Truth

Hacky the raccoon
Shade.ca Web Design

3D Molecule representation (C++)

SouthPark Slot Machine

Random Review
Random Review



Join our mailing list!   Tell a friend about this site!

3DMOL - Introduction

Projet de fin de DEC

par Jason Kealey
et Guillaume Alain









Projet en mathématiques et chimie ;
moteur 3D de représentation de molécules
(3DMOL)
présenté à Michel Borduas










Collège de l'Outaouais
Campus Gabrielle-Roy

Session d'hiver 2001






Table des matières
Introduction
Le logiciel
Mathématiques
Discussion




Introduction

    Nous vivons dans un monde où l'informatique occupe un rôle sans cesse grandissant et où beaucoup de recherches sont consacrées à tenter de faire réfléchir les ordinateurs, plutôt que de seulement les laisser exécuter des calculs que l'on pourrait faire à la main. L'ordinateur, à l'origine exclusivement une machine à calculer ou " number cruncher " comme l'expression anglaise le dit, sert maintenant à diriger des avions, écrire des rapports, prévoir les conditions climatiques ou même à entraîner les soldats à tuer efficacement sans avoir à risquer leur vie en se battant réellement.

    Des simulateurs très réalistes sont utilisés par les pilotes aériens pour apprendre à voler et même par les physiciens pour analyser un phénomène très complexe avec les règles connues de la physique. Cependant, le réseau d'ordinateurs le plus puissant au monde prendrait des mois à simuler les premières fractions de secondes d'une explosion nucléaire, d'où l'idée de toujours inventer des ordinateurs plus performants. Les exploits informatiques auxquels nous assistons présentement ne sont donc que la pointe de l'iceberg.

    Nous nous intéressons depuis toujours à l'informatique et comme plusieurs jeunes de notre âge, nous avons joué à des jeux offrant un univers à trois dimensions représenté sur un écran à deux dimensions. Nous nous demandions donc comment les programmeurs s'y prenaient pour donner cette illusion si bien réussie de trois dimensions. Ayant déjà programmé un logiciel de mots cachés l'été dernier et ayant vu comment nous étions capables de bien nous débrouiller en équipe, nous avons décidé de nous attaquer à un projet de représentation en trois dimensions.



Présentation des objectifs

    Notre projet est donc de concevoir un logiciel de représentation de molécules en 3D de même calibre que ce qui est disponible sur le marché (hypothèse majeure). Nous avons déjà vu un logiciel semblable dans le cadre du cours de biologie (" pc mol ") et il était assez impressionnant. De plus, notre moteur de modélisation en 3D sera fait de façon à être réutilisable. Nous allons monter notre propre système de classes (mot technique de C++) pratiques afin de définir plus rapidement les molécules à présenter, gagner du temps et permettre au moteur de représenter autre chose que des molécules de chimie (hypothèse mineure).

    Dans cette première partie du travail, nous présenterons les grandes lignes du projet ainsi que quelques détails techniques. La deuxième partie expliquera en détail comment nous avons procédé pour programmer notre logiciel, les problèmes que nous avons rencontrés et les solutions que nous avons découvertes. La troisième partie sera consacrée à démontrer les formules pratiques employées dans la partie précédente ; il s'agit d'une sorte d'annexe mathématique. Finalement, la quatrième partie présentera la conclusion de notre projet et une courte discussion sur nos résultats.



Langage, compilateur et ressources internet

    Notre idée de faire un moteur en 3D vient en grande partie de la page web d'un étudiant mordu d'informatique ayant fréquenté la même école secondaire que nous. Cette page web présente rapidement quelques notions de mathématiques ainsi que quelques trucs pour faire un logiciel en 3D. On peut consulter la page de Jérôme St-Louis, The 3D Coding Blackhole, à l'adresse suivante : http://pages.infinit.net/jstlouis/3dbhole/.

    Nous avons utilisé le compilateur DJGPP, un compilateur C/C++ 32 bits, pour DOS disponible gratuitement. Nous avons respecté les normes du C/C++ afin de s'assurer que le logiciel puisse être compilé sur toutes les plates-formes. DJGPP est téléchargeable depuis le site suivant : http://www.delorie.com/djgpp/

    Nous avons aussi utilisé la librairie graphique Allegro, offrant les fonctions d'affichage de base, qu'il n'était pas utile de ré-inventer, afin de pouvoir nous concentrer sur l'essentiel. Certaines librairies graphiques (dont Allegro) offrent des fonctions permettant de dessiner en 3D facilement, mais nous n'allons pas faire appel à ces fonctions puisque l'idée du projet est justement d'apprendre comment les programmer nous-mêmes. Allegro est téléchargeable depuis http://www.talula.demon.co.uk/allegro/ et fonctionne seulement avec DJGPP, ce qui est un peu regrettable puisque notre moteur 3D aura besoin d'être adapté pour une autre librairie graphique pour fonctionner sur Unix, Linux, BeOS ou tout autre système d'exploitation. Il aurait été possible de faire le logiciel en Java pour avoir une très bonne compatibilité, mais nous n'étions pas familiers avec ce langage et vu la complexité du projet, nous ne pouvions pas nous permettre d'apprendre un nouveau langage seulement pour rendre le programme portable (un logiciel est dit portable lorsqu'il est facilement adaptable à d'autres systèmes d'exploitation).



Quelques mots sur l'aspect mathématique du projet

    Nous avons trouvé un bon nombre de sites web sur les moteurs 3D et fournissant des formules, mais aucun d'entre eux ne prouvait ses formules adéquatement. Ces sites web s'adressent souvent aux adeptes de la programmation plutôt qu'aux mathématiciens. Puisque notre projet de fin de DEC est essentiellement un projet en mathématiques et informatique tout à la fois, nous allons trouver nos propres formules pour jouer avec les coordonnées, faire des rotations ou encore passer d'un monde en 3D au monde en 2D projeté sur l'écran. Les formules que nous avons trouvées ressemblent beaucoup aux formules données par les sites web, ce qui est rassurant.

    Quand nous ferons appel à une formule prouvée dans cet ouvrage, nous allons indiquer son numéro en bleu à côté. Pour faciliter la lecture de ce travail, nous avons choisi de présenter les preuves dans une section séparée de celle fournissant les explications concernant le logiciel. Ceci permet de bien suivre le fil des idées en se concentrant sur une chose à la fois.

    Notre objectif est donc de faire un logiciel de représentation de molécules chimiques comparables à ceux disponibles sur le marché et de l'utiliser ensuite pour montrer autre chose que des molécules chimiques.



Note des auteurs - Introduction - Le logiciel
Les mathématiques derrière le projet - Discussion





Jason  
( 2001-05-23 )  




Lisez cet article en anglais




Back



Français - English