Raunarska grafika predavanja v as mr Samir Leme

  • Slides: 33
Download presentation
Računarska grafika predavanja v. as. mr. Samir Lemeš slemes@mf. unze. ba

Računarska grafika predavanja v. as. mr. Samir Lemeš slemes@mf. unze. ba

25. Parametarske krive Predstavljanje krivulja l Parametarske krive l Parametarske kubne krivulje l Hermitovi

25. Parametarske krive Predstavljanje krivulja l Parametarske krive l Parametarske kubne krivulje l Hermitovi kubni splajnovi l Hermitove funkcije miješanja l

Predstavljanje krivulja l Pomoću niza tačaka… l l l Krivulja je predstavljena približno, kao

Predstavljanje krivulja l Pomoću niza tačaka… l l l Krivulja je predstavljena približno, kao izlomljena linija – nije pogodno za glatke linije Teško za manipulaciju jer se sve tačke moraju premještati pojedinačno Umjesto toga, krivulja se modelira kao polinom l x = x(t), y = y(t), z = z(t) l gdje su x(), y(), z() polinomi, a t je parametar

Polinomi l Linearni: l Kvadratni: l Kubni:

Polinomi l Linearni: l Kvadratni: l Kubni:

Predstavljanje krivulja l Kontrolne tačke l l Čvorovi l l Kontrolne tačke koje leže

Predstavljanje krivulja l Kontrolne tačke l l Čvorovi l l Kontrolne tačke koje leže na krivoj Splajnovi za interpolaciju l l Set tačaka koje imaju utjecaj na oblik krivulje Krivulje koje prolaze kroz kontrolne tačke (čvorove) Aproksimativni splajnovi l Samo kontrolne tačke utječu na oblik

Parametarske krive Fleksibilno predstavljanje krivulje l Ne moraju biti funkcije l l Mogu imati

Parametarske krive Fleksibilno predstavljanje krivulje l Ne moraju biti funkcije l l Mogu imati više vrijednosti u odnosu na bilo koju dimenziju

Kubni polinomi l x(t) = axt 3 + bxt 2 + cxt + dx

Kubni polinomi l x(t) = axt 3 + bxt 2 + cxt + dx l Slično za y(t) i za z(t) Neka je t: (0 <= t <= 1) l Ako se uvede oznaka T = [t 3 t 2 t 1] l Matrica koeficijenata C l l Krivulja: Q(t) = T*C

Parametarske krive l Kako odrediti tangentu na krivulju? l Ako je f(x) = l

Parametarske krive l Kako odrediti tangentu na krivulju? l Ako je f(x) = l tangenta l za (x=3) je Izvod od Q(t) je vektor tangente u t:

Izvodi l Određivanje izvoda (tangenti) krivulje:

Izvodi l Određivanje izvoda (tangenti) krivulje:

Segmenti krivulje l Krivulje se konstruišu povezivanjem krajeva više manjih segmenata l Moraju postojati

Segmenti krivulje l Krivulje se konstruišu povezivanjem krajeva više manjih segmenata l Moraju postojati pravila o tome kako se vrši povezivanje l Kontinuitet opisuje vezu l Parametarski kontinuitet l Geometrijski kontinuitet

Parametarski kontinuitet je kontinuitet linije (zajednička tačka) l C 1 je tangentni kontinuitet (brzina)

Parametarski kontinuitet je kontinuitet linije (zajednička tačka) l C 1 je tangentni kontinuitet (brzina) l C 2 je kontinuitet drugog izvoda (ubrzanje) l C 0

Geometrjski kontinuitet l Ako se položaji tačaka poklapaju l G 0 l geometrijski kontinuitet

Geometrjski kontinuitet l Ako se položaji tačaka poklapaju l G 0 l geometrijski kontinuitet Ako se smjer (ne obavezno i intenzitet) tangenti poklapa l G 1 geometrijski kontinuitet l Vrijednost tangente na kraju jedne krivulje je proporcionalna vrijednosti tangente na početku sljedeće krivulje

Parametarske kubne krivulje Da bi se osigurao C 2 kontinuitet, krivulje moraju biti najmanje

Parametarske kubne krivulje Da bi se osigurao C 2 kontinuitet, krivulje moraju biti najmanje trećeg reda l Data je parametarska definicija kubnog splajna (3. reda) u dvije dimenzije l Kako je proširiti na tri dimenzije? l

Parametarske kubne krivulje l Može se predstaviti i u matričnom obliku

Parametarske kubne krivulje l Može se predstaviti i u matričnom obliku

Koeficijenti l Kako izabrati koeficijente? l [ax bx cx dx] i [ay by cy

Koeficijenti l Kako izabrati koeficijente? l [ax bx cx dx] i [ay by cy dy] moraju zadovoljiti ograničenja koja nameću čvorovi i uslovi kontinuiteta

Parametarske krivulje l Krivulju je teško konceptualizirati kao x(t) = axt 3 + bxt

Parametarske krivulje l Krivulju je teško konceptualizirati kao x(t) = axt 3 + bxt 2 + cxt + dx (Crtači ne razmišljaju o koeficijentima ili kubnim jednačinama) l Umjesto toga, krivulja se definiše kao kombinacija 4 precizno definisana kubna polinoma l Svaki tip krivulje definiše različite kubne polinome

Parametarske krivulje Hermitove - dvije krajnje tačke i dva vektora tangenti u krajevima l

Parametarske krivulje Hermitove - dvije krajnje tačke i dva vektora tangenti u krajevima l Bezier - dvije krajnje tačke i dvije druge tačke koje definišu vektore tangenti u krajevima l Splajnovi - četiri kontrolne tačke l l C 1 i C 2 kontinuitet u tačkama dodira l Približavaju se svojim kontrolnim tačkama, ali ih ne moraju uvijek dodirnuti

Hermitovi kubni splajnovi l Primjer čvorova i kontinuiteta

Hermitovi kubni splajnovi l Primjer čvorova i kontinuiteta

Hermitovi kubni splajnovi Po jedna kubna krivulja za svaku dimenziju l Krivulja u x/y

Hermitovi kubni splajnovi Po jedna kubna krivulja za svaku dimenziju l Krivulja u x/y ravni ima dvije krivulje: l

Hermitovi kubni splajnovi l l l 2 -D Hermitov kubni splajn je definisan sa

Hermitovi kubni splajnovi l l l 2 -D Hermitov kubni splajn je definisan sa 8 parametara: a, b, c, d, e, f, g, h Kako se intuitivne krajnje tačke pretvaraju u ovih 8 (relativno) neintuitivnih parametara? Poznato je: l l (x, y) položaj za t = 0, p 1 (x, y) položaj za t = 1, p 2 (x, y) izvod za t = 0, dp/dt (x, y) izvod za t = 1, dp/dt

Hermitovi kubni splajnovi l Poznat je: l (x, y) položaj za t = 0,

Hermitovi kubni splajnovi l Poznat je: l (x, y) položaj za t = 0, p 1

Hermitovi kubni splajnovi l Poznat je: l (x, y) položaj za t = 1,

Hermitovi kubni splajnovi l Poznat je: l (x, y) položaj za t = 1, p 2

Hermitovi kubni splajnovi Za sad imamo 4 jednačine, ali 8 nepoznatih l Koriste se

Hermitovi kubni splajnovi Za sad imamo 4 jednačine, ali 8 nepoznatih l Koriste se izvodi: l

Hermitovi kubni splajnovi l Poznat je: l (x, y) izvod za t = 0,

Hermitovi kubni splajnovi l Poznat je: l (x, y) izvod za t = 0, dp/dt

Hermitovi kubni splajnovi l Poznat je: l (x, y) izvod za t = 1,

Hermitovi kubni splajnovi l Poznat je: l (x, y) izvod za t = 1, dp/dt

Hermitova specifikacija l Matrična jednačina za Hermitovu krivulju t 3 t 2 t 1

Hermitova specifikacija l Matrična jednačina za Hermitovu krivulju t 3 t 2 t 1 t 0 p 1 t=0 p 2 t=1 r p 1 t=0 r p 2 t=1

Rješavanje Hermitove matrice

Rješavanje Hermitove matrice

Matrice splajna i geometrije MHermite GHermite

Matrice splajna i geometrije MHermite GHermite

Rezultujuća jednačina Hermitovog splajna

Rezultujuća jednačina Hermitovog splajna

Primjeri Hermitovih krivulja

Primjeri Hermitovih krivulja

Funkcije miješanja (Blending Functions) Množenjem prve dvije matrice u donjoj lijevoj jednačini, dobiju se

Funkcije miješanja (Blending Functions) Množenjem prve dvije matrice u donjoj lijevoj jednačini, dobiju se 4 funkcije od 't' koje miješaju 4 kontrolna parametra l To su funkcije miješanja l

Hermitove funkcije miješanja l Grafička zavisnost funkcije miješanja od parametra 't'

Hermitove funkcije miješanja l Grafička zavisnost funkcije miješanja od parametra 't'

Hermitove funkcije miješanja l Svaka funkcija miješanja reflektuje utjecaj P 1, P 2, DP

Hermitove funkcije miješanja l Svaka funkcija miješanja reflektuje utjecaj P 1, P 2, DP 1, DP 2 na oblik splajna