Vous trouverez ici le code source, en Turbo C versions DOS, des fonctions minimales nécessaires pour faire du graphisme. Vous pouvez également récupérer (en une fois) tous les autres fichiers source des differents exemples de mes cours en ligne de Programmation C, algorithmique et infographie.

vous pouvez télécharger le Source C (pour télécharger directement : utilisez le bouton DROIT de la souris et trouvez "enregistrer sous").

/* bibliothèque graphique de base P. TRAU juin 2002 */

/* contient les fonctions minimales, dépendantes du matériel et du compilateur */

/* void g_init(int *xmin,int *xmax,int *ymin,int *ymax) : initialise le mode
 *    graphique (plein écran), donne les limites de l'écran (0,639,0,480 par ex)
 * void g_fin(void) : quitte le mode graphique (à ne pas oublier)!
 * void g_couleur(int c) : definit la couleur des dessins à venir  (0 noir)
 * void g_point(int x,int y) : allume le pixel x,y de l'écran
 * int g_test_point(int x,int y) : donne la couleur du pixel x,y (si la
 *    couleur du fond est 0, dit s'il est allumé (!=0) ou éteind (0)
 * void g_ligne(int xd,int yd,int xf,int yf) : trace une ligne
 * void g_rectangle(int xd,int yd,int xf,int yf,int couleur) on donne coininf gauche,
 *     coin sup droit, et couleur intérieure. Le bord est dans la couleur g_couleur
 * void g_ecrit(int x, int y, char * texte)  écrit le texte
 */

#include <graphics.h>

void g_init(int *xmin,int *xmax,int *ymin,int *ymax)
 {
  int gdriver = DETECT, gmode, errorcode;
  initgraph(&gdriver, &gmode, "");
  errorcode = graphresult();
  if (errorcode != grOk)printf("g_erreur: %s\n", grapherrormsg(errorcode));
  setcolor(getmaxcolor());
  *xmin=0;
  *ymin=0;
  *xmax=getmaxx();
  *ymax=getmaxy();
 }

void g_fin(void)
 {closegraph();}

void g_point(int x,int y)
 {putpixel(x,y,getcolor());}

int g_test_point(int x,int y)
 {return(getpixel(x,y));}

void g_couleur(int c)
 {setcolor(c);}

void g_ligne(int xd,int yd,int xf,int yf)
 {line(xd,yd,xf,yf);}

void g_rectangle(int xd,int yd,int xf,int yf,int couleur)
{
 setfillstyle(1,couleur);
 bar(xd,yd,xf,yf);
 rectangle(xd,yd,xf,yf);
}

void g_ecrit(int x, int y, char * texte)
 {outtextxy(x,y,texte);}

/**********************************************************
 * ci-dessous une fonction de test.
 * Pour l'apeller, créez un fichier .c contenant :
        #include<stdio.h>
        #include<conio.h>
        #include "graph.c"
        static int xmin,xmax,ymin,ymax;
        int X(float p) //si p entre 0 et 100, rend X entre xmin et xmax
         {return((int)((p/100)*(xmax-xmin)+xmin));}
        int Y(float p)
         {return((int)((p/100)*(-ymax+ymin)+ymax));}

        void main (void)
         {
           char*texte;
           int i;
           g_init(&xmin,&xmax,&ymin,&ymax);
           g_couleur(14);
           g_ligne(X(5),Y(10),X(95),Y(10));
           g_ligne(X(10),Y(5),X(10),Y(95));

           for(i=15;i<90;i=i+5)
           {
            g_rectangle(X(i),Y(10),X(i+5),Y(70+(i%3)*5),i+1);
            sprintf(texte,"%d",i);
            g_ecrit(X(i+2),Y(5),texte);
           }
           getch();
           g_fin();
         }
 * sauvez le dans votre répertoire, copiez dans ce même répertoire
 * le fichier egavga.bgi qui doit trainer quelquepart dans votre
 * disque dur, compilez en Turbo C  avec l'option "librairies
 * graphiques" et ça doit marcher.
 ************************************************************/

retour au cours d'infographie.