RG 24 Parametarske krive Hermit.ppt - Univerzitet u Zenici 24 Parametarske krive Hermit.pdf1...

6
1 Računarska grafika predavanja doc.dr. Samir Lemeš [email protected] 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: c bt at t f b at t f 2 Kubni: d ct bt at t f c bt at t f 2 3 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

Transcript of RG 24 Parametarske krive Hermit.ppt - Univerzitet u Zenici 24 Parametarske krive Hermit.pdf1...

1

Računarskagrafika

predavanjadoc.dr. Samir Lemeš[email protected]

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.