Sunteți pe pagina 1din 3

Lucru in mod grafic în Code:Blocks

prof. Marinel Șerban


Pasii care trebuie urmati sunt:
1) deschideti un proiect nou si adaugati fisierul sursa;
2) copiati in folderul proiectului fisierele
graphics2.h si winbgi2.cpp
3) adaugati la proiect fisierele:
graphics2.h in folderul Header Files
si
winbgi2.cpp in folderul Source Files impreuna cu fisierul vostru sursa
4) includeti in fisierul vostru sursa headerul cu functiile grafice folosind directiva:
#include "graphics2.h"
5) legati la proiect biblioteca libgdi32.a, folosind meniul "Project", optiunea
"Settings".
Accesati tab-ul "Link" si, in campul "Libraries:" introduceti calea completa pana la
biblioteca. De exemplu la mine este
C:\OJI\CodeBlocks\MinGW\lib\libgd32.a
6) in fisierul vostru sursa initializati modul grafic, folositi functiile de desenare,
opriti executia programului pentru a vedea rezultatul si apoi inchideti modul grafic.

De exemplu sursa de mai jos deseneaza un cerc in mijlocul ferestrei:


#include "graphics2.h"

int main()
{
//initializare mod grafic
int driver, mod;
initgraph(&driver, &mod, "", 1024, 768); //ultimii 2 parametri = dimensiunea in
pixeli a ferestrei grafice

//calculam coordonatele centrului ferestrei


int midx = getmaxx()/2;
int midy = getmaxy()/2;

//desenam cercul
setcolor(CYAN);
circle(midx, midy, 100);

//oprim executia pana se apasa o tasta


while( !kbhit() );

//gata
closegraph();
return 0;
}

O descriere a functiilor grafice disponibile le gasiti la adresa:


http://www.cs.colorado.edu/~main/bgi/doc/
(este posibil sa existe mici diferente intre functiile din biblioteca si cele descrise
acolo, dar va puteti forma o idee despre ce este vorba in cazul in care nu ati mai
lucrat cu astfel de biblioteci pana acum).

Exemplu de animatie:

//desenam un mic cerc care se roteste in jurul centrului ferestrei pana cand se apasa o tasta
#include "graphics2.h"
#include <windows.h>
#include <math.h>

int main()
{
//initializare mod grafic
int driver, mod;
initgraph(&driver, &mod, "", 1280, 1024); //ultimii 2 parametri = dimensiunea in pixeli a
ferestrei grafice

//calculam coordonatele centrului ferestrei


double midx = getmaxx()/2;
double midy = getmaxy()/2;

//definim celelalte variabile


double x, y, raza, unghi;

//rotatii
unghi = 0; raza = 200;
while( !kbhit() ) //cat timp nu este apasata o tasta
{
//calculam coordonatele noii pozitii
x = cos(unghi)*raza + midx;
y = sin(unghi)*raza + midy;

//desenam cercul pe noua pozitie


setcolor(CYAN);
circle((int)x, (int)y, 20);

//desenam raza cercului de rotatie


line((int)midx, (int)midy, (int)x, (int)y);

//modificam si/sau corectam unghiul


unghi += 0.01;
if(unghi >= 2*M_PI)
unghi = 0;

//asteptam oleaca (10 milisecunde)


Sleep(10);

//stergem cercul de pe vechea pozitie


setcolor(BLACK);
fillellipse((int)x, (int)y, 30, 30);

//stergem raza cercului de rotatie


line((int)midx, (int)midy, (int)x, (int)y);
//asteptam oleaca (10 milisecunde)
//Sleep(1000);
}
//gata
closegraph();
return 0;
}

Exemplele incluse au fost testate in Windows XP, Vista, Windows 7/8. Asta nu garanteaza
functionarea pe calculatoarele dvs.

S-ar putea să vă placă și