Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator

Referat
9.3/10 (3 voturi)
Domeniu: Calculatoare
Conține 1 fișier: docx
Pagini : 71 în total
Cuvinte : 17205
Mărime: 76.54KB (arhivat)
Publicat de: Radu A.
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Ion Trafalgar

Extras din referat

Alaturi de folosirea algoritmilor de calcul, pentru a rezolva o problema cu ajutorul calculatorului este necesara modelarea datelor specifice problemei cu ajutorul unor structuri de date. Acestea reprezinta modul de codificare/stocare a datelor in spatiul de memorie al masinii de calcul pe care se executa algoritmul precum si specificarea modului de a crea, modifica sau a avea acces la respectivele date.

O structura de date este compusa din urmatoarele trei componente:

- (1) o multime de operatii pentru manipularea tipurilor de date caracteristice obiectelor abstracte

- (2) o structura (spatiu in memorie) folosita pentru stocarea obiectelor abstracte

- (3) implementarea fiecarei operatii dintre cele specificate la (1) folosind ca suport structura de memorare specificata la (2).

Un tip de date abstracte (TDA) este o multime de operatii (abstracte) pentru manipularea unor obiecte abstracte (este vorba deci de prima componenta a definitiei unei structuri de date). TDA-ul nu contine nici o referire la modul de implementare a acestor operatii abstracte (i.e. la componentele (2) respectiv (3) ale definitiei unei structuri de date). Prin utilizarea tipurilor de date abstracte in dezvoltarea unei aplicatii de programare proiectantul poate gandi in termenii operatiilor abstracte, urmand ca implementarea efectiva a acestor operatii sa fie realizata ulterior. Modul de a realiza o aplicatie prin separarea algoritmului propriu-zis de structurile de date pe care acesta le utilizeaza se numeste abstractizarea datelor.

Folosirea tipurilor de date abstracte este strans legata de programarea modulara. Aceasta este o metoda de dezvoltare a unei aplicatii prin impartirea ei in mai multe module separate avand interfetele riguros specificate. Modulele pot fi proiectate, implementate, depanate separat si reutilizate in diferite aplicatii.

Evident, abstractizarea datelor se poate face la diferite nivele. Majoritatea limbajelor de programare au tipuri de date abstracte predefinite. De exemplu folosirea tipului de date int permite proiectantului unei aplicatii C sa gandeasca direct la nivelul operatiilor de adunare, scadere, inmultire, comparatie etc. fara a fi nevoit sa ia in considerare modul in care aceste operatii sunt efectiv implementate. Alte tipuri de date abstracte cum ar fi: lista, stiva, coada, multimea, graful, pot fi considerate plasate pe "nivele superioare" ale gandirii abstracte. Unii autori ([Aho 83]) considera ca tipurile de date abstracte sunt generalizari ale tipurilor de date primitive (cum ar fi tipul int) iar functiile/procedurile (vazute ca operatii abstracte) sunt generalizari ale operatiilor primitive (+, -, *, / etc.).

In continuare vom prezenta cateva tipuri de date abstracte utilizate adesea in problemele de geometrie algoritmica care sunt folosite in grafica pe calculator precum si modul de implementare a acestor TDA-uri. Implementarea este realizata in cazul unui spatiu de date bidimensional (i.e. datele geometrice sunt reprezentari ale unor obiecte situate in plan) dar sunt prezentate si TDA-uri folosite pentru datele 3D

1,1 Tipul de date abstracte punct (in spatiul 2D)

Un punct p in spatiul 2D este reprezentat printr-o pereche de numere reale (x,y), coordonatele carteziene ale punctului. Aceeasi reprezentare (Figura 2.1) poate fi data si vectorului de pozitie al lui p: rP=xi+yj unde x si y vor reprezenta proiectiile acestui vector pe axele de coordonate iar i si j sunt respectiv versorii (vectorii unitate) celor doua axe ale sistemului de coordonate carteziene asociat planului. De aceea unele din subiectele tratate in cursul acestui capitol se vor referi la vectori in spatiul 2D.

Operatiile fundamentale ce pot fi aplicate vectorilor sunt:

- adunarea a doi vectori:rP+rQ=(xP+xQ, yP+yQ)

- inmultirea unui vector cu un scalar: krP=(kxP, kyP)

- determinarea lungimii unui vector: ?rP?=(xP2+yP2)1/2

- normalizarea vectorului (i.e. determinarea unui versor cu aceeasi orientare):

- determinarea directiei unui vector (i.e. a unghiului (polar) pe care acesta il face cu semiaxa Ox pozitiva)

Operatiile abstracte ce corespund TDA-ului punct sunt:

- dif_p2d - decide daca doua puncte sunt sau nu diferite intre ele

- copy_p2d - copiaza un punct

- cons_p2d - construieste reprezentarea unui punct pornind de la coordonatele sale

- dfr_p2d - determina vectorul diferenta a vectorilor de pozitie (punctelor) asociati la doua puncte p1, p2 acest vector va avea aceeasi orientare cu vectorul care are originea in punctul p1 si varful (destinatia) in punctul p2

- lung_vec_poz - determina lungimea vectorului de pozitie asociat unui punct

- clasif_p2d_dr - stabileste pozitia unui punct in raport cu o dreapta determinata de alte doua puncte

- polar - determina directia (unghiul polar) vectorului de pozitie asociat unui punct

- afis_p2d - afiseaza punctul de pe ecran (coordonate intregi) situat cel mai aproape fata de un punct dat

Pentru implementarea acestor operatii fundamentale vom reprezenta punctul 2D sub forma unei structuri cu doua campuri:

typedefstruct p2d {

double x, y;

} punct, *rpunct;

Doua puncte p1, p2 se considera distincte, daca cel putin una dintre coordonatele lui p1 difera de coordonata corespunzatoare a lui p2 prin cel putin EPS. Deoarece coordonatele celor doua puncte pot rezulta prin procese care implica anumite erori de calcul, comparatiile coordonatelor nu se efectueaza direct prin intermediul operatorilor == sau != (O valoare tipica pentru constanta EPS este 1.0E-4)

int dif_p2d(rpunct p1, rpunct p2)

{ return (fabs(p1->x-p2->x)>EPS || fabs(p1->y-p2->y)>EPS); }

Functiile C pentru copierea unui punct si respectiv constructia unui punct pornind de la coordonatele sale sunt:

void copy_p2d(rpunct s, rpunct d)

Preview document

Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 1
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 2
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 3
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 4
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 5
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 6
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 7
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 8
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 9
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 10
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 11
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 12
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 13
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 14
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 15
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 16
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 17
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 18
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 19
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 20
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 21
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 22
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 23
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 24
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 25
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 26
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 27
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 28
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 29
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 30
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 31
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 32
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 33
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 34
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 35
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 36
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 37
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 38
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 39
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 40
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 41
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 42
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 43
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 44
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 45
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 46
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 47
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 48
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 49
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 50
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 51
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 52
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 53
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 54
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 55
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 56
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 57
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 58
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 59
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 60
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 61
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 62
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 63
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 64
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 65
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 66
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 67
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 68
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 69
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 70
Noțiuni de matematică folosite la cursul de elemente de grafică pe calculator - Pagina 71

Conținut arhivă zip

  • Notiuni de matematica folosite la cursul de elemente de grafica pe calculator.docx

Alții au mai descărcat și

Microsoft Excel

Obiective: 1. Crearea, redenumirea, utilizarea şi ştergerea foilor de calcul tabelar; 2. Definirea şi formatarea celulelor; 3. Definirea...

Design-ul și Machetarea Paginilor Web

Trei reguli faţă de un sit 1. Respectarea strictă a standardelor internet. 2. Alegerea riguroasă a conţinutului paginilor web. 3. Asigurarea...

Microsoft Visual Studio C++ MFC Project

In Microsoft Visual Studio cream C++  MFC Project , cu un sindur document. Aici vom incerca sa interpretam cu ajutorul graficii 2D, grafica 3D...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Excel - Baze de Date

CALCUL TABELAR. PROCESOARE DE TABELE. EXCEL Prezentare generală a calculului tabelar Procesoarele de calcul tabelar sau generatoarele de foi de...

Tehnici de Programare a Datelor

1. Care este diferenta intre un semnal continuu si un semnal continuu cuantificat? In functie de evolutia temporala semnalele se clasifica in...

Probleme Programare

Sa se scrie o functie care calculeaza cel mai mare divizor comun dintre 2 nr numere intregi nenule, utilizand algoritmul lui Euclid. /* CMMDC */...

Gestiune firmă de închiriat dvd-uri

2). Introducere După cum se observă chiar de la începuturile sale, mileniul al III-lea pare a fi mileniul informaţiei, ca atare societatea ar...

Te-ar putea interesa și

Grafică inginerească - note de curs

PREFATA Departe de a reprezenta doar o fascinaţie, grafica pe calculator a pătruns în viaţa noastră cotidiană, de la jocurile computerizate la...

Ai nevoie de altceva?