This shows you the differences between two versions of the page.
ppbg:laboratoare:01 [2024/09/24 18:30] andrei.lambru |
ppbg:laboratoare:01 [2024/10/10 18:31] (current) andrei.lambru [Cerințe laborator] |
||
---|---|---|---|
Line 2: | Line 2: | ||
<note tip> | <note tip> | ||
- | Bun venit la prima activitate practică a acestei materii. În fiecare săptămână, până la finalul semestrului, vom folosi un framework adaptat special pentru aceste activități practice. Framwork-ul este scris în limbajul C++ și folosește API-ul grafic OpenGL. Primul pas al acestui laborator este să realizați [[ ppbg:setup-framework | setup-ul framework-ului ]]. | + | Bun venit la prima activitate practică a acestei materii! În fiecare săptămână, până la finalul semestrului, vom folosi un framework adaptat special pentru aceste activități practice. Framwork-ul este scris în limbajul C++ și folosește API-ul grafic OpenGL. Primul pas al acestui laborator este să realizați [[ ppbg:setup-framework | setup-ul framework-ului ]]. |
</note> | </note> | ||
Line 207: | Line 207: | ||
<code cpp> | <code cpp> | ||
- | float x = position.x; | + | float x = v.x; |
- | float y = position.y; | + | float y = v.y; |
</code> | </code> | ||
Line 234: | Line 234: | ||
glm::vec2 v = glm::vec2(4.0f, 3.0f); | glm::vec2 v = glm::vec2(4.0f, 3.0f); | ||
- | float magnitude = glm::length(v); | + | float norm = glm::length(v); |
</code> | </code> | ||
Line 256: | Line 256: | ||
==== Descrierea culorilor ==== | ==== Descrierea culorilor ==== | ||
- | TBA | + | Conceptul de culoare este unul complex, care ar putea necesita conținutul unui curs în sine. În domeniul graficii pe calculator, se utilizează modele matematice, denumite //modele de culoare// pentru a prelucra o astfel de informație. În practică, API-urile grafice, precum și API-ul OpenGL, pe care îl utilizăm în cadrul framework-ului, utilizează modelul de culoare RGB, la care ne vom rezuma și noi până la finalul semestrului. |
+ | |||
+ | Modelul de culoare RGB descrie culorile prin descompunerea lor în 3 culori primare, respectiv: roșu, verde și albastru. Acronimul "RGB" provine de la numele lor în limba engleză: "**R**ed", "**G**reen" și "**B**lue". | ||
+ | |||
+ | În cadrul laboratorului, se poate utiliza o structură de tip ''glm::vec3'', ce conține 3 componente, analog structurii ''glm::vec2'', la care se mai adaugă componenta ''z''. Se utilizează această structură de date doar pentru a stoca un triplet de valori ce este interpretat sub formă de culoare în modelul RGB. API-ul grafic OpenGL interpretează valoarea fiecărei componente a tripletului între limitele 0 și 1. Mai jos sunt descrise cateva culori de baza formate din valorile tripletelor. | ||
+ | |||
+ | <code cpp> | ||
+ | glm::vec3 red_color = glm::vec3(1, 0, 0); | ||
+ | glm::vec3 green_color = glm::vec3(0, 1, 0); | ||
+ | glm::vec3 blue_color = glm::vec3(0, 0, 1); | ||
+ | |||
+ | glm::vec3 yellow_color = glm::vec3(1, 1, 0); | ||
+ | glm::vec3 cyan_color = glm::vec3(0, 1, 1); | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Aprofundarea modelelor de culoare depășește conținutul acestui curs. Pentru a obține mai multe informatii despre acest subiect, puteți consulta următoarele cărți: | ||
+ | * Levkowitz, Haim, ed. Color theory and modeling for computer graphics, visualization, and multimedia applications. Boston, MA: Springer US, 1997. | ||
+ | * Fairchild, Mark D. Color appearance models. John Wiley & Sons, 2013. | ||
+ | </note> | ||
==== Metode utilitare ==== | ==== Metode utilitare ==== | ||
Line 292: | Line 311: | ||
bool inside_triangle = abs(area_v1v2v3 - (area_pv1v3 + area_pv1v2 + area_pv2v3)) < EPSILON; | bool inside_triangle = abs(area_v1v2v3 - (area_pv1v3 + area_pv1v2 + area_pv2v3)) < EPSILON; | ||
- | </code> \\ Dupa rezolvarea acestei cerinte, ar trebui sa obtineti rezultatul urmator: {{ :ppbg:laboratoare:vectors-task-6.png?600 |}} | + | </code> \\ După rezolvarea acestei cerințe, ar trebui să obțineți rezultatul următor: {{ :ppbg:laboratoare:vectors-task-6.png?600 |}} |
- | <hidden> | ||
Bonus: | Bonus: | ||
- | - In cadrul exercitiului 4, desenati cu o culoare diferita arcul de cerc pentru unghiul mare dintre cei doi vectori. | + | În cadrul exercițiului 4, desenați cu o culoare diferită arcul de cerc pentru unghiul mare dintre cei doi vectori. După rezolvarea acestei cerințe, ar trebui să obțineți rezultatul următor: {{ :ppbg:laboratoare:vectors-task-bonus.png?600 |}} |
- | </hidden> | + | |