Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE


AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


GRAFICA - Unit-ul Graph

c

+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Trimite pe Messenger
Tablouri multi-dimensionale
Pointeri si tablouri
Structura de tip stiva
Verificarea existentei a x elemente pare intr-o lista liniara
Probleme rezolvate in C la informatica
OPERATORI SI EXPRESII
Modifica informatia primului nod din lista
crearea unei liste predefinite cu 3 elem
Algoritmi divide et impera
Tipuri de structuri de date - Tablouri

TERMENI importanti pentru acest document

:

GRAFICA

1. Introducere

 

Placa grafica sau adaptorul de ecran este componenta hardware a calculatorului care asigura gestiunea memoriei ecran si controlul monitorului video.

Drive-ul grafic este componenta software care comanda placa grafica.

Memoria ecran pastreaza informatiile care se afiseaza pe ecran si poate fi adresata ca o memorie obisnuita.

Placa grafica trateaza ecranul in doua moduri: text si grafic:

- in primul, fiecare caracter care urmeaza sa apara pe ecran este pastrat in memorie pe doi octeti: primul cuprinde codul ASCII al caracterului, iar al doilea cuprinde caracteristicile caracterului;

- in modul grafic memoria ecran poate cuprinde imaginea codificata a mai multor ecrane.

Pagina video este zona din memoria unui ecran necesara pentru memorarea unui ecran. La un moment dat, numai una din paginile video apare pe monitor; aceasta se numeste pagina vizibila.

2. Unit-ul Graph

 

2.1. Initializarea modului grafic

 

O anumita placa grafica poate lucra in mai multe moduri grafice si fiecarui mod grafic ii corespunde un driver grafic specific. Initializarea unui mod grafic se realizeaza prin apelul procedurii InitGraph si are forma: InitGraph(driver,mod_grafic,cale), unde driver este o variabila a carei valori reprezinta codul unui driver grafic, mod_grafic este o variabila a carei valori reprezinta codul unui mod grafic, iar cale este o expresie de tip string.

Revenirea la modul video initial se realizeaza prin apelul procedurii CloseGraph.

2.2. Configuratia ecranului grafic

Coltul din stinga sus are coordonatele (0,0). Coordonatele ecranului din coltul din dreapta jos se pot obtine apelind functiile GetMaxX si GetMaxY, fara parametrii.

2.3. Culori

 

Procedura InitGraph realizeaza initializarea paletei de culori.

Culoarea fondului este culoarea din paleta cu indicele 0. Deci culoarea fondului este neagra si se poate schimba cu ajutorul procedurii SetBkColor.

Culoarea cu care se deseneaza este culoarea din paleta cu indicele 15 si se poate modifica cu procedura SetColor.

2.4. Desenarea punctelor

 

Procedura PutPixel aprinde un pixel avind coordonatele (x,y) cu culoarea culoare. Apelul are forma PutPixel(x,y,culoare).

2.5. Desenarea segmentelor de dreapta

 

Segmentele de dreapta se pot trasa ca linii de diferite tipuri si grosimi; caracteristicile liniei se fixeaza cu ajutorul procedurii SetLineStyle. Apelul are forma:

SetLineStyle(tip_linie,model,grosime).

2.6. Schimbarea pozitiei punctului curent

 

Se realizeaza prin procedurile:

-          MoveTo se apeleaza prin MoveTo(x,y);

-          MoveRel se apeleaza prin MoveRel(x,y);

2.7. Desenarea liniilor frinte si a poligoanelor

1) Desenarea dreptunghiurilor se realizeaza prin apelul procedurii Rectangle: Rectangle(x1,y1,x2,y2);

2) Desenarea liniilor frinte se realizeaza prin apelul procedurii DrawPoly: DrawPoly(n,virf), unde n este numarul de puncte care vor uni linia frinta;

3) Desenarea poligoanelor cu n virfuri se realizeaza prin apelul: DrawPoly(n+1,virf).

2.8. Desenarea cercurilor, arcelor de cerc si de elipsa

1) Desenarea cercurilor se realizeaza prin apelul procedurii Circle: Circle(x,y,raza);

2) Desenarea arcelor de cerc se realizeaza prin apelul procedurii Arc: Arc(x,y,unghi_initial,unghi_final,raza);

3) Desenarea arcelor de elipsa si a elipselor se realizeaza prin apelul procedurii Ellipse: Ellipse(x,y, unghi_initial,unghi_final,raza_x,raza_y).

2.9. Desenarea figurilor geometrice hasurate

Procedurile care realizeaza desenul si hasurarea sunt:

1) SetFillStyle se apeleaza prin SetFillStyle(model,culoare);

2) SetFillPattern daca se doreste o hasura definita de utilizator. Se apeleaza prin SetFillPattern(model_pers,culoare);

Procedurile care realizeaza desenarea contururilor figurilor cu culoarea si hasura aleasa sunt:

1) Bar deseneaza si hasureaza un dreptunghi; se apeleaza prin Bar(x1,y1,x2,y2);

2) Bar3D pt paralelipiped prin Bar3D(x1,y1,x2,y2,adincime,capac);

3) FillPoly pt poligon prin FillPoly(n,virf);

4) FillEllipse pt elipsa - prin FillEllipse(x,y,raza_x,raza_y);

5) Sector pt sector de elipsa - prin Sector(x,y,unghi_initial,unghi_final,raza_x, raza_y);

6) PieSlice pt sector de cerc prin PieSlice(x,y,unghi_initial,unghi_final,raza);

7) FloodFill prin FloodFill(x,y,culoare_margine).

2.10. Raportul aspect exprima raportul dintre dimensiunea pe orizontala si aceea pe verticala a unui pixel si se poate cacula folosind procedura GetAspectRatio(numarator,numitor).

2.11. Afisarea textelor

Stabilirea atributelor asociate textelor se realizeaza prin executarea urmatoarelor proceduri:

1) SetTextStyle(tip_caractere,directie,marime), unde parametrul directie determina directia de afisare (orizontala sau verticala), iar parametrul marime determina marimea caracterelor care se vor afisa;

2) SetTextJustify(orizontal,vertical) stabileste modul de aliniere al textului, pe orizontala si pe verticala, fata de pozitia punctului curent.

Afisarea propriu-zisa a textelor se realizeaza cu ajutorul procedurilor:

1) OutText(sir);

2) OutTextXY(x,y,sir) - nu modifica pozitia punctului curent.

2.12. Ferestre de afisare

O fereastra de afisare este o zona dreptunghiulara in care se deseneaza procedurile apelate dupa executarea procedurii SetViewPort. Aceasta deschide o fereastra ce ramane activa pana la deschiderea unei noi ferestre. Coordonatele care apar in procedurile urmatoare procedurii SetViewPort sunt coordonate relative la fereastra deschisa, iar coordonatele absolute se obtin adunind coordonatele originii ferestrei.

2.13. Tehnici de animatie

Orice program de animatie trebuie sa cuprinda urmatorii pasi:

1) afisarea corpului sau a figurii;

2) o pauza care sa permita perceptia imaginii afisate;

3) stergerea imaginii afisate la pasul 1;

4) modificarea pozitiei corpului sau figurii.

Tehnici de animatie:

- pt stergerea figurii, se redeseneaza corpul cu culoarea fondului;

- se apeleaza procedura SetWriteMode;

- se utilizeaza procedurile GetImage si PutImage;

- se utilizeaza procedurile de manipulare a paginilor video;

Pagina asupra careia actioneaza la un moment dat procedurile grafice se numeste pagina curenta.

Procedura SetVisualPage(pagina) stabileste pagina vizibila.

Cele mai rapide tehnici de animatie sunt ultimele doua.

2.14. Reprezentarea grafica a suprafetelor

Ecuatia unei suprafete este z=f(x,y). Pentru reprezentarea suprafetei se alege o retea de puncte, care se proiecteaza si se unesc prin segmente de dreapta. Proiectia este izometrica, deoarece unitatile de masura sunt aceleasi pe cele trei axe: Ox, Oy, Oz. O suprafata poate fi data si izometric. Desenarea suprafetelor exprimate parametric se realizeaza la fel ca si a celor date prin ecuatii carteziene, dar aspectul grafic este mai bun.

2.15. Curbe Bspline parabolice pentru realizarea desenelor

Curbele Bspline parabolice sunt curbe exprimate parametric prin functii foarte simple de gradul II. O astfel de curba aproximeaza o linie poligonala cu n virfuri, care se numesc puncte de control ale curbei si nu apartin curbei.

2.16. Modificarea paletei de culori

Exista posibilitatea modificarii paletei de culori in intregime sau selectiv:

1) Procedura SetAllPalette(paleta) modifica toata paleta, iar imaginea de pe ecran isi modifica toate culorile conform noii palete;

2) Procedura SetPalette(indice,cod_culoare) modifica numai valoarea din paleta a carei indice este specificat la apel.

3. Unit-ul CRT

3.1. Prezentare generala

Subprogramele unit-ului CRT asigura tratarea ecranului in modul text si permit activarea difuzorului intern. Caracterele pot fi facute sa clipeasca. Numarul de linii si numarul de caractere pe linie este determinat de modul text in care se lucreaza. Textul poate avea 16 culori, iar fondul numai 8.

3.2. Moduri text

Modurile text mai importante, care se pot utiliza pe calculatoare cu placi VGA sau EGA sunt prezentate in tabelul T.3.2. Alegerea unui mod text se realizeaza prin apelul procedurii TextMode(mod_text), unde parametrul mod_text este o expresie de tip Word care identifica modul text. Prin apelul TextMode(LastMode) se poate reveni la modul text anterior.

Tabelul T.3.2

Moduri text

Numar maxim

De linii

Numar maxim de

caractere/linie

Constanta

Valoare

CO40

1

25

40

CO80

3

25

80

CO40+Font8*8

1+256

43(EGA),50(VGA)

40

CO80+Font8*8

3+256

43(EGA),50(VGA)

80

3.3 Stabilirea atributelor textului

a) Proceduri cu parametrii:

1) TextBackGround(culoare) stabileste culoarea fontului

2) TextColor(culoare) stabileste culoarea textului;

b) Proceduri fara parametrii:

1) HighVideo pozitioneaza pe 1 bitul 3;

2) LowVideo pozitioneaza pe 0 bitul 3;

3) NormVideo aduce variabila TextAttr la valoarea initiala.

3.4. Ferestre

Procedura care face posibila deschiderea ferestrelor se apeleaza prin Window(x1,y1,x2,y2). Parametrii x1,y1,x2,y2 reprezinta coordonate ecran absolute. Daca procedura Window nu este apelata, intregul ecran se considera fereastra activa.

1) Procedura relativa la fereastra activa - GotoXY(x,y) muta cursorul la coloana x si linia y a ferestrei active.

2) Proceduri relative la fereastra activa :

a) ClrScr sterge fereastra activa si pozitioneaza cursorul in coltul ei stinga-sus;

b) DelLine sterge linia pe care se gaseste cursorul;

c) InsLine insereaza o linie goala la pozitia cursorului;

3) Functii de tip Byte relative la fereastra activa:

a) WhereX returneaza coloana in care se afla cursorul;

b) WhereY returneaza linia in care se afla cursorul.

3.5. Exploatarea codurilor extinse generate de la tastatura

Tastele F1, F2, , F12, PgUp, PgDown, etc genereaza la apasarea lor doua coduri, primul fiind intotdeauna 0. Functia ReadKey returneaza caracterul tastat. Functia KeyPressed returneaza true la apasarea unei taste si false in caz contrar.

3.6. Proceduri pentru generarea sunetelor

Sunetele sunt generate prin apelul procedurii Sound, care activeaza difuzorul; sunetul este emis pina la dezactivarea difuzorului, realizata prin apelul procedurii NoSound. Procedura Sound se apeleaza prin Sound(frecventa), iar parametrul ei este o expresie de tip Word. Durata sunetului emis se aproximeaza cu procedura Delay(x), unde x este o expresie de tip Word.

3.7. Fisiere text asignate la Crt

La citirea dintr-un fisier text asignat la Crt, caracterele de control au functii speciale:

1. CTRL+A sterge linia introdusa;

2. CTRL+D introduce un caracter din linia precedenta;

3. CTRL+F introduce toata linia precedenta;

4. CTRL+Z termina linia si genereaza marcajul de sfirsit de fisier daca variabila predefinita CheckEof are valoarea true; altfel, nu are nici un efect.

 

 

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 229
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Distribuie URL

Adauga cod HTML in site

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2014. All rights reserved