280 likes | 418 Views
Č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).
E N D
Č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
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)
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
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ě
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 splinter f.t. Krakonošovo Krakonošovo Trautenbergovo Trautenbergovo Gap
Segmentace hran (hledání průsečiků) E1 E1 E2 E2 E4 E3
Okřídlená hrana LF RF LP RP LB RB