Vektorová grafika
Vektorové entity
• Úsečka
• Kružnice, elipsa, kruhový oblouk,…
• Složitější křivky, splajny, Bézierovy křivky,
…
• Plochy
• Tělesa
• Modely
Rasterizace
• Regenerace
• Rasterizace úsečky (například DDA
algoritmus)
Vektorizace
• Ruční
• Automatická
• Poloautomatická
Interpolace
• Křivka prochází přímo zadanými body
Interpolace polynomem
• Lineární – 2 body
• Kvadratická – 3 body
• Polynom n-tého stupně – n+1 bodů
Lineární interpolace
Kvadratická interpolace
Interpolace polynomem 4 stupně
Interpolované body:
(-2,4) (-1,0) (0,3) (1,1) (2,-5)
Rovnice:
16a -8b +4c -2d + e = 4
a - b + c -d +e = -3
e=3
a+ b
+ c + d +e = 1
16a +8b +4c +2d +e =-5
Řešení:
a=0.458 b=-0.75 c=-2.95
d=1.25 e=3
Funkce:
0.458*x^4-0.75*x^32.95*x^2+1.25*x+3
Spline křivka
• Křivka se skládá z úseků vyjádřených
polynom nižšího stupně, než odpovídá
počtu bodů. Křivky na sebe v hraničních
bodech hladce navazují
Lineární „spline“
• Polynomy prvního
stupně.
• V hraničních bodech na
sebe navazují spojitě.
• Není zaručena spojitost
ani první derivace.
• Česky se tomu říká
lomená čára
Kvadratický spline
• Křivka jsou úseky parabol.
• V hraničních bodech na sebe paraboly
hladce navazují – mají spojitou první
derivaci.
• Další derivace nemusí být (a obvykle
nejsou) spojité.
• Je nejpoužívanější, pokud se řekne jen
spline, myslí se obvykle kvadratický spline
(viz AutoCAD)
Kvadratický spline
Spline křivky vyšších stupňů
• Kubický – funkce po částech 3-tího stupně
(kubika), zaručuje spojitost první a druhé
derivace
• Obecný (n-tého stupně), zaručuje spojitost
(n-1). derivace.
Aproximační křivky
• Nemusí procházet přímo zadanými body.
• Formálně lze za aproximační křivku
považovat libovolnou křivku.
• Problém je nalézt takové vyjádření, které
bude
– Jednoduché
– Bude dostatečně dobře aproximovat danou
křivku
Aproximace metodou nejmenších
čtverců
• Zvolím typ funkce (obvykle polynom
nižšího stupně, než by byl potřeba pro
interpolaci bodů).
• Vypočítám takové parametry, aby součet
čtverců odchylek v zadaných bodech byl
minimální.
• ∑(yi-f(xi))2→ min
Metoda nejmenších čtverců
Bézierova aproximace (Bézierova
křivka)
• Aproximace polynomem daného stupně
n-tý stupeň pro n+1 bodů P0,P1,…,Pn
• Křivka prochází krajními body P0 a Pn
• Tečna v počátečním bodě P0 je
rovnoběžná s vektorem P0P1.
• Tečna v koncovém bodě Pn je rovnoběžná
s vektorem Pn-1 Pn
• Celá křivka leží v konvexním obalu bodů
P0, … ,Pn
Pierre Ettiene Bézier
(1910-1999)
Vyjádření Bézierovy křivky
Lineární Bézierova křivka
• B(t) = (1-t).P0 + t.P1
• Parametrická rovnice
úsečky
Kvadratická Bézierova křivka
• B(t) = (1-t)2P0 + 2t(1-t)P1 + t2P2
Kubická Bézierova křivka
B(t) = (1-t)3P0 + 3t(1-t)2P1 + 3t2(1-t)P2 + t3P3
Bézierovy křivky vyšších řádů
• Příklad vzorce pro
křivku 5.stupně
Třírozměrné modelování
Modelování a zobrazování
Obraz(y)
modelu
model
Realita
(skutečnost)
modelování
Zobrazování
(vizualizace)
3D modelování
• Rastrové (voxelové)
• Vektorové
Voxelové modelování
0 = není v tělese
1 = je v tělese
Vektorové modelování
•
•
•
•
B-reprezentace
Primitivní tělesa
2 ½ D modelování
CSG modelování
B reprezentace (hraniční,
boundary)
Modelování z primitivních těles
Kvádr
Zadat dva
protilehlé vrcholy
Nebo
Zadat dva
protilehlé vrcholy
podstavy a výšku
Primitivní tělesa v AutoCADu
•
•
•
•
•
•
•
Kvádr
Koule
Válec
Kužel
Klín
Torus
….
2 ½ D modelování
• Modelování 3D těles pomocí transformací
z 2D objektů
– Posunutí (vysunutí, extrude)
– Rotace (rotate, revolve)
– …… např posunutí podle křivky
Vysunutí
• Obdélník → Kvádr
• Kruh → Válec
Otočení
• Obdélník → Válec
• Trojúhelník → Kužel
• Kruh → Koule
Computer Solid Geometry (CSG)
modelování
• Množinové operace
– Sjednocení
– Průnik
– Rozdíl
• CSG strom
CSG strom
CSG strom
subtract{
union{
box{[0,0,0][4,4,1]}
cylinder{[4,2,0],[4,2,1],1}
}
cylinder{[3,3,0][3,3,5],0.5}
}
Download

Aproximační a interpolační křivky