Računarska grafika
description
Transcript of Računarska grafika
RačunarskaRačunarskagrafikagrafika
predavanjapredavanjav.as.mr. Samir Lemešv.as.mr. Samir Lemeš[email protected]@mf.unze.ba
25. 25. Parametarske kriveParametarske krive
Predstavljanje krivuljaPredstavljanje krivuljaParametParametaarrskeske krivekriveParametParametaarrskeske kkububne krivuljene krivuljeHermitHermitoviovi kubni splajnovikubni splajnoviHermitHermitovove e funkcije miješanjafunkcije miješanja
Predstavljanje krivuljaPredstavljanje krivulja
Pomoću niza tačakaPomoću niza tačaka…… Krivulja je predstavljena približno, kao izlomljena Krivulja je predstavljena približno, kao izlomljena
linija – nije pogodno za glatke linijelinija – nije pogodno za glatke linije Teško za manipulaciju jer se sve tačke moraju Teško za manipulaciju jer se sve tačke moraju
premještati pojedinačnopremještati pojedinačno
Umjesto toga, krivulja se modelira kao Umjesto toga, krivulja se modelira kao polinompolinom x = x(t), y = y(t), z = z(t) x = x(t), y = y(t), z = z(t)
gdje sugdje su x(), y(), z() pol x(), y(), z() poliinominomi, a t je parametar, a t je parametar
PolPoliinominomi
LinearLinearnini::
KvadratniKvadratni::
KubniKubni::
dctbtattf
cbtattf
battf
23
2
Predstavljanje krivuljaPredstavljanje krivulja
KKontrolontrolnene tačketačke SSet et tačaka koje imaju tačaka koje imaju
utjecaj na oblik krivuljeutjecaj na oblik krivulje ČvoroviČvorovi
KKontrolontrolne tačke ne tačke koje leže na krivojkoje leže na krivoj
Splajnovi za interpolacijuSplajnovi za interpolaciju Krivulje koje prolaze krozKrivulje koje prolaze kroz
kkontrolontrolne tačke (čvorove)ne tačke (čvorove) AproAproksksimatiimativnivni ssplplajajnnoviovi
Samo kSamo kontrolontrolne tačke ne tačke utječu na oblikutječu na oblik
ParametParametaarrskeske krivekrive
FFleleksksibibiillnono predstavljanje krivuljepredstavljanje krivuljeNe moraju biti funkcijeNe moraju biti funkcije
Mogu imati više Mogu imati više vrijednosti u odnosu vrijednosti u odnosu na bilo koju dimenzijuna bilo koju dimenziju
KKububnni i ppololiinominomi
x(t) = ax(t) = axxtt33 + b + bxxtt22 + c + cxxt + dt + dxx
SSlično za lično za y(t) y(t) i zai za z(t) z(t)Neka jeNeka je t: (0 <= t <= 1) t: (0 <= t <= 1)Ako se uvede oznakaAko se uvede oznaka
T = [t T = [t33 t t22 t 1] t 1]Matrica koeficijenataMatrica koeficijenata C C
KrivuljaKrivulja: Q(t) = T*C: Q(t) = T*C
z
z
y
y
x
x
zyx
zyx
d
c
d
c
d
c
bbb
aaa
ttt 123
ParametParametaarrskeske krivekrive
Kako odrediti Kako odrediti tangenttangentu na krivuljuu na krivulju??Ako jeAko je f(x) = f(x) =
tangenttangentaa zaza (x=3) (x=3) jeje
IzvodIzvod odod Q(t) Q(t) jeje vektor vektor tangenttangentee uu t: t: IzvodIzvod odod Q(t) Q(t) jeje vektor vektor tangenttangentee uu t: t:
IzvodiIzvodi
Određivanje izvoda (tangenti) krivuljeOdređivanje izvoda (tangenti) krivulje::
cbax
dcbax ttdt
dttt 23 223
d
c
b
a
x
d
c
b
a
x 01231 223 ttdt
dttt
SegmentSegmenti krivuljei krivulje
Krivulje se konstruišu povezivanjem Krivulje se konstruišu povezivanjem krajeva više manjih segmenatakrajeva više manjih segmenataMoraju postojati pravila o tome kako se vrši Moraju postojati pravila o tome kako se vrši
povezivanjepovezivanje
KKontinuitontinuitet opisuje vezuet opisuje vezuParametParametaarrski kontinuitetski kontinuitetGeometriGeometrijskijski kontinuitetkontinuitet
ParametParametaarrskiski kontinuitetkontinuitet
CC00 jeje kontinuitetkontinuitet linije (zajednička tačka)linije (zajednička tačka)
CC11 jeje tangent tangentnini kontinuitetkontinuitet ( (brzinabrzina))
CC22 jeje kontinuitet drugog izvodakontinuitet drugog izvoda ( (ubrzanjeubrzanje))
GeometrGeometrjski kontinuitetjski kontinuitet
AkoAko se položaji tačaka poklapajuse položaji tačaka poklapajuGG00 geometri geometrijskijski kkontinuitontinuitetet
Ako se smjer Ako se smjer ((ne obavezno i intenzitetne obavezno i intenzitet) ) tangenttangentii poklapapoklapaGG11 geometri geometrijskijski kkontinuitontinuitetetVrijednost tangente na kraju jedne krivulje Vrijednost tangente na kraju jedne krivulje
je proporcionalna vrijednosti tangente na je proporcionalna vrijednosti tangente na početku sljedeće krivuljepočetku sljedeće krivulje
ParametParametaarrskeske kkububne krivuljene krivulje
DaDa bi se osiguraobi se osigurao C C22 kkontinuitontinuitetet, , krivulje krivulje
moraju biti najmanje trećeg redamoraju biti najmanje trećeg redaDataData je je parametparametarskaarska defini definicija kubnog cija kubnog
splajna splajna (3(3. reda. reda) ) u dvijeu dvije dimen dimenzijezijeKako je proširiti na tri dimenzijeKako je proširiti na tri dimenzije??
ParametParametaarrskeske kkububne krivuljene krivulje
Može se predstaviti i u matričnom oblikuMože se predstaviti i u matričnom obliku
KKoeficioeficijjententii
Kako izabrati koeficijenteKako izabrati koeficijente?? [a[axx b bxx c cxx d dxx] ] ii [a [ayy b byy c cyy d dyy] m] moraju zadovoljiti oraju zadovoljiti
ograničenja koja nameću čvorovi i uslovi ograničenja koja nameću čvorovi i uslovi kontinuitetakontinuiteta
ParametParametaarrskeske krivuljekrivulje
Krivulju je teško konceptualizirati kaoKrivulju je teško konceptualizirati kao x(t) = ax(t) = axxtt33 + b + bxxtt22 + c + cxxt + dt + dxx
((Crtači ne razmišljaju o koeficijentima ili kubnim jednačinama)Crtači ne razmišljaju o koeficijentima ili kubnim jednačinama)
Umjesto toga, krivulja se definiše kao Umjesto toga, krivulja se definiše kao kombinacija 4 precizno definisana kubna kombinacija 4 precizno definisana kubna polinomapolinoma
Svaki tip krivulje definiše različite kubne Svaki tip krivulje definiše različite kubne polinomepolinome
ParametParametaarrskeske krivuljekrivulje
HermitHermitovovee -- dvije krajnje tačke i dva dvije krajnje tačke i dva vektora tangenti u krajevimavektora tangenti u krajevima
BezierBezier - - dvije krajnje tačke i dvije druge dvije krajnje tačke i dvije druge tačke koje definišu vektore tangenti u tačke koje definišu vektore tangenti u krajevimakrajevima
SplSplajajnnoviovi -- četiri kontrolne tačkečetiri kontrolne tačke C1 C1 ii C2 C2 kontinuitet u tačkama dodirakontinuitet u tačkama dodiraPribližavaju se svojim kontrolnim tačkama, ali Približavaju se svojim kontrolnim tačkama, ali
ih ne moraju uvijek dodirnutiih ne moraju uvijek dodirnuti
HermitHermitoviovi kubni splajnovikubni splajnovi
Primjer čvorova i kontinuitetaPrimjer čvorova i kontinuiteta
HermitHermitoviovi kubni splajnovikubni splajnovi
Po jedna kubna krivulja za svaku Po jedna kubna krivulja za svaku dimenzijudimenziju
Krivulja u x/y ravni ima dvije krivulje: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
HermitHermitoviovi kubni splajnovikubni splajnovi
2-D Hermit2-D Hermitov kubni splajn je definisan sa 8 ov kubni splajn je definisan sa 8 parametaraparametara: a, b, c, d, e, f, g, h: a, b, c, d, e, f, g, h
Kako se intuitivne krajnje tačke pretvaraju u ovih Kako se intuitivne krajnje tačke pretvaraju u ovih 8 (relativno) neintuitivnih parametara8 (relativno) neintuitivnih parametara??
Poznato jePoznato je:: (x, y) po(x, y) položajložaj zaza t = 0, p t = 0, p11
(x, y) po(x, y) položajložaj zaza t = 1, p t = 1, p22
(x, y) (x, y) izvod zaizvod za t = 0, dp/dt t = 0, dp/dt (x, y) (x, y) izvod zaizvod za t = 1, dp/dt t = 1, dp/dt
HermitHermitoviovi kubni splajnovikubni splajnovi
Poznat jePoznat je:: (x, y) (x, y) položaj zapoložaj za t = 0, p t = 0, p11
xpdf
d
c
b
adcbaf
x
x
1
23
23
)0(
1000
000)0(
yphf
h
g
f
ehgfef
y
y
1
23
23
)0(
1000
000)0(
HermitHermitoviovi kubni splajnovikubni splajnovi
Poznat jePoznat je:: (x, y) (x, y) položaj zapoložaj za t = 1, p t = 1, p22
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(
HermitHermitoviovi kubni splajnovikubni splajnovi
Za sad imamo 4 jednačine, ali 8 Za sad imamo 4 jednačine, ali 8 nepoznatihnepoznatih
Koriste se izvodi: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
HermitHermitoviovi kubni splajnovikubni splajnovi
Poznat jePoznat je:: (x, y) (x, y) izvod zaizvod za t = 0, dp/dt t = 0, dp/dt
dtdp
cf
d
c
b
acbaf
xx
x
1
2
2
)0(
010203
0203)0(
dtdp
gf
h
g
f
egfef
y
y
y
1
2
2
)0(
010203
0203)0(
HermitHermitoviovi kubni splajnovikubni splajnovi
Poznat jePoznat je:: (x, y) (x, y) izvod zaizvod za t = 1, dp/dt t = 1, dp/dt
dtdp
cbaf
d
c
b
acbaf
xx
x
1
2
2
23)1(
011213
1213)1(
dtdp
gfef
h
g
f
egfef
y
y
y
1
2
2
23)1(
011213
1213)1(
HermitHermitovaova sspecifipecifikacijakacija
MatriMatričnačna jednačinajednačina zaza Hermit Hermitovuovu krivuljukrivulju
t = 0
t = 1
t = 0
t = 1
t3 t2 t1 t0
p1
p2
r p1
r p2
dtdp
dtdp
p
p
dtdp
dtdpp
p
h
g
f
e
d
c
b
a
y
y
y
y
x
x
x
x
2
1
2
1
1
1
2
1
0123
0100
1111
1000
Rješavanje Rješavanje HermitHermitovove e mmatriatricece
h
g
f
e
d
c
b
a
dtdp
dtdp
p
p
dtdp
dtdpp
p
y
y
y
y
x
x
x
x
2
1
2
1
1
1
2
11
0123
0100
1111
1000
Matrice Matrice ssplplajnaajna i gi geometreometrijeije
h
g
f
e
d
c
b
a
dtdp
dtdp
p
p
dtdp
dtdpp
p
y
y
y
y
x
x
x
x
2
1
2
1
1
1
2
1
0001
0100
1233
1122
MHermite GHermite
ReRezultujućazultujuća jednačina jednačina HermitHermitovogovog ssplplajnaajna
PrimjeriPrimjeri Hermit Hermitovihovih krivuljakrivulja
Funkcije miješanja Funkcije miješanja (B(Blending Functionslending Functions))
Množenjem prve dvije matrice u donjoj Množenjem prve dvije matrice u donjoj lijevoj jednačini, dobiju se 4 funkcije od 'lijevoj jednačini, dobiju se 4 funkcije od 'tt'' koje miješaju 4 kontrolna parametrakoje miješaju 4 kontrolna parametra
To su funkcije To su funkcije miješanjamiješanja
HermitHermitovove e funkcije miješanjafunkcije miješanja
GrafičkaGrafičkazavisnost zavisnost funkcije funkcije miješanja od miješanja od parametra 't'parametra 't'
HermitHermitovove e funkcije miješanjafunkcije miješanja
SvakaSvakafunkcijafunkcijamiješanjamiješanjareflektujereflektujeutjecaj utjecaj PP11, P, P22, ,
PP11, , PP22 nana
oblik splajnaoblik splajna