graf prelegeri

Upload: liviu-solcovenco

Post on 27-Feb-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Graf Prelegeri

    1/136

    1

    MINISTERUL NVMNTULUI A REPUBLICII MOLDOVA

    UNIVERSITATEA TEHNIC A MOLDOVEI

    Facultatea Calculatoare, Informatic, Microelectronic

    GRAFICA PE CALCULATOR

    Curs de prelegeri

    pentru studenii specialitilor

    "Automatica i Informatica", "Calculatoare" ,

    "Microelectronic", "Tehnologii informaionale", FAF

    Chiinau 2010

    Cuprins

  • 7/25/2019 Graf Prelegeri

    2/136

    2

    1. Sisteme grafice

    1.1.Sinteza, prelucrarea i analiza imaginilor1.2.Aplicaii grafice1.3.Arhitecturi ale sistemelor grafice

    1.4.Dispozitive de intrare ale sistemelor grafice

    1.5.Echipamentele de ieire grafic1.6.Softul sistemelor grafice

    1.7.Standarde in grafic

    2. Adaptoare video i moduri grafice2.1.Adaptoare video.

    2.2.Moduri grafice.

    2.3. Iniializarea modului grafic.2.4.Schimbarea si interogarea modului grafic.

    2.5. Ieirea din modul grafic.

    3.

    Primitive grafice3.1.Operaii cu pixeli.3.2.Construirea liniilor.

    3.3.Poligoane.

    3.4.Curbe conice.

    3.5.Suprafee.

    4. Atributele de afiare ale primitivelor grafice4.1.Specificarea culorilor.

    4.2.Atributele de afiare ale liniilor.4.3.Atributele de afiare ale suprafeelor.

    5. Textul n mod grafic5.1.Afiarea textului in mod grafic.5.2.Atributele de afiare ale textelor.5.3.Seturi de caractere.

    6. Operaii cu imagini6.1.Poarta de vizualizare.

    6.2.Operaii cu imagini in memorie.6.3.Salvarea si restaurarea imaginilor.

    6.4.

    Fiiere cu mai multe imagini6.5.Operarea cu mai multe pagini video.6.6.Corecia formelor imaginilor sintezate.

    7. Formatele fiierelor de grafic7.1. Modele de reprezentare bitmap (harti de biti)

    7.2. Formatul BMP

    7.3. Modul vectorial

    7. Interpolarea i netezirea imaginilor

  • 7/25/2019 Graf Prelegeri

    3/136

    3

    7.1.Operaiuni de interpolare i netezire a imaginilor7.2. Interpolarea prin funcii Bezier7.3. Interpolarea prin funcii B-spline.7.4.Construirea curbelor i a suprafeelor de netezire

    8. Transformri geometrice 2D8.1. Transformri geometrice elementare8.1.1. Translaia8.1.2. Scalare

    Scalare fa de origine

    Scalare fa de un punct oarecare din plan

    8.1.3. RotaiaRotaia fa de origine

    Rotaia fa de un punct oarecare din plan

    8.2.Compunerea transformrilor8.3.Trasnsformri n coordonate omogene8.4. Transformri geometrice inverse8.5. Transformri geometrice fa de un punct oarecare din plan8.6. Transformare de oglindire

    8.7. Transformare de forfecare a imaginilor

    8.8. Transformri ale sistemului de coordonate

    8.Transformri geometrice 3D8.1.Matrici de transformare 3D.

    8.2.Translaia 3D.8.3.Scalarea 3D.

    8.4.Rotaia 3D.8.5.

    Forfecarea 3D.

    8.6.Transformri 3D inverse.8.7.Compunerea transformrilor 3D.8.8.Oglindirea fata de un plan al sistemului de coordonate.

    8.9.Rotaia in jurul unei axe oarecare in spaiul 3D.8.10.Oglindirea fa de un plan oarecare.

    9. Transformri grafice tridimensionale9. 1. Matrici de transformare

    9. 2. Translaia

    9. 3. Scalare9. 4. Rotaia n jurul unei axe a sistemului de coordonate9. 5. Transformri inverse9. 6. Forfecarea

    9. 7. Oglindirea fa de un pian al sistemului de coordonate9. 8. Compunerea transformrilor tridimensionale9. 9. Rotaia n jurul unei axe oarecare9. 10. Oglindirea fa de un plan oarecare

    10. Vizualizarea scenelor

    10.1. Transformarea de vizualizare 2D.

    10.2. Decuparea 2D.10.3. Modelul procesului de vizualizare 3D.

  • 7/25/2019 Graf Prelegeri

    4/136

    4

    10.4. Proiecii. Proiecia perspectiv.10.5. Vizualizarea imaginilor 3D.

    11. Determinarea vizibilitii obiectelor la afiarea scenelor 3D11.1.Clasificarea algoritmilor de determinare a laturilor i a feelor vizibile ale obiectului.

    11.2.Determinarea laturilor vizibile ale unui poliedru.11.3.Determinarea feelor vizibile ale obiectului.11.3.1.Algoritmul GalimbertiMontanari.11.3.2.Algoritmul Zbufer.

    12. Redarea luminii si a umbrelor in imagini

    12.1.Parametrii luminii

    12.2.Modele de culoare.

    12.3.Modele de reflexie a luminii.

    12.3.1.Reflexia difuz.12.3.2.

    Reflexia spicular.12.4.Metode de redare a suprafeelor iluminate.12.4.1.Modelul Lambert.

    12.4.2.Modelul Gouraud.

    12.5.Transparena.12.6.Umbrirea.

    13. Editoare grafice

    13.1.Adobe Photoshop

    13.2.Adobe Illustrator

    13.3.Adobe PhotoDeluxe

    13.4.Correl Draw

    13.5.Correl PrintHouse Magic

    13.6.ClarisDraw

    13.7.Graphix Advantage

    13.8.Xara3D

    13.9.Animatec World Builder

    13.10. Digital Video Producer

    13.11. Polytran

    14.

    Editorul grafic 3D Studio Max14.1.Descrierea general a editorului grafic 3D Studio.14.2.Structura pachetului grafic 3D Studio.

    14.3.Principiile de lucru n editorului grafic 3D Studio.14.4.Metode de creare a obiectelor.

    14.5.Crearea i redactarea liniilor i a altor figuri.14.6.Formarea textelor.

    14.7.Crearea obiectelor 3D.

    14.8.Crearea surselor de lumin.14.9.Crearea camerei.

    14.10.Rendering.

    14.11.Alegerea materialelor.

    14.12.Crearea materialelor.

  • 7/25/2019 Graf Prelegeri

    5/136

    5

    14.13.Crearea obiectelor de rotaie.14.14.Animaia.

  • 7/25/2019 Graf Prelegeri

    6/136

    6

    1.SISTEME GRAFICE

    1.1. Sinteza, prelucrarea i analiza imaginilor

    Prin sistem grafic se nelege un ansamblu din echipamente i programe, specializate n

    sintez, prelucrarea i analiz a informaiei grafice, prezentate n forma de imagini. Echipamentelepot fi calculatoare, staii grafice, imprimante, plotter-e .a.Un sistem grafic care permite interaciunea cu utilizatorul prin echipamente specializate

    (mouse, tableta grafic, joy-stick .a.) se numete sistem grafic interactiv.Sistemele grafice pot fi clasificate dup scopul prelucrrilor pe care le efectueaz.

    Din acest punct de vedere se face distincie ntre:-sisteme de sintez a imaginilor, sisteme de prelucrare a imaginilor i sisteme de analiz a imaginilor.

    Secvena de prelucrri efectuate ntr-un sistem de sintez a imaginilor poate fi reprezentatschematic ca n figura 1.1.

    Modelul imaginii este o list de primitive grafice (linia, cercul, poligonul, textul i altele),nsoite de atribute cum ar fi: culoarea, tipul i limea liniei, etc. ntr-

    un sistem grafic 3D primitive pot fi i diferite tipuri de suprafee i obiecte. Algoritmii desintez codific fiecare primitiv grafic ntr-o form special. Modelul imaginii poate rezulta dincalcule specifice aplicaiei (de exemplu, reprezentarea grafic a unei funcii) sau poate fi editat deutilizator prin intermediul programului de aplicaie (de exemplu, schia unei piese, a unei case,etc.). Utilizatorul poate solicita diferite transformri asupra obiectelor redate n imagine sauasupra imaginii n ansamblu.

    Programele de aplicaie sunt specializate pe diferite domenii, de exemplu, proiectareaasistat de calculator n electronic, n mecanic, n arhitectur, cartografie, birotic, gestiuneeconomic, tipografie electronic, producia de filme,etc.

    n sistemele de prelucrare i de analiz a imaginilor datele de intrare se extrag din imagini.Imaginea poate fi o fotografie sau o imagine din lumea real.Sistemele de preluare a imaginilor au ca scop ameliorarea imaginilor sub aspectul perceperii lor

    de ctre om (figura 1.2.) prin: modificarea culorilor, mbuntirea contrastului, redarea selectiv adiferitelor pri din imagine i altele.

    Analiza imaginilor are ca scop identificarea obiectelor reprezentate n imaginile codificatenumeric (figura 1.3.). Sistemele de analiz a imaginilor se folosesc n aplicaii de recunoatere aformelor, de exemplu pentru identificarea obiectelor, pentru analiza reliefului i a resurselornaturale etc.

    1.2. Aplicaii grafice

    Din categoria aplicaiilor grafice fac parte:- Programele de desenare (paint programs): permit crearea desenelor sub form de hri de bii;- Programe pentru desen tehnic i artistic (draw programs): furnizeaz funcii avansate de desenare,

    bazate n special pe prelucrarea liniilor curbe. Imaginile sunt reprezentate n formate vectoriale;- Programe grafice de prelucrare a datelor tabelare (graphic worksheet): sunt destinate aplicaiilor ndomeniul financiar-contabil. Cu ajutorul lor se editeaz tabele de profituri, analize de tabele etc.Datele sunt introduse n celule (o celul reprezint intersecia dintre o linie i o coloan ntr-untabel). Unele celule pot fi definite ca relaii ntre dou sau mai multe celule introduse anterior. Aceste

    produse folosesc grafica pentru prezentarea datelor din tabele n forme atractive sau sintetice.- Programe grafice de prezentare (slide show): permit crearea diagramelor (dreptunghiulare sau

    circulare), graficelor, a altor tipuri de imagini pentru prezentri i rapoarte, pun la dispoziia

    utilizatorului colecii de diverse scenarii de reclam. Diagramele pot fi rezultatul prelucrrii ireprezentrii datelor din aplicaii pentru foi de calcul;

  • 7/25/2019 Graf Prelegeri

    7/136

    7

    - Programe pentru animaie: permit nlnuirea i secvenierea seriilor de imagini pentru a simulamicarea. Fiecare imagine este considerat un cadru ntr-un film. Propun faciliti din domeniulfilmului (mixaje, selecie de secvene, modificri de obiecte pentru obinerea efectelor de animaie);- Programe CAD: aplicaii dedicate proiectrii, destinate arhitecilor i inginerilor. Printre funciilecele mai cunoscute, permit: trasare n 2D i 3D, numeroase sisteme de coordonate i tipuri de

    proiecii; selectarea dintre numeroase sisteme de msur a dimensiunilor paginii de desen,localizarea obiectului prin referina la alte obiecte, mrirea sau micorarea desenelor (zoom), editride simboluri; tipuri de linii de trasare i culori, scalri i rotaii de obiecte selectate, compatibilitateaformatelor fiierelor, ce pot fi importate sau exportate i de alte aplicaii, umplerea poligoanelor ndiverse stiluri (fill), numeroase tipuri de caractere text n alfabete latin, chirilic, grec, simbolurimatematice, meteorologice, astronomice, muzicale, facilitatea de dispunere pe masa de desen, cotriautomate a obiectelor selectate, atribute de vizibilitate, prioritate, culoare, stil, ataate obiectelor i

    posibilitatea editrii facile a acestor atribute, introducerea posibilitii desenrii de mn cudispozitivul de intrare: mouse, tablet grafic, trasri de curbe, suprafee, polilinii, faciliti de trasaren 3D (crearea obiectelor 3D din 2D, eliminarea liniilor ascunse, simularea fotografierii cu lentile dedistan focal variabil, teleobiectiv, cu specificarea uneia sau mai multor surse de lumin, realism

    vizual, iluminri, umbriri, crearea unor macroinstrunciuni cu AUTOLISP sau C;- Editoare grafice (desktop publishing): sunt colecii de funcii de procesare a textului, care permitcontrolul poziionrii textului i imaginilor, astfel nct pot fi create reviste, ziare, reclame, cri. Punla dispoziia utilizatorului module pentru: scrierea documentului cu procesorul de texte,editarea/revizuirea textului pn la ajungerea n forma final n modul WYSIWYG (What You See IsWhat You Get), inserarea textului n pagin, innd cont de dimensiunea literelor, tipul de text,numrul de coloane pe pagin, lungimea coloanelor, ilustrarea prin crearea diagramelor, graficelor,diverselor desene sau preluarea fotografiilor (histograme, imagini scanate), revizuirea aspectului

    paginii, machetarea, tiprirea n tirajul dorit;- Aplicaii dedicate exploatrii suportului de informaie multimedia (hrtie, film, band magnetic),respectiv dispozitivelor multimedia (microfon, magnetoscop, sintetizator). Sunt aplicaii care oferutilitare de conversie, de comprimare, funcii de arhivarea imaginilor, filmelor, retuarea imaginilorvideo, recunoaterea caracterelor documentelor imprimate, recunoaterea, procesarea i arhivareadatelor sonore.

    1.3. Arhitecturi ale sistemelor grafice

    In calculatoarele personale grafica este susinut de ctre procesorul unic al sistemului.Calculatoarele conin un modul denumit plac grafic care conine memoria grafic,dispozitivele de semnalizare i conversie video i controller-ul video, care are rolul de a generasemnalele de sincronizare a monitorului i de a extrage sincron informaia din memoria video.

    O staie grafic este n general dotat cu dou module de prelucrare i anume unitateacentral de prelucrare (UCP) i procesorul grafic (PG).Procesorul grafic al unei staii grafice performante este un procesor specializat, dotat cu un

    modul de memorie proprie, i cu un set de module care implementeaz n hardware algoritmispecifici prelucrrilor grafice. Astfel de procesoare pot fi dedicate funciilor de generare desegmente sau curbe, operaiilor de decupare, operaiilor de eliminare a suprafeelor ascunse,

    procesoare de formare a iluminrii i altele.

    1.4. Dispozitive de intrare ale sistemelor grafice

    Dispozitivele de intrare au funcia de realizare a interaciunii dintre utilizator la sistemulgrafic.

  • 7/25/2019 Graf Prelegeri

    8/136

    8

    Tastatura: este cel mai comun dispozitiv de intrare. Prin intermediul acesteia pot fi

    implementate toate funciile de intrare ntr-un sistem, prin alocarea corespunztoare, prin program,a fiecrei taste sau grupuri de taste.

    Mouse: este actualmente cel mai utilizat dispozitiv pentru implementarea funciei de intrarede tip locator-punctator la nivelul ecranului. Mouse-ul posed dou sau trei butoane a cror

    apsare determin transferul la calculator a unui cod special. Aciunea pe care programul oefectueaz ca urmare a apsrii unui buton este specific programului care utilizeaz acestdispozitiv.

    Tracking-ball: principiul constructiv i funcional al acestui dispozitiv este cel al mouse-ului, cu deosebirea c dispozitivul st fix, iar micarea de rotaie a sferei este produs de ctre

    palma operatorului.

    Joy-stick: este un dispozitiv utilizat ca locator-punctator. Este alctuit dintr-o manet careare dou grade de libertate de rotaie pe dou axe perpendiculare. Fiecare micare de rotaie setransfer ntr un numr de impulsuri care se transmit la calculator.

    Light pen: este un dispozitiv punctator direct pe ecran, al crui principiu se bazeaz peelementul fotosensibil din vrful creionului optic impresionat de lumina emis de ctre punctulde pe ecran atins de creion.

    Digitizorul i tableta grafic. Construcia este de forma unei plci plane dreptunghiulare, cudimensiune de la formatul A3 pn la o mas cu laturi de doi metri. Sub aceast plac se gsescreele de fire paralele amplasate la distane foarte mici (sutimi de milimetru). Exist dou reele,cte una pentru fiecare ax. Pe masa de desen se poate amplasa desenul care trebuie digitizat.Operaia de introducere a punctelor se poate face cu un dispozitiv special La selecia unui punctde pe desen se apas un buton, sistemul depisteaz linia i coloana deasupra cruia este amplasat

    punctatorul i transmite la calculator indicii liniei i coloanei astfel determinate.Scanner: acest dispozitiv utilizeaz tehnici de fotografiere a imaginii prezentate pe o foaie

    de hrtie, pelicul etc. Scanner-ul descompune imaginea n rastru de puncte i o transfer pixelcu pixel la calculator. Pentru diminuarea volumului de date transferate scanner realizeaz ocompresie de date, anterioar transferului.

    1.5. Echipamentele de ieire grafic

    Echipamentele de ieire grafic sunt acele echipamente care prezint imaginea sintetizat dectre sistemul de calcul, pe un suport cu caracter permanent (hrtie, film ,etc.), sau pe ecranul unuimonitor. In aceast clas de echipamente se ncadreaz: imprimantele cu ace, nregistratoarele(plotter) cu peni sau electrostatic, imprimantele laser, cu jet de cerneal, cu transfer termic ifotonregistratoare pe pelicul (photo-plotter).

    Se vor defini noiunile care caracterizeaz calitatea imaginii obinute pe suportul de ieire.

    Dimensiunea punctului reprezint diametrul unui punct singular generat de echipamentul deieire. Forma punctului este n general circular, dei anumite echipamente pot fi astfelconstruite nct forma punctului este dreptunghiular.

    Adresabilitatea reprezint numrul de puncte individuale pe care le poate crea echipamentulpe unitatea de lungime. Adresabilitatea axei X este inversa distanei dintre centrele a doupuncte vecine (adiacente) aflate pe aceeai linie orizontal. In mod similar se defineteadresabilitatea axei Y. Nu ntotdeauna adresabilitatea are aceeai valoare pe ambele axe.

    Rezoluia este o noiune corelat cu dimensiunea punctului, iar valoarea ei maxim este egalcu valoarea adresabilitii. Rezoluia se definete ca spaierea minim ntre iruri de linii negre

    alternate cu linii albe, care pot fi decelate de observator. De exemplu dac pe un centimetru

  • 7/25/2019 Graf Prelegeri

    9/136

    9

    pot fi decelate 20 de perechi intercalate de linii albe i negre, spunem c rezoluia este de40 linii pe centimetru.

    Dispozitivele grafice de afisare exist de doua tipuri: video display si display cu cristalelichide.

    (a)

    (b)

    Figura 1-1. Configuratia unui sistem de afisare a imaginii: (a) arhitectura standard; (b) arhitectura cu

    accelerator grafic.

    Video display este un ecran cu o pelicula foto-luminiscenta pe baza de fosfor, care permite

    fiecarui pixel al sau sa fie luminos doar cand este lovit de un fascicol de electroni. Deoarece pelicula

    fosforescenta isi pierde luminozitatea, imaginea trebuie rescanata repetat, cu o frecventa de cel putin

    60 ori pe secunda.

    Afisajul cu cristale lichide (Liquid Crystal Display, LCD) este un dispozitiv care foloseste

    un camp electric pentru a modifica polarizarea celulelor cristaline la nivelul fiecarui pixel. Fiecare

    astfel de celula este caracterizata de stralucire: prin schimbarea polarizarii pe pixel, se modifica

    nivelul stralucirii, deci intensitatea afisarii pixelului.

    Afisarea la ecran poate fi facuta in doua moduri: in regim text si in regim grafic.

    In regim grafic, ecranul este considerat format din pixeli. Pixelii ecranului sunt pusi in

    corespondenta biunivoca cu bitii din memoria video (video buffer).

  • 7/25/2019 Graf Prelegeri

    10/136

    10

    Rezolutia dispozitivului grafic reprezinta produsul dintre numarul de pixeli pe linie si

    coloana. Rezolutia defineste dimensiunea (exprimata in pixeli) a dreptunghiului in care imaginea este

    reprezentata.

    In regimul text, ecranul este considerat mprit in 25 linii de 80 coloane fiecare; in fiecare zona

    fiind afiate diferite caractere grafice (litere, cifre, simboluri etc.). Si in aceasta regiune, ecranul estepus in corespondenta biunivoca cu o parte a memoriei, de data aceasta zonele de ecran fiind asociate

    cu octetii ce definesc caracterele text.

    Indiferent de tipul dispozitivului de afiare, pentru ca imaginea sa fie afiata, memoria video(frame buffer) este citita de un dispozitiv hardware, numit placa video (video controller sau adaptor

    grafic). In cazul in care se doreste o crestere a calitii si vitezei de afiare in mod grafic, adaptorulgrafic este inzestrat cu memorie video suplimentara si cu dispozitive de procesare grafica(coprocesor grafic), care preiau o mare parte din sarcina de procesare grafica realizata prin software

    de unitatea centrala de prelucrare (Central Processing Unit, CPU). Acestea se numesc acceleratoare

    (placi) grafice.

    In figura 1-10 este descrisa arhitectura unui accelerator grafic. Astfel de arhitecturi devin din ce in ce

    mai complexe, pe msura ce cresc cerinele de procesare a imaginilor si elementelor de grafica.

    Figura 1-3. Arhitectura acceleratorului grafic.

    Acceleratorul grafic preia, practic, realizarea urmtoarelor operaii:

  • 7/25/2019 Graf Prelegeri

    11/136

    11

    - transformari (rotatii si scalari), aprute in reprezentarea obiectelor in micare sau a modificariipozitiei observatorului;

    - decupaje, ce provin din deplasarea obiectelor in afara ferestrei de vizualizare;

    - proiectii, pentru redarea imaginilor folosind transformarile prospective;

    - texture mapping: colorarea obiectelor si umplerea suprafetelor;

    - eliminarea suprafetelor ascunse, prin determinarea acelor obiecte care se proiecteaza in acelasipixel si sunt mai apropiate de observator, pentru a putea fi afisate.

    Dispozitive de trasare

    Imprimantele sunt dispozitive de imprimare a unor informaii transmise de la calculator pe hrtie(sau alte suporturi: folii transparente, plicuri etc.). Sunt orientate pentru imprimare text/grafic. Conincomponente electronice (RAM, controler, microprocesoare, plac de reea). Din punctul de vederealmodului de imprimare, pot fi: imprimante text, respectiv imprimante grafice. Din punctul de vedere

    al metodei de imprimare, putem identifica imprimantele cu ace, imprimantele laser i imprimantelecu cerneal.

    Caracteristic pentru imprimantele text (matriceale) sunt seturile de caractere (litere, cifre isimboluri pe care imprimanta este capabil s le imprime). Imprimantele matriceale (dot matrix) ausetul de caractere standard ncrcat n ROM.

    Cele mai folosite sunt imprimante cu 9 ace (o imprimare pe vertical a 9 puncte) sau cu 24 ace(imprimare pe vertical a unei matrice 8x3). Sunt prezente n formate dependente de dimensiuneamaxim a colii de hrtie utilizate: A3, A4.

    Imprimantele matriceale sunt definite de viteza de imprimare, exprimat n caractere pe secund(cps). Aceasta poate varia ntre 50 i 500 cps. Multe tipuri de imprimante matriceale ofer practicviteze diferite de imprimare, n funcie de calitatea cerut a imprimrii.

    Un dezavantaj major al acestui tip de imprimante este zgomotul, care crete odat cu numrul de acei cu calitatea imprimrii.

    Imprimantele grafice. Cele mai interesante i performante tehnologii de imprimare sunt folosite deimprimante laser i LED (Light Emitting Diode). Deosebirea dintre imprimantele laser i LED constn modul de impresionare a cilindrului fotosensibil (figura 1-13). La imprimantele laser obinuite, osingur diod laser special realizeaz raza laser i o dirijeaz spre oglind. Aceasta se rotete cu cca

    7600 rotaii/min. Oglinda dirijeaz raza pe o in de reflexie care face ca raza laser s ajung pecilindrul fotosensibil ncrcat negativ. Raza neutralizeaz cilindrul ncrcat electric n punctele deinciden.

    Tehnologia bazat pe laser i deviere se nlocuiete pentru categoria imprimantelor LED cu un rndcomplet de diode luminiscente (LEDuri): 2500 dispuse pe dou linii deasupra cilindrului fotosensibil(figura 1-13). Diodele sunt comandate s se aprind/sting individual i conduc la o rezoluie de pnla 600 dpi, rezultnd mai puine piese mobile, compactitate.

    Tehnologiile laser i LED folosesc 6 etape n procesul de imprimare: cilindrul fotosensibil se ncarcelectric (negativ); raza laser transfer imaginea de tiprit n puncte pe cilindru (n punctele n care

    raza de lumin ntlnete cilindrul, ncrcarea electric este neutralizat); tonerul incrcat negativrmne agat numai n zonele neutralizate ale cilindrului; cilindrul transfer tonerul pe hrtie sub

  • 7/25/2019 Graf Prelegeri

    12/136

    12

    presiune (10g/cm) i temperatur (1500C); deoarece, dup transfer, pe cilindru rmn resturi detoner, o lam le rzuie, resturile fiind plasate ntr-un recipient de evacuare (Wastebox).

    Imprimantele laser/LED sunt caracterizate de calitatea imprimrii, exprimat n dpi (dots per inch).Rezoluiile imprimantelor actuale variaz n intervalul 300 dpi - 1200 dpi, valorile uzuale fiind 300

    dpi i 600 dpi (prin comparaie, imprimarea offset are valori ale rezoluiei ntre 1200 dpi i 2400dpi). Unele imprimante din aceast categorie pot s permit o rezoluie mrit prin folosirea unortehnici speciale (resolution enhancement) care se bazeaz pe dispozitive de recunoatere a imaginilor(spre exemplu a liniilor curbe) ce folosesc algoritmi inteligeni i pe modificarea dimensiunii

    punctului de imprimare (dot). Acesta este motivul pentru care productorii de imprimante graficelaser/LED propun n documentaia tehnic dou valori caracteristice ale rezoluiei: rezoluiadispozitivului de imprimare (engine resolution) i rezoluia efectiv (effective resolution).

    Imprimantele laser/LED pot fi monocrome (imprimare negru/nuane de gri) sau color. n ultimul cazfolosesc patru tonere pentru a imprima full color, ceea ce mrete proporional preul pe paginatiprit. Pentru a mri viteza de imprimare (exprimat n pagini per minut,ppm), dispun de seturi de

    caractere (internal/resident fonts). Viteza imprimantelor variaz practic ntre 4 i 20 ppm, dacpagina este n general text. O valoare tipic 6 ppm este echivalent cu 40 cps.

    Imprimantele laser/LED sunt cunoscute ca imprimante grafice. n acest scop, sunt dotate cu memorieintern, necesar n procesul de imprimare la o rezoluie acceptabil a unei imagini de dimensiuneA4 sau A3. Spre exemplu, pentru imprimarea unei pagini A4 la rezoluie 300 dpi este necesar minim1 MB de memorie printerRAM. Evident, pentru o rezoluie 600 dpi, necesarul de memorie printerRAM este de cel puin 4 MB.

    Imprimantele laser/LED sunt controlate prin intermediul unor limbaje de descriere PDL (Page

    Description Language). Standardele PDL actuale sunt PCL (Printer Control Language), propus de

    Hewlett-Packard (HP) i PostScript (propus de Apple Macintosh).

    Imprimantele cu cernealpropun cteva tehnologii de transfer a informaiei ctre suportul dehrtie. Imprimantele termice cu cerneal (tehnologia BubbleJet/InkJet) se bazeaz pe prezena ncapul de imprimare a unui element de nclzire (figura 1-14b). Din momentul alimentrii cu energieelectric, acesta se nclzete n 4-7 s la 4000C, determinnd apariia unei bule de gaz care sedestinde, produce o suprapresiune i preseaz o pictur minuscul de cerneal prin duz spreexterior. Bula de gaz se formeaz din nou: n capul de imprimare apare o depresiune care asigurtransferul cernelei din cartu. Cerneala care intr n cap rcete elementul de nclzire. Aceste faze serepet pentru fiecare punct de tiprit. Aceast tehnologie prezint ca dezavantaj faptul c, dup o

    utilizare ndelungat, pe elementul de nclzire se formeaz un strat subire de resturi de cernealcare mpiedic lucrul la parametri normali. Bulele de gaz devin mai mici i picturile de cerneal maislabe. Pentru evitarea acestui comportament trebuie nlocuit nu numai cartuul ci i capul deimprimare (aceasta se ntmpl n medie dup 10 reumpleri cu cerneal).

    Imprimarea piezoelectric cu cerneal (Epson) nlocuiete bula de gaz cu un element format dincristale piezoelectrice (figura 1-14a). Cnd elementul se ncarc electric, cristalele se lungesc n5s. Dup 5s de la ntreruperea alimentrii electrice, circuitele revin la forma iniial.Piezoelementul nu este n contact cu cerneala, ci se gsete n faa unei membrane. Prin apsareamembranei se produce tensiune n duz, rezultnd o pictur minuscul de cerneal. Pictura estefoarte fin (datorit frecvenei de max 10 s de generare) i fr picturi satelit (ca n cazulelementelor termice). Prin

  • 7/25/2019 Graf Prelegeri

    13/136

    13

    comparaie, aceast tehnologie are avantajul absenei fenomenelor de uzur termic (deoarece capulde imprimare nu are elemente supuse nclzirii).

    Imprimantele cu cerneal sunt caracterizate de o rezoluie de minim 300 dpi i sunt mai ieftine dar i

    mai lente dect imprimantele laser. Sunt des utilizate deoarece ofer un cost mult mai redus dect

    imprimantele color laser pentru imprimarea unei pagini color, ca i datorit dimensiunilor reduse,ceea ce le caracterizeaz ca portabile.

    Plotterele sunt dispozitive de ieire care creaz imagini bidimensionale (spre exemplu grafice) pehrtie. Se mpart n dou categorii (din punct de vedere constructiv):- drum plotter: mecanismul de trasare const ntr-un mecanism de naintare a hrtiei, similar celui dela imprimant, i un stilou (cap de scriere) ce se deplaseaz pe o dreapt de-a latul hrtieiconformcomenzilor primite de la interfa;- flatbed plotter: mecanismul de trasare folosete un bra mecanic ce manipuleaz un stilou (cap descriere) peste o hrtie ntins (pe baza unui mecanism de control pe axele XY).

    1.6. Softul sistemelor grafice

    Programele din componena unui sistem grafic de sintez sunt n general structurate n dounivele (figura 1.5.):

    -nivelul dependent de echipamente, format din programele "driver";

    -nivelul independent de echipamente, realizat ca o bibliotec de subprograme apelabile dinprogramele de aplicaie, numit biblioteca grafic.

    Exist cte un program driver pentru fiecare tip de echipament n configuraiasistemului grafic. Pentru ca programele de aplicaie s fie independente de echipamente estenecesar ca subprogramele bibliotecii grafice s fie independente de echipamente. Un programtrebuie s poat fi folosit cu o gam ct mai variat de echipamente.

    Funciile bibliotecilor grafice pot aparine urmtoarelor categorii:- rutine de configurare (selectarea modului grafic dorit, stabilirea zonelor de memorie pentru scrierea

    fiierelor de imagini);- rutine pentru stabilirea coordonatelor desenului i a zonei active;- rutine pentru stabilirea paletei de culori;

    - rutine pentru stabilirea atributelor liniei: culoare de trasare, stil, grosime;

    - rutine pentru trasarea liniilor, arcelor, elipselor, cercurilor, poliliniilor, umplerea contururilor;

    - rutine pentru afiarea textului;- drivere i rutine pentru copierea imaginilor grafice la imprimant, rutine pentru gestiunea memorieiecran.

    Este necesar ca subprogramele bibliotecii grafice s fie apelabile din programe scrise ntr-un limbaj de nivel nalt: Pascal, C, Ada, Basic i altele. Un sistem grafic poate cuprinde biblioteci

    pentru mai multe limbaje de programare. Unele biblioteci grafice ofer numai funcii de nivelcobort; astfel sunt bibliotecile grafice din mediile Turbo Pascal, Borland C, Borland C++ pentruDOS. Altele ofer funcii de nivel nalt, inclusiv posibiliti de redare a obiectelor tri-dimensionalei de interaciune folosind o varietate mare de echipamente.

  • 7/25/2019 Graf Prelegeri

    14/136

    14

    1.7. Standarde in grafic

    Obiectivele urmrite prin standardizare au fost:

    1. Portabilitatea programelor, cu dou aspecte:- independena fa de sistemul de calcul i de sistemul grafic folosit;- independena fa de echipamente.

    2. Portabilitatea informaiei grafice, adic posibilitatea transferului descrierilor de imagini ntresisteme grafice diferite.

    3. Posibilitatea stocrii pe termen lung a informaiei grafice.

    4. Uniformitatea instruirii n domeniul proiectrii i utilizrii sistemelor grafice, asigurarea unuivocabular unic de termeni i concepte.

    Primul standard internaional n domeniul sistemelor de sintez a imaginilor, adoptat n1985 de ctre ISO (International Standards Organisation) i de ctre ANSI (American

    National Standards Institute) a fost G.K.S. (Graphical Kernel System). El definete un set complet defuncii de afiare 2D independente de echipamente, funcii de segmentare (grupare a primitivelorgrafice), de transformare, de control al staiilor de lucru, i de interaciune. Standardul are dou

    pri:I - Specificaia funciilor sistemului grafic, ntr-o manier independent de limbaj;II - Interfee pentru diferite limbaje de nivel nalt (Fortran, Pascal, C, Ada), adic denumirilesubprogramelor prin care sunt implementate funciile sistemului, parametrii fiecrui subprogram ierorile de semnalat.

    Ulterior a fost adoptat o extensie a standardului GKS, pentru sinteza imaginilor care redauobiecte tridimensionale, numit GKS-3D.

    Subprogramele prin care sunt implementate funciile definite n standardele GKS / PHIGSformeaz nucleul independent de dispozitive al sistemului grafic. Prelucrrile dependente decaracteristicile diferitelor tipuri de echipamente sunt grupate n modulele driver.

    Au fost propuse i alte standarde: CGI (Computer Graphics Interface) i VDI (Virtual DeviceInterface).

    Pentru arhivarea i transmisia informaiilor grafice ntre sisteme a fost elaborat standardulCGM (Computer Graphics Metafile, ISO-DIS 8632).

    Exist deasemenea standarde pentru transmisia la distan a documentelor coninnd texte, figuri,

    imagini discrete (CAPTAIN, CEPT) i standarde pentru arhivarea i transferul de date deproiectare (IGES).

    2. ADAPTOARELE VIDEO I MODURI GRAFICE

    2.1. Adaptoarele video

    Unitate de afiare a sistemului grafic are doua componente de baza: adaptorul video;monitorul video.

    Adaptoarele video permit afiarea textelor i imaginilor grafice. Informaia care se afieaz pe

    ecran se extrage din memoria adaptorului video. Adaptoarele grafice mai sunt numite de diversi

  • 7/25/2019 Graf Prelegeri

    15/136

    15

    producatori: video cards, video boards, video display boards, video controllers, graphics cards sau

    graphics adapters.

    Fiecrui punct (pixel) de pe ecran i corespund unul sau mai muli bii n aceast a memorie.Accesul n memoria video se poate face ca la orice alta locaie de memorie a calculatorului.

    Capacitatea memoriei video i organizarea ei depind de tipul adaptorului.Ecranul este considerat ca fiind mprit printr-o grila de 25x80 celule. Fiecare celula poateconine un caracter. Ecranul este adresat la nivel de caracter, intr-un sistem de coordonate cartezian,cu originea (1, 1) n coltul din stnga sus.

    n modul grafic ecranul este considerat ca fiind divizat printr-o grila rectangulara n celulenumite pixeli. Numrul de pixeli ai ecranului (rezoluia) depinde de tipul adaptorului video i demodul n care acesta lucreaz. Imaginile grafice sunt alctuite din puncte, fiecare punct corespunzndunui pixel. Numrul de bii alocai n memoria video fiecrui pixel determina numrul de culoriafiabile simultan pe ecran.

    n mod grafic ecranul este adresat intr-un sistem de coordonate carteziene avnd originea(0,0) situata n coltul stnga sus. Coordonatele (x, y) ale unui punct de pe ecran sunt numere ntregi.Valoarea lui x creste spre dreapta iar cea a lui y spre partea de jos a ecranului.

    n funcie de rezoluie i de numrul de culori ce se pot afia simultan pe ecran, n memoriavideo se pot pstra una sau mai multe imagini ecran. Numrul de imagini ecran, numite i paginivideo este limitat de capacitatea memoriei video.

    Adaptoarele video standard sunt:

    EGA (Enhanced Graphics Adapter) - permite lucrul n mod text i n mod grafic. n modgrafic, rezoluia este de 640x350 puncte, cu 16culori simultan pe ecran i 2 pagini video.

    VGA (Video Graphics Array) - permite lucrul n mod text i n mod grafic. Acest adaptoreste considerat un succesor al adaptorului EGA. n mod grafic rezoluia este: 640x480 puncte i 16culori simultan pe ecran din 256K culori posibile, o pagina video sau 320x200 puncte i 256 culorisimultan pe ecran cu o singura pagina video.

    XGA (Extended Graphics Array) - 1024x768 pixeli, 24..210 culori;

    SVGA (Super Video Graphics Array). Rezoluia este de la 640x400 puncte i 16 culori pnla 1280x1024 puncte i 16 mii culori.

    AGA (Advanced Graphics Adapter) 1024 x 768 pixeli rezoluie. Pentru aplicaii graficecomplexe s-au realizat adaptoare grafice dedicate cu o rezoluie excepional (cele mai bune rezoluiintlnite depind nivelul de 4096 x 4096 pixeli).

    Adaptoarele EGA folosesc monitoare digitale iar VGA i SVGA folosesc monitoareanalogice.

    Un monitor digital folosete un numr fix de semnale. Astfel, monitorul pentru adaptorulEGA folosete 6 semnale: trei pentru culorile de baza R, G, B (rou, verde, albastru) i trei pentruintensiti r, g, b. Fiind 6 semnale digitale ar putea fi afiate 64 culori distincte simultan pe ecran, darnumrul este limitat la 16 deoarece culoarea unui pixel se retine pe 4 bii n memoria video.

    La un monitor analogic, semnalele R, G, B pot varia continuu. Aceasta permite o variaiecontinua a nuanelor de culori. ns, numrul de culori disponibile este limitat de reprezentareadigitala n memoria video.

    n momentul alegerii plcii grafice i a monitorului, utilizatorul trebuie s i pun problemaperformanei i ergonomiei. Corelaia dintre frecvena de remprosptare a imaginii i mrimeamemoriei video (ca termeni de alegere a plcii grafice) este prezentat n tabelele 1-1 i 1-2.

  • 7/25/2019 Graf Prelegeri

    16/136

    16

    Conform acestor clasificri, grupa 1 de dispozitive cuprinde plci ce ofer 1-2 MB DRAM. Plcile sebazeaz pe acceleratoare ieftine. Plcile grafice mai lente aduc rezoluii suplimentare mai naltenumai plpind. Grupa a doua este caracterizat de preuri medii, plci cu 2MB DRAM/VRAM. naceast clas pot apare acceleratoare video. Grupa 3-4 este cea a dispozitivelor profesioniste (VRAMrapid, tehnic de vrf) i, evident, extrem de scumpe.

    2.2. Drivere

    Operaiile cu adaptoarele video sunt realizate de module driver-e. Modulele driver coninrutine prin care sunt accesate memoria video i alte dispozitive ale adaptorului.

    Module driver sunt definite ca fiiere cu extensia .BGI (Borland Graphics Interface) i fiierecu extensia .CHR.

    Exista aplicaii n care viteza de generare a imaginilor este foarte importanta. Astfel deaplicaii sunt cele care trebuie sa actualizeze imaginea n timp real i cele de animaie. n acestecazuri se pot folosi direct rutinele BIOS din memoria ROM a calculatorului. Rutine respective se

    refera la:- stabilirea modului video: text sau grafic

    - citire/scriere valoare pixel - n mod grafic- scriere caractere cu atribute - n mod text.

    Ele permit accesul direct la memoria video. Avantajul il constituie viteza sporita de generare

    a imaginii.

    2.3. Moduri grafice

    Fiecare tip de adaptor permite foloirea calculatorului n unul sau mai multe moduri grafice,numite i moduri video. Ele se deosebesc prin rezoluia ecranului, numrul de culori ce se pot afiasimultan pe ecran i numrul de pagini video disponibile. n tabelul 1 sunt prezentate modurile videospecifice fiecrui tip de adaptor, moduri accesibile prin bibliotecile grafice existente n mediile de

    programare C i Pascal.

    Prin operaia de autodetecie se determina tipul de adaptor video, se ncarc n memo riefiierul .BGI corespunztor i se selecteaz modul video cu rezoluia maxima.

    Tabelul 1. Moduri grafice

    Constanta

    DriverGrafic

    Constanta

    mod videomod

    Rezolutie

    (col*lin)

    Paleta

    culori

    Pagini

    video

    VGA VGALO 640x200 16 cul. 4

    VGAMED 640x350 16 cul. 2

    VGAHI 640x480 16 cul. 1

    2.4. Iniializarea modului grafic

    InitGraph(GraphDriver, GraphMode) - funcia stabilete valorile implicite ale parametrilor de

    operare n mod grafic i ncarc de pe disc n memorie modulul driver corespunztor primu luiparametru. Modul de lucru al driver-ului ncrcat este specificat prin al doilea parametru iar

  • 7/25/2019 Graf Prelegeri

    17/136

    17

    denumirea completa a caii unde se va caut fiierul .BGI corespunztor este prezentata prin al treileaparametru.

    Valoarea zero a parametrului GraphDriver determina apelul funciei pentru autodeteciatipului adaptorului video instalat. n acest caz, efectul execuiei funciei initgraph este urmtorul: se

    detecteaz tipul adaptorului video instalat, se ncarc n memorie fiierul .BGI corespunztor i seselecteaz modul grafic cu rezoluia maxima pentru adaptorul respectiv. Funcia initgraph va ntoarcenumrul driver-ului ncrcat n parametrul GraphDriver i numrul modului grafic selectat n

    parametrul GraphMode.

    Funcia initgraph memoreaz intr-o variabila interna un cod care indica operaie reuita sauterminata prin eroare. Codul poate fi obinut cu funcia Graphresult. Daca operaia de iniializare amodului grafic s-a desfurat cu succes, codul este egal cu 0, altfel este o valoare negativa. n caz deinsucces funcia ntoarce codul de eroare. n tabelul 2 sunt prezentate codurile de eroare ntoarse defunciile initgraph detectgraph i graphresult.

    Tabelul 2. Coduri de eroare intoarse la Iniializarea modului grafic detectgraph

    Cod eroare Semnificatie-2 Nu se poate detecta tipul adaptorului video

    -3 Nu se poate localiza fiierul .BGI-4 Format incorect al fiierului .BGI-5 Memorie insuficienta pentru a ncrca driver-ul grafic

    Detectgraph(Graphdriver, Graphmode) - funcia detecteaz tipul adaptorului video instalat. Estede regula apelata de funcia Initgraph. Poate fi apelata i independent, dac se dorete doar stabilirea

    configuraiei hardware i nu selectarea automata a modului grafic de rezoluie maxim.

    Spre deosebire de initgraph funcia nu ncarc n memorie fiierul .BGI corespunztor. Deaceea, dup apelul funciei date trebuie apelata funcia Initgraph. Ulterior, daca se doreteschimbarea modului grafic selectat, se va folosi funcia Setgraphmode.

    Pentru a cunoate daca execuia unei funcii din biblioteca grafica a decurs normal sau nu, sepot folosi funciile Graphresult i Grapherrormsg.

    Graphresult- funcia ntoarce codul de eroare referitor la execuia ultimei funcii grafice. Codul deeroare este o valoare ntreaga cuprinsa intre -14 i 0. Semnificaia fiecrui cod eroare este

    prezentata n tabelul 3.

    Grapherrormsg- funcia ntoarce un ir de caractere reprezentnd mesajul corespunztor codului deeroare furnizat de funcia graphresult.

    Tabelul 3. Coduri i mesaje de eroare ntoarse de funciile graphresult i grapherrormsgCod eroare Nume Simbolic Mesajul afiat (de funcia grapherrormsg)

    0 grOk No error

    -1 grNoinitGraph (BGI) graphics not installed (use initgraph)

    -2 grNotDetect Graphics hardware not detected

    -3 grFileNotFound Device driver file not found

    -4 grInvalidDriver Invalid device driver file

    -5 grNoLoadMem Not enough memory to load driver

  • 7/25/2019 Graf Prelegeri

    18/136

    18

    -6 grNoScanMem Out of memory n scan fill-7 grNoFloodMem Out of memory n flood fill-8 grFontNotFound Font file not found ()

    -9 grNoFontMem Not enough memory to load font

    -10 grInvalidMode Invalid graphics mode for selected driver

    -11 grError Graphics error-12 grIOError Graphics I/O error

    -13 grInvalidFont Invalid font file ()

    -14 grInvalidFontNum Invalid font number

    2.5. Schimbarea i interogarea modului grafic

    Fiecare driver permite doua sau mai multe moduri video cu diferite rezoluii i palete deculori. n biblioteca grafica exista funcii care permit schimbarea modului video stab ilit sauinterogarea modului video. Aceste funcii sunt:

    Getgraphmode- funcia ntoarce o valoare ntreag ce reprezint modul video curent.

    Setgraphmode- funcia stabilete un nou mod video. La apelul acestei funcii se terge ecranul i seiniializeaz toi parametrii de operare n mod grafic la valorile implicite.

    Funcia se poate utiliza la revenirea din mod text n mod grafic. Funciile getgraphmode isetgraphmode se pot folosi numai dup iniializarea modului grafic.

    Getmoderange - funcia primete ca parametru numrul unui driver grafic i ntoarce doua valorireprezentnd numrul minim i maxim al modului video permis pentru driver-ul grafic specificat.

    Getmaxmode- funcia ntoarce numrul maxim de moduri video pentru driver-ul grafic curent(ncrcat n memorie de funcia initgraph).

    Spre deosebire de funcia getmoderange, funcia getmaxmode se poate utiliza pentru oricedriver, inclusiv pentru cele definite de utilizator.

    Getmodename- funcia primete ca parametru numrul modului grafic activ, specificat fie printr-ovariabila ntreag. Funcia ntoarce un ir de caractere ce reprezinta denumirea modului video.

    Graphdefault- funcia iniializeaz toi parametrii de operare n mod grafic la valorile implicite.

    Restorecrtmode - funciareiniializeaz sistemul de afiare n modul text, dup utilizarea moduluigrafic. Se poate folosi alternativ cu setgraphmode pentru a comuta din mod text n mod grafic, nfuncie de aplicaie. La trecerea dintr-un mod n altul, ecranul se terge i se afieaz informatia dinmemoria video corespunztor noului mod.

    2.6. Ieirea din modul grafic

    Closegraph - funcia efectueaz revenirea n modul text, modul implicit de lucru al sistemului deafiare. Ea apeleaz funcia graphfreemem pentru a elibera memoria ocupata de driver-ul grafic, setulsau seturile de caractere utilizate de program precum i zonele de memorie interne.

  • 7/25/2019 Graf Prelegeri

    19/136

    19

    2.7. Instalarea unui driver

    Modulele din biblioteca grafica sunt independente de adaptor datorita existentei modulelor

    driver. Pentru acces la memoria video, modulele din biblioteca folosesc driver-ul ncrcat nmemorie.

    Programatorii pot rescrie un driver grafic pentru un adaptor existent sau pot scrie unul nou.Funcia Installuserdriver permite utilizarea unui nou driver, incluznd fiierul .BGI specificat ca

    parametru, intr-o tabela interna meninut de pachetul de funcii grafice. Un al doilea parametru,opional, este adresa rutinei de detectare i are valoarea NULL daca nu exista o astfel de rutina.

    Funcia ntoarce indexul de driver pe care l va primi driver-ul utilizator astfel instalat saucodul de eroare -11 daca tabela driverelor instalate este deja plina.

    2.8. Includerea driver-lor grafice n forma executabila a unui program

    Execuia unui program care nu conine driver-ul grafic n forma .EXE presupune existentadriver-ului grafic n directorul specificat la apelul funciei Initgraph.

    Acest lucru poate sa duc la unele probleme n cazul utilizrii programului furnizat "lacheie". n cazurile date driver-ul grafic poate fi la inclus n program n forma executabila.

    Pentru includerea unui driver grafic n forma executabila a unui program se procedeazastfel:

    1. Se convertete fiierul .BGI n fiier .OBJ cu utilitarul BGIOBJ:2. Se leag fiierul .OBJ rezultat, la programul executabil.

    3. n codul sursa al programului se apeleaz funcia Registerbgidriver sau Registerbgifont,pentru nregistrarea driverului.

    3. Primitive grafice

    Primitive grafice reprezint elementele de imagine care pot fi afiate cu ajutorul funciilordin biblioteca grafica. Astfel de elemente sunt: punctul, linia, cercul, elipsa, arcul de cerc, arcul de

    elipsa, sectorul de cerc, dreptunghiul, poligonul.

    Toate primitivele grafice au atribute geometrice (coordonate ecran .a.) i atribute de afiare(culoarea, tipul de linie, tipul de interior, grosimea liniei .a.). Fiecare atribut de afiare are o valoareimplicita, stabilita la iniializarea modului grafic sau prin apelul funciei Graphdefault.

    3.1. Operaii cu pixeli

    Putpixel(x,y,c) - funcia afieaz un pixel, ale crui coordonate i culoarea sunt specificate caparametri.

    Getpixel(x,y) - funcia ntoarce culoarea unui pixel ale crui coordonate x i y sunt specificate caparametri.

    Poziia curenta de desenare poate fi stabilita cu ajutorul funciilor grafice Moveto i Moverel.Implicit, poziia curenta de desenare este n coltul din stnga sus al porii de vizualizare curente.

    Moveto(x,y) - funcia stabilete ca poziie curenta de desenare punctul de coordonate (x,y)specificate ca parametri. n mod text, funcia echivalenta este Gotoxy.

  • 7/25/2019 Graf Prelegeri

    20/136

    20

    Moverel(xr,yr)- funcia deplaseaz poziia curenta de desenare relativ la vechea poziie de desenare,cu distantele xr i yr pe axele x i y respectiv. Noua poziie de desenare nu este limitata ladimensiunea porii de vizualizare curente.

    Getx i Gety - funciile ntorc coordonata poziiei curente de desenare pe orizontala i verticala.Aceste coordonate sunt relative la poarta de vizualizare curenta.

    3.2. Construirea liniilor

    Line(x1,y1,x2,y2) - funcia afiseaza o linie intre punctele de coordonate (x1,y1) i (x2, y2),specificate ca parametri. Linia este afiata folosindu-se valorile curente ale atributelor de afiare aleliniilor: culoare de desenare, grosime i tip linie, mod de scriere n memoria ecran. Valorile trebuiesa fie stabilite nainte de apelul funciei line.

    Valori implicite au urmtoarele atributele de afiareculoare : alb

    tip de linie : continua

    grosime linie : un pixel

    mod de scriere n memoria ecran: COPY_PUT

    Lineto(xf,yf)- funcia afiseaza o linie din poziia curenta de desenare pn n punctul de coordonate(xf,yf) specificate ca parametri. Pentru afiarea liniei se folosesc valorile curente ale atributelormenionate la funcia line. Dup afiare, poziia curenta de desenare va deveni punctul de coordonate(xf, yf).

    Linerel(xr,yr)- funcia afiseaza o linie din poziia curenta de desenare pna intr-un punct specificatprin deplasamentul relativ fata de poziia curenta de desenare (xr, yr).

    3.3. Poligoane

    Rectangle(x1,y1,x2,y2) - funcia afiseaza un dreptunghi specificat prin doua vrfuri diametral opuse:stinga sus i dreapta jos. Coordonatele acestor doua vrfuri constituie parametrii funciei.

    Bar(x1,y1,x2,y2) - funcia afiseaza o suprafa dreptunghiulara specificata prin doua vrfuri

    diametral opuse. La afiarea suprafeei se folosesc valorile curente ale atributelor de afiare alesuprafeelor: tip de interior i culoare de interior.

    Aributele de afiare ale suprafeelor au urmtoarele valori implicite:culoare de interior : alb

    tip de interior : uniform (toi pixelii de aceeai culoare)

    Bar3d(x1,y1,x2,y2,dz,ind) - funcia afiseaz un paralelipiped dreptunghic, cu fetele paralele cuplanele principale ale sistemului de coordonate 3D. La afiare se folosesc valorile curente aleatributelor tip de linie i culoare de desenare pentru contururi, respectiv tip de interior i culoarea deinterior pentru fete.

  • 7/25/2019 Graf Prelegeri

    21/136

    21

    Primii patru parametri ai funciei reprezint coordonatele a doua vrfuri diametral opuse al efetei paralelipipedului situata mai aproape de observator. Parametrul dz reprezint dimensiunea

    paralelipipedului pe axa z i se exprima n numr de puncte. Ultimul parametru permite desenareaopionala a fetei de sus a paralelipipedului. Aceasta nu se deseneaz daca parametrul are valoarea 0.Opiunea este utila n aplicaii n care se dorete suprapunerea mai multor astfel de figuri.

    Parametrii funciei sunt: numrul de vrfuri ale liniei poligonale i vectorul cu coordonatele(x, y) ale acestora. Pentru a desena o linie poligonala nchisa cu n vrfuri, primul parametru alfunciei va fi n+1, iar coordonatele ultimului vrf vor fi egale cu coordonatele primului vrf nvectorul cu coordonate.

    3.4. Curbe conice

    n biblioteca grafica exista funcii pentru desenarea urmtoarelor curbe conice: cerc, arc de

    cerc, elipsa i arc de elipsa.

    La afiarea curbelor conice se folosesc valorile curente ale atributelor: culoare de desenare igrosime linie. Ele sunt afiate cu linie continu, indiferent de valoarea curenta a atributului tip delinie.

    Circle(x,y,r) - funcia afiseaza un cerc avnd centrul de coordonate (x,y) i raza r, specificate caparametri. Raza se exprima printr-un numr ntreg.

    Arc(x,y,ui,uf,r) - funcia afiseaza un arc de cerc, intre unghiul iniial ui i unghiul final ufspecificate ca parametri. Raza cercului i coordonatele centrului x i y sunt de asemenea parametri aifunciei. Unghiurile iniial i final se exprima n grade, cuprinse intre 0 i 360 grade.

    Ellipse(x,y,ui,uf,a,b) - funcia afiseaza o elipsa sau un arc de elipsa. Coordonatele centrului x i y,semiaxele a i b precum i unghiurile iniial ui i final uf sunt specificate ca parametri ai funciei.

    3.5. Suprafee

    Suprafaa poligonala

    Fillpoly- funcia afiseaza o suprafaa poligonala utiliznd valorile curente ale atributelor de afiareale liniilor pentru contur, i valorile curente ale atributelor de afiare ale suprafeelor pentru restulpunctelor suprafeei. Poligonul se specifica prin numrul de vrfuri i vectorul coordonatelor (x, y)ale vrfurilor. n cazul n care coordonatele ultimului vrf difer de coordonatele primului vrf

    poligonul este nchis automat.

    Suprafaa circulara i eliptica, sector de cerc i de elipsa

    Fillellipse(x,y,a,b)- funcia afiseaza o suprafaa eliptica cu interiorul determinat de valorile curenteale atributelor culoare de interior i tip de interior.

    Pieslice(x,y,ui,uf,r) - funcia afiseaza un sector de cerc sau un cerc cu interiorul determinat devalorile curente ale atributelor tip de interior i culoare de interior. La afiarea razelor care

  • 7/25/2019 Graf Prelegeri

    22/136

    22

    delimiteaz sectorul se folosesc valorile curente ale atributelor de afiare a liniilor. Coordonatelecentrului cercului, raza, unghiurile iniial i final sunt specificate ca parametri ai funciei. Pentruobinerea unei suprafee circulare cele doua unghiuri trebuie sa fie 0 i 360 de grade.

    Sector(x,y,ui,uf,a,b)- funcia afiseaza un sector de elipsa. Coordonatele centrului elipsei, unghiurile

    iniial i final ale arcului care delimiteaz sectorul i semiaxele elipsei sunt specificate ca parametri aifunciei. Sectorul este afiat folosindu-se valorile curente ale atributelor tip de interior i culoare deinterior. Pentru afiarea razelor care delimiteaz sectorul se folosesc valorile curente ale atributelorde afiare a liniilor.

    Suprafaa mrginit de un contur oarecareFloodfill(x,y,c) - funcia modifica culoarea tuturor pixelilor interiori unui contur existent, folosindvalorile curente ale atributelor tip interior i culoare de interior. Conturul este specificat n lista de

    parametri prin culoarea sa. Tot prin lista de parametri se specifica valoarea unui punct interior

    conturului. Daca punctul specificat nu este interior conturului se va modifica culoarea pixelilor

    exteriori conturului pn la limitele porii de vizualizare curente.

    4. Atributele de afiare ale primitivelor grafice

    Atribute de afiare ale primitivelor grafice snt urmtoarele:- culoarea de desenare

    - tipul de linie

    - grosimea liniei

    - tipul de interior

    - culoarea de interior

    Toate atributele au valori implicite. Pentru specificarea valorilor ce se doresc a fi folosite lagenerarea primitivelor grafice trebuie apelate o serie de funcii ale bibliotecii grafice.

    4.1. 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 gama de 256K nuane posibile.

    Cele 16 culori ce pot fi afiate simultan deadaptorul VGA n modul 16 culori formeaz opaleta, prezentata mai jos:

  • 7/25/2019 Graf Prelegeri

    23/136

    23

    Tabelul 5.1. Paleta implicita VGA

    Culoare

    (numrulintrarii)

    Valoare

    implicita

    (hexa)

    Valoare

    binara

    Componente

    culoare

    Nume culoare

    0 0 000000 ------ BLACK1 1 000001 -----B BLUE

    2 2 000010 ----G- GREEN

    3 3 000011 ----GB CYAN

    4 4 000100 ---R-- RED

    5 5 000101 ---R-B MAGENTA

    6 14 010100 -g-R-- BROWN

    7 7 000111 ---RGB LIGHTGREY

    8 38 111000 rgb--- DARKGREY

    9 39 111001 rgbB LIGHTBLUE

    10 3A 111010 rgb-G- LIGHTGREEN11 3B 111011 rgb-GB LIGHTCYAN

    12 3C 111100 rgbR-- LIGHTRED

    13 3D 111101 rgbR-B LIGHTMAGENTA

    14 3E 111110 rgbRG- YELLOW

    15 3F 111111 rgbRGB WHITE

    Paleta folosita poate conine oricare din cele 64 de nuane posibile. Modificarea unei culorisau a ntregii palete se realizeaz cu funciile Setpalette respectiv Setallpalette.

    Funcii pentru stabilirea paletei i a culorii de desenare

    Getmaxcolor- funcia ntoarce numrul maxim de culori ce pot fi folosite n modul grafic curent.

    Setcolor(c)- funcia poate fi apelata pentru stabilirea culorii de desenare curente.

    Getcolor- funcia ntoarce culoarea de desenare curenta.

    Setbkcolor(c) - funcia poate fi apelata pentru specificarea culorii fondului. Ea modifica primaintrare a paletei de culori la valoarea specificata ca parametru.

    Utilizarea acestei funcii are ca efect schimbarea a pixelilor afiai n culoarea de fond.Astfel, o parte din imaginea afiata poate deveni "invizibila", atunci cnd culoarea fondului esteaceeai cu cea a unor elemente de imagine. Imaginea insa nu este modificata i nu se pierde, astfelincit la o noua modificare corespunztoare a culorii fondului imaginea poate redeveni "vizibila" nntregime.

    Getbkcolor- funcia ntoarce valoarea curenta a culorii de fond.

    Culorile (de desenare, de interior, culoarea fondului) pot fi specificate prin valorile numerice

    corespunztoare sau prin numele simbolice, definite n fiierul GRAPHICS.H. dupa cum urmeaz:BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGREY, DARKGREY,

  • 7/25/2019 Graf Prelegeri

    24/136

    24

    LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW,

    WHITE

    Setpalette(indpal, c) - funcia modifica o intrare a paletei. Ea primete prin lista de parametrinumrul intrrii i valoarea, care se va memora n intrarea respectiva. (indpal index paleta, c culoarea).

    Schimbarea culorilor de desenare se poate realiza numai prin schimbarea modului grafic. De

    reinut ca schimbarea modului grafic are ca efect tergerea ecranului.

    Intrrile noii palete pot fi definite explicit sau noua paleta poate fi una obinut anterior cuapelul getpalette.

    Aceasta funcie nu poate fi folosita n modurile grafice care folosesc palete predefinite,deoarece n aceste moduri grafice doar culoarea fondului poate fi modificata i nu ntreag paleta.

    Getpalette- funcia ntoarce paleta de culori curenta.

    Setrgbpalette- funcia poate fi folosita pentru modificarea paletei (fizice) de 256 de culori. Fiecareculoare din paleta se definete prin 3 valori corespunztoare componentelor de baza rou, verde ialbastru (RGB). Aceste valori se reprezint pe cte 6 bii. Funcia are ca parametri: numrul intrriidin paleta care se redefinete ( ntreg intre 0 i 255) i valorile culorilor primare R, G, B. Daca selucreaz n modul VGA cu 16 culori simultan, sunt folosite numai primele 64 intrri ale paleteifizice.

    Din cei 16 bii pe care se reprezint fiecare din parametrii Rval, Gval, Bval sunt folosii doarcei mai semnificativi 6 bii ai octetului mai puin semnificativ. Aceasta corespunde la valori multiplude 4, n intervalul 0..252.

    4.2. Atributele de afiare ale liniilor

    Tipul i grosimea liniei

    n biblioteca grafica sunt predefinite 4 tipuri de linie i doua grosimi. De asemenea, existaposibilitatea ca utilizatorul sa-i defineasc propriul sau tip de linie.

    Setlinestyle(tl,gl)- funcia stabilete valorile curente ale atributelor tip de linie i grosime linie.

    n fiierul GRAPHICS.H sunt definite urmtoarele constante simbolice pentru tipul igrosimea liniei: OLIDLINE, DOTTEDLINE, CENTERLINE, DASHEDLINE, USERBITLINENORMWIDTH, THICKWIDTH.

    Valorile implicite ale acestor atribute de afiare sunt SOLIDLINE i NORMWIDTH.

    Cel de-al doilea parametru al funciei Setlinestyle (Sablonlinie) are semnificaie numai cndprimul parametru, tipul de linie, este USERBITLINE (valoarea numerica 4). n acest caz liniile sevor trasa prin multiplicarea ablonului definit de utilizator. Tabloul definit de utilizatorse reprezint

    pe 16 bii. Un bit corespunde unui pixel al liniei, cu semnificaia 1 - pixel aprins (desenat cu culoareade desenare curenta), 0 - pixel stins.

  • 7/25/2019 Graf Prelegeri

    25/136

    25

    Getlinesettings- funcia ntoarce informaii referitoare la valorile curente ale atributelor tip de linie,ablon de linie, i grosime linie.

    Modul de nscriere a informaiei grafice n memoria ecran

    n bibliotecile grafice, exista o funcie ce permite stabilirea modului de nscriere ainformaiei grafice n memoria ecran. Astfel, valorile numerice prin care se reprezint pixelii nmemoria ecran pot fi nscrisee n mod necondiionat, printr-o operaie la nivel de pixel, intre valoareacare trebuie sa fie nscrisa i valoarea existenta.

    Setwritemode(oplog)- funcia stabilete modul de nscriere n memoria ecran a informaiei.

    n fiierul GRAPHICS.H sunt definite doua constante: COPYPUT i XORPUT,corespunztor celor doua modaliti de scriere posibile. COPYPUT specifica afiarea necondiionata(suprascriere) peste imaginea existenta. XORPUT specifica afiarea condiionata combinnd linia cuimaginea deja existenta. Aceasta combinaie corespunde operaiei logice XOR. Astfel, daca o linieeste trasat a doua oara prin aceiai pixeli, utiliznd acest mod de afiare, efectul este de tergere aliniei i restaurare a imaginii iniiale.

    4.3. Atributele de afiare ale suprafeelor

    Atributele date sunt folosite de funciile: bar, bar3d, fillpoly, floodfill, fillellipse, pieslice isector.

    Tipul de interior se specifica printr-un sablon de 8x8 pixeli. Culoarea de interior poate fi

    diferita de culoarea de desenare, folosita la afiarea conturului figurilor de tip suprafaa.

    Setfillstyle(ti,ci)- funcia poate fi apelata pentru specificarea valorilor curente ale atributelor tip deinterior i culoare de interior, specificate ca parametri.

    Setfillpattern(sb,ci) - funcia primete prin lista de parametri un ablon i culoarea de interior. Unablon se reprezint printr-un vector de caractere.

    Getfillpatternfuncia ntoarce ablonul utilizat curent, specificat la apelul funciei Setfillpattern.

    Getfillsettingsfuncia ntoarce valorile curente ale atributelor tip i culoare de interior.

    5. Textul n mod grafic

    n aplicaiile grafice, imaginile care se afiseaza pot conine i texte, formate din iruri decaractere. Afiarea acestor texte nu pot fi facute n modul text, deoarece trecerea din mod grafic nmod text i invers are ca prim efect tergerea ecranului. De aceea este necesar ca i n mod grafic saexiste posibilitatea afirii de texte pe ecran.

    n mod grafic afiarea textului difer de afiarea n mod text. Astfel, un caracter poate fiamplasat n orice poziie pe ecran (specificata prin coordonate de pixel) fata de modul text n care uncaracter poate fi amplasat numai n una din cele 25x80 celule n care ecranul este considerat a fidivizat.

  • 7/25/2019 Graf Prelegeri

    26/136

    26

    De asemenea pentru modul grafic exista definite mai multe seturi de caractere, iar

    dimensiunea caracterelor poate fi modificata. Direcia de scriere a textului poate fi orizontala sauverticala.

    5.1. Afiarea textului n mod grafic

    n biblioteca grafica sunt definite doua funcii ce permit scrierea textului n mod grafic:Outtext(Text) - funcia afiseaza un ir de caractere. Poziia de amplasare a textului este poziiacurenta de desenare.

    Pentru afiarea textului, funcia folosete valorile curente ale atributelor set de caractere,culoare de desenare, dimensiune caractere, direcie de scriere (orientare text) i aliniament. Valorileacestor atribute se stabilesc cu ajutorul unor funcii speciale.

    Outtextxy(x,y,Text) - funcia afiseaza un ir de caractere, n poziia de amplasare x i y,specificata prin parametri. Funcia Outtextxy nu modifica poziia curenta de desenare. Pentruafiarea textului, funcia folosete valorile curente ale atributelor menionate la funcia outtext.

    5.2. Atributele de afiare ale textelor

    Aceste atribute sunt: culoarea de scriere, setul de caractere, dimensiunea (mrimea)caracterelor, direcia de scriere, aliniamentul textului.

    Culoarea de scriere este culoarea curenta de desenare stabilita cu ajutorul funciei Setcolor.Aliniamentul se refera la poziia de afiare a textului fata de poziia de amplasare text transmisafunciilor outtext i outtextxy. Textul este considerat ca fiind ncadrat intr-un dreptunghi cu laturile

    paralele cu axele sistemului de coordonate. n figura sunt desenate cu linie punctata principalele liniice delimiteaz dreptunghiul de ncadrare al textului.

    Funciile bibliotecii grafice care pot fi folosite pentru stabilirea valorilor curente aleatributelor de afiare ale textelor snt urmtoarele.

    Settextstyle(car, dir, dim) - funcia poate fi apelata pentru a specifica setul curent de caractere,direcia de scriere i dimensiunea caracterelor. Cel de-al treilea parametru al funciei settextstyle

    reprezinta factorul de scalare pe x i y ce se aplica dimensiunii iniiale a caracterelor. Acestparametru ia valori intre 0 i 10. Orice valoare n afara acestui interval genereaz o eroare - funciaGraphresult ntoarce valoarea -11 iar valorile curente ale atributelor set caractere, direcie idimensiune nu se modifica.

    Valoarea 0 ca dimensiune a caracterelor are semnificaie diferita n funcie de setul decaractere curent. Astfel, pentru setul implicit de caractere, valoarea 0 este echivalenta cu valoarea 1.

    Pentru celelalte seturi de caractere, valoarea 0 semnifica scalare cu factorii de scalare impliciisx=sy=4 sau cu factorii de scalare definii de utilizator, folosind setusercharsize. Valorile impliciteale atributelor set caractere, direcie scriere i dimensiune caracter sunt: DEFAULT_FONT,HORIZ_DIR, respectiv 1.

    Numele simbolice ale seturilor de caractere, definite n fiierul GRAPHICS.H, suntprezentate n tabelul 5.1.

  • 7/25/2019 Graf Prelegeri

    27/136

    27

    Tabelul 5.1. Seturi de caractere

    Nume simbolic Valoare Fiier .CHRDEFAULT_FONT 0

    TRIPLEX_FONT 1 TRIP

    SMALL_FONT 2 LITTSANS_SERIF_FONT 3 SANS

    GOTHIC_FONT 4 GOTH

    SCRIPT_FONT 5 SCRI

    SIMPLEX_FONT 6 SIMP

    TRIPLEX_SCRIPT_FONT 7 TSCR

    COMPLEX_FONT 8 LCOM

    EUROPEAN_FONT 9 EURO

    Direcia de scriere poate fi orizontala sau verticala. Pentru specificarea sa se pot folosi

    constantele HORIZ_DIR i VERT_DIR:

    Nume simbolic Valoare

    HORIZ_DIR 0

    VERT_DIR 1

    Setusercharsize(xm, xd, ym, yd)- funcia permite definirea factorilor de scalare care se vor aplicadimensiunii caracterelor din setul curent de caractere, exceptnd setul implicit (DEFAULT_FONT).

    Factori de scalare se calcul n mod urmtorsxxmxd, syymyd. Factorii sx i sy pot fi

    numere ntregi sau fracionare. Daca au valori diferite se produce odeformare a caracterelor afiate,fata de aspectul lor iniial (form de definiie).

    Settextjustify(aliniament) - funcia permite specificarea aliniamentului orizontal i a celui verticalpentru text. Aliniamentul specifica poziia textului fata de poziia de amplasare text folosita defunciile de scriere outtext i outtextxy.

    Valorile numerice i numele simbolice definite pentru aliniament n fiierul GRAPHICS.Hsunt prezentate n tabelul urmtor:

    Tabelul 5.2. Aliniamentul textului

    Aliniament Nume simbolic Valoare

    LEFT_TEXT 0

    orizontal CENTER_TEXT 1

    RIGHT_TEXT 2

    BOTTOM_TEXT 0

    vertical CENTER_TEXT 1

    TOP_TEXT 2

    Valorile implicite sunt LEFT_TEXT, BOTTOM_TEXT.

  • 7/25/2019 Graf Prelegeri

    28/136

    28

    5.3. Seturi de caractere (font-uri)

    Exista doua tipuri de seturi de caractere: raster (bitmap) i vectoriale (stroke), care difer prinmodul de descriere a caracterelor.

    ntr-un set raster, fiecare caracter este definit printr-o matrice de pixeli, de dimensiune fixa.ntr-un set vectorial, fiecare caracter este descris ca o secven de segmente de dreapta.

    Afiarea caracterelor raster este mai simpla. n schimb, scalarea caracterelor (mrirea saumicorarea fata de dimensiunea de definiie) este mult mai rapida i mai exacta pentru un setvectorial dect pentru un set raster.

    Setul implicit de caractere, DEFAULT_FONT este un set raster, fiecare caracter fiind definit

    intr-o matrice de 8x8 puncte. Celelalte seturi de caractere predefinite sunt seturi vectoriale i suntmemorate n fiiere cu extensia .CHR.

    Fiierele .CHR corespunztoare seturilor de caractere folosite intr-un program pot fitransformate n fiiere .OBJ cu ajutorul utilitarului BGIOBJ i apoi incluse n programul executabil.

    Utilizatorul poate defini noi seturi vectoriale sau poate modifica seturile vectoriale

    predefinite. Editarea unui set vectorial se poate face cu utilitarul FE.EXE (Font Editor). Pentru a

    putea utiliza noile seturi vectoriale definite, exista n biblioteca funcia Installuserfont

    Installuserfont(cale, nume fiier.CHR) - funcia ncarc n sistemul grafic un nou set vectorialdintr-un fiier .CHR al carui nume este specificat ca parametru i ntoarce un ntreg, identificator alsetului. Acest identificator poate fi folosit de funcia settextstyle pentru a selecta setul curent decaractere.

    n sistemul grafic exista o tabela ce poate conine pn la 20 de seturi de caractere, instalatecu aceasta funcie. Daca tabela este plina, funcia ntoarce valoarea -11.

    Spaiul ocupat de un text pe ecran depinde de numrul de caractere din text dar i de setul decaractere i factorii de scalare utilizai. Pentru a determina dimensiunea n pixeli a dreptunghiului ncare se ncadreaz un text, pot fi folosite doua funcii existente n biblioteca grafica: textwidth itextheight. Se poate astfel calcula spaiul intre diferite texte sau linii de text care se scriu pe ecran.

    Textheight- funcia ntoarce nlimea unui text, exprimata n pixeli, innd cont de setul curent de

    caractere, factorii de scalare i direcia de scriere.

    Txtwidth- funcia ntoarce laimea unui text, exprimata n pixeli, innd cont de setul de caracterecurent, factorii de scalare i direcia de scriere. Caracterele din seturile vectoriale au limi diferite.

    6. Operaii cu imagini

    6.1. Sistemul de coordonate dispozitiv

    n mod grafic, ecranul este considerat ca fiind o matrice de puncte (pixeli), fiecare avnd

    culoarea sa. n funcie de adaptorul grafic i de modul grafic n care se lucreaz aceasta matrice poateavea M coloane i N linii, unde M i N se determin de tipul adaptorului i modul de lucru utilizate.

  • 7/25/2019 Graf Prelegeri

    29/136

    29

    Sistemul de coordonate ataat ecranului, numit "sistem de coordonate dispozitiv" este unsistem de coordonate carteziane, cu originea n coltul din stnga sus al ecranului, axa x orientata spredreapta i axa y orientata n jos.

    Coordonatele unui pixel pe ecran sunt cuprinse intre 0 i xmax pe axa x, respectiv 0 i ymaxpe axa y. Valorile xmax i ymax variaza n funcie de adaptorul video instalat i modul grafic n carese lucreaz, intre 320 i 1024 pe orizontala respectiv intre 200 i 768 pe verticala.

    Valorile maxime ale coordonatelor pot fi determinate cu ajutorul a doua funcii din bibliotecagrafica. Aceste funcii sunt utile n programele de aplicaie pentru asigurarea independentei lor deadaptorul grafic folosit. Cele doua funcii sunt:

    Getmaxx, Getmaxy- funciile ntorc coordonata maxima pe orizontala, respectiv pe verticala pentruadaptorul instalat i modul video curent.

    6.2. Poarta de vizualizare (viewport-ul)

    Poarta de vizualizare poate fi orice zona dreptunghiulara a ecranului. Ea reprezint zona ncare va fi vizualizat desenul descris n cadrul aplicaiei. Poarta implicita este ntregul ecran.Coordonatele transmise funciilor de afiare apelate n programele de aplicaie sunt consideraterelative la originea porii de vizualizare curente. Aceasta permite afiarea unui desen oriunde peecran, prin simpla redefinire a porii de vizualizare.

    n biblioteca grafica exista funcii specifice pentru definirea i pentru tergerea suprafeeiporii de vizualizare curente

    Setviewport(x1, y1, x2, y2, clip) - funcia stabilete poarta de vizualizare curenta, specificata princoordonatele a doua vrfuri diametral opuse (stinga-sus, dreapta-jos).

    n cazul n care coordonatele transmise funciei setviewport sunt incorecte, funciaGraphresult ntoarce valoarea -11, fr a se modifica poarta vizuala curenta.

    Ultimul parametru al funciei (clip) este indicatorul de decupare. Prin el programatorul poatespecifica daca dorete sa se efectueze operaia de decupare (clipping) a imaginii afiate la frontiera

    porii vizuale curente. Astfel, daca parametrul clip are valoarea 0, decuparea va avea loc la marginileecranului i nu la cele ale porii de vizualizare curente. Coordonatele specificate pentru desenare suntrelative la originea porii vizuale curente, dar imaginea afiata se poate extinde peste limitele

    acesteia. Daca parametrul clip are o valoare diferita de 0 se va realiza automat operaia de decuparela marginile porii vizuale curente. Aceasta nseamn ca numai acele elemente grafice care coninpuncte aparinnd porii vor fi afiate.

    Funciile Initgraphi Setgraphmodestabilesc ca poarta vizuala curenta ntregul ecran.

    Clearviewport- funcia sterge imaginea afiata n poarta vizuala curenta (folosind culoarea de fond)i stabilete poziia curenta de desenare n coltul stnga sus al porii. Este echivalenta ca efect cufuncia clrscr dedicata modului text.

    Getviewsettings- funcia ntoarce coordonatele ce definesc poarta de vizualizare curenta i valoarea

    indicatorului de decupare (clip).

  • 7/25/2019 Graf Prelegeri

    30/136

    30

    Pentru tergerea ntregului ecran n mod grafic se poate folosi funcia Cleardevice:Cleardevice - terge ntreg ecranul i muta poziia curenta de desenare n originea sistemului decoordonate dispozitiv.

    Spre deosebire de funcia Clrscr din mod text (care terge fereastra activa) funcia

    Cleardevicenu ine cont de poarta de vizualizare curenta. n cazul n care se lucreaz cu mai multepagini video n memoria grafica, se va terge doar pagina activa.

    6.3. Salvarea i restaurareaimaginilor ndin fiiere

    Biblioteca grafica conine funcii ce permit diferite operaii cu imagini sau pri de imaginiecran: copierea, tergerea, restaurarea, multiplicarea. Aceste Operaii sunt eseniale n aplicaii deanimaie pe calculator; de asemenea, n unele aplicaii este util sa se salveze imagini ecran n fiiere

    pe disc.

    Funciile care realizeaz operaii cu imagini ecran sunt Getimage i Putimage. "Imagineaecran" se refera la imaginea la nivel de pixel dintr-o zona dreptunghiulara specificata prin

    coordonatele a doua vrfuri diametral opuse. Determinarea spaiului de memorie necesar pentrusalvarea unei imagini ecran este realizata de funcia Imagesize(x1, y1, x2, y2), care ntoarcenumrul de octei necesari pentru a memora o imagine ecran specificata prin coordonatele a douavrfuri diametral opuse.

    Funcia Getimage(x1, y1, x2, y2, adr) salveaz o imagine ecran intr-o zona de memoriealocata anterior. Parametrii funciei sunt cele 4 coordonate prin care se specifica imaginea ecran iadresa zonei din memoria interna. Zona trebuie sa fie mai mica de 64K.

    Funcia Putimage(x1, y1, oper) restaureaz o imagine salvata anterior, afind-o intr-o poziiespecificata prin lista de parametri. Poziia este reprezentata prin coordonatele coltului stnga sus alzonei dreptunghiulare n care va apare imaginea pe ecran.

    Funciile Getimagei Putimagepermit transferul imaginilor intre memoria ecran i memoriainterna. Pentru aplicaii grafice care opereaz cu mai multe imagini, alocarea memoriei n ecesare

    pentru salvarea lor poate constitui o problema i de aceea este convenabil sa se lucreze cu fiiere.Astfel, o imagine ecran se salveaz intr-un fiier care poate fi apoi folosit de mai multe ori n diferiteaplicaii. Se poate crea i stoca intr-un fiier o succesiune de imagini, pentru ca apoi imaginile sa fieredate rapid prin citire din fiier.

    Funcii, care realizeaz operaiuni de salvare a unei imagini ecran intr-un fiier, respectivrestaurarea ei din fiier, snt Getimg i Putimg.

    Funcia Getimg(x1,y1,x2,y2,nf)are ca parametri coordonatele a doua vrfuri diametral opuseale zonei ecran ce conine imaginea de salvat i numele fiierului. Pentru lucrul cu fiierul se folosescfunciile Fopen, Fwrite, Fflush i Fclose.

    Funcia Putimg(x1y1,nf,ms) are ca parametri coordonatele coltului stinga-sus ale zonei ncare se va afia imaginea, numele fiierului i modul de scriere. Dimensiunea imaginii ecran sedetermina din primii 4 octei citii din fiier. Aceti 4 octei reprezint dimensiunile pe x i pe y.Citirea celor 4 octei din fiier se realizeaz cu funcia Fgetc. Se determina apoi numrul de octei

    necesari pentru memorarea imaginii i se aloca spaiul necesar.

  • 7/25/2019 Graf Prelegeri

    31/136

    31

    Se apeleaz funcia Rewindpentru repoziionare la nceputul fiierului, apoi se citeteimaginea din fiier folosind funcia Fread. Pentru restaurarea imaginii pe ecran se apeleaz funciaPutimage. n final se elibereaz spaiul alocat i se nchide fiierul.

    6.4. Operaii cu imagini n memorie

    Ultimul parametru al funcieiPutimagespecifica modul de scriere al fiecrui pixel imagine.Sunt definite 5 moduri de scriere care permit combinarea unui pixel al imaginii de afiat cu pixelulcorespunztor din imaginea existenta n zona de afiare. Modurile de scriere sunt reprezentate prin 5operatori prezentai n tabelul 12.1 i enumerai n fiierul GRAPHICS.H.

    Tabelul 12.1. Moduri de scriere a pixelilor imaginei

    Nume

    operator

    Valoare Descriere operaie

    COPY_PUT 0 imaginea e copiata nlocuind imaginea existentaXOR_PUT 1 Se realizeaz operaia logica XOR la nivel de

    pixel intre imaginea salvata i cea existentaOR_PUT 2 Se realizeaz operaia logica ORAND_PUT 3 Se realizeaz operaia logica AND

    NOT_PUT 4 Se realizeaz operaia logica NOT la nivel depixel n imaginea salvata i se nlocuiete apoiimaginea existenta pe ecran

    Operaia de copiere (COPY_PUT) este utila atunci cnd se dorete nlocuirea unei imagini

    sau poriuni de imagine.Operatorul XOR_PUT se poate folosi atunci cnd se dorete afiarea temporara a uneiimagini intr-o zona a ecranului. Astfel, daca se afiseaza o imagine de doua ori n aceeai poziiefolosind operatorul XOR_PUT, dup a doua afiare apare imaginea existenta n zona naintea primeiafiri. Metoda se folosete pentru realizarea animaiei.

    Funcia Putimage nu afieaz imaginea daca nu ncape n ntregime pe ecran. Nu este luat nconsiderare poarta de vizualizare curenta, chiar daca s-a cerut decuparea imaginii la marginile sale.

    6.5. Fiiere cu mai multe imagini

    Crearea i utilizarea unui fiier cu mai multe imagini este utila n aplicaii care necesitasalvarea/restaurarea unei imagini care ocupa ntregul ecran, la fel i n aplicaii care opereaz cumai multe imagini ecran.

    n primul caz, salvarea unui ecran se realizeaz prin divizarea imaginii n fii orizontale, deexemplu n 4 fragmente care se salveaz pe rnd, n acelai fiier. Fragmentele de imagine au aceeaidimensiune, ceea ce permite o cutare simpla n fiier pentru a determina unde ncepe o nouaimagine.

    n al doilea caz, imaginile pot avea dimensiuni diferite, de aceea apare problema localizriiimaginilor intr-un fiier. O soluie ar constitui-o salvarea n fiier a unor imagini de aceeai

    dimensiune i anume dimensiunea celei mai mari imagini. Soluia este convenabila doar n cazul ncare imaginile care se salveaz n fiier au dimensiuni aproximativ egale. Daca imaginile sunt de

  • 7/25/2019 Graf Prelegeri

    32/136

    32

    mrimi mult diferite, restaurarea imaginilor este mai complicata; trebuie determinata dimensiuneafiecrei imagini n parte i implicit a datelor care se citesc din fiier. Dimensiunea se determina din

    primii 4 octei ai unei imagini dar, pentru aceasta trebuie cunoscuta poziia imaginii n fiier. Pentrusalvarea mai multor imagini intr-un fiier se poate folosi opiunea appendla operaia de deschidere afiierului.

    Funcia Savimg salveaz o imagine ecran intr-un fiier pe disc. Fiierul poate conine maimulte imagini ecran. Funcia ntoarce poziia n fiier a imaginii salvate. Indiferent de dimensiuneaimaginii ecran salvate funcia mparte aceasta imagine n 4 fragmente de aceeai mrime. Divizarease face n fii orizontale iar fragmentele sunt salvate apoi n fiier n ordinea de sus n jos.

    Restaurarea imaginii salvate anterior intr-un fiier folosind funcia Savimg este realizata defuncia Restimg. Spre deosebire de funcia Putimg funcia dat are n plus un parametru cereprezint poziia n fiier a imaginii ce se restaureaz. Imaginea este formata din 4 fragmente deaceeai dimensiune.

    6.6. Operarea cu mai multe pagini video

    Imaginea afiata pe ecran n mod grafic este stocata n memoria video. Capacitatea acesteimemorii difer de la un adaptor grafic la altul. De asemenea, cantitatea de memorie necesara pentru amemora imaginea de pe ntregul ecran depinde de modul video n care se lucreaz. Astfel, cantitateade memorie necesara este cu att mai mare, cu cit rezoluia este mai mare i se lucreaz intr-un modvideo cu mai multe culori afiabile simultan pe ecran.

    n unele moduri video, capacitatea memoriei video este suficient de mare pentru a permitepstrarea mai multor imagini ecran. Zona de memorie video necesara pentru a pstra un ntreg ecranse numete pagina video. n tabelul urmtor sunt prezentate modurile grafice pentru adaptoarele cesuporta mai multe pagini video.

    Tabelul 12.2. Modurile grafice pentru adaptoarele ce suporta mai multe pagini video

    Constanta

    Driver gr

    Constanta

    mod video

    Valoare

    mod

    Rezoluie(col*lin)

    Paleta

    culori

    Pagini

    video

    Driver

    VGA VGALO 0 640x200 16 cul. 4

    VGAMED 1 640x350 16 cul. 2

    VGAHI 2 640x480 16cul. 1

    n cazul n care adaptorul suporta mai multe pagini video, una singura se afiseaza la unmoment dat. Pagina care se afiseaza la un moment dat se numete pagina vizibila. Pagina n care sescrie la un moment dat se numete pagina activa.

    Iniial pagina 0 este att pagina vizibila cit i pagina activa. Adaptorul poate comuta foarterapid de la o pagina la alta. Corespunztor, n biblioteca grafica exista funcii ce permit comutarea istabilirea paginii active i a paginii vizibile. Modul de lucru cu mai multe pagini video oferavantajul unei actualizri rapide a ntregului ecran. Astfel, n timp ce pe ecran este afiata o pagina,se poate construi o alta imagine intr-o alta pagina. Prin simpla schimbare a paginii vizibile se va

    schimba ntreag imagine afiata pe ecran.

  • 7/25/2019 Graf Prelegeri

    33/136

    33

    Aplicaiile n care se utilizeaz mai multe pagini video sunt de exemplu, programele deanimaie pe calculator, programele care construiesc imagini foarte complexe. n primul tip deaplicaii pentru a simula micarea, se afiseaza o pagina video, n timp ce se construiete (sedeseneaz) urmtoarele imagini ale filmului de animaie n celelalte pagini video. Se afiseaza apoisuccesiv aceste pagini video comutnd de la una la alta pentru a simula micarea. n cel de -al doilea

    tip de aplicaie este de dorit ca utilizatorul sa nu vad detaliile de construire a imaginii complexe.Timpul de generare a imaginii este suficient de mare i de aceea pe toata aceasta durata se afiseaza oalta pagina video dect cea activa. n final se comuta pagina activa astfel incit sa devin paginavizibila i astfel utilizatorul poate observa imaginea gata construita.

    Funciile din biblioteca grafica ce permit lucrul cu pagini video sunt urmtoarele.

    Setactivepage- funcia permite selectarea paginii n care se va desena (pagina activa). I se transmiteca parametru numrul de pagina care devine pagina activa. Daca noua pagina activa nu coincide cu

    pagina vizibila, funciile de desenare apelate n continuare n program nu vor afecta imaginea afiatape ecran.

    Setvisualpage- funcia permite selectarea paginii video care va fi afiata (pagina vizibila). Poate fifolosita pentru comutarea afirii intre diferite pagini video. Comutarea este mult mai rapida dect

    poate urmri ochiul uman; necesita doar un ciclu de remprosptare a imaginii ecran (circa 1/50secunde) pentru afiarea unei imagini deja construite, orict de complexa.

    6.7. Corecia formelor imaginilor sintezate

    Fiecrui driver grafic i mod grafic le corespunde o anumita dimensiune a pixelului pe ecran.Aceasta este reprezentat prin raportul dintre dimensiunea pe orizontala (limea) i dimensiunea peverticala ( nlimea) ale unui pixel.

    De regula acest raport este subunitar, ce duce la afiarea figurilor generate deformate(lungite pe verticala). Pentru a calcula i corecta distorsiunile, introduse de forma dreptunghiular aunui pixel, se folosesc dou funcii din biblioteca Getaspectratioi Setaspectratio.

    Getaspectratio(xp,yp)- funcia ntoarce doua valori ntregi, reprezentnd dimensiunile pe x i y aunui pixel.

    Funciile de afiare din biblioteca grafica efectueaz corecia de pixel. Daca figurile apar

    deformate pe ecran, cauza o constituie reglarea electronica necorespunztoare a monitorului. Aceastapoate fi modificata manual. Funcia Circlepoate fi folosita ca o metoda de verificare a corectitudiniireglajului electronic al monitorului. Corecia de pixel nu este efectuata pentru linii, poligoane, elipsesau arce de elipsa.

    Setaspectratio(xp,yp) - funcia stabilete raportul dintre dimensiunea pe x i pe y a unui pixel.Raportul este folosit automat ca factor de scalare de funciile de afiare cerc, arc de cerc i sector. Serecomand utilizarea acestei funcii atunci cnd cercul generat de funcia Circle din biblioteca estedeformat (pe verticala sau pe orizontala).

    Corecia de pixel se poate realiza prin program - utiliznd funcia Setaspectratio - sau prinreglarea manuala a monitorului.

  • 7/25/2019 Graf Prelegeri

    34/136

    34

    7.Formatele fiierelor de grafic

    Optimizarea lucrarilor grafice si proiectarea aplicatiilor grafice portabile necesita o bunaalegere a formatului fisierului grafic. Modelele de desenare traditionale ce intervin asupra fonturilor

    de caractere si asupra marginilor sunt: modul bitmap si modul vectorial. Fiecare din aceste modele

    influenteaza crearea imaginilor, modificarile ulterioare, facilitatile de import/export intre aplicatii,

    calitatea imprimarii.

    7. 1. Modele de reprezentare bitmap (harti de biti)

    Imaginile bitmap sunt stocate punct cu punct. Aplicatiile bitmap construiesc imaginea prin

    umplerea fiecarui punct, ca un mozaic, putand fi usor editat folosind un instrument pensula

    (Paintbrush). Modul bitmap este folosit de scanner pentru analiza imaginii si este singurul mod de

    extragere pentru periferice numerice.

    Limitarile modelului bitmap sunt date atat de conservarea definitiei imaginii de la creare la

    imprimare, fara a tine cont de rezolutia reala a dispozitivelor de iesire (afisare sau imprimare),

    rezultand o redare neoptimizata a imaginii, cat si de ocuparea dezavantajoasa a spatiului de memorie.

    Culoarea fiecarui punct ce compune imaginea bitmap este reprezentata binar, de unde si necesitatea

    unui spatiu de memorie foarte mare.

    FORMAT .TIF .GIF .TGA .BMP .JPG

    DOMENIUL DE schimburi schimb de imagini de format de video

    APLICATIE de fisiere fisiere sinteza imagini in Win

    bitmap si OS/2MARIMEA PE 185 KB sau 67 KB 374 KB 17 MB 303 KB

    DISC (exemplu 17 MB

    comparativ)

    MARIMEA 17 MB 5,8 MB 17 MB 17 MB 17 MB

    FISIERULUI

    DECOMPRIMAT

    COMPRESIE posibila DA DA NU reglabila

    SISTEME DE 8b, 24b, index pe 8b 8b, 16b, 4b, 8b,

    24b 8b, 24bCODIFICARE A 32b 24b, 32b

    CULORIINUMAR DE max.16,7 max. 256 max.16,7 max.16,7 mil -

    CULORI mil mil

    OBSERVATII format nerecomandat

    standard pentru imagini

    complexe

    Tabelul 1-1. Principalele formate de fisiere bitmap.

    Avantajele modelului bitmap se refera la buna adaptare pentru desenarea imaginilor complexe

    (fotografii), fiind folosit de produse software de retusare a imaginii si prezentare asistata de

    calculator.

  • 7/25/2019 Graf Prelegeri

    35/136

    35

    Aplicatiile care utilizeaza imagini in format harti de biti se numesc aplicatii de pictura (paint

    programs). Principalele formate de fisiere bitmap sunt comparate in tabelul 1-3.

    TIF (Tag Image File Format) este un format bitmap propus de Aldus-Microsoft. Permite o

    codificare adaptata cel mai bine schimbului de imagini intre aplicatii si sisteme (cu conditia folosirii

    in format necomprimat). In practica exista diferite tipuri de format TIF (prin deosebirea algoritmuluide comprimare facultativ), formatul fiind irecuperabil de la o aplicatie la alta. Versiunea 6.0 a

    formatelor TIF (ultima) permite salvarea in standardul CMYK. Formatul permite codificarea

    imaginilor monocrome, nuante de gri sau color (RGB pe 8b si pe 24b), cu diferite rezolutii.

    TGA (TarGA) este un format bitmap folosit in aplicatii de prelucrare a imaginilor de gama

    inalta (imagini de sinteza sau pentru design industrial).

    GIF (Graphics Interchange Format), format bitmap propus de CompuServe, este folosit pentru

    schimbul de fisiere din retelele publice (inclusive World Wide Web). Exista doua variante ale

    standardului: GIF87a si GIF89a. Diferentele intre cele doua formate sunt minore. Are o rata de

    compresie ce permite utilizarea extensiva, in special pentru scanarea fotografiilor. Formatul GIFfoloseste pentru comprimare algoritmul Lempel-Ziv Welch (o varianta a algoritmului de codificare

    Huffman, vezi sectiunea referitoare la compresii). Formatul permite codificarea imaginilor

    monocrome, nuante de gri sau color, cu diferite rezolutii. Este limitat la reprezentarea culorii pe 8

    biti (256 culori) deci este folosit in special pentru imagini in culori distinctive, dar si pentru

    codificarea imaginilor transparente (culoare dominanta neutra).

    Figura 1-1. Rularea si stabilirea caracteristicilor unui fisier GIF animatfolosind aplicatia MS GIF Animator.

    Un fisier GIF poate contine o secventa de mai multe cadre bitmap, care sa constituie animatie.

    Cadrele sunt transmise la ecran cu sau fara pauza intre ele, fiind folosite in special de proiectantii de

    pagini web (figura