13.07.2015 Views

Krivky volného tvaru II.

Krivky volného tvaru II.

Krivky volného tvaru II.

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

www.KMA.zcu.czKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>.KMA/ITG – Informační technologie ve vyučování geometrieKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 1 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivky jsou křivky <strong>volného</strong> <strong>tvaru</strong>, které se skládají ze segmetůBézierových křivek stejného stupně, které jsou na sebe napojeny s co nejvyššítřídou spojitosti (jaké rozeznáváme třídy spojitosti pro křivky?)◮ zajímavostí je, že u B-spline křivek probíhá toto spojité napojení Bézierovýchkřivek automaticky◮ jakým způsobem provedeme napojení Bézierových křivek ručně? co musísplňovat body řídícího polygonu? jak je to u uzavřených Bézierových křivek?◮ výhodou je, že v závislosti na volbě stupně B-spline křivky a délce řídícíhopolygonu mohou B-spline křivky mnohem lépe kopírovat řídící polygon◮ B-spline křivky jsou zobecněním Bézierových křivek◮ odstraňují největší nevýhody Bézierových křivek: změnou polohy řídícího bodu jemožné křivku měnit pouze lokálně a s rostoucím počtem bodů řídícího polygonuneroste nutně stupeň křivky a tedy se křivka nevzdaluje od svého řídícíhopolygonuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 2 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivky jsou křivky <strong>volného</strong> <strong>tvaru</strong>, které se skládají ze segmetůBézierových křivek stejného stupně, které jsou na sebe napojeny s co nejvyššítřídou spojitosti (jaké rozeznáváme třídy spojitosti pro křivky?)◮ zajímavostí je, že u B-spline křivek probíhá toto spojité napojení Bézierovýchkřivek automaticky◮ jakým způsobem provedeme napojení Bézierových křivek ručně? co musísplňovat body řídícího polygonu? jak je to u uzavřených Bézierových křivek?◮ výhodou je, že v závislosti na volbě stupně B-spline křivky a délce řídícíhopolygonu mohou B-spline křivky mnohem lépe kopírovat řídící polygon◮ B-spline křivky jsou zobecněním Bézierových křivek◮ odstraňují největší nevýhody Bézierových křivek: změnou polohy řídícího bodu jemožné křivku měnit pouze lokálně a s rostoucím počtem bodů řídícího polygonuneroste nutně stupeň křivky a tedy se křivka nevzdaluje od svého řídícíhopolygonuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 2 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivky jsou křivky <strong>volného</strong> <strong>tvaru</strong>, které se skládají ze segmetůBézierových křivek stejného stupně, které jsou na sebe napojeny s co nejvyššítřídou spojitosti (jaké rozeznáváme třídy spojitosti pro křivky?)◮ zajímavostí je, že u B-spline křivek probíhá toto spojité napojení Bézierovýchkřivek automaticky◮ jakým způsobem provedeme napojení Bézierových křivek ručně? co musísplňovat body řídícího polygonu? jak je to u uzavřených Bézierových křivek?◮ výhodou je, že v závislosti na volbě stupně B-spline křivky a délce řídícíhopolygonu mohou B-spline křivky mnohem lépe kopírovat řídící polygon◮ B-spline křivky jsou zobecněním Bézierových křivek◮ odstraňují největší nevýhody Bézierových křivek: změnou polohy řídícího bodu jemožné křivku měnit pouze lokálně a s rostoucím počtem bodů řídícího polygonuneroste nutně stupeň křivky a tedy se křivka nevzdaluje od svého řídícíhopolygonuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 2 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivky jsou křivky <strong>volného</strong> <strong>tvaru</strong>, které se skládají ze segmetůBézierových křivek stejného stupně, které jsou na sebe napojeny s co nejvyššítřídou spojitosti (jaké rozeznáváme třídy spojitosti pro křivky?)◮ zajímavostí je, že u B-spline křivek probíhá toto spojité napojení Bézierovýchkřivek automaticky◮ jakým způsobem provedeme napojení Bézierových křivek ručně? co musísplňovat body řídícího polygonu? jak je to u uzavřených Bézierových křivek?◮ výhodou je, že v závislosti na volbě stupně B-spline křivky a délce řídícíhopolygonu mohou B-spline křivky mnohem lépe kopírovat řídící polygon◮ B-spline křivky jsou zobecněním Bézierových křivek◮ odstraňují největší nevýhody Bézierových křivek: změnou polohy řídícího bodu jemožné křivku měnit pouze lokálně a s rostoucím počtem bodů řídícího polygonuneroste nutně stupeň křivky a tedy se křivka nevzdaluje od svého řídícíhopolygonuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 2 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivky jsou křivky <strong>volného</strong> <strong>tvaru</strong>, které se skládají ze segmetůBézierových křivek stejného stupně, které jsou na sebe napojeny s co nejvyššítřídou spojitosti (jaké rozeznáváme třídy spojitosti pro křivky?)◮ zajímavostí je, že u B-spline křivek probíhá toto spojité napojení Bézierovýchkřivek automaticky◮ jakým způsobem provedeme napojení Bézierových křivek ručně? co musísplňovat body řídícího polygonu? jak je to u uzavřených Bézierových křivek?◮ výhodou je, že v závislosti na volbě stupně B-spline křivky a délce řídícíhopolygonu mohou B-spline křivky mnohem lépe kopírovat řídící polygon◮ B-spline křivky jsou zobecněním Bézierových křivek◮ odstraňují největší nevýhody Bézierových křivek: změnou polohy řídícího bodu jemožné křivku měnit pouze lokálně a s rostoucím počtem bodů řídícího polygonuneroste nutně stupeň křivky a tedy se křivka nevzdaluje od svého řídícíhopolygonuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 2 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivka je určena◮◮n + 1 řídícími body (určují celkový tvar křivky)stupněm p (určuje stupeň jednotlivých oblouků B-spline křivky, stupeňpolynomů v parametrizaci)◮uzlovým vektor (vektorem parametrizace), který určuje parametrizacikřivky, napojoení jednotlivých oblouků B-spline křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 3 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ uzlový vektor má obecně tvar T = (t 1, t 2, . . . , t n+p+1), kde t i ≤ t i+1, t inazýváme uzly, p je stupeň B-spline křivky a n je počet bodů řídícího polygonu◮ pokud jsou uzly rovnoměrně rozloženy v parametrickém prostoru, nazývámevektor parametrizace uniformní, jinak neuniformní◮ obecně mohou být uzly ve vektoru parametrizace násobné◮ vektor parametrizace se nazývá otevřený (někdy také neperiodický), jestliprvních a posledních p + 1 uzlů je stejných – tento typ vektoru parametrizace seobvykle využívá v CAD literatuře◮ jakým způsobem můžeme zkonstruovat uniformní kubickou B-spline křivkupomocí kubických Bézierovských segmentů? vyzkoušejte si v Cabri!◮ uzlový vektor společně se stupněm B-spline křivky určují bázové funkceodpovídající B-spline křivky, tzv. B-spline báziN i,0(t) =N i,p(t) ={ 1 ti ≤ t < t i+10 jindet − t iN i,p(t) +ti+p+1 − t N i+1,p(t)t i+p − t i t i+p+1 − t i+1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 4 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ uzlový vektor má obecně tvar T = (t 1, t 2, . . . , t n+p+1), kde t i ≤ t i+1, t inazýváme uzly, p je stupeň B-spline křivky a n je počet bodů řídícího polygonu◮ pokud jsou uzly rovnoměrně rozloženy v parametrickém prostoru, nazývámevektor parametrizace uniformní, jinak neuniformní◮ obecně mohou být uzly ve vektoru parametrizace násobné◮ vektor parametrizace se nazývá otevřený (někdy také neperiodický), jestliprvních a posledních p + 1 uzlů je stejných – tento typ vektoru parametrizace seobvykle využívá v CAD literatuře◮ jakým způsobem můžeme zkonstruovat uniformní kubickou B-spline křivkupomocí kubických Bézierovských segmentů? vyzkoušejte si v Cabri!◮ uzlový vektor společně se stupněm B-spline křivky určují bázové funkceodpovídající B-spline křivky, tzv. B-spline báziN i,0(t) =N i,p(t) ={ 1 ti ≤ t < t i+10 jindet − t iN i,p(t) +ti+p+1 − t N i+1,p(t)t i+p − t i t i+p+1 − t i+1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 4 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ uzlový vektor má obecně tvar T = (t 1, t 2, . . . , t n+p+1), kde t i ≤ t i+1, t inazýváme uzly, p je stupeň B-spline křivky a n je počet bodů řídícího polygonu◮ pokud jsou uzly rovnoměrně rozloženy v parametrickém prostoru, nazývámevektor parametrizace uniformní, jinak neuniformní◮ obecně mohou být uzly ve vektoru parametrizace násobné◮ vektor parametrizace se nazývá otevřený (někdy také neperiodický), jestliprvních a posledních p + 1 uzlů je stejných – tento typ vektoru parametrizace seobvykle využívá v CAD literatuře◮ jakým způsobem můžeme zkonstruovat uniformní kubickou B-spline křivkupomocí kubických Bézierovských segmentů? vyzkoušejte si v Cabri!◮ uzlový vektor společně se stupněm B-spline křivky určují bázové funkceodpovídající B-spline křivky, tzv. B-spline báziN i,0(t) =N i,p(t) ={ 1 ti ≤ t < t i+10 jindet − t iN i,p(t) +ti+p+1 − t N i+1,p(t)t i+p − t i t i+p+1 − t i+1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 4 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ uzlový vektor má obecně tvar T = (t 1, t 2, . . . , t n+p+1), kde t i ≤ t i+1, t inazýváme uzly, p je stupeň B-spline křivky a n je počet bodů řídícího polygonu◮ pokud jsou uzly rovnoměrně rozloženy v parametrickém prostoru, nazývámevektor parametrizace uniformní, jinak neuniformní◮ obecně mohou být uzly ve vektoru parametrizace násobné◮ vektor parametrizace se nazývá otevřený (někdy také neperiodický), jestliprvních a posledních p + 1 uzlů je stejných – tento typ vektoru parametrizace seobvykle využívá v CAD literatuře◮ jakým způsobem můžeme zkonstruovat uniformní kubickou B-spline křivkupomocí kubických Bézierovských segmentů? vyzkoušejte si v Cabri!◮ uzlový vektor společně se stupněm B-spline křivky určují bázové funkceodpovídající B-spline křivky, tzv. B-spline báziN i,0(t) =N i,p(t) ={ 1 ti ≤ t < t i+10 jindet − t iN i,p(t) +ti+p+1 − t N i+1,p(t)t i+p − t i t i+p+1 − t i+1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 4 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ uzlový vektor má obecně tvar T = (t 1, t 2, . . . , t n+p+1), kde t i ≤ t i+1, t inazýváme uzly, p je stupeň B-spline křivky a n je počet bodů řídícího polygonu◮ pokud jsou uzly rovnoměrně rozloženy v parametrickém prostoru, nazývámevektor parametrizace uniformní, jinak neuniformní◮ obecně mohou být uzly ve vektoru parametrizace násobné◮ vektor parametrizace se nazývá otevřený (někdy také neperiodický), jestliprvních a posledních p + 1 uzlů je stejných – tento typ vektoru parametrizace seobvykle využívá v CAD literatuře◮ jakým způsobem můžeme zkonstruovat uniformní kubickou B-spline křivkupomocí kubických Bézierovských segmentů? vyzkoušejte si v Cabri!◮ uzlový vektor společně se stupněm B-spline křivky určují bázové funkceodpovídající B-spline křivky, tzv. B-spline báziN i,0(t) =N i,p(t) ={ 1 ti ≤ t < t i+10 jindet − t iN i,p(t) +ti+p+1 − t N i+1,p(t)t i+p − t i t i+p+1 − t i+1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 4 / 21


B-spline křivkywww.KMA.zcu.czB-spline báze – periodický vektor parametrizace◮ bázové funkce pro uniformní periodický vektor T = (0, 1, 2, . . . , 7) různéhostupně – je vidět, že se vždy jedná o stejné, pouze posunuté bázové funkceKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 5 / 21


B-spline křivkywww.KMA.zcu.czB-spline báze – otevřený (neperiodický) vektorparametrizace◮ vektor parametrizaceT = (0, 0, 0, 0, 1, 2, 3, 4, 4, 4, 4), tj.uniformní vektor parametrizace,p = 3, n = 7, výsledný spline je třídyC 2◮ vektor parametrizaceT = (0, 0, 0, 1, 2, 2, 3, 3, 3), tj.neuniformní vektor parametrizace,p = 2, n = 6, výsledný spline jeobecně třídy C 0Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 6 / 21


B-spline bázeB-spline křivkywww.KMA.zcu.cz◮ B-spline bázové funkce stupně p mají obecně p − 1 spojitých derivací, tzn.kvadratické bázové funkce obecně spadají do třídy C 1 apod.◮ násobné uzly ve vektoru parametrizace snižují spojitost bázových funkcí (anásledně i odpovídající B-spline/NURBS křivky) – jestliže vektor parametrizaceobsahuje k-násobný uzel (k > 1 ∧ k


B-spline bázeB-spline křivkywww.KMA.zcu.cz◮ B-spline bázové funkce stupně p mají obecně p − 1 spojitých derivací, tzn.kvadratické bázové funkce obecně spadají do třídy C 1 apod.◮ násobné uzly ve vektoru parametrizace snižují spojitost bázových funkcí (anásledně i odpovídající B-spline/NURBS křivky) – jestliže vektor parametrizaceobsahuje k-násobný uzel (k > 1 ∧ k


B-spline bázeB-spline křivkywww.KMA.zcu.cz◮ B-spline bázové funkce stupně p mají obecně p − 1 spojitých derivací, tzn.kvadratické bázové funkce obecně spadají do třídy C 1 apod.◮ násobné uzly ve vektoru parametrizace snižují spojitost bázových funkcí (anásledně i odpovídající B-spline/NURBS křivky) – jestliže vektor parametrizaceobsahuje k-násobný uzel (k > 1 ∧ k


B-spline bázeB-spline křivkywww.KMA.zcu.cz◮ B-spline bázové funkce stupně p mají obecně p − 1 spojitých derivací, tzn.kvadratické bázové funkce obecně spadají do třídy C 1 apod.◮ násobné uzly ve vektoru parametrizace snižují spojitost bázových funkcí (anásledně i odpovídající B-spline/NURBS křivky) – jestliže vektor parametrizaceobsahuje k-násobný uzel (k > 1 ∧ k


B-spline křivkyPříklady uzlových vektorůwww.KMA.zcu.cz◮ určete:◮◮◮◮◮jestli je daný uzlový vektor uniformní nebo neuniformní,jakého stupně jsou odpovídající B-spline bázové funkce (a také B-splinekřivka),z kolika částí se odpovídající B-spline křivka skládá,kolik musí mít bodů řídící polygon,jaké třídy spojitosti jsou B-spline bázové funkcepro uzlové vektory1 T = (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6)2 T = (0, 0, 0, 0, 1, 3, 4, 7, 7, 7, 7)3 T = (0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5)4 T = (0, 0, 0, 0, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 5)◮ pokud uzlový vektor indikuje snížení spojitosti, je možné to nějak „napravit“?Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 8 / 21


B-spline křivkyPříklady uzlových vektorůwww.KMA.zcu.cz◮ určete:◮◮◮◮◮jestli je daný uzlový vektor uniformní nebo neuniformní,jakého stupně jsou odpovídající B-spline bázové funkce (a také B-splinekřivka),z kolika částí se odpovídající B-spline křivka skládá,kolik musí mít bodů řídící polygon,jaké třídy spojitosti jsou B-spline bázové funkcepro uzlové vektory1 T = (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6)2 T = (0, 0, 0, 0, 1, 3, 4, 7, 7, 7, 7)3 T = (0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5)4 T = (0, 0, 0, 0, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 5)◮ pokud uzlový vektor indikuje snížení spojitosti, je možné to nějak „napravit“?Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 8 / 21


B-spline křivkyPříklady uzlových vektorůwww.KMA.zcu.cz◮ určete:◮◮◮◮◮jestli je daný uzlový vektor uniformní nebo neuniformní,jakého stupně jsou odpovídající B-spline bázové funkce (a také B-splinekřivka),z kolika částí se odpovídající B-spline křivka skládá,kolik musí mít bodů řídící polygon,jaké třídy spojitosti jsou B-spline bázové funkcepro uzlové vektory1 T = (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6)2 T = (0, 0, 0, 0, 1, 3, 4, 7, 7, 7, 7)3 T = (0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5)4 T = (0, 0, 0, 0, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 5)◮ pokud uzlový vektor indikuje snížení spojitosti, je možné to nějak „napravit“?Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 8 / 21


B-spline křivkyPříklady uzlových vektorůwww.KMA.zcu.cz◮ určete:◮◮◮◮◮jestli je daný uzlový vektor uniformní nebo neuniformní,jakého stupně jsou odpovídající B-spline bázové funkce (a také B-splinekřivka),z kolika částí se odpovídající B-spline křivka skládá,kolik musí mít bodů řídící polygon,jaké třídy spojitosti jsou B-spline bázové funkcepro uzlové vektory1 T = (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6)2 T = (0, 0, 0, 0, 1, 3, 4, 7, 7, 7, 7)3 T = (0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5)4 T = (0, 0, 0, 0, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 5)◮ pokud uzlový vektor indikuje snížení spojitosti, je možné to nějak „napravit“?Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 8 / 21


B-spline křivkyPříklady uzlových vektorůwww.KMA.zcu.cz◮ určete:◮◮◮◮◮jestli je daný uzlový vektor uniformní nebo neuniformní,jakého stupně jsou odpovídající B-spline bázové funkce (a také B-splinekřivka),z kolika částí se odpovídající B-spline křivka skládá,kolik musí mít bodů řídící polygon,jaké třídy spojitosti jsou B-spline bázové funkcepro uzlové vektory1 T = (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6)2 T = (0, 0, 0, 0, 1, 3, 4, 7, 7, 7, 7)3 T = (0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5)4 T = (0, 0, 0, 0, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 5)◮ pokud uzlový vektor indikuje snížení spojitosti, je možné to nějak „napravit“?Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 8 / 21


B-spline křivkyPříklady uzlových vektorůwww.KMA.zcu.cz◮ určete:◮◮◮◮◮jestli je daný uzlový vektor uniformní nebo neuniformní,jakého stupně jsou odpovídající B-spline bázové funkce (a také B-splinekřivka),z kolika částí se odpovídající B-spline křivka skládá,kolik musí mít bodů řídící polygon,jaké třídy spojitosti jsou B-spline bázové funkcepro uzlové vektory1 T = (0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6)2 T = (0, 0, 0, 0, 1, 3, 4, 7, 7, 7, 7)3 T = (0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5)4 T = (0, 0, 0, 0, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 5)◮ pokud uzlový vektor indikuje snížení spojitosti, je možné to nějak „napravit“?Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 8 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivku získáme jako lineární kombinaci B-spline bázových funkcí,koeficienty bázových funkcí nazýváme řídící body◮ pro řídící body P i, i = 1, . . . , n, a bázové funkce N i,p, i = 1, . . . , n, je B-splinekřivka stupně p dána vztahemn∑C(t) = P iN i,p(t)Důležité vlastnosti B-spline křivek:◮ B-spline křivka stupně p je obecně (p − 1)-krát spojitě diferencovatelná, pokudvektor parametrizace neobsahuje násobné uzly nebo nesplývají některé řídícíbody◮ uzel násobnosti k v uzlovém vektoru snižuje spojitost B-spline křivky o k − 1◮ podmínka konvexního obalu – každý oblouk křivky stupně p leží v konvexnímobalu p + 1 bodů řídícího polygonui=1◮ afinní invariantnost – je jedno, jestli transformuje afinní transformací křivku nebojejí řídící polygon, výsledek je stejnýKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 9 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivku získáme jako lineární kombinaci B-spline bázových funkcí,koeficienty bázových funkcí nazýváme řídící body◮ pro řídící body P i, i = 1, . . . , n, a bázové funkce N i,p, i = 1, . . . , n, je B-splinekřivka stupně p dána vztahemn∑C(t) = P iN i,p(t)Důležité vlastnosti B-spline křivek:◮ B-spline křivka stupně p je obecně (p − 1)-krát spojitě diferencovatelná, pokudvektor parametrizace neobsahuje násobné uzly nebo nesplývají některé řídícíbody◮ uzel násobnosti k v uzlovém vektoru snižuje spojitost B-spline křivky o k − 1◮ podmínka konvexního obalu – každý oblouk křivky stupně p leží v konvexnímobalu p + 1 bodů řídícího polygonui=1◮ afinní invariantnost – je jedno, jestli transformuje afinní transformací křivku nebojejí řídící polygon, výsledek je stejnýKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 9 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivku získáme jako lineární kombinaci B-spline bázových funkcí,koeficienty bázových funkcí nazýváme řídící body◮ pro řídící body P i, i = 1, . . . , n, a bázové funkce N i,p, i = 1, . . . , n, je B-splinekřivka stupně p dána vztahemn∑C(t) = P iN i,p(t)Důležité vlastnosti B-spline křivek:◮ B-spline křivka stupně p je obecně (p − 1)-krát spojitě diferencovatelná, pokudvektor parametrizace neobsahuje násobné uzly nebo nesplývají některé řídícíbody◮ uzel násobnosti k v uzlovém vektoru snižuje spojitost B-spline křivky o k − 1◮ podmínka konvexního obalu – každý oblouk křivky stupně p leží v konvexnímobalu p + 1 bodů řídícího polygonui=1◮ afinní invariantnost – je jedno, jestli transformuje afinní transformací křivku nebojejí řídící polygon, výsledek je stejnýKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 9 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivku získáme jako lineární kombinaci B-spline bázových funkcí,koeficienty bázových funkcí nazýváme řídící body◮ pro řídící body P i, i = 1, . . . , n, a bázové funkce N i,p, i = 1, . . . , n, je B-splinekřivka stupně p dána vztahemn∑C(t) = P iN i,p(t)Důležité vlastnosti B-spline křivek:◮ B-spline křivka stupně p je obecně (p − 1)-krát spojitě diferencovatelná, pokudvektor parametrizace neobsahuje násobné uzly nebo nesplývají některé řídícíbody◮ uzel násobnosti k v uzlovém vektoru snižuje spojitost B-spline křivky o k − 1◮ podmínka konvexního obalu – každý oblouk křivky stupně p leží v konvexnímobalu p + 1 bodů řídícího polygonui=1◮ afinní invariantnost – je jedno, jestli transformuje afinní transformací křivku nebojejí řídící polygon, výsledek je stejnýKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 9 / 21


B-spline křivkyB-spline křivkywww.KMA.zcu.cz◮ B-spline křivku získáme jako lineární kombinaci B-spline bázových funkcí,koeficienty bázových funkcí nazýváme řídící body◮ pro řídící body P i, i = 1, . . . , n, a bázové funkce N i,p, i = 1, . . . , n, je B-splinekřivka stupně p dána vztahemn∑C(t) = P iN i,p(t)Důležité vlastnosti B-spline křivek:◮ B-spline křivka stupně p je obecně (p − 1)-krát spojitě diferencovatelná, pokudvektor parametrizace neobsahuje násobné uzly nebo nesplývají některé řídícíbody◮ uzel násobnosti k v uzlovém vektoru snižuje spojitost B-spline křivky o k − 1◮ podmínka konvexního obalu – každý oblouk křivky stupně p leží v konvexnímobalu p + 1 bodů řídícího polygonui=1◮ afinní invariantnost – je jedno, jestli transformuje afinní transformací křivku nebojejí řídící polygon, výsledek je stejnýKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 9 / 21


B-spline křivkyB-spline křivka – příkladwww.KMA.zcu.cz◮ najděme B-spline křivku určenou řídícím polygonem P 1 = [0, 0], P 2 = [1, 4],P 3 = [3, 5], P 4 = [5, −1], P 5 = [7, −1], P 6 = [9, 2] a vektorem parametrizaceT = (0, 0, 0, 1, 2, 2, 3, 3, 3).◮ křivka je složena ze 3 oblouků (částí) a je třídy C 0 , jak naznačoval vektorparametrizace◮ první část křivky je ovlivněna pouze prvními třemi bázovými funkcemi (žlutá,zelená, tyrkysová), ostatní jsou na [0, 1] nulové, a tedy pouze první tři řídící bodyovlivňují tuto část křivky, podobně pro ostatní části◮ první a poslední hrana řídícího polygonu určují tečny ke křivce na začátku a nakonci, vlivem snížení spojitosti také hrany P 3P 4, P 4P 5 určují tečny křivky v okolínapojení druhého a třetího obloukuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 10 / 21


B-spline křivkyB-spline křivka – příkladwww.KMA.zcu.cz◮ najděme B-spline křivku určenou řídícím polygonem P 1 = [0, 0], P 2 = [1, 4],P 3 = [3, 5], P 4 = [5, −1], P 5 = [7, −1], P 6 = [9, 2] a vektorem parametrizaceT = (0, 0, 0, 1, 2, 2, 3, 3, 3).◮ křivka je složena ze 3 oblouků (částí) a je třídy C 0 , jak naznačoval vektorparametrizace◮ první část křivky je ovlivněna pouze prvními třemi bázovými funkcemi (žlutá,zelená, tyrkysová), ostatní jsou na [0, 1] nulové, a tedy pouze první tři řídící bodyovlivňují tuto část křivky, podobně pro ostatní části◮ první a poslední hrana řídícího polygonu určují tečny ke křivce na začátku a nakonci, vlivem snížení spojitosti také hrany P 3P 4, P 4P 5 určují tečny křivky v okolínapojení druhého a třetího obloukuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 10 / 21


B-spline křivkyB-spline křivka – příkladwww.KMA.zcu.cz◮ najděme B-spline křivku určenou řídícím polygonem P 1 = [0, 0], P 2 = [1, 4],P 3 = [3, 5], P 4 = [5, −1], P 5 = [7, −1], P 6 = [9, 2] a vektorem parametrizaceT = (0, 0, 0, 1, 2, 2, 3, 3, 3).◮ křivka je složena ze 3 oblouků (částí) a je třídy C 0 , jak naznačoval vektorparametrizace◮ první část křivky je ovlivněna pouze prvními třemi bázovými funkcemi (žlutá,zelená, tyrkysová), ostatní jsou na [0, 1] nulové, a tedy pouze první tři řídící bodyovlivňují tuto část křivky, podobně pro ostatní části◮ první a poslední hrana řídícího polygonu určují tečny ke křivce na začátku a nakonci, vlivem snížení spojitosti také hrany P 3P 4, P 4P 5 určují tečny křivky v okolínapojení druhého a třetího obloukuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 10 / 21


B-spline křivkyB-spline křivka – příkladwww.KMA.zcu.cz◮ najděme B-spline křivku určenou řídícím polygonem P 1 = [0, 0], P 2 = [1, 4],P 3 = [3, 5], P 4 = [5, −1], P 5 = [7, −1], P 6 = [9, 2] a vektorem parametrizaceT = (0, 0, 0, 1, 2, 2, 3, 3, 3).◮ křivka je složena ze 3 oblouků (částí) a je třídy C 0 , jak naznačoval vektorparametrizace◮ první část křivky je ovlivněna pouze prvními třemi bázovými funkcemi (žlutá,zelená, tyrkysová), ostatní jsou na [0, 1] nulové, a tedy pouze první tři řídící bodyovlivňují tuto část křivky, podobně pro ostatní části◮ první a poslední hrana řídícího polygonu určují tečny ke křivce na začátku a nakonci, vlivem snížení spojitosti také hrany P 3P 4, P 4P 5 určují tečny křivky v okolínapojení druhého a třetího obloukuKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 10 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz◮ některé standardní objekty, jako např. křužnice, resp. její části, nelze popsatpomocí Bézierových křivek◮ důvodem může být, že tyto objekty není možné popsat polynomiálníparametrizací a je potřeba použít racionální lomené funkce◮ proto se zavádí racionální specializace Bézierových křivek (a později takéB-spline křivek)◮ racionální Bézierova křivka již není určena pouze řídícím polygonem, ale takéváhami řídících bodů◮ pokud B i = [B i,x, B i,y], i = 0, . . . , n jsou řídící body a w i jsou váhy těchto bodů,potom tzv. projektivní řídící body racionální Bézierovy křivky jsouB w i= [w iB i,x, w iB i,y, w i], i = 0, . . . , n◮ parametrizaci racionální Bézierovy křivky je potom možné získat ze vztahu( )n∑ ( n)n∑RB w n(t) = (1 − t) n−i t i B w i (1 − t) n−i t i w iB ii=0i , resp. RB(t) =in∑ ( n)i=0i (1 − t)n−it i w ii=0Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 11 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz◮ některé standardní objekty, jako např. křužnice, resp. její části, nelze popsatpomocí Bézierových křivek◮ důvodem může být, že tyto objekty není možné popsat polynomiálníparametrizací a je potřeba použít racionální lomené funkce◮ proto se zavádí racionální specializace Bézierových křivek (a později takéB-spline křivek)◮ racionální Bézierova křivka již není určena pouze řídícím polygonem, ale takéváhami řídících bodů◮ pokud B i = [B i,x, B i,y], i = 0, . . . , n jsou řídící body a w i jsou váhy těchto bodů,potom tzv. projektivní řídící body racionální Bézierovy křivky jsouB w i= [w iB i,x, w iB i,y, w i], i = 0, . . . , n◮ parametrizaci racionální Bézierovy křivky je potom možné získat ze vztahu( )n∑ ( n)n∑RB w n(t) = (1 − t) n−i t i B w i (1 − t) n−i t i w iB ii=0i , resp. RB(t) =in∑ ( n)i=0i (1 − t)n−it i w ii=0Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 11 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz◮ některé standardní objekty, jako např. křužnice, resp. její části, nelze popsatpomocí Bézierových křivek◮ důvodem může být, že tyto objekty není možné popsat polynomiálníparametrizací a je potřeba použít racionální lomené funkce◮ proto se zavádí racionální specializace Bézierových křivek (a později takéB-spline křivek)◮ racionální Bézierova křivka již není určena pouze řídícím polygonem, ale takéváhami řídících bodů◮ pokud B i = [B i,x, B i,y], i = 0, . . . , n jsou řídící body a w i jsou váhy těchto bodů,potom tzv. projektivní řídící body racionální Bézierovy křivky jsouB w i= [w iB i,x, w iB i,y, w i], i = 0, . . . , n◮ parametrizaci racionální Bézierovy křivky je potom možné získat ze vztahu( )n∑ ( n)n∑RB w n(t) = (1 − t) n−i t i B w i (1 − t) n−i t i w iB ii=0i , resp. RB(t) =in∑ ( n)i=0i (1 − t)n−it i w ii=0Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 11 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz◮ některé standardní objekty, jako např. křužnice, resp. její části, nelze popsatpomocí Bézierových křivek◮ důvodem může být, že tyto objekty není možné popsat polynomiálníparametrizací a je potřeba použít racionální lomené funkce◮ proto se zavádí racionální specializace Bézierových křivek (a později takéB-spline křivek)◮ racionální Bézierova křivka již není určena pouze řídícím polygonem, ale takéváhami řídících bodů◮ pokud B i = [B i,x, B i,y], i = 0, . . . , n jsou řídící body a w i jsou váhy těchto bodů,potom tzv. projektivní řídící body racionální Bézierovy křivky jsouB w i= [w iB i,x, w iB i,y, w i], i = 0, . . . , n◮ parametrizaci racionální Bézierovy křivky je potom možné získat ze vztahu( )n∑ ( n)n∑RB w n(t) = (1 − t) n−i t i B w i (1 − t) n−i t i w iB ii=0i , resp. RB(t) =in∑ ( n)i=0i (1 − t)n−it i w ii=0Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 11 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz◮ některé standardní objekty, jako např. křužnice, resp. její části, nelze popsatpomocí Bézierových křivek◮ důvodem může být, že tyto objekty není možné popsat polynomiálníparametrizací a je potřeba použít racionální lomené funkce◮ proto se zavádí racionální specializace Bézierových křivek (a později takéB-spline křivek)◮ racionální Bézierova křivka již není určena pouze řídícím polygonem, ale takéváhami řídících bodů◮ pokud B i = [B i,x, B i,y], i = 0, . . . , n jsou řídící body a w i jsou váhy těchto bodů,potom tzv. projektivní řídící body racionální Bézierovy křivky jsouB w i= [w iB i,x, w iB i,y, w i], i = 0, . . . , n◮ parametrizaci racionální Bézierovy křivky je potom možné získat ze vztahu( )n∑ ( n)n∑RB w n(t) = (1 − t) n−i t i B w i (1 − t) n−i t i w iB ii=0i , resp. RB(t) =in∑ ( n)i=0i (1 − t)n−it i w ii=0Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 11 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz◮ projektivní řídící body potom polynomiální (prostorovou) Bézierovu křivku vprojektivním rozšíření R 2 a odhomogenizováním vzhledem k poslední souřadnici(vydělením poslední souřadnicí) dostáváme racionální parametrizaci rovinnéracionální Bézierovy křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 12 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz1 Vypočtěte váhy řídících bodů B 0 = [1, 0], B 1 = [1, 1], B 2 = [0, 1] tak, abyodpovídající racionální Bézierova křivka byla částí kružnice daná parametrizací( )1 − t2RB(t) =1 + t , 2t.2 1 + t 22 Vypočtěte parametrizaci racionální Bézierovy křivky dané řídícím polygonemB w 0 = [1, 0, 1], B w 1 = [0, 1, 0], B w 2 = [−1, 0, 1].3 Algoritmus de Casteljau je možné zobecnit pro racionální Bézierovy křivky. Opětse jedná o rekurzivní proces popsaný vztahyZkonstruujte v Cabri!B 0 i = B i,B j i = (1 − t) wj−1 iw j iB j−1i+ t wj−1 i+1w j iw j i = (1 − t) w j−1i + t w j−1i+1j = 1, . . . , n, i = 0, . . . , n − jB j−1i+1 ,Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 13 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz1 Vypočtěte váhy řídících bodů B 0 = [1, 0], B 1 = [1, 1], B 2 = [0, 1] tak, abyodpovídající racionální Bézierova křivka byla částí kružnice daná parametrizací( )1 − t2RB(t) =1 + t , 2t.2 1 + t 22 Vypočtěte parametrizaci racionální Bézierovy křivky dané řídícím polygonemB w 0 = [1, 0, 1], B w 1 = [0, 1, 0], B w 2 = [−1, 0, 1].3 Algoritmus de Casteljau je možné zobecnit pro racionální Bézierovy křivky. Opětse jedná o rekurzivní proces popsaný vztahyZkonstruujte v Cabri!B 0 i = B i,B j i = (1 − t) wj−1 iw j iB j−1i+ t wj−1 i+1w j iw j i = (1 − t) w j−1i + t w j−1i+1j = 1, . . . , n, i = 0, . . . , n − jB j−1i+1 ,Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 13 / 21


Racionální Bézierovy křivkyRacionální Bézierovy křivkywww.KMA.zcu.cz1 Vypočtěte váhy řídících bodů B 0 = [1, 0], B 1 = [1, 1], B 2 = [0, 1] tak, abyodpovídající racionální Bézierova křivka byla částí kružnice daná parametrizací( )1 − t2RB(t) =1 + t , 2t.2 1 + t 22 Vypočtěte parametrizaci racionální Bézierovy křivky dané řídícím polygonemB w 0 = [1, 0, 1], B w 1 = [0, 1, 0], B w 2 = [−1, 0, 1].3 Algoritmus de Casteljau je možné zobecnit pro racionální Bézierovy křivky. Opětse jedná o rekurzivní proces popsaný vztahyZkonstruujte v Cabri!B 0 i = B i,B j i = (1 − t) wj−1 iw j iB j−1i+ t wj−1 i+1w j iw j i = (1 − t) w j−1i + t w j−1i+1j = 1, . . . , n, i = 0, . . . , n − jB j−1i+1 ,Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 13 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ NURBS = Non-Uniform Rational B-Splines◮ pomocí racionálních Bézierových křivek stále nedokážeme popsat celoukružnici, pomocí NURBS křivky ano◮ NURBS křivka je určena řídícími body, váhami těchto řídících bodů, stupněm avektorem parametrizace◮ i pro NURBS křivky může být uzlový vektor uniformní nebo neuniformní◮ křivky jsou racionální, protože parametrizace oblouků křivky jsou tvořenyracionálně lomenými funkcemi◮ váhy fungují obdobně jako u racionálních Bézierových křivek◮ o vektoru parametrizace platí totéž, co bylo řečeno pro polynomiální B-splinekřivky◮ analogicky k racionálním Bézierovým křivkám, pro řídící body P i a jejich váhyw i, i = 1, . . . , n, jsouP w i= [w i(P i) 1, w i(P i) 2, w i], i = 1 . . . , ntzv. projektivní řídící body NURBS křivkyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 14 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ projektivní řídící body P w i a vektor parametrizace T určují polynomiální B-splinekřivku v projektivním rozšíření R 2 a odhomogenizováním vzhledem k poslednísouřadnici dostáváme racionální parametrizaci rovinné NURBS křivky◮ kružnice na obrázku dole je získána projektivní transformací po částechkvadratické B-spline křivky v R 3Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 15 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ pokud P i a w i, i = 1, . . . , n jsou řídící body a váhy NURBS křivky, T je vektorparametrizace, potom parametrizace NURBS křivky stupně p je∑ ni=1C(u) = ∑ Ni,p(u)wiPin (1)i=1 Ni,p(u)wi◮ pokud P w ijsou příslušné projektivní řídící body, potom platíC w (u) =n∑N i,p(u)P w i =i=1n∑N i,p(u)(w i(P i) 1, w i(P i) 2, w i)i=1a odhomogenizováním vzhledem k poslední souřadnici (vydělením poslednísouřadnicí) dostáváme vztah (1)◮ vlastnosti obdobné B-spline křivkám – lokalizace změn, platí podmínkakonvexního obalu, projektivní invariantnost◮ pokud jsou váhy všech řídících bodů stejné, dostáváme polynomiální B-splinekřivku◮ (racionální) Bézierovy křivky a B-spline křivky jsou tedy speciálními případyNURBS křivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 16 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ pokud P i a w i, i = 1, . . . , n jsou řídící body a váhy NURBS křivky, T je vektorparametrizace, potom parametrizace NURBS křivky stupně p je∑ ni=1C(u) = ∑ Ni,p(u)wiPin (1)i=1 Ni,p(u)wi◮ pokud P w ijsou příslušné projektivní řídící body, potom platíC w (u) =n∑N i,p(u)P w i =i=1n∑N i,p(u)(w i(P i) 1, w i(P i) 2, w i)i=1a odhomogenizováním vzhledem k poslední souřadnici (vydělením poslednísouřadnicí) dostáváme vztah (1)◮ vlastnosti obdobné B-spline křivkám – lokalizace změn, platí podmínkakonvexního obalu, projektivní invariantnost◮ pokud jsou váhy všech řídících bodů stejné, dostáváme polynomiální B-splinekřivku◮ (racionální) Bézierovy křivky a B-spline křivky jsou tedy speciálními případyNURBS křivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 16 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ pokud P i a w i, i = 1, . . . , n jsou řídící body a váhy NURBS křivky, T je vektorparametrizace, potom parametrizace NURBS křivky stupně p je∑ ni=1C(u) = ∑ Ni,p(u)wiPin (1)i=1 Ni,p(u)wi◮ pokud P w ijsou příslušné projektivní řídící body, potom platíC w (u) =n∑N i,p(u)P w i =i=1n∑N i,p(u)(w i(P i) 1, w i(P i) 2, w i)i=1a odhomogenizováním vzhledem k poslední souřadnici (vydělením poslednísouřadnicí) dostáváme vztah (1)◮ vlastnosti obdobné B-spline křivkám – lokalizace změn, platí podmínkakonvexního obalu, projektivní invariantnost◮ pokud jsou váhy všech řídících bodů stejné, dostáváme polynomiální B-splinekřivku◮ (racionální) Bézierovy křivky a B-spline křivky jsou tedy speciálními případyNURBS křivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 16 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ pokud P i a w i, i = 1, . . . , n jsou řídící body a váhy NURBS křivky, T je vektorparametrizace, potom parametrizace NURBS křivky stupně p je∑ ni=1C(u) = ∑ Ni,p(u)wiPin (1)i=1 Ni,p(u)wi◮ pokud P w ijsou příslušné projektivní řídící body, potom platíC w (u) =n∑N i,p(u)P w i =i=1n∑N i,p(u)(w i(P i) 1, w i(P i) 2, w i)i=1a odhomogenizováním vzhledem k poslední souřadnici (vydělením poslednísouřadnicí) dostáváme vztah (1)◮ vlastnosti obdobné B-spline křivkám – lokalizace změn, platí podmínkakonvexního obalu, projektivní invariantnost◮ pokud jsou váhy všech řídících bodů stejné, dostáváme polynomiální B-splinekřivku◮ (racionální) Bézierovy křivky a B-spline křivky jsou tedy speciálními případyNURBS křivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 16 / 21


NURBS křivkyNURBS křivkywww.KMA.zcu.cz◮ pokud P i a w i, i = 1, . . . , n jsou řídící body a váhy NURBS křivky, T je vektorparametrizace, potom parametrizace NURBS křivky stupně p je∑ ni=1C(u) = ∑ Ni,p(u)wiPin (1)i=1 Ni,p(u)wi◮ pokud P w ijsou příslušné projektivní řídící body, potom platíC w (u) =n∑N i,p(u)P w i =i=1n∑N i,p(u)(w i(P i) 1, w i(P i) 2, w i)i=1a odhomogenizováním vzhledem k poslední souřadnici (vydělením poslednísouřadnicí) dostáváme vztah (1)◮ vlastnosti obdobné B-spline křivkám – lokalizace změn, platí podmínkakonvexního obalu, projektivní invariantnost◮ pokud jsou váhy všech řídících bodů stejné, dostáváme polynomiální B-splinekřivku◮ (racionální) Bézierovy křivky a B-spline křivky jsou tedy speciálními případyNURBS křivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 16 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Subdivision křivkySubdivision křivkywww.KMA.zcu.cz◮ základní myšlenkou subdivision křivek je definovat hladkou křivku jako limitníkřivku subdivision procesu, během kterého je postupně počáteční řídící polygonzjemňován pomocí nově vkládaných vrcholů◮ subdivision je tedy proces, který z daného počátečního řídícího polygonu vytvořínový polygon pomocí předem daných a známých pravidel◮ nový řídící polygon může obsahovat body původního polygonu, ale také nemusí◮ aplikovaná pravidla mohou být stejná pro celou, ale také nemusí, mohou se iměnit v průběhu subdivision procesu◮ subdivision křivka je tedy obvykle definována řídící body a úrovní k zjemnění◮ první subdivision metody spočívaly v ořezávání vrcholů – poprvé s toutometodou přišel G. de Rahm v roce 1947 (rozdělení hrany pomocí 1/3 a 2/3),později zavedl metodu využívající rozdělení hrany pomocí 1/4 a 3/4◮ nezávisle s touto metodou přišel v roce 1974 G. Chaikin jako s novou metodoupro generování křivek pod názvem algoritmus pro vysokorychlostní generováníkřivekKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 17 / 21


Chaikinův algoritmusSubdivision křivkywww.KMA.zcu.cz◮ princip metody spočívá v ořezávání vrcholů – pro vrchol původního polygon jsounalezeny dva nové body a původní vrchol vrchol je pomocí nich „odstřihnut“◮ umístění nových vrcholů potom popisují geometrická pravidla – pokud původnívrcholy označíme v i, i = 1, . . . , n, potom nové vrcholy jsouv 2i−1 ′ = 3 4 vi + 1 4 vi+1, v′ 2i = 1 4 vi + 3 vi+1, i = 1, . . . , n − 14◮ někdy se pro neuzavřené polygony používá modifikace uvedeného algoritmu,kdy první a poslední hraně přiřadíme pouze střed této hranyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 18 / 21


Chaikinův algoritmusSubdivision křivkywww.KMA.zcu.cz◮ princip metody spočívá v ořezávání vrcholů – pro vrchol původního polygon jsounalezeny dva nové body a původní vrchol vrchol je pomocí nich „odstřihnut“◮ umístění nových vrcholů potom popisují geometrická pravidla – pokud původnívrcholy označíme v i, i = 1, . . . , n, potom nové vrcholy jsouv 2i−1 ′ = 3 4 vi + 1 4 vi+1, v′ 2i = 1 4 vi + 3 vi+1, i = 1, . . . , n − 14◮ někdy se pro neuzavřené polygony používá modifikace uvedeného algoritmu,kdy první a poslední hraně přiřadíme pouze střed této hranyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 18 / 21


Chaikinův algoritmusSubdivision křivkywww.KMA.zcu.cz◮ princip metody spočívá v ořezávání vrcholů – pro vrchol původního polygon jsounalezeny dva nové body a původní vrchol vrchol je pomocí nich „odstřihnut“◮ umístění nových vrcholů potom popisují geometrická pravidla – pokud původnívrcholy označíme v i, i = 1, . . . , n, potom nové vrcholy jsouv 2i−1 ′ = 3 4 vi + 1 4 vi+1, v′ 2i = 1 4 vi + 3 vi+1, i = 1, . . . , n − 14◮ někdy se pro neuzavřené polygony používá modifikace uvedeného algoritmu,kdy první a poslední hraně přiřadíme pouze střed této hranyKřivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 18 / 21


Subdivision křivkywww.KMA.zcu.czChaikinův algoritmus◮ geometrická pravidla se reprezentují pomocí tzv. masky (topologická pravidla)◮ metoda konverguje k po částech kvadratické uniformní B-spline křivce◮ první čtyři kroky metody pro neuzavřenou a uzavřenou křivku:Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 19 / 21


Subdivision křivkywww.KMA.zcu.czChaikinův algoritmus◮ geometrická pravidla se reprezentují pomocí tzv. masky (topologická pravidla)◮ metoda konverguje k po částech kvadratické uniformní B-spline křivce◮ první čtyři kroky metody pro neuzavřenou a uzavřenou křivku:Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 19 / 21


Subdivision křivkywww.KMA.zcu.czChaikinův algoritmus◮ geometrická pravidla se reprezentují pomocí tzv. masky (topologická pravidla)◮ metoda konverguje k po částech kvadratické uniformní B-spline křivce◮ první čtyři kroky metody pro neuzavřenou a uzavřenou křivku:Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 19 / 21


Subdivision křivkyAlgoritmus Lane-Riesenfeldwww.KMA.zcu.cz◮ Chaikinův algoritmus můžeme také provést tak, že nejprve řídící polygonudoplníme o středy všech jeho hran a nový polygon potom získámeprůměrováním – každé hraně přiřadíme její střed a tyto středy vytvoří novýpolygon◮ algoritmus Lane-Riesenfeld potom spočívá v tom, že toto průměrováníneprovádíme pouze jednou, ale n-krát◮ v limitě potom tento proces konverguje k uniformní B-spline křivce stupně n + 1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 20 / 21


Subdivision křivkyAlgoritmus Lane-Riesenfeldwww.KMA.zcu.cz◮ Chaikinův algoritmus můžeme také provést tak, že nejprve řídící polygonudoplníme o středy všech jeho hran a nový polygon potom získámeprůměrováním – každé hraně přiřadíme její střed a tyto středy vytvoří novýpolygon◮ algoritmus Lane-Riesenfeld potom spočívá v tom, že toto průměrováníneprovádíme pouze jednou, ale n-krát◮ v limitě potom tento proces konverguje k uniformní B-spline křivce stupně n + 1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 20 / 21


Subdivision křivkyAlgoritmus Lane-Riesenfeldwww.KMA.zcu.cz◮ Chaikinův algoritmus můžeme také provést tak, že nejprve řídící polygonudoplníme o středy všech jeho hran a nový polygon potom získámeprůměrováním – každé hraně přiřadíme její střed a tyto středy vytvoří novýpolygon◮ algoritmus Lane-Riesenfeld potom spočívá v tom, že toto průměrováníneprovádíme pouze jednou, ale n-krát◮ v limitě potom tento proces konverguje k uniformní B-spline křivce stupně n + 1Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 20 / 21


4-bodové schémaSubdivision křivkywww.KMA.zcu.cz◮ je vidět, že všechna dosud ukázaná schémata aproximují výchozí řídící polygon– to vyplývá z faktu, že všechna tato schémata konvergují k uniformním B-splinekřivkám, které také aproximují zadaný řídící polygon◮ nicméně je možné vytvořit i schémata, která zachovávají výchozí řídící polygonve všech krocích – výchozí body jsou tedy i v limitní křivce a schéma jeinterpolační◮ nejjednodušším takovým případem je tzv. čtyřbodové schéma – mezi každé dvabody v i, v i+1 vložíme nový bod, původní body zůstávají, tedy geometrickápravidla jsouv ′ 2i = v i, v ′ 2i+1 = − 1 16 vi−1 + 9 16 vi + 9 16 vi+1 − 1 16 vi+2Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 21 / 21


4-bodové schémaSubdivision křivkywww.KMA.zcu.cz◮ je vidět, že všechna dosud ukázaná schémata aproximují výchozí řídící polygon– to vyplývá z faktu, že všechna tato schémata konvergují k uniformním B-splinekřivkám, které také aproximují zadaný řídící polygon◮ nicméně je možné vytvořit i schémata, která zachovávají výchozí řídící polygonve všech krocích – výchozí body jsou tedy i v limitní křivce a schéma jeinterpolační◮ nejjednodušším takovým případem je tzv. čtyřbodové schéma – mezi každé dvabody v i, v i+1 vložíme nový bod, původní body zůstávají, tedy geometrickápravidla jsouv ′ 2i = v i, v ′ 2i+1 = − 1 16 vi−1 + 9 16 vi + 9 16 vi+1 − 1 16 vi+2Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 21 / 21


4-bodové schémaSubdivision křivkywww.KMA.zcu.cz◮ je vidět, že všechna dosud ukázaná schémata aproximují výchozí řídící polygon– to vyplývá z faktu, že všechna tato schémata konvergují k uniformním B-splinekřivkám, které také aproximují zadaný řídící polygon◮ nicméně je možné vytvořit i schémata, která zachovávají výchozí řídící polygonve všech krocích – výchozí body jsou tedy i v limitní křivce a schéma jeinterpolační◮ nejjednodušším takovým případem je tzv. čtyřbodové schéma – mezi každé dvabody v i, v i+1 vložíme nový bod, původní body zůstávají, tedy geometrickápravidla jsouv ′ 2i = v i, v ′ 2i+1 = − 1 16 vi−1 + 9 16 vi + 9 16 vi+1 − 1 16 vi+2Křivky <strong>volného</strong> <strong>tvaru</strong> <strong>II</strong>. ITG 21 / 21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!