Čím jsou nurbsy tak zvláštní?
Každý, kdo alespoň někdy zabrousil do grafiky, se s nurbs křivkami i plochami setkal. V současné době se nurbsy používají při konstrukci obecných tvarů – v automobilovém designu, letectví, filmové animaci. Ale proč? Výhodné na nich jsou:
- neomezené konstrukční možnosti – modifikace polohy bodu, váhy, uzlového vektoru, stupně
- rychlý, stabilní algoritmus
- lokální kontrolovatelnost – při změně (např. bodu, váhy) dochází pouze k lokální změně křivky, zrychluje výpočet a vykreslování
- zachování spojitosti při změnách
- projektivní invariantnost – při základních transformacích – rotace, posunutí, zkosení – stačí zobrazit pouze řídící body a křivku znovu vypočítat, zrychluje výpočet
- konstrukce kuželosečkových oblouků
Trocha teorie na úvod
Základy teorie B-splajnů položil Iso Schoenberg. K jeho pokračovatelům patří Carl de Boor, který sepsal celý teoretický základ B-splajnů.
Základní definice nurbs křivek zní:
Mějme dáno m+1 kontrolních bodů Pi, m+1 kladných reálných čísel wi nazývaných váhy, stupeň křivky n a uzlový vektor t = (t0, t1, … t{n+m+1}).
NURBS křivka je definována jako
kde
Bázová funkce Ninje definována rekurentně:
Nechť t = (t0, t1, … ts) je uzlový vektor. B-spline funkce stupně n je definována jako
kde
Za každou nurbs křivkou či plochou se ukrývají tyto základní rovnice. Nurbs plocha vzniká jako tenzorový součin dvou nurbs křivek. Hlavním důvodem složitosti vzorců je to, že pro každý parametr t se vypočítají jiné bázové polynomy, na rozdíl od Bezierových či Coonsových křivek.
Na závěr uvedu malý příklad. Kružnice je jednoduchý objekt, zadáte střed a poloměr a je to. Ale zadání kružnice jako nurbs křivky se stává skoro magickou záležitostí. Je potřeba devět řídících bodů umístěných do čtverce se speciálními vahami a uzlový vektor.
Kružnice se středem [0, 0] a poloměrem r = 1.
Stupeň křivky: 2 Body: [1, 0] , [1, 1] , [0, 1] , [−1, 1] , [−1, 0] , [−1,−1] , [0,−1] , [1,−1] , [1, 0]
A jak se obecná nurbs křivka naprogramuje se dozvíte příště …