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^3-2.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}