CATEGORII DOCUMENTE |
Program care permite manipularea unui obiect 3D complex.
Obiect 3D ales : o masa clasica
Model 3D propriu - descriere incepand cu faza de creare
Descrierea lantului de transformari folosit (figura si in cuvinte)
FARA listarea codului in proiect
Incarcare din fisier a modelului, posibilitate de salvare in fisier in orice moment, cu posibilitatea de alegere a locatiei si numelui fisierului
Coordonatele vor fi pastrate nealterate, fiecarei tip de transformari asociindu-i-se o matrice ce va contine la un moment dat toate transformarile de acel tip (ex. modelare-simulare) efectuate asupra scenei de la incarcarea modelului
Pentru toate operatiile ce necesita parametrii, fereastra de dialog de unde se iau acesti parametrii
Toate operatiile implementate in meniuri in functie de tip. O operatie nu este activa decat cand apelarea ei are sens
Toate transformarile se realizeaza cu matrici (omogene)
Translatie - dupa orice directie - se cere la alegerea operatiei
Rotatie - dupa Ox, Oy, Oz cu orige unghi- se cere la alegerea operatiei
Forfecare - dupa orice axa - se cere la alegerea operatiei; se defineste functia de forfecare
Scalare - cu orice parametrii pe fiecare axa- se cere la alegerea operatiei
Simetrie - dupa orice axa - se cere la alegerea operatiei
Implementarea tuturor tipurilor de proiectii (elevatia planul, profilul, oblica - se cere pr1 si pr2 la alegerea operatiei -, cavaliera dupa fiecare plan- se cere alfa -, cabinet dupa fiecare plan - se cere alfa -, proiectii perspective pe plane paralele cu planele sistemului de coordonate - se cere distanta de plan la alegerea operatiei -, transformarea elevatie, transformarea plan, transformarea profil, transformarea paralela generalizata, transformarea cavaliera dupa fiecare axa, transformarea cabinet dupa fiecare axa, transformarea perspectiva fundamentala dupa fiecare plan - se cere f la alegerea aplicatiei -, ) - se cere intai la initializare si se poate modifica din meniu
Doua tipuri de zoom, doua tipuri de panoramare
Toate functiile au posibilitatea de a fi comandate din tastatura
Toate functiile vor fi implementate intr-o biblioteca dll si apoi importate in proiectul principal
Cate doi algoritmi de clipping pentru linii si poligoane - se cere intai la initializare si se poate modifica din meniu
Miscarea scenei si a observatorului
OPTIONAL: Rafinare
Modelul 3D ales este o masa clasica, realizata in 3D Studio Max 2008, si exportata ca fisier .OBJ. Pentru a putea fi folosit de program a fost necesara o conversie a trinughiurilor din fisierul .OBJ in linii (codul sursa al programului care realizeaza conversia este atasat proiectului). Astfel rezultatul este un fisier .txt care contine pe prima linie numarul de puncte, apoi coordonatele acestora (fie cate o coordonata pe rand fie cate 3, aranjarea lor este indiferenta) apoi numarul de linii si liniile sub forma "varf 1->varf 2" ;
Programul realizeaza urmatoarele operatii asupra modelului 3D :
Translatie
Translatia face parte din categoria transformarilor de miscare. Ea modifica pozitia unui model fata de un reper considerat fix, fara a afecta orientarea unghiulara a acestuia.
Translatia poate fi descrisa ca un vector liber T ce va uni fiecare punct sursa cu imaginea sa prin translatie. Acest vector poarta numele de vector de translatie, iar instanta sa legata in origine are componentele tx, ty si tz
Se realizeaza dupa formulele:
, tx,ty,tz sunt componentele vectorului translatie tridimensional instantiate in origine.
Matricial se poate scrie :
=+
Sau : [C']3D=[C]3D+[T]3D , [C']3D=[C]3D+[T(tx,ty,tz)]3D
Rotatie in jurul axei oz
Rotatia face parte din categoria transformarilor de miscare. Ea modifica orientarea unghiulara a unui model fata de un punct considerat fix. In cadrul unei rotatii exista cel putin un punct care nu isi modifca pozitia. Daca el este unic atunci el poarta numele de centru de rotatie iar roratia se numeste rotatie spatiala. Daca nu, punctele care nu isi modifica pozitia apartin unei drepte numite axa de rotatie, iar rotatia este plana
Rotatia se realizeaza asa cum s-a prezentat aceasta in lucrarile de laborator si cartea de curs, in program fiind folosita rotatia in jurul axei oz folosindu-se formulele dupa cum urmeaza:
fscanf(f,'%d',&n);
fprintf(g,'%dn',3*n);
for (int i=1;i<=n;i++)
fclose(f);
fclose(g);
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1672
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved