Računarska grafika

33
Računarska Računarska grafika grafika predavanja predavanja v.as.mr. Samir Lemeš v.as.mr. Samir Lemeš [email protected] [email protected]

description

Računarska grafika. predavanja v.as.mr. Samir Lemeš [email protected]. 25. Parametarske krive. Predstavljanje krivulja Paramet a r ske krive Paramet a r ske k ub ne krivulje Hermit ovi kubni splajnovi Hermit ov e funkcije miješanja. Predstavljanje krivulja. Pomoću niza tačaka … - PowerPoint PPT Presentation

Transcript of Računarska grafika

Page 1: Računarska grafika

RačunarskaRačunarskagrafikagrafika

predavanjapredavanjav.as.mr. Samir Lemešv.as.mr. Samir Lemeš[email protected]@mf.unze.ba

Page 2: Računarska grafika

25. 25. Parametarske kriveParametarske krive

Predstavljanje krivuljaPredstavljanje krivuljaParametParametaarrskeske krivekriveParametParametaarrskeske kkububne krivuljene krivuljeHermitHermitoviovi kubni splajnovikubni splajnoviHermitHermitovove e funkcije miješanjafunkcije miješanja

Page 3: Računarska grafika

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

Page 4: Računarska grafika

PolPoliinominomi

LinearLinearnini::

KvadratniKvadratni::

KubniKubni::

dctbtattf

cbtattf

battf

23

2

Page 5: Računarska grafika

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

Page 6: Računarska grafika

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

Page 7: Računarska grafika

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

Page 8: Računarska grafika

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:

Page 9: Računarska grafika

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

Page 10: Računarska grafika

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

Page 11: Računarska grafika

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))

Page 12: Računarska grafika

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

Page 13: Računarska grafika

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??

Page 14: Računarska grafika

ParametParametaarrskeske kkububne krivuljene krivulje

Može se predstaviti i u matričnom oblikuMože se predstaviti i u matričnom obliku

Page 15: Računarska grafika

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

Page 16: Računarska grafika

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

Page 17: Računarska grafika

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

Page 18: Računarska grafika

HermitHermitoviovi kubni splajnovikubni splajnovi

Primjer čvorova i kontinuitetaPrimjer čvorova i kontinuiteta

Page 19: Računarska grafika

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

Page 20: Računarska grafika

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

Page 21: Računarska grafika

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(

Page 22: Računarska grafika

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(

Page 23: Računarska grafika

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

Page 24: Računarska grafika

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(

Page 25: Računarska grafika

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(

Page 26: Računarska grafika

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

Page 27: Računarska grafika

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

Page 28: Računarska grafika

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

Page 29: Računarska grafika

ReRezultujućazultujuća jednačina jednačina HermitHermitovogovog ssplplajnaajna

Page 30: Računarska grafika

PrimjeriPrimjeri Hermit Hermitovihovih krivuljakrivulja

Page 31: Računarska grafika

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

Page 32: Računarska grafika

HermitHermitovove e funkcije miješanjafunkcije miješanja

GrafičkaGrafičkazavisnost zavisnost funkcije funkcije miješanja od miješanja od parametra 't'parametra 't'

Page 33: Računarska grafika

HermitHermitovove e funkcije miješanjafunkcije miješanja

SvakaSvakafunkcijafunkcijamiješanjamiješanjareflektujereflektujeutjecaj utjecaj PP11, P, P22, ,

PP11, , PP22 nana

oblik splajnaoblik splajna