1 Grafika komputerowa Wykład 7 Krzywe na płaszczyźnie
2 Krzywe parametryczne:Krzywa składa się ze wszystkich punktów P(t) dla parametru t z przedziału
3 Krzywe parametryczne:Najprostsza krzywa parametryczna – odcinek o końcach PP i PK W praktyce chcemy mieć możliwość łatwego intuicyjnego kształtowania krzywej Zwykle odbywa się to przez wskazanie punktów kontrolnych P0, P1,…,Pn Punkty na krzywej wyznaczamy wówczas stosując do punktów kontrolnych wagi Bi(t): Wagi Bi(t) zwykle przyjmują postać wielomianów
4 Krzywa interpolacyjna z wielomianami Lagrange’a:Zadanych jest n+1 punktów kontrolnych P0, P1,…,Pn oraz n+1 odpowiadających im wartości parametru skalarnego: t0=tP, t1, t2,…, tn=tK, ti
5 Krzywa interpolacyjna z wielomianami Lagrange’a:Zaleta: Można wymusić przechodzenie przez zadane punkty kontrolne Wada: Przy modelowaniu skomplikowanych kształtów wymagany jest wysoki stopień wielomianu (wiele punktów kontrolnych) Przebieg krzywej pomiędzy punktami kontrolnymi jest w tym przypadku trudny do przewidzenia Krzywa wykazuje znaczne oscylacje pomiędzy punktami kontrolnymi
6 Krzywa Beziera: Wielomian Bernsteina: Krzywa Beziera (def):dla t z przedziału
7 Krzywa Beziera: Dla Łatwo zauważyć, że: P1 : P2 P3 P0
8 Krzywa Beziera – własności:(1) Punkty P0 i Pn leżą na krzywej (2) dla Krzywa leży w całości w powłoce wypukłej punktów (3) Pochodna . Stąd: Krzywa w punktach 0 i 1 jest styczna do odcinków
9 Krzywa Beziera – obliczanie wielomianu:Obliczanie pozycji punktu na krzywej z definicji może prowadzić do problemów obliczeniowych ze względu na występowania we wzorze bardzo dużych (wartości symbolu Newtona) i bardzo małych (ti) Wykorzystując zależności: Pierwszy nawias: wielomian Beziera dla punktów Drugi nawias: wielomian Beziera dla punktów Wielomian o n punktach kontrolnych można wyrazić jako kombinację dwóch wielomianów o n-1 punktach kontrolnych
10 Krzywa Beziera – obliczanie wielomianu:Punkty na krzywej Beziera można wyznaczyć jako interpolację punktów krzywych wielomianów niższego stopnia. Algorytm obliczania wielomianu: for t=0 to 1 step t { for i=0 to m Ri = Pi; n = m; while (n > 0) for i = 0 to n - 1 n = n – 1; for i = 0 to n Ri = Qi; } P(t) = R0; Wyznaczyć położenie punktu na krzywej dla t=1/3. P1 P2 P3 P0
11 Sklejana krzywa Beziera:Krzywa Beziera nie przechodzi przez wszystkie swoje punkty kontrolne W niektórych zastowaniach potrzebujemy krzywej gładkiej przechodzącej przez zadane punkty Stopień wielomianu krzywej powinien być możliwie niski Krzywą o wymaganych własnościach można uzyskać łącząc odpowiednio dobrane segmenty Beziera np. trzeciego stopnia (4 punkty kontrolne) Zasada tworzenia krzywej sklejanej: Punkt końcowy segmentu poprzedniego i punkt początkowy segmentu następnego są sobie równe – ciągłość krzywej Punkty końcowe P0,k i P3,k są jawnie wskazywane – krzywa będzie przechodziła przez te punkty Pozostałe punkty kontrolne P1,k,P2,k dla każdego k-tego segmentu są wyznaczane automatycznie tak aby zachować gładkość krzywej – wykorzystujemy to własność styczności krzywej do odcinków P0,kP1,k i Pn-1,k,Pn,k
12 Sklejana krzywa Beziera:P3,1=P0,1 P1,1 P2,1 P1,2 : P1,1 P1,3 P0,1 Przykład krzywej sklejanej o dwóch segmentach - punkty wskazane - punkty wyznaczone automatycznie
13 Konstrukcja odpowiednich funkcji wagowych – funkcje B-sklejaneKrzywe B-sklejane: W przypadku krzywych o wielu punktach kontrolnych pożądane byłoby aby położenie punktu kontrolnego nie wpływało na przebieg całej krzywej a tylko na jej niewielki fragment. W tym celu współczynnik wagowy Bi dla punktu Pi powinien być niezerowy tylko dla przedziału ΔT(i) =
14 Krzywe B-sklejane: Funkcja B–sklejana m-tego rzędu – funkcja Ni,m(t) mająca wartość 0 we wszystkich podprzedziałach z wyjątkiem m+1 podprzedziałów (i – indeks punktu kontrolnego, dla którego definiujemy funkcję) 1 ti ti+1 funkcja B–sklejana stopnia m w przedziale 1 ti ti+1 ti+2 funkcja liniowa (m = 1 )
15 Krzywe B-sklejane: t0,..tm-1 oraz tn+2,…tn+m+1 – punkty brzegowe P0 P1ti ti+1 ti+2 ti+3 funkcja kwadratowa (m = 2 ) P0 P1 P2 P3 P4 P5 t0 t1 t2 t3 t4 t5 t6 t7 t8 t0,..tm-1 oraz tn+2,…tn+m+1 – punkty brzegowe
16 Krzywe B-sklejane: P0 P1 P2 P3 P4 P5 t t0 t1 t2 t3 t4 t5 t6 t7 t8 Tak zdefiniowana krzywa zaczyna się i kończy w punkcie (0,0) – dla t = t0 i t = tn+m+1 y P1 P2 P0 P4 P3 P5 x Wygodniej byłoby manipulować krzywą gdyby zaczynała się i kończyła we wskazanych punktach
17 Krzywe B-sklejane: P0 P1 P2 P3 P4 P5 t t0 t1 t2 t3 t4 t5 t6 t7 t8 Dodajemy m-1 sztucznych punktów kontrolnych na początku i na końcu sekwencji punktów kontrolnych – łącznie k+2m-2 punktów: P’0 =P’1=…=P’m-2=P0 oraz P’k+m-1=…=P’k+2m-3=PK P’i=Pi-m dla i=m-1, m, m+1,…,k+m-2 tj+1-tj=1, t0=-m, tm=0 Generujemy krzywą dla t z przedziału (0,k) y P1 P2 P0 P4 P3 P5 x
18 Krzywe B-sklejane – własności:dla dla t(tm, tn) Wnioski: Funkcja bazowa dla Pi jest niezerowa tylko w m+1 przedziałach t więc zmiana pojedynczego punktu Pi ma wpływ na krzywą tylko w m+1 przedziałach. Krzywa B–sklejana leży wewnątrz powłoki wypukłej punktów wiodących. Ponieważ na każdy punkt ma wpływ co najwyżej m+1 punktów to krzywa leży również wewnątrz sumy powłok wypukłych kolejnych ciągów m+1 punktów wiodących.