Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 839 fois - Téléchargée 28 fois
//Code exemple utilisant la lib //gcc -o vga vga.c -lvga -lvgagl #include "dessinvga.c" int main(void) { INIT_VGA(12);//initialisation de VGA (mode) vga_carre(150,150,60,15);//carré (X,Y,Coté,Couleur) vga_texte(1,1,"Salut",255,31);//Texte (X,Y,Texte,couleur de fond,couleur de police) vga_point(100,20,25);//Point (X,Y,Couleur) vga_rectangle(200,200,300,100,1);//Rectangle (X,Y,largeur,hauteur,couleur) vga_circle(500,500,50,89);//Cercle (X,Y,Rayon,couleur) vga_getch();//On attend un apui de touche QUIT_VGA();//On quitte la VGA } ////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////LIBRAIRIE//////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <stdlib.h> #include <vga.h> #include <vgagl.h> #include <math.h> #include <time.h> int vga_texte(int X, int Y, char *texte,int backfontcolor, int fontcolor)//coordonnées,texte,couleur fond et police int vga_carre(int X, int Y, int C, int color)//coordonnées,coté,couleur. int vga_point(int X, int Y, int color)//coordonnées,couleur. int vga_rectangle(int X,int Y,int L,int H,int color)//coordonnées,largeur,hauteur,couleur. int vga_circle(int Ox, int Oy, int r, int color)//coordonnées,rayon,couleur. int vga_ligne(X1,Y1,X2,Y2,color); int INIT_VGA(int mode) { int XMAX,YMAX; vga_init(); vga_setmode(mode); gl_setcontextvga(mode); gl_setfont(8, 8, gl_font8x8); //largeur, hauteur, pointeur sur la police (c'est la seule en standard) gl_setwritemode(FONT_COMPRESSED); //la police gl_font8x8 est comprimée (on ne l'a pas "expandée") //gl_setfontcolors(backfontcolor, fontcolor); //couleur fond, couleur texte XMAX=vga_getxdim(); YMAX=vga_getydim(); return EXIT_SUCCESS; } int QUIT_VGA() { vga_setmode(TEXT); } int vga_carre(int X, int Y, int C, int color)//coordonnées,coté,couleur. { vga_setcolor(color); vga_drawline(X,Y,X+C,Y); vga_drawline(X+C,Y,X+C,Y+C); vga_drawline(X+C,Y+C,X,Y+C); vga_drawline(X,Y,X,Y+C); } int vga_point(int X, int Y, int color)//coordonnées,couleur. { vga_setcolor(color); vga_drawpixel(X,Y); } int vga_texte(int X, int Y, char *texte,int backfontcolor, int fontcolor)//coordonnées,texte,couleur fond et police gl_setfontcolors(backfontcolor, fontcolor); gl_printf(X,Y,texte); } int vga_rectangle(int X,int Y,int L,int H,int color)//coordonnées,largeur,hauteur,couleur. { vga_setcolor(color); vga_drawline(X,Y,X+L,Y); vga_drawline(X,Y,X,Y+H); vga_drawline(X,Y+H,X+L,Y+H); vga_drawline(X+L,Y+H,X+L,Y); } int vga_circle(int Ox, int Oy, int r, int color)//coordonnées,rayon,couleur. { int X = 0; int Y = r; vga_setcolor(color); r = r * r; while (X <= Y) { vga_drawpixel(Ox+X,Oy-Y); vga_drawpixel(Ox-X,Oy-Y); vga_drawpixel(Ox+X,Oy+Y); vga_drawpixel(Ox-X,Oy+Y); vga_drawpixel(Ox+Y,Oy-X); vga_drawpixel(Ox-Y,Oy-X); vga_drawpixel(Ox+Y,Oy+X); vga_drawpixel(Ox-Y,Oy+X); X++; Y = sqrt(r - ((double)X * X)) + 0.5; } } int vga_ligne(X1,Y1,X2,Y2,color) { vga_setcolor(color); vga_drawline(X1,Y1,X2,Y2); }
Mais par contre ce n'est pas qu'une question de conventions : en C ça fonctionne parceque le compilo supporte la surcharge ; mais c'est loin d'être le cas de tous les langages...
Sans compter que ça alourdi artificiellement le travail dudit compilo...
ça relève du crime contre l'humanité !
en gros:
tu n'inclus QUE des .h/.hpp
une classe = UN .h et UNa .cpp
-> reusabilité maximale, risque d'erreurs minimal
meme si tu fais pas de la POO il faut pas...ca sent les erreurs de define a plein nez sinon, pour les redéfinitions pareil, l'utilisation des headers...
C'est libsvga1-dev et svgalib-bin qu'il faut comme paquets et c'est sous Linux !!!
Pour compiler gcc -o vga vga.c -lvga -lvgagl
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.