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
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^ *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í. ∑(y i -f(x i )) 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 ( )
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) 2 P0 + 2t(1-t)P1 + t 2 P2
Kubická Bézierova křivka B(t) = (1-t) 3 P0 + 3t(1-t) 2 P1 + 3t 2 (1-t)P2 + t 3 P3
Bézierovy křivky vyšších řádů Příklad vzorce pro křivku 5.stupně
B-spline Úseky Bézierových křivek nižších stupňů (obvykle kvadratické a kubické křivky) budou v krajních bodech na sebe hladce navázány.
Příklad B spline křivky 6 řídících bodů → 2 paraboly (2 Bézierovy křivky 2, stupně)
Třírozměrné modelování
Modelování a zobrazování Realita (sutečnost) model Obraz(y) modelu modelování Zobrazování (vizualizace)
3D modelování Rastrové (voxelové) Vektorové
Voxelové modelování 0 = není v tělese 1 = je v tělese
Kvadrantový strom (4-tree, QuadTree)
Oktantový strom (8 strom, 8-tree, OcTree)
Vektorové modelování B-reprezentace Primitivní tělesa 2 ½ D modelování CSG modelování
B reprezentace (hraniční, boundary)
Tabulka vrcholů V1XYZ V2 V3 V4 V5 V6 V7 V8 v1 v5 v2 v4 v6 v3 v7v8
Tabulka hran E1 V1V2 E2V2V3 E3V3V4 E4V4V1 E5V1V5 E6V2V6 E7V3V7 E8V4V8 E9V5V6 E10V6V7 E11V7V8 E12V8V5 v1 v5 v4v3 v7v8 e1 v2 e2 e3 e4 e5 e6 e7e8 e9 e10 e11 e12
Tabulka ploch P1E1E2E3E4 P2E1E5E6E9 P3E2E6E7E10 P4E3E7E8E11 P5E4E8E5E12 P6E9E10E11E12 v5 e1 e2 e3 e4 e5 e7e8 e9 e11 e12 P1 e6 e10 P3 P4
Tabulka těles QP1P2P3P4 P5P6
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
substract{ 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} }