Čištění dat Cleaning
Vstup: Množina geometrických objektů Výstup: Mapová vrstva s topologií
Požadavky na topologicky vyčištěná data Linie navazují ve společných uzlech Plochy jsou uzavřené liniemi Linie nesou informace o sousedních plochách (okřídlená hrana, Winged Edge)
Postup čištění dat Aproximace hran lomenými čarami Eliminace duplicitních hran –Odstranění děr (gap) a štěpin (splint) Odstranění přetahů (dangle node) Odstranění mezer a nedotahů Segmentace hran Generování polygonů
Aproximace hran Aproximation distance
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
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
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ě
Odstranění přetahů Dangle distance
Odstranění mezer Fuzzy tolerance
Fuzzy tolerace Maximální vzdálenost dvou bodů, které se mají při čištění dat ztotožnit
Odstraňování nedotahů Fuzzy tolerance
Díry a štěpiny Krakonošovo Trautenbergovo Gap splinter f.t. Krakonošovo Trautenbergovo
Segmentace hran (hledání průsečiků) E1 E2 E1 E2 E3 E4
Okřídlená hrana LB RB LF RF LP RP
Generování polygonů