Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
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



GRAFICA

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

CO80

25

CO40+Font8*8

43(EGA),50(VGA)

CO80+Font8*8

43(EGA),50(VGA)

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.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1188
Importanta: rank

Comenteaza documentul:

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

Creaza cont nou

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