Sunteți pe pagina 1din 3

Componente software pentru aplicatii grafice

Software-ul utilizat pentru implementarea aplicaiilor de grafic se mparte n dou categorii


mari:
- limbaje de nivel nalt, care in general conin unit-uri sau librrii de functii pentru modul de
lucru grafic;
- programe specializate (medii pentru dezvoltare grafic, care de regul conin biblioteci de
obiecte grafice !i funcii de prelucrare grafic avansat"
#ezvoltarea aplicaiilor de grafic pe calculator sub sistemul de operare $indows utilizeaz
conceptul de interfa grafic de dispozitiv - %rap&ical #evice 'nterface (%#'" (omponentele %#'
sunt urmtoarele:
- conte)tul de dispozitiv
- primitivele grafice
- transformri de coordonate
- funcii pentru afi!area fonturilor !i a te)telor
- funcii pentru afi!area pensulelor, penielor
- funcii pentru controlul culorilor
*rice aplicaie de grafic pe calculator asigur legtura cu un ec&ipament de ie!ire oarecare prin
dou mecanisme ce in de contextul dispozitivului (device conte)t !i de controlorul de dispozitiv
(device driver:
aplicaie context dispozitiv controlor de dispozitiv echipament de ieire
Contextul de dispozitiv reprezint un parametru utilizat de toate funciile %#' care precizeaz sub
forma unei structuri de date atributele curente de afi!are la un dispozitiv (ec&ipament de ie!ire" #atele
coninute reprezint informaii despre capabilitile dispozitivului grafic al calculatorului (placa video,
monitorul, etc" atribute grafice privitoare la modul de trasare (desenare a obiectelor, culoarea de desenare,
culoarea fundalului, tipul de linie utilizat, fontul !i culoarea te)telor, zona disponibil pentru desenare, etc""
+oate aceste date sunt coninute ntr-o partiie de memorie a mediului de programare, iar accesul din aplicaie
se realizeaz prin intermediul unui indicator al contextului de dispozitiv - ,andle #evice (onte)t (,#(
cunoscut n limbajul curent sub denumirea de handler"
Sub sistemul de operare $indows funciile de baz %#' sunt coninute n modulul %#'"-.-"
/arele avantaj al funciilor %#' este c asigur independena aplicaiilor de dispozitivul grafic,
permi0nd ca acestea s poat rula pe platforme &ardware diferite dup ce au fost compilate pe
acestea"
1e l0ng aplicaiile uzuale ce folosesc funciile %#', posibilitile sistemului de operare
$indows vizeaz o gam larg de domenii pentru aplicaii performante de grafic pe calculator
cum sunt: jocurile, aplicaiile multimedia !i grafica 2#" 1entru acestea $indows pune la dispoziie
suportul necesar pentru nglobarea unor utilitare ce opereaz cu biblioteci grafice comple)e" 3stfel
de biblioteci sunt $in% care conine funcii de afi!are rapid pentru jocuri !i biblioteca Open GL
care aduce un suport puternic pentru grafica 2# !i pentru aplicaiile de realitate virtual" 4iblioteca
*pen%5 poate fi e)ploatata cu utilitare specifice pentru a oferi o interfa pentru programarea
aplicaiilor- 3pplication 1rogramming 'nterface (31'" 6n astfel de utilitar este GLUT - OpenGL
Utilitary Toolkit
#in punctul de vedere al controlului dispozitivului grafic sub sistemul de operare $indows
posibilitile de afi!are sunt asigurate de un set de rutine pentru gestionarea !"# cunoscut sub
denumirea de $irect% 3cesta permite controlul eficient al acceleratorului grafic independent de
dispozitivul de afi!are" 3cest pac&et de rutine este folosit curent de aplicaiile multimedia"
7
$irective grafice &n programarea aplica'iilor cu limba(e de nivel &nalt
%rafic utiliz0nd funciile %#' (Graphical Device Interface" 1rimitivele grafice %#' sunt:
1rimitiva 8uncia %#' !i argumentele
5inie
MoveTo(hDC, x, y), LineTo(hDC, x, y),
5inie fr0nt
Polyline(hDC, VectXY, NrPuncte)
1oligon
Polygon(hDC, VectXY, NrPuncte)
1oligoane /ultiple
PolyPolygon(hDC,VectXY,NrPunctePolig, NrPoligoane)
-lips, cerc
Ellipse(hDC,DrXstg_sus,DrYstg_sus,DrXdr_jos,DrYdr_jos)
3rc de elips
Arc(hDC,DrXss,DrYss,DrXdj,DrYdj,xStart,yStart,xEnd,yEnd)
(oard
Chord(hDC,DrXss,DrYss,DrXdj,DrYdj,xPct1,yPct1,xPct2,yPct2)
Sector de elips
Pie(hDC,DrXss,DrYss,DrXdj,DrYdj,xPct1,yPct1,xPct2,yPct2)
#rptung&i
Rectangle(hDC,Xstg_sus,Ystg_sus,Xdr_jos,Ydr_jos)
#reptung&i cu coluri
rotunjite
RoundRect(hDC,Xstg_sus,Ystg_sus,Xdr_jos,Ydr_jos,
XdiamElipsa, YDiamElipsa)
1rimitive geometrice n *pen%5
1rimitiva9#escriere 8uncia !i argumentul
#eseneaz n puncte GlBegin(Glenum GL_POINTS)
#eseneaz segmente de dreapt izolate (v:,v7, (v;,v2,<
#ac n este impar, ultimul v0rf este ignorat
GL_LINES
#eseneaz linia poligonal format din segmentele GL_LINE_STRIP
#eseneaz linia poligonal nc&is format din segmentele GL_LINE_LOOP
#eseneaz o serie de triung&iuri folosind v0rfurile (v:,v7,v;,
(v2,v=,v>, <samd" #ac n nu este multiplu de 2, atunci ultimele 7
sau ; v0rfuri sunt ignorate
GL_TRIANGLES
#eseneaz o serie de triung&iuri folosind v0rfurile (v:,v7,v;,
(v2,v=,v>, <samd" *rdinea este aleas astfel ca triung&iurile s aib
orientare"
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
GL_QUADS
GL_QUADS_STRIP
GL_POLYGON
;
2

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