Ministerul Educaţiei
Universitatea ”OVIDIUS” Constanţa
Facultatea de Matematică şi Informatică
Specializarea Informatică
Titlul extins al lucrării de absolvire
Lucrare de licenţă
Coordonator ştiinţific:
Lect. univ. dr. Nume Prenume Coordonator Principal
Absolvent:
Nume prenume absolvent
Constanţa
2021
Cuprins
Cuprins i
Lista Figurilor 1
1 Motivaţie 2
1.1 Secţiune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 subsecţiune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Elementele care determină animaţia . . . . . . . . . . . . . . . . . . . . . 3
2 Soluţia propusă 5
3 Prezentarea aplicaţiei 6
4 Concluzii 7
Referinţe bibliografice 8
i
Lista Figurilor
1.1 Explicaţie figură. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Prima noastră animaţie! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1
Capitolul 1
Motivaţie
1.1 Secţiune
1.1.1 subsecţiune
Text demonstrativ pentru diacritice:
ı̂ Î â Â ş Ş ţ Ţ ă Ă
Demo figura 1.1 şi o citare din fişierul [Link] [1], [2].
Figura 1.1 : Explicaţie figură.
1
Proiectul s-a derulat ı̂n cadrul şi cu sprijinul Laboratorului de CErcetare ı̂n domeniul Realităţii Virtuale şi
Augmentate (CERVA). Pentru detalii vizitaţi: [Link]
2
Motivaţie Elementele care determină animaţia
Figura 1.2 : Prima noastră animaţie!
1.2 Elementele care determină animaţia
În primul rând ne vor trebui câteva variabile care să conţină deplasarea până ı̂n momentul
curent.
static float axisRot = 0.0f;
static float globRotR = 0.0f;
static float globRotG = 120.0f;
static float globRotB = 240.0f;
Astfel avem o variabilă ce reţine rotaţia ı̂n jurul axei proprii, axisRot, ı̂mpreună cu alte 3
variabile ce reţin rotaţiile fiecărui cub ı̂n jurul originii (globRotR, globRotG, globRotB).
Arbitrar, am atribuit un caracter static acestor variabile; acest lucru face ca variabilele
marcate cu static să ı̂şi păstreze valorile de la o iteraţie la alta. Acelaşi efect se putea
obţine şi cu variabile globale. Urmează afişarea celor 3 cuburi:
glColor3f(1.0f, 0.0f, 0.0f);
glPushMatrix();
glTranslatef(0.0f,0.0f,-20); //deplasat pe axele x, y, z
glRotatef(globRotR, 0,0,1);
glTranslatef(5.0f,0.0f,0.0f);
glRotatef(axisRot,0,1,0); //rotit pe axa Y
glutSolidCube(2); //cub cu latura 2
glPopMatrix();
glColor3f(0.0f, 1.0f, 0.0f);
glPushMatrix();
glTranslatef(0.0f,0.0f,-20); //deplasat pe axele x, y, z
glRotatef(globRotG, 0,0,1);
glTranslatef(5.0f,0.0f,0.0f);
glRotatef(axisRot,0,1,0); //rotit pe axa Y
glutSolidCube(2); //cub cu latura 2
glPopMatrix();
glColor3f(0.0f, 0.0f, 1.0f);
glPushMatrix();
3
Motivaţie Elementele care determină animaţia
glTranslatef(0.0f,0.0f,-20); //deplasat pe axele x, y, z
glRotatef(globRotB, 0,0,1);
glTranslatef(5.0f,0.0f,0.0f);
glRotatef(axisRot,0,1,0); //rotit pe axa Y
glutSolidCube(2); //cub cu latura 2
glPopMatrix();
Este important de observat modul ı̂n care sunt aplicate transformările pe fiecare cub ı̂n parte:
1. prima dată cubul este deplasat cu −20 pe axa Oz astfel ı̂ncât să fie vizibil,
2. apoi se roteşte cubul cu un unghi,
3. datorită rotaţiei, translaţia aplicată, +5 pe axa Ox, va fi conformă orientării obiectului,
4. ı̂nainte de a fi afişat cubul se aplică şi o rotaţie ı̂n jurul axei sale.
După afişarea celor 3 cuburi, urmează pasul de modificare a gradelor de rotaţie folosite.
axisRot += 1.0f; axisRot=fmod(axisRot, 360.0f);
globRotR += 0.5f; globRotR=fmod(globRotR, 360.0f);
globRotG += 0.5f; globRotG=fmod(globRotG, 360.0f);
globRotB += 0.5f; globRotB=fmod(globRotB, 360.0f);
Fiind variabile statice, acestea ı̂şi păstrează valorile de la o iteraţie la alta. Mai exact, aplicând
o incrementare, axisRot += 1.0f, obţinem o nouă rotaţie care diferă de vechea rotaţie
cu un grad.
Funcţia fmod() este echivalentul operatorului %, dar acţionează asupra variabilelor ı̂n
virgulă flotantă. Mai exact, fmod(a,b) returnează restul, ı̂n virgulă flotantă, a ı̂mpărţirii
lui a la b. În acest exemplu ne ajută să păstrăm variabilele ı̂n intervalul [0, 360) grade.
4
Capitolul 2
Soluţia propusă
5
Capitolul 3
Prezentarea aplicaţiei
6
Capitolul 4
Concluzii
7
Referinţe bibliografice
[1] [Link]. Modelare şi tehnci de programare ı̂n realitatea virtuală. In Conferinţa
Naţională de Învăţământ Virtual, pages 33–38, 2005.
[2] Nicola is the great white. Dynamics and unification of animation control. The Visual
Computer, 4(5):22–31, 1989.