This shows you the differences between two versions of the page.
egc:laboratoare:03 [2021/10/12 10:57] chris.luntraru Filename update |
egc:laboratoare:03 [2021/10/12 11:07] (current) chris.luntraru Filename and class name update |
||
---|---|---|---|
Line 157: | Line 157: | ||
<note> | <note> | ||
- | În cadrul laboratorului, în fișierul ''Laborator3.cpp'', există o serie de obiecte (pătrate) pentru care, în funcția ''Update()'', înainte de desenare, se definesc matricile de transformări. Comanda de desenare se dă prin funcția ''RenderMesh2D()''. | + | În cadrul laboratorului, în fișierul ''lab3.cpp'', există o serie de obiecte (pătrate) pentru care, în funcția ''Update()'', înainte de desenare, se definesc matricile de transformări. Comanda de desenare se dă prin funcția ''RenderMesh2D()''. |
<code cpp> | <code cpp> | ||
Line 264: | Line 264: | ||
<note> | <note> | ||
- | Transformarea de vizualizare este deja implementată în clasa ''Laborator3_Vis2D'': | + | Transformarea de vizualizare este deja implementată în clasa ''lab3_vis2D'': |
<code cpp> | <code cpp> | ||
//2D vizualization matrix | //2D vizualization matrix | ||
- | glm::mat3 Laborator3_Vis2D::VisualizationTransf2D(const LogicSpace & logicSpace, const ViewportSpace & viewSpace) | + | glm::mat3 Lab3_Vis2D::VisualizationTransf2D(const LogicSpace & logicSpace, const ViewportSpace & viewSpace) |
{ | { | ||
float sx, sy, tx, ty; | float sx, sy, tx, ty; | ||
Line 285: | Line 285: | ||
<note> | <note> | ||
- | În cadrul laboratorului, în clasa ''Laborator3_Vis2D'', este creat un pătrat, în spațiul logic (0,0) - (4,4). De reținut este faptul că acum nu mai trebuie să raportăm coordonatele pătratului la spațiul de vizualizare (cum se intamplă în exercițiile anterioare), ci la spațiul logic pe care l-am definit noi. | + | În cadrul laboratorului, în clasa ''Lab3_Vis2D'', este creat un pătrat, în spațiul logic (0,0) - (4,4). De reținut este faptul că acum nu mai trebuie să raportăm coordonatele pătratului la spațiul de vizualizare (cum se intamplă în exercițiile anterioare), ci la spațiul logic pe care l-am definit noi. |
<code cpp> | <code cpp> | ||
Line 332: | Line 332: | ||
<note tip> | <note tip> | ||
În cadrul acestui laborator aveți de programat în două clase: | În cadrul acestui laborator aveți de programat în două clase: | ||
- | * ''Laborator3.cpp'', pentru familiarizarea cu transformările 2D de translație, rotație și scalare | + | * ''lab3.cpp'', pentru familiarizarea cu transformările 2D de translație, rotație și scalare |
- | * ''Laborator3_Vis2D.cpp'', pentru familiarizarea cu transformarea fereastră-poartă | + | * ''lab3_vis2D.cpp'', pentru familiarizarea cu transformarea fereastră-poartă |
- | Din clasa ''Main'' puteți să alegeți ce laborator rulați: | + | Din fisierul ''main.cpp'' puteți să alegeți ce laborator rulați: |
<code cpp> | <code cpp> | ||
- | World *world = new Laborator3(); | + | World *world = new Lab3(); |
</code> | </code> | ||
Line 343: | Line 343: | ||
<code cpp> | <code cpp> | ||
- | World *world = new Laborator3_Vis2D(); | + | World *world = new Lab3_Vis2D(); |
</code> | </code> | ||
</note> | </note> | ||
Line 356: | Line 356: | ||
- Descarcăți [[https://github.com/UPB-Graphics/Framework-EGC/archive/master.zip|framework-ul de laborator]] | - Descarcăți [[https://github.com/UPB-Graphics/Framework-EGC/archive/master.zip|framework-ul de laborator]] | ||
- | - Completați funcțiile de translație, rotație și scalare din ''/Laborator3/Transform2D.h'' | + | - Completați funcțiile de translație, rotație și scalare din ''lab3/transform2D.h'' |
- Să se modifice pașii de translație, rotație și scalare pentru cele trei pătrate ca să se creeze animații. | - Să se modifice pașii de translație, rotație și scalare pentru cele trei pătrate ca să se creeze animații. | ||
- | - Cu tastele W, A, S, D să se translateze fereastra logică ''Laborator3_Vis2D''. Cu tastele Z și X să se facă zoom in și zoom out pe fereastra logică. | + | - Cu tastele W, A, S, D să se translateze fereastra logică ''lab3_vis2D''. Cu tastele Z și X să se facă zoom in și zoom out pe fereastra logică. |
<hidden> | <hidden> | ||
Bonusuri posibile: | Bonusuri posibile: | ||
* **[Bonus]** Diverse combinații de transformări (primul pătrat stă pe loc, al doilea se rotește în jurul lui și al treilea în jurul celui de-al doilea - cum sunt soarele, pământul și luna) | * **[Bonus]** Diverse combinații de transformări (primul pătrat stă pe loc, al doilea se rotește în jurul lui și al treilea în jurul celui de-al doilea - cum sunt soarele, pământul și luna) | ||
</hidden> | </hidden> |