51
Ž. M, ZEMRIS, FER 6-1 6.1. LINEARNA INTERPOLACIJA parametarska jednadžba pravca kroz dvije točke 6. Linearna interpolacija, krivulje 1 1 0 0 1 0 0 1 0 1 V V V V V V V V t f t f t t t V 0 t=0 t=1 V 1 V 2 V 3 V 4 koordinate čne baricentri funkcije težinske 1 , 1 0 1 0 t f t f t f t f lerp (t, v0, v1) { return v0 + t*(v1-v0); // ili return (1-t)*v0 + t*v1; } t x t y 0 1 0 1 x 0 x 1 y 0 y 1 za zadane udaljenosti d 0 i (1-d 0 ) odrediti težinske funkcije m i težište m 0 d 0 = m 1 (1-d 0 ) m 0 =(1-d 0 ), m 1 =d 0 m 0 m 1 1-d 0 d 0 t=2 t=3 t=4 x 0 f 0 (t) x 1 f 1 (t)

6. Linearna interpolacija, krivulje · • interpolacijske krivulje Beziera • Bezierove težinske funkcije (Bezier) • Bernsteinove težinske funkcije (De Casteljau) Ž. M, ZEMRIS,

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Ž. M, ZEMRIS, FER 6-1

6.1. LINEARNA INTERPOLACIJA

• parametarska jednadžba pravca kroz dvije točke

6. Linearna interpolacija, krivulje

110010010 1 VVVVVVVV tftfttt

V0

t=0

t=1 V1

V2

V3

V4

koordinatečnebaricentri

funkcijetežinske

1

,

10

10

tftf

tftf

lerp (t, v0, v1) {

return v0 + t*(v1-v0);

// ili return (1-t)*v0 + t*v1;

}

t

x

t

y

0 1 0 1

x0

x1

y0

y1

za zadane udaljenosti d0 i (1-d0 )

odrediti težinske funkcije mi

težište m0d0= m1(1-d0)

→ m0=(1-d0), m1=d0

m0 m1 1-d0 d0

t=2

t=3

t=4

x0 f0(t) x1 f1(t)

Ž. M, ZEMRIS, FER 6-2

LINEARNA INTERPOLACIJA

• parametarska jednadžba pravca kroz dvije točke

i

ii tf VVV0

t=0

t=1 V1

V2

V3

V4

1i

i

i

tf

tf funkcijetežinske

t

f(t) f1 f2 f3 f4 f0

1

• po odsječcima linearna interpolacija

1 2 3

• obrnuti problem od postupka uzorkovanja

- iz niza uzoraka želimo dobiti

kontinuirani signal

- konvolucija

Ž. M, ZEMRIS, FER 6-3

BILINEARNA INTERPOLACIJA

• parametarska jednadžba kroz četiri točke

vuu

vuuvu

1,11,0

0,10,0

1

11,

VV

VVV

V0, 0

u=0, v=0

V0,1

V1,0

V1, 1

0,10,01)0,( VVV uuu

vvvu uu 1,0, 1, VVV

V(u,v)

1,11,01)1,( VVV uuu

1,11,00,10,0 1111, VVVVV vuvuvuvuvu u

v

(http://www.cs.technion.ac.il/~cs234325/Applets/NewApplets/experiments/interpolation.html (Firefox portable)

Primjena npr. interpolacija boje http://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/panscrollzoom/index.html

Bilinear_quad

najbliži susjed bilinearna interpolacija

Ž. M, ZEMRIS, FER 6-4

BILINEARNA INTERPOLACIJA

– bilinearna interpolacija nije linearna

(nije ravnina) ali je baricentrična

http://multivis.net/lecture/bilinear.html

– trilinearna interpolacija

proširenje bilinearne

http://cs.wellesley.edu/~cs307/threejs/demos/Color/colorcube.html

ii

i

ii

i

yy

yyv

xx

xxu

11

,

u

v

1,11,0

0,10,0

1

111,

VV

VVV

vuvu

vuvuvu

fx 1-fx

fy

1-fy

fz

Ž. M, ZEMRIS, FER 6-5

BARICENTRIČNE KOORDINATE

– točka P ima normalizirane baricentrične koordinate P(t1, t2, t3) - Baricentar,

t1: t2: t3=P1:P2:P3 t1+ t2+ t3=1 (ako su u ti mase u Ai, Pi je centar masa)

- točka je unutar trokuta ako su 0 ≤ t1, t2 , t3 ≤ 1

- ako je neki ti=0 točka P pada na brid

- određivanje baricentričnih koordinata

kroz točke A1 i P povučemo pravac → t3, t2

http://www.martin-kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap3fig5.html

321

321

321

33

22

11

AAA

AAA

AAA

P

Pt

P

Pt

P

Pt

A1=(1, 0, 0)

t3

P=(t1, t2, t3)

A2=(0, 1, 0) A3=(0, 0, 1)

P1

P2 P3

P=(t1, t2, t3)

A1=(1, 0, 0)

A2=(0, 1, 0)

A3=(0, 0, 1) t2 Q

t1

t2+t3

332211 AtAtAtP

Ž. M, ZEMRIS, FER 6-6

Primjer primjena baricentričnih koordinata: ispravno preslikavanje teksture, deformacija konveksnih objekata – preobražaj (mesh deformation, morphing)

Tagret

A B

C

AB

C

P

P

P

baricentrične koordinate t1, t2, t3 točke P’

obzirom na A’, B’, C’ određuju boju

Color(P’) = Color(t1 A + t2 B + t3 C)

Npr. interpolacija boja:

(http://www.cut-the-knot.org/Curriculum/Geometry/Barycentric.shtml)

Proširenje na 3D: https://lucasmajerowicz.github.io/threejs-ffd/app/

Određivanje je li točka u trokutu:

𝐕 = 𝐕𝟎 + 𝑢 𝐕𝟏 − 𝐕𝟎 + 𝑣 𝐕𝟐 − 𝐕𝟎

= 𝐕𝟎 + 𝑢 𝒂 + 𝑣 𝒃

http://adrianboeing.blogspot.hr/2010/01/barycentric-coordinates.html

Ž. M, ZEMRIS, FER 6-7

- parametarski oblik jedandžbe ravnine

u, v – odgovaraju baricentričnim koordinatama t1, t2,

222

2

222

2

abba

cabacba

abba

cbbacab

v

u

Točka je u trokutu ako je:

(u > 0) & (v > 0) & (u + v < 1)

P

V0

V1

u0 = 0, v0 = 0

u1 = 1, v1 = 0

u2 = 0, v2 = 1 V2

u

v a

b

c

Ako je a ┴ b mozemo promatrati projekcije

vektora c na a i vektora c na b

bcb

aca

/

/

v

uvektoraproduktskalarnije

Ž. M, ZEMRIS, FER 6-8

6.2. KRIVULJE

• postupak projektiranja krivulje • Animacija po krivulji

– analitički izraz izvorne krivulje u pravilu je nepoznat

– poznato je

• koordinate u nekim točkama

• nagibi, zakrivljenost ili izvijanje u nekim točkama

modeliranje

– opis segmenta krivulje

– segmentiranje

- povezivanje segmenata uz ostvarivanje kontinuiteta između segmenata

Ž. M, ZEMRIS, FER 6-9

PODJELA KRIVULJA

• aproksimacijske

• interpolacijske

• otvorene

• zatvorene

• razlomljene

• nerazlomljene

• periodične

• neperiodične

(periodičnost težinskih funkcija)

11

2

1

3

123

11

2

1

3

1 dtctbtatxdctbtat

dtctbtatx

Ž. M, ZEMRIS, FER 6-10

POŽELJNA SVOJSTVA KRIVULJA

• višestruke vrijednosti https://mathinsight.org/parametrized_curve_arc_length

https://stemkoski.github.io/Three.js/Graphulus-Curve.html

• neovisnost o koordinatnom

sustavu (Kartezijev, polarni)

• lokalni nadzor

x

y

Ž. M, ZEMRIS, FER 6-12

C0 – kontinuitet koordinate - ista vrijednost koordinate f(t) = g(t)

C1 - kontinuitet nagiba - ista vrijednost prve derivacije (vektor brzine) f (t) = g(t)

http://math.hws.edu/graphicsbook/demos/c2/cubic-bezier.html

C2 - kontinuitet zakrivljenosti - određuje f (t) - isti vektor akceleracije

Zakrivljenost krivulje obrnuto je proporcionalna radijusu

oskulatorne kružnice.

Ako je radijus velik zakrivljenost je mala (i obrnuto).

C3 - kontinuitet izvijanja (torzije) - određuje f (t)

Osim C kontinuiteta postoje i G kontinuiteti koji zahtijevaju proporcionalnost.

G (geometrijski)

G0 = C0

G1 - proporcionalna vrijednost derivacije f (t) = k1 g (t), k1>0

G2 – ista zakrivljenost s lijeva i s desna

G2 – implicira i ostvarenje svih nižih kontinuiteta G1

C1 kontinuitet implicira G1 kontinuitet osim kada je vektor tangente [0 0 0]

kod C1 kontinuiteta može doći do promjene smjera, kod G1 ne može.

3/ fff

Ž. M, ZEMRIS, FER 6-13

ANALITIČKI OPIS PROSTORNIH KRIVULJA

a) eksplicitni oblik - nemogućnost prikaza višestrukih vrijednosti

b) implicitni oblik - za prikaz dijela krivulje trebaju dodatni uvjeti https://stemkoski.github.io/MathBox/graph2d-implicit.html

c) parametarski oblik http://mathinsight.org/applet/parametrized_elliptical_helix

točka na krivulji - vektorska funkcija

vektor tangente

xgzxfy ,

x

y

x

y 0,, zyxF

.z,y,x tztytx

.zyxV tttt

x

y

.zyxV tttt

𝑝 0, 𝑡 = 0

𝑝 𝑖 , 𝑡 = 𝑡1

𝑝 1, 𝑡 = 1

𝐕 𝑡𝑖 = 𝑝 𝑡𝑖 = 𝑝 𝑡𝑖

Ž. M, ZEMRIS, FER 6-14

6.3. SEGMENT KRIVULJE

6.3.1. KRIVULJA BEZIERA

Postupak poznat pod imenom krivulje Beziera nezavisno su razvili

• BEZIER 1962. Rénault

• DE CASTELJAU 1959. Citroën

kao polaznu osnovu u CAD sustavima. De Casteljau direktno koristi Bernsteinove polinome.

1970. R. Forest otkriva vezu Bezierovog rada i Bernsteinovih polinoma.

P. Bezier objavljuje svoj rad i krivulje dobivaju ime po njemu.

• aproksimacijske krivulje Beziera

• interpolacijske krivulje Beziera

• Bezierove težinske funkcije (Bezier)

• Bernsteinove težinske funkcije (De Casteljau)

Ž. M, ZEMRIS, FER 6-15

APROKSIMACIJSKE KRIVULJE BEZIERA

Prolaze početnom i krajnjom točkom, a ostalima se samo približava.

a) BEZIEROVE TEŽINSKE FUNKCIJE

Korištenje gibanja vrha sastavljenog otvorenog poligona.

𝑝 𝑡 = 𝑎𝑖 𝑓𝑖,𝑛 𝑡𝑛𝑖=0 , 𝑡 ∈ 0, 1

𝑎 0 = 𝑟 0

𝑎 𝑖 = 𝑟 𝑖 − 𝑟 𝑖−1 𝑖 = 1 . . 𝑛

n+1 .. broj točaka.

n .. stupanj krivulje.

ai .. vektori kontrolnog poligona

p(t) .. točka na krivulji - linearna kombinacija fi,n(t) i ai.

fi,n(t) .. težinska funkcija - njena vrijednost pokazuje koliko i-ti element poligona pridonosi pripadnoj točki za parametar t.

x

y

𝑟 0

𝑟 1

𝑟 2

𝑟 3

𝑎 0

𝑎 1

𝑎 2

𝑎 3

𝑝 (t)

Ž. M, ZEMRIS, FER 6-16

fi,n(t) - težinska funkcija je općenita i mora zadovoljiti niz posebnih uvjeta:

1. početna točka 𝑝 0 = 𝑎 0 f0, n(0) = 1,

fi, n(0) = 0, i = 1 .. n

2. završna točka 𝑝 1 = 𝑎 𝑖 fi, n(1) = 1, i = 0 .. n zbroj svih vektora

3. osnovni vektor a1 treba biti paralelan s tangentom u početnoj točki

𝑝 ′ 0 = k1𝑎 1 f ’1 ,n(0) 0,

f ’i, n(0) = 0, i 1

4. osnovni vektor an treba biti paralelan s tangentom u završnoj točki.

𝑝 ′ 1 = kn𝑎 𝑛 f ’i, n(1) = 0, i = 0 .. n-1,

f ’n, n(1) 0.

Ž. M, ZEMRIS, FER 6-17

5. oskulatorna ravnina u početnoj točki treba biti paralelna s 𝑎 1 i 𝑎 2

f ’’1, n(0) 0, f ’’2, n(0) 0,

f ’’i, n(0) = 0, inače.

http://people.math.aau.dk/~raussen/VIDIGEO/GEOLAB/apposcplane.html

6. oskulatorna ravnina u završnoj točki treba biti paralelna s 𝑎 𝑛−1 i 𝑎 𝑛

f ’’i, n(1) = 0, i = 0 .. n-2,

f ’’n-1, n(1) 0, f ’’n, n(1) 0.

7. simetričnost težinske funkcije - zamjena početne i završne točke povlači

promjenu smjera i redoslijeda vektora.

fi, n(t) = 1- fn-i+1, n(1-t) , i = 1 .. n.

oskulatorna

ravnina

oskulatorna

kružnica

tangenta

normala

binormala

Ž. M, ZEMRIS, FER 6-18

BEZIEROVE TEŽINSKE FUNKCIJE

za derivaciju (-1) se podrazumijeva vrijednost 1

rekurzivni oblik pogodan za implementaciju na računalu:

n..iid

t

tt

td

td

i

ttf

i

n

ni

n

ii

ni

11

,11

,!1

1

1

1

,

derivacijajegdje

.1,0,1

,1

,1,10,0

1,11,,

tftftf

tfttfttf

kkk

ninini

rekurzijenjazaustavljauvjeti

Ž. M, ZEMRIS, FER 6-19

* PRIMJER

Odrediti Bezierove težinske funkcije

ako su zadane četiri točke.

𝑝 𝑡 = 𝑎𝑖 𝑓𝑖,3 𝑡

3

𝑖=0

𝑝 𝑡 = 𝑎0 + 3𝑡 − 3𝑡2 + 𝑡3 𝑎1 + 3𝑡2 − 2𝑡3 𝑎2 + 𝑡3𝑎3

,3311 2

3

3 ttt

tt

.

,23

,33

,1

,!1

3

3,3

32

3,2

32

3,1

3,0

1

3

1

3,

ttf

tttf

ttttf

tf

td

td

i

ttf

i

ii

i

t 1

f(t) f0, 3(t)

f1, 3(t)

f3, 3(t)

f2, 3(t)

Ž. M, ZEMRIS, FER 6-20

Provjera postavljenih uvjeta na težinsku funkciju:

1. početna točka 𝑝 0 = 𝑎0

2. završna točka 𝑝 1 = 𝑎0 + 𝑎1 + 𝑎2 + 𝑎3

𝑝 ′ 𝑡 = 3 − 6𝑡 + 3𝑡2 𝑎1 + 6𝑡 − 6𝑡2 𝑎2 + 3𝑡2𝑎3

3. derivacija u početnoj točki 𝑝 ′ 0 = 3𝑎1

4. derivacija u završnoj točki 𝑝 ′ 1 = 3𝑎3

𝑝 ′′ 𝑡 = −6 + 6𝑡 𝑎1 + 6 − 12𝑡 𝑎2 + 6𝑡 𝑎3

5. druga derivacija u početnoj točki 𝑝 ′′ 0 = 6 𝑎2 − 𝑎1

6. druga derivacija u završnoj točki 𝑝 ′′ 1 = 6 𝑎3 − 𝑎2

7. simetričnost 𝑓1,3 𝑡 = 1 − 𝑓3,3 1 − 𝑡

Ž. M, ZEMRIS, FER 6-21

b) BERNSTEINOVE TEŽINSKE FUNKCIJE ZA KRIVULJU BEZIERA

De Casteljau - intuitivna geometrijska konstrukcija

x

y

0 t 1

2

2

10

2

2,0

1,11,02,0

211,1

101,0

121

:uvrstimo -

,1,1

,1

:ijeinterpolac linearne uzastopne -

btbttbtb

btbtbbtbtb

btbtb

1,1b

1,0b

2,0b

0 t 1

y

x

1,1b

1,0b

1,2b

2,1b2,0b

http://www.martin-

kraus.org/LiveGraphics3D/examples/parametrized/cagd/chap4fig1.html

https://www.jasondavies.com/animated-bezier/

http://www.saltire.com/HTML5/Advanced/Cubic%20Spline%20Curve.html

http://i33www.ira.uka.de/applets/mocca/html/noplugin/curves.html

http://www.kevs3d.co.uk/dev/scratchpad/

(Bezier Cloud)

𝑏0 𝑟 0

𝑏1 𝑟 1

𝑏2 𝑟 2

𝑝 (t)

𝑏0 𝑟 0

𝑏1 𝑟 1

𝑏2 𝑟 2

𝑏3 𝑟 3

𝑏0,3 𝑝 (t)

- poopćenje ovog postupka daje algoritam De Casteljau

𝑏𝑖, 𝑗= 1 − 𝑡 𝑏𝑖, 𝑗−1 + 𝑡 𝑏𝑖+1, 𝑗−1 𝑡 , 𝑖 = 0. . 𝑛 − 𝑗, 𝑗 = 1 . . 𝑛,

𝑏𝑖, 0 𝑡 = 𝑏𝑖 , 𝑟 𝑖 = 𝑏𝑖 vrhovi kontrolnog poligona,

𝑏0, 𝑛 𝑡 = 𝑝 𝑡 točka na krivulji

𝑝 𝑡 = 𝑟 𝑖

𝑛

𝑖=0

𝑏𝑖, 𝑛 𝑡 , 𝑡 ∈ 0, 1

Ž. M, ZEMRIS, FER 6-22

iniini

ni

ni

ttini

ntt

i

ntb

ntb

1!!

!1

stupnjapolinomiviBernsteinofunkcijebazne

,

,

1,010

,

ttbn

i

nivrijedi

Diskretna binomna razdioba:

t – vjerojatnost događaja u svakom od n + 1 pokušaja

b i, n – vjerojatnost postizanja točno i događaja u n + 1 pokušaja

Binomni teorem: iinn

i

nyx

i

nyx

0

Ž. M, ZEMRIS, FER 6-23

* PRIMJER

Odrediti Bernsteinove težinske funkcije

ako su zadane četiri točke.

.

,13

,13

,1

,1!3!

!3

3

3,3

2

3,2

2

3,1

3

3,0

3

3,

ttb

tttb

tttb

ttb

ttii

tbii

i

t 1

b(t) b0, 3(t)

b1, 3(t)

b3, 3(t)

b2, 3(t)

y

x

http://graphics.cs.brown.edu

http://www.ibiblio.org/e-notes/Splines/curve.wrl

𝑝 𝑡 = 𝑟 𝑖

3

𝑖=0

𝑏𝑖, 3 𝑡 ,

𝑝 𝑡 = 1 − 𝑡 3𝑟 0 + 3𝑡 1 − 𝑡 2𝑟 1 + 3𝑡2 1 − 𝑡 𝑟 2 + 𝑡3𝑟 3,

𝑝 ′ 0 = 3 𝑟 1 − 𝑟 0 ,

𝑝 ′ 1 = 3 𝑟 3 − 𝑟 2 𝑟 0

𝑟 1

𝑟 2

𝑟 3

𝑝 (t)

Ž. M, ZEMRIS, FER 6-24

Krivulja Beziera – aproksimacijski oblik

a) Bezierov oblik Bezierove krivulje b) Bernsteinov oblik Bezierove krivulje

(de Casteljau)

https://webglfundamentals.org/webgl/lessons/resources/bezier-curve-diagram.html

http://bezier.method.ac/

ai kontrolni vektori ri kontrolne točke

t

tt

td

td

i

ttf

n

n

i

n

ii

ni

11

,!1 1

1

, ini

ni tti

ntb

1,

𝑝 𝑡 = 𝑟 𝑖

𝑛

𝑖=0

𝑏𝑖, 𝑛 𝑡 , 𝑡 ∈ 0, 1 𝑝 𝑡 = 𝑎𝑖 𝑓𝑖, 𝑛 𝑡 ,

𝑛

𝑖=0

𝑡 ∈ 0, 1

Ž. M, ZEMRIS, FER 6-25

Matrično Bernsteinov oblik kubne Bezierove krivulje :

𝑝 𝑡 = 𝑡3 𝑡2 𝑡 1

−13

3−6

−3 13 0

−3 3 0 01 0 0 0

𝑟 0𝑟 1𝑟 2𝑟 3

Općenito, za tangentu na Bezierovu krivulju opisanu preko Bernsteinovih

težinskih funkcija vrijedi:

𝑝 ′ 0 = 𝑛 𝑟 1 − 𝑟 0

𝑝 ′ 1 = 𝑛 𝑟 𝑛 − 𝑟 𝑛−1 , 𝑛 . . stupanj krivulje

Veza Bezierovih i Bernsteinovih težinskih funkcija (otkrio R. Forest):

𝑎 0 = 𝑟 0, 𝑎 𝑖 = 𝑟 𝑖 − 𝑟 𝑖−1, 𝑖 = 1. . 𝑛,

ili

𝑟 0 = 𝑎 0, 𝑟 𝑖 = 𝑎 𝑖 + 𝑟 𝑖−1, 𝑖 = 1. . 𝑛,

...0,,, nitbtfn

ij

njni

Ž. M, ZEMRIS, FER 6-26

SVOJSTVA APROKSIMACIJSKIH BEZIEROVIH KRIVULJA

• postoji konveksna ljuska

suma težinskih funkcija je 1

važno kod ispitivanja sjecišta krivulje

(težinske funkcije su nenegativne

imaju točno jedan maksimum)

• krivulja nema više valova od kontrolnog poligona

broj sjecišta ravnine i kontrolnog poligona > br. sjecišta ravnine i krivulje

• lokalni nadzor - nije ispunjeno

• broj kontrolnih točaka je u direktnoj vezi sa stupnjem krivulje

– za n točaka stupanj je (n-1)

• neovisnost o transformacijama (translacija, rotacija, skaliranje)

• simetričnost - kod uvrštenja možemo simetrično zamijeniti popis točaka • https://webglfundamentals.org/webgl/lessons/resources/bezier-curve-diagram.html

• http://www.ibiblio.org/e-notes/Splines/water/little_game.html

x

y

konveksna ljuska 𝑟 0

𝑟 1

𝑟 2

𝑟 3

𝑝 (t)

Ž. M, ZEMRIS, FER 6-27

6.3.2. INTERPOLACIJSKE KRIVULJE BEZIERA

Prolaze svim zadanim točkama. Bezier

𝑓𝑖, 𝑛 - poznato na osnovi broja točaka

𝑎𝑖 - nepoznato – određuje se na temelju

zadanih uvjeta (točaka kroz koje krivulja

prolazi, derivacija, zakrivljenosti i sl.)

Potreban je n+1 uvjet.

Npr. Poznato je:

1. n+1 točka krivulje s vrijednošću parametra 𝑝 i(ti), ti = 𝑖

𝑛, 𝑖 = 0 . . 𝑛

ili

2. tangente u pojedinim točkama 𝑝 ′i(ti)= 𝑎𝑖 𝑓′𝑖, 𝑛 𝑡 , 𝑛𝑖=1

ili

3. oskulatorne ravnine, položaji centara zakrivljenosti 𝑝 ′′i(ti)= 𝑎𝑖 𝑓′′𝑖, 𝑛 𝑡 , 𝑛𝑖=1

x

y 𝑝 𝑡 = 𝑎0 + 𝑎𝑖 𝑓𝑖, 𝑛 𝑡 ,

𝑛

𝑖=1

𝑡 ∈ 0, 1

𝑎 0

𝑎 1

𝑎 2

𝑎 3

𝑝 (t) 𝑝 (t1) 𝑝 (t0)

𝑝 (t2)

𝑝 (t3)

Ž. M, ZEMRIS, FER 6-28

INTERPOLACIJSKA KRIVULJA KROZ n+1 TOČKU:

Neka su poznate točke: 𝑝0 = 𝑝 𝑡0 , 𝑝1 = 𝑝 𝑡1 , 𝑝2 = 𝑝 𝑡2 , … 𝑝𝑛 = 𝑝 𝑡𝑛

uz parametar 𝑡1 =𝑖

𝑛, gdje je i= 0 .. n.

𝑝0𝑝1𝑝2⋯𝑝𝑛

=

1 𝑓1, 𝑛 0 𝑓2, 𝑛 0

1 𝑓1, 𝑛 𝑡1 𝑓2, 𝑛 𝑡11 𝑓1, 𝑛 𝑡2 𝑓2, 𝑛 𝑡2

… 𝑓𝑛, 𝑛 0

… 𝑓𝑛, 𝑛 𝑡1⋯ 𝑓𝑛, 𝑛 𝑡2

⋯ ⋯ …1 𝑓𝑖, 𝑛 1 𝑓𝑖, 𝑛 1

… …⋯ 𝑓𝑖, 𝑛 1

𝑎0𝑎1𝑎2⋯𝑎𝑛

.1,00 ntt:smo uvrstili

𝑝 𝑡 = 𝑎0 + 𝑎𝑖 𝑓𝑖, 𝑛 𝑡 ,

𝑛

𝑖=1

𝑡 ∈ 0, 1

Ž. M, ZEMRIS, FER 6-29

uvrstit ćemo:

za početnu točku 𝑝 0 = 𝑎0, tj. 𝑓0, 𝑛 0 =1, 𝑓𝑖, 𝑛 0 = 0, 𝑖 = 1. . 𝑛,

za završnu točku 𝑝 1 = 𝑎𝑖 𝑛𝑖=0 , tj. 𝑓𝑖, 𝑛 1 =1, 𝑖 = 0. . 𝑛,

𝑎0𝑎1𝑎2⋯𝑎𝑛

=

1 0 01 𝑓1, 𝑛 𝑡1 𝑓2, 𝑛 𝑡11 𝑓1, 𝑛 𝑡2 𝑓2, 𝑛 𝑡2

… 0… 𝑓𝑛, 𝑛 𝑡1⋯ 𝑓𝑛, 𝑛 𝑡2

⋯ ⋯ … 1 1 1

… … ⋯ 1

−1 𝑝0𝑝1𝑝2⋯𝑝𝑛

kada odredimo nepoznate vektore 𝑎𝑖 možemo do pojedine

točke krivulje doći na osnovi Bezierovih (korištenjem vektora 𝑎𝑖 ) ili

Bernsteinovih (korištenjem vektora 𝑟𝑖 ) težinskih funkcija.

Ž. M, ZEMRIS, FER 6-30

* PRIMJER

Odrediti Interpolacijsku Bezierovu krivulju kroz četiri točke korištenjem

Bezierovih težinskih funkcija.

Neka su poznate točke: 𝑝0 = 𝑝 0 , 𝑝1 = 𝑝 1/3 , 𝑝2 = 𝑝 2/3 , 𝑝3 = 𝑝 1 ,

Iz prethodnog primjera za aproksimacijsku kubnu Bezierovu krivulju

poznate su težinske funkcije:

𝑝 𝑡 = 𝑎0 + 3𝑡 − 3𝑡2 + 𝑡3 𝑎1 + 3𝑡2 − 2𝑡3 𝑎2 + 𝑡3𝑎3

http://www.redblobgames.com/articles/curved-paths/

.

,23

,33

,1

3

3,3

32

3,2

32

3,1

3,0

ttf

tttf

ttttf

tf

𝑝 𝑡 = 𝑎0 + 𝑎𝑖 𝑓𝑖, 3 𝑡 ,

3

𝑖=1

𝑡 ∈ 0, 1

𝑎0𝑎1𝑎2𝑎3

=

1 0 01 19/27 7/271 26/27 20/27

01/278/27

1 1 1 1

−1

𝑝0𝑝1𝑝2𝑝3

Ž. M, ZEMRIS, FER 6-31

6.3.3. RAZLOMLJENE FUNKCIJE

PRIKAZ KRIVULJA POMOĆU KVADRATNIH RAZLOM. FUNKCIJA

• pogodan oblik za prikaz krivulja drugog reda

• homogena koordinata omogućava prikaz koničnih krivulja

(presjek ravnine i stošca) http://www.slu.edu/classes/maymk/banchoff/CriticalPoints.html

• invarijantnost na transformaciju perspektivne projekcije (nerazlomljene

krivulje su invarijantne samo na translaciju, rotaciju, skaliranje)

prostoru

radnomu

ctbta

ctbta

x

xz

ctbta

ctbta

x

xy

ctbta

ctbta

x

xx

2

33

2

3

4

3

2

22

2

2

4

2

2

11

2

1

4

1

,

,

oblikmatrični

cccc

bbbb

aaaa

ttxxxx

321

321

321

2

4321 1X

Ž. M, ZEMRIS, FER 6-32

K - karakteristična matrica kvadratne krivulje,

• derivacije vektora [x1 x2 x3 x4] po parametru t - u homogenom prostoru

• matrica K određuje i derivacije duž krivulje

KX 12 tt

.2

,2

,2

,2

44

333

3

222

2

111

1

btatd

xdx

btatd

xdx

btatd

xdx

btatd

xdx

KX 0124321 txxxx

KX 0024321 xxxx

KX 012 t

KX 002

,10 t

Ž. M, ZEMRIS, FER 6-33

XK12 1 tt

kvadratna razlomljena krivulja određena je s tri točke

tri točke uvrstimo u jednadžbu krivulje,

uzmimo da su poznati iznosi parametra

1,1,

1,2

1,

1,0,

2222

1111

0000

VXV

VXV

VXV

t

t

t

2

1

0

2

1

0

1

2

1

0

1

2

2

2

1

2

1

0

2

0

001

143

242

111

12/14/1

100

1

1

1

X

X

X

X

X

X

X

X

X

K

tt

tt

tt

Ž. M, ZEMRIS, FER 6-34

* PRIMJER

Neka su zadane tri točke

i pripadni iznosi parametra.

Odrediti kvadratnu razlomljenu krivulju.

100,1,

100,2

1,

100,0,

222

111

000

rt

rt

rt

XV

XV

XV

100

0042

0040

100

100

100

001

143

242

r

rr

r

r

r

r

K

100

0042

0040

12

4321

r

rr

r

ttxxxxX

.1

,0

,444

,212

4

3

22

2

1

x

x

ttrtrtrx

trrtrx

po komponentama

Ž. M, ZEMRIS, FER 6-35

Rezultat je parabola, to je opća krivulja drugog reda.

Ako želimo načiniti kružnicu potrebno je upotrijebiti analitičke poznate

izraze za kružnicu. http://i33www.ira.uka.de/applets/mocca/html/noplugin/curves.html

.1

,0

,2

,1

1

21

1

sin

cos

2

4

3

2

2

1

2

2

2

tx

x

trx

trx

t

try

t

trx

t

ry

rx

2tg

100

0020

100

12

4321

r

r

r

ttxxxxX

x

y

V0=(r, 0)

V1=(0, r)

V2=(-r, 0)

Ž. M, ZEMRIS, FER 6-36

PRIKAZ KRIVULJA POMOĆU KUBNIH

RAZLOMLJENIH FUNKCIJA

• kvadratnim razlomljenim funkcijama ne možemo prikazati infleksiju i

ostale pojave višeg reda

prostoru

radnomu

dcttbta

dtctbta

x

xz

dcttbta

dtctbta

x

xy

dcttbta

dtctbta

x

xx

23

33

2

3

3

3

4

3

23

22

2

2

3

2

4

2

23

11

2

1

3

1

4

1

,

,

oblikmatrični

dddd

cccc

bbbb

aaaa

tttxxxx

321

321

321

321

23

4321 1X

Ž. M, ZEMRIS, FER 6-37

A - karakteristična matrica kubne krivulje,

• derivacije vektora [x1 x2 x3 x4] po parametru t - u homogenom prostoru

• matrica A određuje i derivacije duž krivulje

• za određivanje kubne razlomljene krivulje potrebna su četiri uvjeta

(kako bi mogli invertirati matricu)

To mogu biti 4 točke ili na primjer 2 točke i 2 derivacije.

AX 123 ttt

.23

,23

,23

,23

244

33

2

33

3

22

2

22

2

11

2

11

1

ctbtatd

xdx

ctbtatd

xdx

ctbtatd

xdx

ctbtatd

xdx

AX 0123 2 tt

AX 0026t

,10 t

AX 0006

http://www.theparticle.com/applets/nyu/BezierApplet/

Ž. M, ZEMRIS, FER 6-38

kubna razlomljena krivulja određena s dvije rubne točke i derivacije

x

y 0V

,1V

t0 = 0

t1 = 1

0V

1V

AX 123

44444321 tttxzxyxxxxxxx

AX 0123 2

44444321 ttxzxyxxxxxxx

A

A

A

A

A

A

A

A

VVX

VVX

VX

VX

0123

0100

1111

1000

0123

0123

1

1

,1

,0

,1

,0

1

2

1

0

2

0

1

2

1

3

1

0

2

0

3

0

411411411

400400400

411411

400400

1

0

1

0

tt

tt

ttt

ttt

xxx

xxx

xx

xx

t

t

t

t

Ž. M, ZEMRIS, FER 6-39

A

VV

VV

V

V

0123

0100

1111

1000

41141141

40040040

41141

40040

xxx

xxx

xx

xx

41141141

40040040

41141

40040

1

0123

0100

1111

1000

xxx

xxx

xx

xx

VV

VV

V

V

A

0

0

1

1

00

00

000

000

0001

0100

1233

1122

1

0

1

0

4141

4040

41

40

V

V

V

V

A

xx

xx

x

x

MHVA matricacijskatransformaauniverzaln.........M

Ž. M, ZEMRIS, FER 6-40

• Segment krivulje određen rubnim točkama i derivacijama u njima

M - ne ovisi o obliku krivulje već o izboru točaka (derivacija)

H - krivulja prolazi početnom i krajnjom točkom uz zadane derivacije,

a derivacija homogene komponente određuje kako će prolaziti

- ako je x’40= x’41= 0 dobit ćemo specijalan slučaj odnosno običnu

parametarsku kubnu krivulju koja se zove HERMITOVA KRIVULJA

V - zadane točke i derivacije koje određuju segment krivulje u radnom

prostoru

MHVA

0001

0100

1233

1122

M

0

0

1

1

1

0

1

0

V

V

V

V

V

4141

4040

41

40

00

00

000

000

xx

xx

x

x

H

AX 123 ttt

Ž. M, ZEMRIS, FER 6-41

• HERMITOVA KRIVULJA

𝑿 = 𝑡3 𝑡2 𝑡 1

2 −2 1 1−3 3 −2 −10 0 1 01 0 0 0

𝐕𝟎 1𝐕𝟏 1

𝐕𝟎′ 0

𝐕𝟏′ 0

• VEZA HERMITOVE I BEZIEROVE KRIVULJE (preko Bernsteinovih

polinoma)

𝑝 𝑡 = 𝑡3 𝑡2 𝑡 1

−1 3 −3 13 −6 3 0−3 3 1 01 0 0 0

𝑟 0𝑟 1𝑟 2𝑟 3

uz

𝐕0 = 𝑟 0𝐕1 = 𝑟 3

𝐕′0 = 3 𝑟 1 − 𝑟 0𝐕′1 = 3 𝑟 3 − 𝑟 2

radi se o istoj krivulji

Ž. M, ZEMRIS, FER 6-42

* PRIMJER

Neka su zadane dvije točke

i derivacije u njima.

Odrediti kubnu razlomljenu krivulju.

.1,011

,0,011

,1,001

,0,000

11

00

11

00

t

t

t

t

V

V

V

V

baxxxx 1141404140

1000

011

201

00

0011

0011

1001

1000

100

010

0010

0001

0001

0100

1233

1122

a

bab

bab

b

aA

MHVA

AX 123

4321 tttxxxx

Ž. M, ZEMRIS, FER 6-43

?,

0

,12

,12

4

3

23

2

4

2

23

23

4

1

ba

x

xz

attbatba

tt

x

xy

attbatba

ttbtb

x

xx

Uvodimo dodatnu točku V2=(1/2 1/2 0), t2=1/2. a=-2, b=2

0

,122

,122

22

2

2

2

23

z

tt

tty

tt

tttx

http://www.rose-hulman.edu/~finn/courses/MA323GeomModel/TestApplets/RationalC2Spline.html +/- A/Z

Ž. M, ZEMRIS, FER 6-44

VEZA KOORDINATA I PARAMETARSKIH DERIVACIJA IZMEĐU

RADNOG I HOMOGENOG PROSTORA

• radni prostor:

• homogeni prostor

• VEZA KOORDINATA

.zyxV tttt

.zyxV

dt

t

dt

t

dt

t

dt

td

.4321 txtxtxtxt X

.

xxxx 4321

dt

t

dt

t

dt

t

dt

t

dt

td X

4

3

4

2

4

1 ,,x

xz

x

xy

x

xx

434241 ,, xzxxyxxxx

11 4444444321 VX xzyxxxzxyxxxxxxx

14 VX x

Ž. M, ZEMRIS, FER 6-45

• VEZA PRVE DERIVACIJE - homogena komponenta nije konstanta

• VEZA DRUGE DERIVACIJE

0

1444444444

44444321

zyx

zyxxxxzxzxyxyxxxxx

xzxyxxxxxxxX

0

144

V

VX xx

4444

4444444

2

0

1

xxxx

xxxxxxx

VVV

VVVV

VXX

0

0

1

2 444

V

V

V

X xxx

Ž. M, ZEMRIS, FER 6-46

* PRIMJER

Odrediti prvu derivaciju u homogenom i radnom prostoru na kružnicu.

100

0020

100

12

4321

r

r

r

ttxxxxX

.2

,2

,2

4

2

1

tx

rx

rtx

.

21

12

,21

4

4

2

42

2

4

2

4

1

42

4

1

x

x

tt

tr

x

xy

x

x

tt

rt

x

xx

.1

,2

,1

2

4

2

2

1

tx

rtx

trx

:prostorhomogeni

.1

2

,1

1

2

2

2

t

rty

t

trx

:prostorradni

Ž. M, ZEMRIS, FER 6-47

t x1 x2 x4 x y x’1 x’2 x’4 x’ y’

0 r 0 1 r 0 0 2r 0 0 2r

1 0 2r 2 0 r -2r 2r 2 -r 0

-1 0 -2r 2 0 -r 2r 2r -2 r 0

x

y

V0=(r, 0)

V1=(0, r)

V-1=(-r, 0)

http://people.math.aau.dk/~raussen/VIDIGEO/GEOLAB/speed.html

)(ost zakrivljen

13

223

curvatureryx

xyyx

r

rr

𝑑𝑦

𝑑𝑥=

𝑑𝑦/𝑑𝑡

𝑑𝑥/𝑑𝑡=

𝑦

𝑥 nagib tangente, gdje je 𝑥 = 𝑑𝑥/𝑑𝑡

𝑑2𝑦

𝑑2𝑥=

𝑑

𝑑𝑥

𝑑𝑦

𝑑𝑥=

𝑦 𝑥 −𝑦 𝑥

𝑥 2𝑑𝑡

𝑑𝑥=

𝑦 𝑥 −𝑦 𝑥

𝑥 3 zakrivljenost

Ž. M, ZEMRIS, FER 6-48

6.3.4 POVRŠINE

• promatramo geometrijsko mjesto točaka (trag) koji nastaje ako se neka krivulja

pomiče i istovremeno deformira u prostoru

• segment površine čini krpicu

povezivanje krpica uz ostvarivanje kontinuiteta duž spojeva

– C0 jednakost točaka krivulja duž spoja

– C1 iste parcijalne derivacije (poprečno) http://stemkoski.github.io/MathBox/graph3d-deriv.html

– C2 zakrivljenost (poprečno) http://profs.sci.univr.it/~baldo/tjs/principal_curvatures.html

POVRŠINA BEZIERA

• ako koristimo krivulje Beziera - dobit ćemo krpicu Beziera, 2.

• GENERATRISA - generira površinu

• DIREKTRISA - krivulje koje određuju kako će generatrisa gibati kroz prostor

• tenzorski produkt dvije krivulje

Ž. M, ZEMRIS, FER 6-49

• površina je funkcija dva parametra u, v http://acko.net/files/mathbox/MathBox.js/examples/BezierSurface.html

• generatrise https://www.ibiblio.org/e-notes/Splines/bezier3d.html

• direktrise

u

v

𝑟 00 𝑟 01

𝑟 02

𝑟 03

𝑟 10 𝑟 12

𝑟 13

𝑟 20 𝑟 21

𝑟 11

𝑟 22 𝑟 23

𝑟 30

𝑟 31

𝑟 32 𝑟 33

Ž. M, ZEMRIS, FER 6-50

• prva i zadnja direktrisa zovu se glavne direktrise jer kontrolne točke

generatrise leže na njima

• putanje vrhova kontrolnih poligona generatrise određuju direktrise

direktrise ne leže na površini (osim glavnih direktirisa)

• stupanj krivulja određuje krpicu

npr. bikvadratne, bikubične http://www.ibiblio.org/e-notes/Splines/Surf.wrl

• http://www.math.psu.edu/dlittle/java/parametricequations/beziersurfaces/index.html

𝑝 𝑢, 𝑣 = 𝑢3 𝑢2 𝑢 1 𝐌

𝐃𝟎(𝒗)𝝉

𝐃𝟏(𝒗)𝝉

𝐃𝟐(𝒗)𝝉

𝐃𝟑(𝒗)𝝉

vektori normala na površinu

Ž. M, ZEMRIS, FER 6-51

• pojedine direktrise

• krpica površine

𝑝 𝑢, 𝑣 = 𝑢3 𝑢2 𝑢 1 𝐌

𝑟00 𝑟01 𝑟02 𝑟03𝑟10 𝑟11 𝑟12 𝑟13𝑟20 𝑟21 𝑟22 𝑟23𝑟30 𝑟31 𝑟32 𝑟33

𝐌𝝉

𝑣3

𝑣2

𝑣1

• Npr: http://vladamakaric.github.io/InteractiveBezierSurface/

• NURBS http://miaumiau.cat/examples/nurbs/nurbsSurfaces.swf

13

12

11

10

23

1

03

02

01

00

23

0 11

r

r

r

r

MvvvvD

r

r

r

r

MvvvvD

33

32

31

30

23

3

23

22

21

20

23

2 11

r

r

r

r

MvvvvD

r

r

r

r

MvvvvD