This is an old revision of the document!
Laboratorul 09
Reamintire!!! Puteți prezenta rezolvările cerințelor de până la 2 laboratoare, în fiecare săptămână. De exemplu, puteți prezenta laboratorul curent și pe cel din săptămâna anterioară, în totalitate sau parțial, inclusiv punctajul pentru cerința bonus :) .
Pentru rezolvarea cerințelor din cadrul acestui labroator:
Descărcați framwork-ul de laborator și copiați, din arhiva descărcată, directorul
Lab9, în interiorul directorului
gfx-framework-ppbg\src\lab din versiunea voastră de proiect.
Adăugați în fișierul lab_list.h
, linia #include “lab/lab9/lab9.h”
.
Folosiți din nou utilitarul CMake pentru a regenera proiectul. Pentru a vă reaminti procesul de realizare a setup-ului, puteți să reconsultați
pagina dedicată acestui lucru.
Introducem conceptul de curba de forma libera pentru acele curbe ce nu pot fi definite analitic, printr-o formula inchisa. Exemple de curbe analitice sunt:
Curbe Bézier
Prima curba de forma libera ce a fost definita, cronologic, este curba de baza descrisa mai jos ce a fost popularizata de catre Pierre Bézier in anii 60'. Aceasta este descrisa initial de catre Paul de Casteljau in obtinerea unui patent in 1959, dar este publicata abia in anii 80'. Cei doi autori au dezvoltat parametrizarea acestei forme independent.
Curba Bézier este o curba de aproximare ce contine un set de puncte ce controleaza forma curbei. Acest set poate contine orice numar de puncte. Formula pentru 2, 3 si 4 puncte de control arata in felul urmator:
Nr.
puncte
control | Formula | Reprezentare vizuala |
2 | $ B_2(P_0, P_1, t) = (1-t) \cdot P_0 + t \cdot P_1 $ | |
3 | $ B_3(P_0, P_1, P_2, t) = (1-t) \cdot B_2(P_0, P_1, t) + t \cdot B_2(P_1, P_2, t) $ | |
4 | $ B_4(P_0, P_1, P_2, P_3, t) = (1-t) \cdot B_3(P_0, P_1, P_2, t) + t \cdot B_3(P_1, P_2, P_3, t) $ | |