KŘIVKY A PLOCHY JANA ŠTANCLOVÁ jana.stanclova@ruk.cuni.cz Obrázky (popř. slajdy) převzaty od RNDr. Josef Pelikán, CSc., KSVI MFF UK
Obsah matematický popis křivek a ploch křivky v rovině implicitní tvar křivky, explicitní vyjádření, parametrický tvar, tečný vektor, tečna ke křivce křivky v prostoru plochy modelování křivek a ploch aproximace, interpolace interpolační křivky a plochy Fergusonovy kubiky aproximační křivky a plochy Beziérovy křivky a plochy Coonsovy (B-spline) křivky a plochy β-spline křivky a plochy 2/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Matematický popis křivek a ploch MATEMATICKÝ POPIS KŘIVEK A PLOCH 3/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 1. implicitní tvar křivky rovnice F(x,y) = 0 př. F spojitá funkce dvou proměnných přímka:?? kružnice:?? 4/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 1. implicitní tvar křivky rovnice F(x,y) = 0 př. F spojitá funkce dvou proměnných přímka: ax + by + c = 0 kružnice: x 2 + y 2 r 2 = 0 5/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 1. implicitní tvar křivky rovnice F(x,y) = 0 př. F spojitá funkce dvou proměnných přímka: ax + by + c = 0 kružnice: x 2 + y 2 r 2 = 0 2. explicitní vyjádření křivky jedna souřadnice funkcí druhé proměnné y = Y(x) dosazování přípustných hodnot za x body na křivce [x,y(x)] př. přímka:?? 6/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 1. implicitní tvar křivky rovnice F(x,y) = 0 př. F spojitá funkce dvou proměnných přímka: ax + by + c = 0 kružnice: x 2 + y 2 r 2 = 0 2. explicitní vyjádření křivky jedna souřadnice funkcí druhé proměnné y = Y(x) dosazování přípustných hodnot za x body na křivce [x,y(x)] př. přímka: y = kx + q lze vyjádřit všechny křivky?? 7/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 1. implicitní tvar křivky rovnice F(x,y) = 0 př. F spojitá funkce dvou proměnných přímka: ax + by + c = 0 kružnice: x 2 + y 2 r 2 = 0 2. explicitní vyjádření křivky jedna souřadnice funkcí druhé proměnné y = Y(x) dosazování přípustných hodnot za x body na křivce [x,y(x)] př. přímka: y = kx + q lze vyjádřit všechny křivky?? nelze: uzavřené křivky 8/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 3. parametrický tvar křivky výhodné pro počítačovou geometrii poloha bodu na křivce vyjádřena parametrem souřadnice bodů závislé na parametru křivka K K = { [x,y]; x = X(t), y = Y(t), t < t min, t max > } X(t) a Y(t) funkce závislosti souřadnic x, y na parametru t počáteční bod: [ X(t min ), Y(t min ) ] koncový bod: [ X(t max ), Y(t max ) ] bod křivky: K(t) = [ X(t), Y(t) ] 9/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 3. parametrický tvar křivky přímka x =?? y =?? kružnice x =?? y =?? 10/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině 3. parametrický tvar křivky přímka x = t y = kt + q parametr t R kružnice x = x 0 + r cos(α) y = y 0 + r sin(α) parametr α <0,2π> 11/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině tečný vektor K = [ X (t), Y (t) ]... vektor parciálních derivací předpoklady X(t) a Y(t) spojité a mají derivace alespoň jedna z derivací X (t) a Y (t) v bodě t nenulová spojitá změna vektoru K křivky hladký půběh křivky nejsou ostré vrcholy tečna křivky v bodě K(t) přímka: T(u) = K(t) + u K (t) 12/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině tečný vektor K = [ X (t), Y (t) ]... vektor parciálních derivací předpoklady X(t) a Y(t) spojité a mají derivace alespoň jedna z derivací X (t) a Y (t) v bodě t nenulová spojitá změna vektoru K křivky hladký půběh křivky nejsou ostré vrcholy tečna křivky v bodě K(t) přímka: T(u) = K(t) + u K (t) bod křivky K(t) parametr tečný vektor K (t) 13/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad příklad spočítat tečnu v bodě [0,2] ke kružnici se středem v počátku a poloměrem 2 14/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad příklad spočítat tečnu v bodě [0,2] ke kružnici se středem v počátku a poloměrem 2 řešení rovnice kružnice?? 15/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad příklad spočítat tečnu v bodě [0,2] ke kružnici se středem v počátku a poloměrem 2 řešení rovnice kružnice x = 2 cos(α) y = 2 sin(α) tečný vektor kružnice?? 16/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad příklad spočítat tečnu v bodě [0,2] ke kružnici se středem v počátku a poloměrem 2 řešení rovnice kružnice x = 2 cos(α) y = 2 sin(α) tečný vektor kružnice x = - 2 sin(α) y = 2 cos(α) tečna ke kružnici v bodě [0,2]... tečna ke kružnici v bodě?? 17/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad příklad spočítat tečnu v bodě [0,2] ke kružnici se středem v počátku a poloměrem 2 řešení rovnice kružnice x = 2 cos(α) y = 2 sin(α) tečný vektor kružnice x = - 2 sin(α) y = 2 cos(α) tečna ke kružnici v bodě [0,2]... tečna ke kružnici v bodě α = π / 2 18/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad pokračování řešení: rovnice tečny v bodě α = π/2 x =?? y =?? 19/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad pokračování řešení: rovnice tečny v bodě α = π/2 x = 2 cos(π/2) 2u sin(π/2) y = 2 sin(π/2) + 2u cos(π/2) po úpravách x =?? y =?? 20/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v rovině - příklad pokračování řešení: rovnice tečny v bodě α = π/2 x = 2 cos(π/2) 2u sin(π/2) y = 2 sin(π/2) + 2u cos(π/2) po úpravách x = 0 2u = 2u y = 2 + 0u = 2 [0,2] přímka y = 2 (x libovolné) 21/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Křivky v prostoru 1. explicitní tvar křivky vyjádření souřadnic y a z v závislosti na souřadnici x y = Y(x), z = Z(x) tento tvar nemusí vždy existovat 2. parametrický tvar křivky nejobvyklejší křivka: K = { [x,y,z] ; x=x(t), y=y(t), z=z(t), t <t min, t max >} tečný vektor v bodě K(t) vektor parciálních derivací K (t) = [X (t),y (t), Z (t)] 22/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Plochy (v prostoru) 1. implicitní tvar plochy rovnice F(x,y,z) = 0 2. explicitní tvar plochy jen pro některé plochy jedna souřadnice vyjádřena v závislosti na zbylých dvou proměnných z = Z(x,y) 3. parametrický tvar plochy nejobvyklejší souřadnice závislé na hodnotách dvou parametrů u a v P = {[x,y,z]; x=x(u,v), y=y(u,v), z=z(u,v), u <u min, u max >, v <v min, v max >} X(u,v), Y(u,v), Z(u,v)... parametrické funkce plochy P jeden z parametrů plochy fixován?? 23/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Plochy (v prostoru) 1. implicitní tvar plochy rovnice F(x,y,z) = 0 2. explicitní tvar plochy jen pro některé plochy jedna souřadnice vyjádřena v závislosti na zbylých dvou proměnných z = Z(x,y) 3. parametrický tvar plochy nejobvyklejší souřadnice závislé na hodnotách dvou parametrů u a v P = {[x,y,z]; x=x(u,v), y=y(u,v), z=z(u,v), u <u min, u max >, v <v min, v max >} X(u,v), Y(u,v), Z(u,v)... parametrické funkce plochy P jeden z parametrů plochy fixován parametrická rovnice křivky na ploše 24/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Modelování křivek a ploch MODELOVÁNÍ KŘIVEK A PLOCH 25/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Modelování křivek a ploch idea nelze zadat všechny body křivky/plochy je jich nekonečně zadají se nejdůležitější jší uzlové body např. body, kde křivka/plocha mění směr, obrací se,... typicky požadavek na hladkost křivky/plochy bez ostrých vrcholů základní metody interpolace křivka/plocha prochází uzlovými body aproximace křivka/plocha nemusí procházet uzlovými body křivka probíhá okolo uzlových bodů a kopíruje je 26/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Modelování křivek a ploch Aproximace Interpolace 27/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky FERGUSONOVY KUBIKY 28/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky interpolační křivka J. C. Ferguson, 1964 Fergusonova kubika dva řídící body P 0 a P 1 krajní body křivky křivka jimi prochází určují polohu křivky dva tečné vektory P 0 a P 1 v řídících bodech P 0 a P 1 směr a velikost tečných vektorů míra vyklenutí křivky větší velikost vektorů křivka se více přimyká k vektoru rovnice křivky P(t) = P 0 F 1 (t) + P 1 F 2 (t) + P 0 F 3 (t) + P 1 F 4 (t) kde F 1,..., F 4 jsou kubické Hermitovské polynomy F 1 (t) = 2t 3 3t 2 + 1 F 3 (t) = t 3 2t 2 + t F 2 (t) = -2t 3 + 3t 2 F 4 (t) = t 3 t 2 29/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky vektor P 0 konstantní... vektor P 1 se mění 30/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky applet: http://www2.mat.dtu.dk/info/mathematics/vidigeo/applets/book5.html 31/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky výhody snadné navazování Fergusonových kubik?? 32/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky výhody snadné navazování Fergusonových kubik poslední bod předchozího segmentu = první bod následujícího segmentu hladkost spojených dvou kubik?? 33/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Fergusonovy kubiky výhody snadné navazování Fergusonových kubik poslední bod předchozího segmentu = první bod následujícího segmentu hladkost spojených dvou kubik ztotožnění tečných vektorů ztotožněných bodů nevýhody poměrně nesnadná editace tečného vektoru ve 3D 34/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky BEZIÉROVY KŘIVKY 35/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky aproximační křivka vlastnosti křivka prochází prvním a posledním uzlem k ostatním bodům se křivka pouze přibližuje úsečky spojující dva krajní uzly se dotýkají křivky v koncových bodech spojnice prvního a druhého bodu, posledního a předposledního bodu jinak průběh křivky zcela hladký n = n rovnice P ( t ) = P B ( t ) i= 0 kde B n i jsou Bernsteinovy polynomy n n i ( ) ( ) n B i i t = t 1 t i i i 36/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky applet: http://www.math.ubc.ca/~cass/gfx/bezier.html win program Paint: kliknout a táhnout počáteční a koncový bod kliknout a táhnout vytváří se oblouk (a ještě jednou zopakovat) 37/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky nevýhody křivka určena velkým počtem bodů složitý výpočet bodu na křivce vnitřní bod křivky závisí na všech uzlech posun jednoho uzlu změna tvaru celé křivky řešení:?? 38/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky nevýhody křivka určena velkým počtem bodů složitý výpočet bodu na křivce vnitřní bod křivky závisí na všech uzlech posun jednoho uzlu změna tvaru celé křivky řešení: složitější křivky spojení několika kratších křivek lepší výpočet kratších křivek lokální oprava tvaru křivky změna polohy jednoho uzlu změna jednoho úseku křivky ostatní úseky nezměněny 39/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky spojování dvou Beziérových křivek?? 40/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky spojování dvou Beziérových křivek ztotožnění krajních vrcholů spojení křivek nemusí být hladké hladké spojení?? 41/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky spojování dvou Beziérových křivek ztotožnění krajních vrcholů spojení křivek nemusí být hladké hladké spojení 3 krajní body na jedné přímce předposlední uzel křivky Q1 poslední uzel křivky Q1 = první uzel křivky Q2 druhý uzel křivky Q2 42/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy křivky v praxi Beziérovy křivky druhého stupně kvadratické křivky definované 3 uzly Beziérovy křivky třetího stupně kubické křivky definované 4 uzly použití definice znakových fontů hladký průběh obrysů písmen jednoduché zadávání možnost libovolně font zvětšovat bez znehodnocení 43/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy plochy BEZIÉROVY PLOCHY 44/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy plochy aproximační plochy stejné principy jako Beziérovy křivky zadány sítí bodů v prostoru obdélníková tabulka bodů/uzlů libovolné velikosti rohové uzly poloha rohů plochy okrajové řady/sloupce uzlů okrajové Beziérovy křivky vnitřní uzly tvar uvnitř plochy 45/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy plochy editace uzlů 46/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérovy plochy nevýhody vnitřní bod plochy závisí na všech ostatních uzlech definiční sítě řešení: jako u Beziérových křivek složitější plochy: spojování více plátů dohromady plát = jedna Beziérova plocha typicky bikvadratický Beziérový plát plocha zadaná 3 3 uzly bikubický Beziérový plát výhody plocha zadaná 4 4 uzly lokální oprava komplikované plochy rychlejší výpočet i zobrazení 47/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérových plochy napojení plátů napojení Beziérových plátů?? 48/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérových plochy napojení plátů napojení Beziérových plátů ztotožnění krajních řad/sloupců napojení nemusí být hladké hladké napojení?? 49/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Beziérových plochy napojení plátů napojení Beziérových plátů ztotožnění krajních řad/sloupců napojení nemusí být hladké hladké napojení vliv dalších řad uzlů sousedících se společným okrajem plátů trojice uzlů na úsečkách úsečky rozděleny prostředními uzly ve stejném poměru 50/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Speciální Beziérovy pláty speciální plát... záplata degenerace jedné/dvou okrajových křivek okrajová křivka plátu = Beziérova křivka zadaná krajní řadou/sloupcem uzlů spojení těchto uzlů do jediného degenerace křivky do jediného bodu výsledná plocha má méně rohů a okrajových křivek příklad: trojúhelníkový plát jeden dvojitý roh 51/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline křivky COONSOVY (B-SPLINE) KŘIVKY 52/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline křivky aproximační křivky princip zadání: podobný Beziérovým křivkám bez omezující podmínky pro hladké napojení dvou křivek zadány posloupností bodů začátek křivky antitěžištěišt trojúhelníka ABC směr křivky v krajním bodě rovnoběžný se stranou trojúhelníka AC 53/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline křivky aproximační křivky princip zadání: podobný Beziérovým křivkám bez omezující podmínky pro hladké napojení dvou křivek zadány posloupností bodů začátek křivky antitěžištěišt trojúhelníka ABC směr křivky v krajním bodě rovnoběžný se stranou trojúhelníka AC 54/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Prodlužování B-spline křivek první úsek... P 0 P 1 P 2 P 3 druhý úsek... P 1 P 2 P 3 P 4 společný bod... antitěžistě trojúhelníka P 1 P 2 P 3 směr ve společném bodě... rovnoběžný s úsečkou P 1 P 3 společný pro obě křivky hladké spojení 55/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
Prodlužování B-spline křivek snadné napojování/prodlužování ování křivek dvě spojené křivky společné 3 definiční uzly prodloužení křivky o jeden úsek přidání jednoho nového uzlu napojování B-spline křivek zopakovány poslední tři uzly na kraj přidán jeden nový uzel 56/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline křivky vliv definičního ního uzlu na maximálně?? úseky křivek 57/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline křivky vliv definičního ního uzlu na maximálně 4 úseky křivek oprava křivky posun jednotlivých uzlů posun jednoho uzlu lokální oprava křivky změna max. 4 sousedních částí křivek zbytek křivky nezměněn 58/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline plochy COONSOVY (B-SPLINE) PLOCHY 59/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline plochy aproximační plochy zadány sítí bodů v prostoru obdélníková tabulka bodů/uzlů libovolné velikosti B-spline plocha prochází volně zadanou soustavou uzlů variabilita B-spline plochy konstrukce složitějších tvarů plochy složené z hodně plátů dva sousední pláty společné 3 řady uzlů sestavená plocha vždy hladká lokální opravy plochy posuny definičních uzlů změna jednoho uzlu změna?? sousedních plátů 60/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline plochy aproximační plochy zadány sítí bodů v prostoru obdélníková tabulka bodů/uzlů libovolné velikosti B-spline plocha prochází volně zadanou soustavou uzlů variabilita B-spline plochy konstrukce složitějších tvarů plochy složené z hodně plátů dva sousední pláty společné 3 řady uzlů sestavená plocha vždy hladká lokální opravy plochy posuny definičních uzlů změna jednoho uzlu změna 4-16 sousedních plátů speciální pláty pomocí vícenásobných uzlů 61/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
B-spline plochy změna tvaru plochy každý obrázek vznikl změnou polohy jediného uzlu 62/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
β-spline křivky β-spline KŘIVKY 63/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
β-spline křivky aproximační křivky zobecnění kubických B-spline křivek variabilnější úsek křivky 4 řídící uzly dva sousední úseky společné 3 uzly sklon β 1 posunutí křivky vzhledem k řídícím uzlům standardně β 1 = 1 β 1 < 1... posun k prvnímu uzlu β 1 > 1... posun k poslednímu uzlu napětí β 2 stupeň přesnosti aproximace jak moc křivka přitahována/odpuzována od uzlů β 2 = 0 klasická B-spline křivka 64/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
β-spline křivky změna tvaru křivky při posunutí jednoho řídícího uzlu 65/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
β-spline plochy β-spline PLOCHY 66/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz
β-spline plochy aproximační plochy zobecnění bikubických B-spline ploch β-spline plát zadán 16 řídících uzlů sklony β 1u a β 1v sklon plochy v obou směrech napětí plochy β 2 stupeň přesnosti aproximace jak moc plocha přitahována/odpuzována od uzlů 67/67 Jana Štanclová, jana.stanclova@ruk.cuni.cz