Comment faire du graphique en C ?


Copyright : utilisation de ces documents libre pour tout usage personnel. Utilisation autorisée pour tout usage public non commercial, à condition de citer son auteur (Patrick TRAU, IPST, Université Louis Pasteur Strasbourg, email : ) et de me signaler tout usage intensif. Utilisation commerciale interdite sans accord écrit de ma part.


justificatif

On me demande souvent comment créer un programme qui ait un résultat graphique. Ceci dans deux objectifs très différents.

Je vous présente ici un certain nombre de documents que j'ai créés pour mes cours, ou pour mettre au propre certains tests. Mais aussi des projets réalisés par mes étudiants, quelquefois directement mis sur le site, d'autres après corrections, certains que j'ai repris complètement.

les bibliothèques existantes

Il existe de nombreuses bibliothèques disponibles. Certaines sont liées à un compilateur, d'autres à un langage, et certaines sont (plus ou moins) portables. J'ai demandé aux étudiants de DESS TSI option Mécanique et Matériaux d'étudier différentes bibliothèques graphiques existantes (et si possible multi-plateformes). Voici donc (pour l'instant sans correction) leur rapport :

les tracés de base

C'est le minimum dont il faut disposer. Il suffit de savoir passer en mode graphique, puis comment allumer un pixel. C'est ce qu'on appelle la bibliothèque de base. Tout le reste peut s'appuyer là dessus.

pour aller plus loin

Les questions qu'on se pose une fois qu'on sait tracer sont de deux ordres : comment faire des tracés plus complexes (cercles, courbes, remplissages, hachurages, fenêtrage, projections 3D, surfaces, élimination des faces cachées...) et les entrées sorties (affichage de texte, lecture du clavier, lecture de la souris.

Sous Linux, pour les entrées-sorties, je peux vous proposer mon introduction à SVGALIB (pour Linux uniquement). Ce document est particulièrement simple (il me semble) et progressif, se limitant au minimum en 4 exemples : tracé de base, lecture de la souris, curseur, affichage de texte. Pour X11, je vous propose ce rapport de projet DESS TSI-MA.

Pour Turbo C sous DOS, je peux vous proposer une bibliothèque pour la souris que j'ai écrite en utilisant l'interruption 33h, que vous pouvez donc adapter à tout langage sous MSDOS. Toujours en utilisant les interruptions du Bios, voici comment accéder directement à votre carte VGA (par exemple en Turbo C, mais facilement adaptable aux autres langages, en particulier l'assembleur, mais seuls les modes de base sont décrits). Vous y trouverez également tous les détails sur le format des fichiers BMP et PCX. Si vous voullez utiliser toutes les fonctionnalités de graphics.h de Turbo C, regardez cette excellente présentation progressive regroupant différents exemples : génération automatique de paysage, fractales... Enfin, un dernier exemple : une horloge.

Pour les tracés complexes, je présente dans mon cours toute la théorie nécessaire, progressivement, avec des exemples. Puis j'ai appliqué ces algorithmes pour créer une bibliothèque graphique puissante (G2D - G3D) que vous pouvez récupérer pour l'utiliser ou pour voir comment j'ai géré chacun des problèmes (y compris les Entrées-Sorties qui sont bien évidement incluses). Vous pouvez accéder à :

Vous pouvez évidement utiliser une bibliothèque 3D toute faite, ici une doc en français sur OpenGL.

Pour toute question, envoyez moi un , ou regardez mes FAQ. S'il vous plait, signalez moi toute erreur !


Depuis le 25/5/2002, vous êtes le compteur ème lecteur de cette page

P. TRAU, ULP-IPST, mai 02