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-11
• smanjenje varijacije - kod visokog stupnja polinoma može se javiti
titranje krivulje
• kontrola reda neprekinutosti • https://mathinsight.org/applet/derivative_interpolating_polynomial_chebyshev_nodes
• http://www.slu.edu/classes/maymk/Applets/Derivatives2.html
C0 C1
ista vrijednost
koordinate ista tangenta
kontinuitet radijusa
zakrivljenosti http://www.martin-
kraus.org/LiveGraphics3D/examples/parametrized/
cagd/chap10fig4.html
C2
r
oskulatorna
kružnica
C3
kontinuitet u
izvijanju
Ž. 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