Sunteți pe pagina 1din 10

Plan curs

1. Primitive grafice
1.1. Operaii cu pixeli
Grafica pe calculator 1.2. Construirea liniilor
1.3. Poligoane
1.4. Curbe conice
Primitive grafice i atribute de afi are 1.5. Suprafee
2. Atributele de afiare ale primitivelor grafice
Victor Moraru 2.1. Specificarea culorilor
victor.moraru@utm.md 2.2. Atributele de afiare ale liniilor
2.3. Atributele de afiare ale suprafeelor
3. Textul n mod grafic
2

Introducere Introducere
Primitive grafice reprezint elementele de imagine care Toate primitivele grafice au:
pot fi afiate cu ajutorul funciilor din biblioteca grafica.
Astfel de elemente sunt:
- atribute geometrice (coordonate ecran)
1. punct - atribute de afiare (culoarea, tipul de linie, tipul
2. linie de interior, grosimea liniei, etc).
3. cerc
Fiecare atribut de afiare are o valoare
4. elips
implicita, stabilita la iniializarea modului grafic
5. arc de cerc
sau prin apelul funciei graphdefault.
6. arc de elipsa
7. sector de cerc
8. dreptunghi
9. poligon 3 4
Operaii cu pixeli Operaii cu pixeli
Poziia curent de desenare poate fi stabilit cu
putpixel(x,y,c) - funcia afieaz un pixel, ale ajutorul funciilor grafice moveto i moverel.
crui coordonate i culoarea sunt specificate ca Implicit, poziia curent de desenare este n colul
parametri. din stnga sus al porii de vizualizare curente.
getpixel(x,y) - funcia ntoarce culoarea unui moveto(x,y) - funcia stabilete ca poziie
pixel ale crui coordonate x i y sunt specificate curent de desenare punctul de coordonate (x,y)
ca parametri. specificate ca parametri.
n mod text, funcia echivalent este gotoxy.

5 6

Operaii cu pixeli Construirea liniilor


moverel(xr,yr) - funcia deplaseaz pozii curent de line(x1,y1,x2,y2) - funcia afieaz o linie ntre
desenare relativ la vechea poziie de desenare, cu punctele de coordonate (x1,y1) i (x2, y2),
distanele xr i yr pe axele x i y respectiv. specificate ca parametri.
Noua poziie de desenare nu este limitat la Linia este afiat folosindu-se valorile curente ale
dimensiunea porii de vizualizare curente. atributelor de afiare ale liniilor:
getx i gety - funciile ntorc coordonata poziiei
curente de desenare pe orizontal i vertical.
- culoare de desenare
Aceste coordonate sunt relative la poarta de - grosime i tip linie
vizualizare curent. - mod de scriere n memoria ecran

7 8
Construirea liniilor Construirea liniilor
Valorile trebuie s fie stabilite nainte de apelul lineto(xf,yf) - funcia afieaz o linie din poziia curent de
funciei line. desenare pn n punctul de coordonate (xf,yf) specificate
ca parametri.
Valori implicite au urmtoarele atributele de afiare Pentru afiarea liniei se folosesc valorile curente ale
culoare : alb atributelor menionate la funcia line.

tip de linie : continu Dup afiare, poziia curent de desenare va deveni


punctul de coordonate (xf, yf).
grosime linie : un pixel linerel(xr,yr) - funcia afieaz o linie din poziia curent de
mod de scriere n memoria ecran: COPY_PUT desenare pn ntr-un punct specificat prin deplasamentul
relativ fa de poziia curent de desenare (xr, yr).

9 10

Poligoane Poligoane
Rectangle(x1, y1, x2, y2) funcia afieaz un Rectangle(x1, y1, x2, y2) funcia afieaz un
dreptunghi specificat prin dou vrfuri diametral dreptunghi specificat prin dou vrfuri diametral
opuse: opuse:
stnga sus stnga sus
dreapta jos dreapta jos
Coordonatele acestor dou vrfuri constituie Coordonatele acestor dou vrfuri constituie
parametrii funciei. parametrii funciei.

11 12
Poligoane Poligoane
Bar(x1, y1, x2, y2) - funcia afieaz o suprafa Bar3d(x1, y1, x2, y2, dz, ind) - funcia afieaz un
dreptunghiular specificat prin dou vrfuri diametral paralelipiped dreptunghic, cu feele paralele cu planele
opuse. principale ale sistemului de coordonate 3D.
La afiarea suprafeei se folosesc valorile curente ale La afiare se folosesc valorile curente ale atributelor
atributelor de afiare ale suprafeelor: tip de linie i culoare de desenare pentru contururi,
tip de interior respectiv tip de interior i culoarea de interior pentru
fee.
culoare de interior
Primii patru parametri ai func iei reprezint
Atributele de afiare ale suprafe elor au urmtoarele coordonatele a dou vrfuri diametral opuse ale feei
valori implicite: paralelipipedului situat mai aproape de observator.
culoare de interior : alb Parametrul dz reprezint dimensiunea paralelipipedului
tip de interior : uniform (toi pixelii de aceeai culoare)
13
pe axa z i se exprim n numr de puncte. 14

Poligoane Curbe conice


Bar(x1, y1, x2, y2) - funcia afieaz o suprafa n biblioteca grafic exist funcii pentru desenarea
dreptunghiular specificat prin dou vrfuri diametral urmtoarelor curbe conice:
opuse. cerc
La afiarea suprafeei se folosesc valorilecurente ale arc de cerc
atributelor de afiare ale suprafeelor: elips
tip de interior arc de elips26.04.2011
La afiarea curbelor conice se folosesc valorile curente
culoare de interior ale atributelor:
Atributele de afiare ale suprafe elor au urmtoarele culoarea de desenare
valori implicite:
grosimea liniei
culoare de interior : alb
Ele sunt afiate cu linie continu, indiferent de valoarea
tip de interior : uniform (toi pixelii de aceeai culoare)
15 curent a atributului tip de linie. 16
Curbe conice Suprafee
Circle(x, y, r) - funcia afieaz un cerc avnd centrul de Suprafaa poligonal
coordonate (x,y) i raza r, specificate ca parametri. Raza se
exprim printr-un numr ntreg. Fillpoly - funcia afieaz o suprafa poligonal
Arc(x, y, ui, uf, r) - funcia afieaz un arc de cerc, ntre utiliznd valorile curente ale atributelor de afiare
unghiul iniial ui i unghiul final uf specificate ca parametri. ale liniilor pentru contur, i valorile curente ale
Raza cercului (r) i coordonatele centrului x i y sunt de atributelor de afiare ale suprafeelor pentru
asemenea parametri ai func iei restul punctelor suprafeei.
Unghiurile iniial i final (ui, uf) se exprim n grade, Poligonul se specific prin numrul de vrfuri i
cuprinse ntre 0 i 360 grade.
vectorul coordonatelor (x, y) ale vrfurilor.
Ellipse(x, y, ui, uf, a, b) - funcia afieaz o elips sau un
arc de elips. Coordonatele centrului x i y, semiaxele a i b n cazul n care coordonatele ultimului vrf difer
precum i unghiurile iniial ui i final uf sunt specificate ca de coordonatele primului vrf poligonul este
parametri ai funciei. nchis automat.
17 18

Suprafee Suprafee
Suprafaa circular i eliptic, sector de cerc i de elips Sector(x, y, ui, uf, a, b) - funcia afieaz un
Fillellipse(x, y, a, b) - funcia afieaz o suprafa eliptic cu sector de elips.
interiorul determinat de valorile curente ale atributelor culoare
de interior i tip de interior. Coordonatele centrului elipsei, unghiurile iniial i
Pieslice(x, y ,ui, uf, r) - funcia afieaz un sector de cerc sau final ale arcului care delimiteaz sectorul i
un cerc cu interiorul determinat devalorile curente ale semiaxele elipsei sunt specificate ca parametri ai
atributelor tip de interior i culoare de interior. funciei.
La afiarea razelor care delimiteaz sectorul care foloseste Sectorul este afiat folosindu-se valorile curente
valorile curente ale atributelor de afiare a liniilor.
ale atributelor tip de interior i culoare de interior.
Coordonatele centrului cercului, raza, unghiurile iniial i
final sunt specificate ca parametri ai funciei. Pentru afiarea razelor care delimiteaz sectorul
Pentru obinerea unei suprafee circulare cele dou unghiuri se folosesc valorile curente ale atributelor de
trebuie s fie 0 i 360 de grade. 19 afiare a liniilor. 20
Atributele de afiare ale primitivelor
Suprafee
grafice
Suprafaa mrginit de un contur oarecare Atribute de afiare ale primitivelor grafice sunt
Floodfill(x, y, c) - funcia modific culoarea tuturor urmtoarele:
pixelilor interiori unui contur existent, folosind
culoarea de desenare
valorilecurente ale atributelor tip interior i culoare tipul de linie

de interior. grosimea liniei

Conturul este specificat n lista de parametri prin tipul de interior

culoarea sa.Tot prin lista de parametri se specifica culoarea de interior


valoarea unui punct interior conturului.
Toate atributele au valori implicite.
Dac punctul specificat nu este interior conturului se
va modifica culoarea pixelilor exteriori conturului Pentru specificarea valorilor ce se doresc a fi
pn la limitele porii de vizualizare curente . folosite la generarea primitivelor grafice trebuie
21 apelateo serie de funcii ale bibliotecii grafice. 22

Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor


grafice grafice
Atribute de afiare ale primitivelor grafice sunt Specificarea culorilor
urmtoarele: Culorile care pot fi folosite depind de adaptorul grafic i modul
culoarea de desenare
grafic curent.
Culori VGA
tipul de linie
n funcie de modul grafic utilizat, sistemul VGA permite afiarea a
grosimea liniei 16 sau a 256 culori simultan dintr- o gam de 256K nuane
tipul de interior
posibile.
Cele 16 culori ce pot fi afiate simultan de adaptorul VGA n modul

culoarea de interior 16 culori formeaz o palet, prezentat n tabelul de mai jos.
Toate atributele au valori implicite. Paleta folosit poate conine oricare din cele 64 de nuane posibile.
Pentru specificarea valorilor ce se doresc a fi Modificarea unei culori sau a ntregii palete se realizeaz cu
funciile Setpalette respectiv Setallpalette.
folosite la generarea primitivelor grafice trebuie
apelateo serie de funcii ale bibliotecii grafice. 23 24
Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor
grafice grafice
Specificarea culorilor

Culorile care pot fi folosite depind de adaptorul grafic i modul


grafic curent.
Culori VGA
n funcie de modul grafic utilizat, sistemul VGA permite afiarea a
16 sau a 256 culori simultan dintr- o gam de 256K nuane
posibile.
Cele 16 culori ce pot fi afiate simultan de adaptorul VGA n modul
16 culori formeaz o palet, prezentat n tabelul de mai jos.
Paleta folosit poate conine oricare din cele 64 de nuane posibile.
Modificarea unei culori sau a ntregii palete se realizeaz cu
funciile Setpalette respectiv Setallpalette.

25 26

Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor


grafice grafice
Funcii pentru stabilirea paletei i a culorii Setbkcolor(c) - funcia poate fi apelat pentru
specificarea culorii fondului. Ea modific prima intrare a
de desenare paletei de culori la valoarea specificat ca parametru.
Getmaxcolor - funcia ntoarce numrul Utilizarea acestei funcii are ca efect schimbarea
maxim de culori ce pot fi folosite n modul pixelilor afiai n culoarea de fond.
grafic curent. Astfel, o parte din imaginea afiat poate deveni
Setcolor(c) - funcia poate fi apelat pentru
"invizibil", atunci cnd culoarea fondului este aceeai
cu cea a unor elemente de imagine.
stabilirea culorii de desenare curente. Imaginea ns nu este modificat i nu se pierde, astfel
Getcolor - funcia ntoarce culoarea de nct la o nou modificare corespunztoare a culorii
desenare curent. fondului imaginea poate redeveni "vizibil" n
ntregime.
27 28
Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor
grafice grafice
Getbkcolor - funcia ntoarce valoarea curent a Setpalette(indpal, c) - funcia modifica o intrare a paletei.
culorii de fond. Ea primete prin lista de parametri numrul intrrii i
valoarea, care se va memora n intrarea respectiv
Culorile (de desenare, de interior, culoarea
(indpal - index paleta, c - culoarea).
fondului) pot fi specificate prin valorile numerice
corespunztoare sau prin numele simbolice, Schimbarea culorilor de desenare se poate realiza numai
prin schimbarea modului grafic.
definite n fiierul graphics.h, dup cum urmeaz:
De reinut c schimbarea modului grafic are ca efect
BLACK, BLUE, GREEN, CYAN, RED, tergerea ecranului.
MAGENTA, BROWN, LIGHTGREY, DARKGREY, Intrrile noii palete pot fi definite explicit sau noua palet
LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, poate fi una obinut anterior cu apelul getpalette.
LIGHTRED, LIGHTMAGENTA, YELLOW, Getpalette - funcia ntoarce paleta de culori curent.
WHITE.
29 30

Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor


grafice grafice
Setrgbpalette - funcia poate fi folosit pentru Atributele de afiare ale liniilor
modificarea paletei (fizice) de 256 de culori.
Fiecare culoare din paleta se definete prin 3 valori
Tipul i grosimea liniei n biblioteca grafic
corespunztoare componentelor de baz rou,verde sunt predefinite 4 tipuri de linie i dou tipuri
i albastru (RGB). de grosimi.
Aceste valori se reprezint pe cte 6 bii. De asemenea, exist posibilitatea ca
Funcia are ca parametri: numrul intrrii din paleta utilizatorul s-i defineasc propriul su tip
care se redefinete ( ntreg ntre 0 i 255 ) i valorile de linie.
culorilor primare R, G, B.
Dac se lucreaz n modul VGA cu 16 culori simultan,
Setlinestyle(tl, gl) - funcia stabilete valorile
sunt folosite numai primele 64 intrri ale paletei fizice. curente ale atributelor tip de linie i grosime
31
linie. 32
Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor
grafice grafice
In fiierul graphics.h sunt definite urmtoarele Modul de nscriere a informaiei grafice n
constante simbolice pentru tipul: memoria ecran
SOLIDLINE, DOTTEDLINE, CENTERLINE, n bibliotecile grafice, exist o funcie ce permite
DASHEDLINE, USERBITLINE stabilirea modului de nscriere a informaiei grafice n
memoria ecran.
i grosimea liniei:
NORMWIDTH, THICKWIDTH.
Astfel, valorile numerice prin care se reprezint pixelii
n memoria ecran pot fi nscrise n mod necondiionat,
Valorile implicite ale acestor atribute de afiare sunt printr-o operaie la nivel de pixel, ntre valoarea care
SOLIDLINE i NORMWIDTH. trebuie s fie nscris i valoarea existent.
Getlinesettings - funcia ntoarce informaii referitoare Setwritemode(oplog) - funcia stabilete modul de
la valorile curente ale atributelor tip de linie, ablon de nscriere n memoria ecran a informaiei.
linie i grosime linie, 33 34

Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor


grafice grafice
n fiierul graphics.h sunt definite dou constante: Atributele de afiare ale suprafeelor
COPYPUT i XORPUT, corespunztor celor dou
modaliti de scriere posibile. Atributele date sunt folosite de funciile:
COPYPUT specific afiarea necondiionat bar bar3d fillpoly floodfill fillellipse
(suprascriere) peste imaginea existent.
pieslice sector
XORPUT specific afiarea condiionat combinnd
linia cu imaginea deja existent. Tipul de interior se specific printr-un ablon de
8x8 pixeli.
Aceast combinaie corespunde operaiei logice XOR.
Astfel, dac o linie este trasat a doua oar prin Culoarea de interior poate fi diferit de culoarea
aceiai pixeli, utiliznd acest mod de afiare, efectul de desenare folosit la afiarea conturului
este de tergere a liniei i restaurare a imaginii iniiale. figurilor de tip suprafa.
35 36
Atributele de afiare ale primitivelor Atributele de afiare ale primitivelor
grafice grafice
Setfillstyle(ti, ci) - funcia poate fi apelat pentru Setfillstyle(ti, ci) - funcia poate fi apelat pentru
specificarea valorilor curente ale atributelor tip de specificarea valorilor curente ale atributelor tip de
interior i culoare de interior, specificate ca interior i culoare de interior, specificate ca
parametri. parametri.
Setfillpattern(sb, ci) - funcia primete prin lista de Setfillpattern(sb, ci) - funcia primete prin lista de
parametri un ablon i culoarea de interior. Un parametri un ablon i culoarea de interior. Un
ablon se reprezint printr-un vector de caractere. ablon se reprezint printr-un vector de caractere.
Getfillpattern funcia ntoarce ablonul utilizat Getfillpattern funcia ntoarce ablonul utilizat
curent, specificat la apelul funciei Setfillpattern. curent, specificat la apelul funciei Setfillpattern.
Getfillsettings funcia ntoarce valorile curente ale Getfillsettings funcia ntoarce valorile curente ale
atributelor tip i culoare de interior. 37
atributelor tip i culoare de interior. 38

Atributele de afiare ale primitivelor


grafice
Compartimentul Textul in mod grafic
nu a fost inclus in aceasta prezentare.
In caz de necesitate consultai
documentaia tehnic a bibliotecii
grafice. Intrebri ?

39 40

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