Autor: Jiří Hnídek / jiri.hnidek@tul.cz
U plochy máme dva nezávislé parametry $ u,v \in <0, 1>$, které definují bodovou rovnici:
$$ Q(u,v) = [x(u,v), y(u,v), z(u,v)] $$funkce $x(u,v), y(u,v), z(u,v)$ jsou většinou polynomiální.
Každá parametrická plocha má definované dva tečné vektory:
$$ \begin{align} \vec{q}_{u}(u,v) &= \frac{\partial Q(u,v)}{\partial u} = \left( \frac{\partial x(u,v)}{\partial u}, \frac{\partial y(u,v)}{\partial u}, \frac{\partial z(u,v)}{\partial u} \right) \\ \vec{q}_{v}(u,v) &= \frac{\partial Q(u,v)}{\partial v} = \left( \frac{\partial x(u,v)}{\partial v}, \frac{\partial y(u,v)}{\partial v}, \frac{\partial z(u,v)}{\partial v} \right) \end{align} $$Normálový vektor je následně určený:
$$ \vec{n} = \frac{\vec{q}_{u} \times \vec{q}_{v}}{\left| \vec{q}_{u} \times \vec{q}_{v} \right|} $$Otázka: Je vždy normálový vektor definovaný pro každý bod parametrické plochy?
Odpověď: Nemusí tomu tak být vždy. Pokud jsou vektory $\vec{q}_{u}$, $\vec{q}_{v}$ v nějakém bodě plochy kolineární, tak zde není normálový vektor definován.
Hlavní křivkou plochy $Q(u, v)$ ve směru $u$ se rozumí, taková křivka, kde je parametr $v$ roven nějaké konstantě $k$, která může být rovna hodnotě v rozsahu $<0, 1>$.
Analogicky je definovaná hlavní křivka plochy $Q(u,v)$ ve směru $v$.
Stejně jako je výhodné navazovat kubiky, tak je výhodné vytvářet výslednou plochu z jednoduchých plátů neboli patchů. Při navazování plátů je důležitá jejich spojitost.
U ploch je podobně jako u křivek definovan parametrická (C) a geometrická (G) spojitost.
Plochy musí mít společnou stranu, která je minimálně křivkou třídy $C^{0}$.
Obecně lze říci, že spojité navazování parametrických ploch je problematické, protože pri interaktivním návrhu plochy trpí ztuhlostí.
Interpolarční plochy se téměř nepoužívají, protože interolace v dimenzích vyšších než dvě je komplikovaná.
Nejčastěji se používají aproximační plochy, kdy bázové funkce jsou polynomy stupně tři. Tím se rozumí, že hlavní křivky jsou kubiky.
Teoreticky můžeme vytvořit plochu, kde hlavní křivky v jednom směru jsou úsečky a druhém směru polynomiální křivky.
Nejčastěji se ovšem používají plochy, kde hlavní křivky jsou polynomiální křivky stupně tři (kubiky).
Podobně jako u parametrických křivek se nepožívá vyjádření pomocí koeficientů jednotlivých polynomů, ale požívá se maticové vyjádření:
$$ Q(u,v) = U M_{B} P M_{B}^{T} V^{T} = \begin{bmatrix} u^{3} & u^{2} & u & 1 \end{bmatrix} M_{B} P M_{B}^{T} \begin{bmatrix} v^{3} \\ v^{2} \\ v \\ 1 \end{bmatrix} $$$M_{B}$ je bázová matice a $P$ je vektor řídících bodů/vektorů
Hodně rozšířené parametrické plochy.
Používají pouze řídící body a procházejí některými řídícími body.
Je dána $(n + 1).(m + 1)$ řídícími body $P_{i,j}$ a Bernstainovými polynomy: $B_{i}^{n}$ $B_{j}^{m}$
Bikubická ploch je dána pouze 16-ti řídícími body. Maticový zápis:
$$ Q(u,v) = U M_{B} P M_{B}^{T} V^{T} $$pak můžeme rozepsat do tvaru:
Bikubická B-spline plocha je dána předpisem:
$$ Q(u, v) = \sum_{i=0}^{3}\sum_{j=0}^{3}P_{i,j}B_{i}(u)B_{j}(v) $$kde $B_{i}$ a $B_{j}$ jsou bázové funkce.
NURBs plochy jsou zobecněním B-spline ploch, kde body na povrchu jsou vyjádřeny pomocí:
$$ Q(u, v) = \frac{\sum_{i=0}^{n}\sum_{j=0}^{m} w_{i,j} P_{i,j} N_{i,p}(u) N_{j,q}(v)} {\sum_{i=0}{n}\sum_{j=0}^{m} w_{i,j} N_{i,p}(u) N_{j,q}(v)} $$kde $w_{i,j}$ je váha řídícího bodu $P_{i,j}$. $p$ a $q$ jsou stupně polynomů a $N_{i,p}(u), N_{i,q}(v)$ jsou normalizované B-spline bázové funkce
Jsou definované následujícím rekurentním vztahem:
$$ N_{i,1} = \begin{cases} 1; &\quad t_{i} \leq t \le t_{i+1} \\ 0; &\quad \text{otherwise} \end{cases} $$ $$ N_{i,k} = \frac{t - t_{i}}{t_{i+k-1} - t_{i}}N_{i,k-1}(t) + \frac{t_{i+k} - t}{t_{i+k} - t_{i+1}}N_{i+1,k-1}(t) $$Předchozí vztah platí pro:
$$ t_{i} \le t_{i+1+k}; 0 \leq i \leq n $$Pokud se ve jmenovateli vyskytuje nula, tak výsledná hodnota je v tomto případě rovna nule.
Je nutná podpora knihoven třetích stran
http://verbnurbs.com/