Interpolační NURBS křivky
Transkript
Interpolační NURBS křivky
Interpolační NURBS křivky Ivana Linkeová ČVUT v Praze, Fakulta strojní Karlovo nám. 13, 121 35 Praha 2 – Nové město [email protected] Abstrakt. Článek je zaměřen na interpolační metody matematického modelování obecné tvarové křivky zadané posloupností bodů pomocí NURBS reprezentace. Tvar interpolační NURBS křivky zásadním způsobem ovlivňuje způsob konstrukce vektoru parametrizace a uzlového vektoru. V článku je uvedena nově navržená metoda konstrukce uzlového vektoru a provedeno její stručné porovnání se stávajícími přístupy. Klíčová slova: NURBS, interpolace, interpolační NURBS křivka, vektor parametrizace, uzlový vektor. 1 Úvod NURBS (neuniformní racionální B-spline) křivka je konstruována jako aproximační křivka, která neprochází zadanými řídicími body. Tato metoda se s výhodou využívá k vyhlazení naměřených dat zatížených značnou chybou měření. Pokud ale pracujeme s přesnými daty, je účelné modelovat interpolační křivku, která danými body, v tomto případě tzv. definičními body, prochází. Interpolační NURBS křivku nelze počítat přímo. Známe sice přesnou polohu definičních bodů, které leží na křivce, ale neznáme polohu řídicích bodů, které vystupují v rovnicích NURBS křivky. Je tedy třeba nejprve sestavit soustavu rovnic, jejímž řešením jsou neznámé řídicí body, a teprve poté vypočítat samotnou interpolační křivku. V tomto článku vycházíme z podmínky, že počet řídicích bodů je stejný, jako počet zadaných definičních bodů. 2 Interpolační NURBS křivka Definice 1 Nechť H je neklesající posloupnost (n + 1) reálných čísel h0 ≤ h1 ≤ . . . ≤ hn . Potom čísla hi , i = 0, . . . , n nazýváme hodnotami parametru, množinu H = {hi }, i = 0, . . . , n nazýváme vektorem parametrizace a polootevřený interval [hi , hi+1 ) nazýváme i-tou roztečí vektoru parametrizace. Mají-li všechny rozteče vektoru parametrizace stejnou délku, tj. hi+1 − hi = konst, i = 0, . . . , n − 1, nazýváme vektor parametrizace uniformní. Pokud je délka roztečí vektoru parametrizace různá, hovoříme o neuniformním vektoru parametrizace. Definice 2 Nechť je dán definiční polygon {Qi }, i = 0, . . . , n, vektor parametrizace H = {hi }, i = 0, . . . , n, uzlový vektor U = {ui }, i = 0, . . . , m a stupeň křivky p. Potom má interpolační NURBS křivka C(u) stupně p následující parametrické vyjádření C(u) = n X Ri,p (u)Pi , u ∈ [u0 , um ], (1) i=0 kde {Ri,p (u)}, u ∈ [u0 , um ], i = 0, . . . , n jsou racionální bázové funkce a {Pi }, i = 0, . . . , n jsou řídicí body, které obdržíme řešením soustavy rovnic n X Rj,p (hi )Pj = Qj , i = 0, . . . , n. (2) C(hi ) = j=0 Pokud bude počet definičních bodů větší než je požadovaný stupeň křivky, je výsledná interpolační křivka tvořena m−2p aktivními segmenty, kde m = n + p + 1 je počet všech uzlových roztečí uzlového vektoru. 2.1 Princip NURBS interpolace Pro zadaný definiční polygon {Qi }, i = 0, . . . , n je třeba nejprve určit vektor parametrizace H = {hi }, i = 0, . . . , n dle def. 1. Znamená to, že jednotlivým definičním bodům přiřadíme hodnoty parametru, ve kterých bude interpolační křivka definičními body procházet. Hodnoty parametru hi jsou v grafu bázových funkcí vyznačeny symbolem ◦ na ose u. Pro zvolený stupeň křivky p (zde p = 3) zkonstruujeme uzlový vektor U = {ui }, i = 0, . . . , m. V příkladu na obr. 1 je zvolen uniformní vektor parametrizace i uniformní uzlový vektor. Dalšími metodami stanovení těchto tvarovacích parametrů se zabývá část 3. Jsou-li váhy všech řídicích bodů stejné (v celém článku jsou uvažovány váhy jednotkové), nalezneme parametrické vyjádření B-spline bázových funkcí {Ni,p (u)}, i = 0, . . . , n p-tého stupně definovaných na uzlovém vektoru U . V případě různých vah nalezneme parametrické vyjádření racionálních bázových funkcí {Ri,p (u)}, i = 0, . . . , n p-tého stupně definovaných na uzlovém vektoru U . V dalším kroku vypočteme funkční hodnoty bázových funkcí pro všechny hodnoty parametru u = hi , i = 0, . . . , n z vektoru parametrizace. Tyto funkční hodnoty jsou v grafu bázových funkcí vyznačeny tlustými tečkami v barvě příslušné funkce, souvislost s hodnotou parametru hi je dána čerchovanou čarou. Teprve nyní sestavíme soustavu rovnic (2) pro výpočet řídicích bodů {Pi }, i = 0, . . . , n NURBS křivky a nakonec nalezneme parametrické vyjádření interpolační NURBS křivky dle (1). Na obr. 1 vpravo je nakreslen vypočtený řídicí polygon i interpolační křivka. Obr. 1: B-spline bázové funkce a interpolační křivka 3. stupně 3 Uzlový vektor a vektor parametrizace Základní metody používané ke konstrukci uzlového vektoru interpolační křivky jsou dvě: uniformní a průměrová. Zde si uvedeme ještě těžišťovou metodu konstrukce uzlového vektoru, která vychází z geometrických vlastností definičního polygonu. Předpokládáme ukotvenou křivku (interpoluje krajní body řídicího polygonu), pro jejíž počáteční, resp. koncové uzly uzlového vektoru platí: ui = 0, i = 0, . . . , p, resp. ui = 1, i = m − p, . . . , m. Uniformní uzlový vektor. Uniformní uzlový vektor je nezávislý na konkrétních hodnotách parametru vektoru parametrizace. Vnitřní uzly uzlového vektoru jsou dány ui = i−3 , i = p + 1, . . . , n. n−3 (3) Vzhledem k tomu, že uniformní uzlový vektor nerespektuje rozložení hodnot parametru ve vektoru parametrizace, křivky často vykazují nežádoucí překmity mezi definičními body. Těžišťový uzlový vektor. Tato metoda odvozuje délku uzlových roztečí od vzdálenosti těžišť dílčích definičních polygonů a zohledňuje tak prostorovou konfiguraci definičních bodů. Délka uzlové rozteče je úměrná vzdálenosti těžišť dílčího řídicího polygonu. Těžišťová metoda konstrukce uzlového vektoru je také nezávislá na konstrukci vektoru parametrizace. Uzlový vektor stanovený těžišťovou metodou nazýváme těžišťovým uzlovým vektorem. Definice 3 Nechť je dán definiční polygon {Qi }, i = 0, . . . , ñ interpolační NURBS křivky a nechť Ti je těžiště dílčího definičního polygonu T0 = Q0 , Ti = Tñ−p+1 i+p X 1 Qj , i = 1, . . . , ñ − p, p + 2 j=i−1 = Qñ . (4) Označme li = |Ti − Ti−1 |, i = 1, . . . , ñ − p (5) vzdálenost dvou po sobě následujících těžišť a L= ñ−p+1 X |Ti − Ti−1 | (6) i=1 celkovou vzdálenost těžišť. Potom jsou vnitřní uzly těžišťového uzlového vektoru interpolační NURBS křivky dány ui = i 1 X lj , i = p + 1, . . . , m − p. L j=i−p (7) Průměrový uzlový vektor. Průměrový uzlový vektor je závislý na vektoru parametrizace, neboť vnitřní uzly uzlového vektoru jsou průměrem hodnot parametrů z vektoru parametrizace: ui = i−1 1 X hi , i = 4, . . . , n. 3 j=i−3 (8) Mezi nejznámější metody konstrukce vektoru parametrizace patří metoda uniformní, tětivová a dostředivá. Zajímavou možnost představuje metoda univerzální, u které se předpokládá uniformní uzlový vektor a jednotlivé hodnoty parametru vektoru parametrizace jsou hodnoty, ve kterých bázové funkce dosahují svého maxima. Zde si uvedeme i univerzální metodu, kdy ke konstrukci uzlového vektoru použijeme těžišťovou metodu. Uniformní vektor parametrizace. Uniformní vektor parametrizace je pro křivku s definičním oborem u ∈ [0, 1] dán následovně hi = i , i = 0, . . . , n. n (9) Tětivový vektor parametrizace. Tětivová metoda se snaží přiblížit obecnou parametrizaci přirozené parametrizaci obloukem. Délka aktivních uzlových roztečí je odvozena od délky ramen definičního polygonu – tětiv. V případě, že křivka probíhá blízko definičního polygonu, je její délka srovnatelná s délkou polygonu a parametrizace takto získaná je aproximací přirozené parametrizace. Počáteční hodnota h0 = 0, ostatní hodnoty parametru vektoru parametrizace se vypočtou následovně Pi j=1 hi = Pn j=1 |Qj − Qj−1 | |Qj − Qj−1 | , i = 1, . . . , n. (10) Dostředivý vektor parametrizace. Dostředivá metoda omezuje nežádoucí překmity na křivce, které mohou vzniknout díky ostrým zlomům definičního polygonu, tedy velmi malým úhlům mezi dvěma přilehlými rameny. Svůj název získala vzhledem k podobnosti s dostředivou silou, která u křivočarého pohybu prudce narůstá se zmenšujícím se poloměrem křivosti dráhy. Ve skutečnosti jde o rozšíření metody tětivové, neboť vzdálenost hodnot parametrů je úměrná odmocnině (zpravidla druhé) délky ramen definičního polygonu. Počáteční hodnota vektoru parametrizace h0 = 0, ostatní jsou dány hi = Pi p j=1 Pn j=1 p |Qj − Qj−1 | |Qj − Qj−1 | , i = 1, . . . , n. (11) Univerzální metoda. Při použití univerzální metody se nejprve stanoví uzlový vektor, vypočtou se bázové funkce a naleznou se takové hodnoty parametru, pro které bázové funkce asociované s příslušnými řídicími body dosahují svého maxima. Vzhledem k tomu, že každá B-spline Ni,p (u), resp. racionální Ri,p (u) bázová funkce dosahuje na intervalu, na kterém je nenulová [ui , ui+p ) pouze jediného maxima, je tento způsob konstrukce vektoru parametrizace velmi přirozený a maximálně zúročuje vliv bázových funkcí na tvar křivky. Vliv různých kombinací konstrukce vektoru parametrizace a uzlového vektoru můžeme sledovat na obr. 2. Barevně jsou odlišeny jednotlivé interpolační křivky a jejich řídicí polygony následovně: obr. 2 a), b), c): červená – vektor parametrizace uniformní, modrá – vektor parametrizace tětivový, zelená – vektor parametrizace dostředivý; obr. 2 d): červená – uzlový vektor uniformní, modrá – uzlový vektor těžišťový. 4 Závěr Všechny dosud uvedené metody konstrukce vektoru parametrizace vykazují pro průměrový a pro těžišťový uzlový vektor podstatně lepší tvar a) Uniformní uzlový vektor b) Průměrový uzlový vektor c) Těžišťový uzlový vektor d) Univerzální metoda Obr. 2: Vliv konstrukce vektoru parametrizace a uzlového vektoru na tvar interpolační křivky interpolačních křivek, než pro uniformní uzlový vektor, zdaleka nejpřirozenější tvar však generují obě varianty s univerzální metodou konstrukce uzlového vektoru. Další výzkum bude orientován na porovnání přesnosti interpolačních metod. Pro výpočet interpolačních NURBS křivek byl sestaven algoritmus v matematickém výpočetním systému MAPLE. Základ algoritmu tvoří výpočet aproximačních NURBS křivek, který je popsán v [1]. Literatura [1] K. Kundrátová: NURBS reprezentace křivek v Maple, CGG’05. Janov, 2005 [2] L. Piegl, W. Tiller: The NURBS Book, Monographs in Visual Communications. Springer, Berlin, 1997