Hlavní navigace

Křivky NURBS (3)

Jak Oslík ve Shrekovi hýbá oušky? Naučte se ovládat nurbsy, jako to dělají filmoví tvůrci. Dnes si povíme o ovládání nurbs křivek pomocí změn v uzlovém vektoru.

Tweetni to Odměnte autora  Jak to funguje?

Většina softwarů se snaží být co nejvíce uživatelsky přívětivá. Většina uživatelů pracuje pouze pomocí posunu bodů či tečen křivky. Nurbsy poskytují velké pole působnosti. Většina uživatelů však neví, co si má například pod pojmem uzlový vektor představit. Takže, jak ovládat nurbsy?

Změna uzlového vektoru

Nejobtížnější na ovládání je změna uzlového vektoru. Obecně je to neklesající posloupnost reálných čísel většinou v intervalu <0,1>. První a poslední složka se může opakovat nejvýše n+1 krát, kde n je stupeň křivky. To způsobí, že křivka prochází prvním a posledním řídícím bodem. Vnitřní uzly se mohou opakovat nejvýše n-krát. Výsledkem je vznik hrotu v bodu odpovídajícímu tomuto uzlu, tedy ztráta diferencovatel­nosti. Další nutná podmínka je, že se délka uzlového vektoru musí rovnat součtu počtu bodů a řádu křivky (stupeň + 1).

Jak vlastně uzlový vektor funguje? Pro ekvidistantní uzlový vektor (rozdíl sousedních čísel je konstantní) se průběžně mění vliv jednotlivých bodů. Bázové polynomy pro ekvidistantní uzlový vektor (0, 1, 2, 3, 4, 5, 6, 7) a stupeň křivky 2 vypadají následovaně:

nurbs7

Vezmeme-li parametr t=4.1, dostáváme hodnoty:

N22 = 0.405

N32 = 0.59

N42 = 0.005

Znamená to, že v čase t=4.1 má bod P2 vliv 40,5 % na tvar křivky, bod P3 má vliv 59 % a bod P4 0,5 %.

C(4.1) = P2N22 + P3N32 + P4N42 = 0.405 P2 + 0.59 P3 +0.005 P4

Pozorný čtenář si jistě všiml, že součet všech procent dává 100. To je jedna z vlastností bázových polynomů, jejich součet je vždy jedna.

Na následujícím obrázku jsou bázové funkce pro křivku stupně n=2 a neekvidistantní uzlový vektor (0,1,2,3.8,4,4­.2,6,7).

nurbs8

Pro použitý vektor položíme spočteme hodnotu bázových funkcí opět pro t=4.1 a dostaneme:

N22 = 0.125

N32 = 0.85

N42 = 0.025

Znamená to, že v parametru t=4.1 má bod P2 vliv 12,5 % na tvar křivky, bod P3 má vliv 85 % a bod P4 2,5 %. Je zřejmé, že se výrazně zvýšil vliv bodu P3. Výsledné křivky pro oba uzlové vektory jsou vykresleny na dvou následujících obrázcích.

nurbs9

Křivka pro ekvidistantní uzlový vektor (0, 1, 2, 3, 4, 5, 6, 7).

nurbs10

Křivka pro neekvidistantní uzlový vektor (0,1,2,3.8,4,4­.2,6,7).

Zmenšení intervalu tedy způsobí větší vliv daného bodu, ale na menší části křivky. Křivka se k bodu P3 přiblíží, ale na okolní body bude mít tento bod už menší vliv. Je to patrné z obrázku bázových funkcí, kde má graf funkce strmý vzestup i sestup na intervalu <3.8, 4.2>.

Myslím, že je zajímavé vědět, co se za uzlovým vektorem skrývá. V programech se většinou běžný uživatel s takovými úpravami nesetká. Ale pokud si nurbsy sami naprogramujete, můžete si všechny tyto vlastnosti vyzkoušet.

Ohodnoťte jako ve škole:
Průměrná známka 2,56
Tweetni to Odměnte autora  Jak to funguje?

Školení: Mobile - web, aplikace nebo responsivní design?

DW - Školení použitelnosti
  • Proč vůbec řešit uživatele mobilních zařízení.
  • Jak přistupovat k návrhu a správě obsahu pro mobilní digitální produkty.
  • Pochopíte, že mobile je příležitost a ne omezení.

Chcete pro svůj byznys využit mobilní web, responsivní web nebo mobilní aplikaci? Pomůžeme vám se správně rozhodnout!

Další informace o školení Mobile - web, aplikace nebo responsivní design?

       

Přehled názorů

Kruhovy oblouk
Karel 23. 3. 2006 05:07
Nový
└ 
Re: Kruhovy oblouk
jdsulin 19. 6. 01:07
Nový
Kruhovy oblouk
Karel 23. 3. 2006 05:07
Nový
├ 
Re: Kruhovy oblouk
Pavel Tišnovský 23. 3. 2006 08:26
Nový
└ 
Re: Kruhovy oblouk
Jana Procházková 23. 3. 2006 11:14
Nový
Čím to že si zas připadám jako debil?
Keny 23. 3. 2006 16:15
Nový
└ 
Re: Čím to že si zas připadám jako debil?
ggg 23. 3. 2006 17:48
Nový
 
└ 
Re: Čím to že si zas připadám jako debil?
Culibrk 24. 3. 2006 12:13
Nový
Hmm....
anonymní uživatel 13. 1. 2007 17:53
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem