Post on 24-Feb-2020
1
Računarskagrafika
predavanjadoc.dr. Samir Lemešslemes@mf.unze.ba
25. Parametarske krive
Predstavljanje krivulja
Parametarske krive
Parametarske kubne krivulje
Hermitovi kubni splajnovi
Hermitove funkcije miješanja
Predstavljanje krivulja
Složeni geometrijski oblici u vektorskoj grafici se ne mogu uvijek opisati ravnim i kružnim (lučnim) segmentima.
Predstavljanje krivulja
Pomoću niza tačaka… 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 x = x(t), y = y(t), z = z(t)
gdje su x(), y(), z() polinomi, a t je parametar
Polinomi
Linearni:
Kvadratni:
cbtattf
battf
2
Kubni:
dctbtattf
cbtattf
23
Predstavljanje krivulja
Kontrolne tačke Set tačaka koje imaju
utjecaj na oblik krivulje
Čvorovi Kontrolne tačke Kontrolne tačke
koje leže na krivoj
Splajnovi za interpolaciju Krivulje koje prolaze kroz
kontrolne tačke (čvorove)
Aproksimativni splajnovi Samo kontrolne tačke
utječu na oblik
2
Parametarske krive
Fleksibilno predstavljanje krivulje
Ne moraju biti funkcije Mogu imati više
vrijednosti u odnosuvrijednosti u odnosu na bilo koju dimenziju
Kubni polinomi
x(t) = axt3 + bxt2 + cxt + dx
y(t) = ayt3 + byt2 + cyt + dy
z(t) = azt3 + bzt2 + czt + dz
Neka je t: (0 ≤ t ≤ 1)
Ako se uvede oznakaT = [t3 t2 t 1]
Matrica koeficijenata C
Krivulja: Q(t) = T·C
z
z
y
y
x
x
zyx
zyx
d
c
d
c
d
c
bbb
aaa
ttt 123
Parametarske krive
Kako odrediti tangentu na krivulju? Ako je f(x) =
tangenta za (x=3) je
Izvod od Q(t) je vektor tangente u t:
Izvodi
Određivanje izvoda (tangenti) krivulje:
cbax
dcbax ttdt
dttt 23 223
dt
d
c
b
a
x
d
c
b
a
x 01231 223 ttdt
dttt
Segmenti krivulje
Krivulje se konstruišu povezivanjem krajeva više manjih segmenataMoraju postojati pravila o tome kako se vrši
povezivanjepovezivanje
Kontinuitet opisuje vezu Parametarski kontinuitet
Geometrijski kontinuitet
Parametarski kontinuitet
Parametarski kontinuitet je koncept koji opisuje promjenu vrijednosti parametra duž krivulje
Može se uporediti s krivuljom koja opisuje Može se uporediti s krivuljom koja opisuje kretanje objekta, i u tom slučaju vrijeme predstavlja parametar "t"
Promjena se opisuje izvodima
Kontinuitet predstavlja pokazatelj zakrivljenosti krivulje na prelazu segmenata
3
Parametarski kontinuitet
C−1: krivulje imaju prekide (diskontinuitete)
C0: krivulje su spojene (imaju zajedničku tačku)
C1: prvi izvodi krivulja su jednaki
C2: prvi i drugi izvodi krivulja su jednaki C : prvi i drugi izvodi krivulja su jednaki
Cn: izvodi od prvog do n-tog su jednaki
Geometrjski kontinuitet
Geometrijski kontinuitet: G0 kontinuitet predstavlja neprekidnost krivulje u
tački dodira segmenata G1 kontinuitet podrazumijeva zajednički pravac p j j p
vektora tangente u tački dodira segmenata. G2 kontinuitet podrazumijeva da segmenti imaju
zajednički centar zakrivljenosti u tački dodira
Smjer (ne obavezno i intenzitet) tangenti sepoklapa, odnosno vrijednosti tangenti na krajevima dva segmenta su proporcionalne
Parametarske kubne krivulje
Da bi se osigurao C2 kontinuitet, krivulje moraju biti najmanje trećeg reda
Data je parametarska definicija kubnog splajna (3 reda) u dvije dimenzijesplajna (3. reda) u dvije dimenzije
Kako je proširiti na tri dimenzije?
Parametarske kubne krivulje
Može se predstaviti i u matričnom obliku
Koeficijenti
Kako izabrati koeficijente? [ax bx cx dx] i [ay by cy dy] moraju zadovoljiti
ograničenja koja nameću čvorovi i uslovi kontinuiteta
Parametarske krivulje
Krivulju je teško konceptualizirati kaox(t) = axt3 + bxt2 + cxt + dx
(Crtači ne razmišljaju o koeficijentima ili kubnim jednačinama)
Umjesto toga kri lja se definiše kao Umjesto toga, krivulja se definiše kao kombinacija 4 precizno definisana kubna polinoma
Svaki tip krivulje definiše različite kubne polinome
4
Parametarske krivulje
Hermitove - dvije krajnje tačke i dva vektora tangenti u krajevima
Bezier - dvije krajnje tačke i dvije druge tačke koje definišu vektore tangenti u j gkrajevima
Splajnovi - četiri kontrolne tačke C1 i C2 kontinuitet u tačkama dodira Približavaju se svojim kontrolnim tačkama, ali
ih ne moraju uvijek dodirnuti
Hermitovi kubni splajnovi
Primjer čvorova i kontinuiteta
Hermitovi kubni splajnovi
Po jedna kubna krivulja za svaku dimenziju
Krivulja u x/y ravni ima dvije krivulje:
d
c
b
a
ttt
dctbtattf x
1
)(
23
23
h
g
f
e
ttt
hgtftettf y
1
)(
23
23
Hermitovi kubni splajnovi
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?( ) p
Poznato je: (x, y) položaj za t = 0, p1
(x, y) položaj za t = 1, p2
(x, y) izvod za t = 0, dp/dt
(x, y) izvod za t = 1, dp/dt
Hermitovi kubni splajnovi
Poznat je: (x, y) položaj za t = 0, p1
dbf 23 000)0( hff 23 000)0(
xpdf
d
c
b
adcbaf
x
x
1
23
23
)0(
1000
000)0(
yphf
h
g
f
e
hgfef
y
y
1
23
23
)0(
1000
000)0(
Hermitovi kubni splajnovi
Poznat je: (x, y) položaj za t = 1, p2
23
xpdcbaf
d
c
b
adcbaf
x
x
2
23
23
)1(
1111
111)1(
yphgfef
h
g
f
ehgfef
y
y
2
23
23
)1(
1111
111)1(
5
Hermitovi kubni splajnovi
Za sad imamo 4 jednačine, ali 8 nepoznatih
Koriste se izvodi:
d
c
b
a
tttf
cbtattf
dctbtattf
x
x
x
0123)(
23)(
)(
2
2
23
h
g
f
e
tttf
gftettf
hgtftettf
y
y
y
0123)(
23)(
)(
2
2
23
Hermitovi kubni splajnovi
Poznat je: (x, y) izvod za t = 0, dp/dt
cbafx2 0203)0(
gfef y
2 0203)0(
dtdp
cf
d
c
b
a
xx
1
2
)0(
010203
dtdp
gf
h
g
f
e
y
y1
2
)0(
010203
Hermitovi kubni splajnovi
Poznat je: (x, y) izvod za t = 1, dp/dt
cbafx2 1213)1(
gfef y
2 1213)1(
dtdp
cbaf
d
c
b
a
xx
1
2
23)1(
011213
dtdp
gfef
h
g
f
e
y
y1
2
23)1(
011213
Hermitova specifikacija
Matrična jednačina za Hermitovu krivulju
t = 0
t3 t2 t1 t0
p1
pp
ea yx111000
t = 1
t = 0
t = 1
p2
r p1
r p2
dtdp
dtdp
p
dtdp
dtdp
p
h
g
f
d
c
b
y
y
y
x
x
x
2
1
2
1
1
2
0123
0100
1111
Rješavanje Hermitove matrice
f
e
b
a
d
p
p
dp
p
y
y
x
x
2
1
2
11
1111
1000
h
g
f
d
c
b
dtdp
dtdp
dtdp
dtdp
y
y
x
x
2
1
1
1
0123
0100
1111
Matrice splajna i geometrije
f
e
b
a
dp
p
p
dpp
p
y
y
x
x
2
1
2
1
1233
1122
h
g
d
c
dtdp
dtdp
dtdp
dtdp
y
y
x
x
2
1
1
1
0001
0100
MHermite GHermite
6
Rezultujuća jednačina Hermitovog splajna
Primjeri Hermitovih krivulja
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
To su funkcije To su funkcije miješanja
Hermitove funkcije miješanja
Grafičkazavisnost funkcije miješanja odmiješanja od parametra 't'
Hermitove funkcije miješanja
Svakafunkcijamiješanjareflektujereflektujeutjecaj P1, P2, P1, P2 naoblik splajna
Hermitove funkcije miješanja
Funkcije miješanja se koriste za interpolaciju krivuljakrivulja.
Svaka interpolirana tačka je linearna kombinacija ove 4 funkcije miješanja.