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