% kodovania wincp-1250
%

\documentclass{article}
\usepackage{slovak,graphics,amsmath}
\usepackage{amssymb}

\begin{document}

\title{Krivky a plochy}
\author{D�vid P�l}
\maketitle

Toto som sp�sal u�iac sa na �t�tnice z grafiky.

\part{Krivky}

Za krivky budeme pova�ova� zobrazenie $C: I \to E^2$ pr�padne $C: I \to E^3$,
kde $I$ je nejak� interval. Zvy�ajne sa po�aduje, aby $C(t)$ mala dostato�ne ve�a deriv�ci� (najlep�ie v�etky)
a aby jej prv� deriv�cia nebola nulov� (nulov� vektor). Tieto dve po�iadavky sa skr�tene volaj� hladkos� a regul�rnos�.

\section{Hermitova krivka}
Na �vod za�neme nejakou �ahkou krivkou.

Chceme zostroji� polyn�m s predp�sanou funk�nou hodnotou v bode $0$, deriv�ciu v bode $0$, 
deriv�ciu v bode $1$ a funk�nou hodnotou v bode $1$, ako na to? Zostroj�me �tyri kubick� polyn�my, 
tak�, �e prv� polyn�m bude ma� funk�n� hodnotu v bode 0 rovn� jedna a zvy�n� tri vlastnosti nulov�.
Druh� bude ma� druh� vlastnos� jedna a zvy�n� nulov�, at�. Tak� polyn�my s� tieto: \footnote{Stup�a najviac 3 nutne existuj� len a pr�ve tieto.}
\begin{eqnarray}
H^3_0(t) &=&2t^3 - 3t^2 + 1 \\
H^3_1(t) &=& t^3 - 2t^2 + t \\
H^3_2(t) &=& t^3 - t^2 \\
H^3_3(t) &=& -2t^3 + 3t^2
\end{eqnarray}

Ak m�me teraz dva body $V_0,V_1$ a dva vektory $u_0,u_1$, tak potom krivka
\begin{equation}
H(t) = V_0 H^3_0(t) + u_0 H^3_1(t) + u_1 H^3_2(t) + V_1 H^3_3(t), \qquad \text{pre } t \in [0,1]
\end{equation}
m� t� vlastnos�, �e za��na v bode $V_0$, kon�� v bode $V_1$, deriv�cia (doty�nica) v bode $0$ je
$u_0$ a deriv�cia v bode 1 je $u_1$. T�to krivka sa naz�va Hermitova alebo Nielsonova.

\section{Bezi�rove krivky}

Tieto krivky vymyslel Pierre Bezier (1910--1999) pre franc�zsku automobilku Renault.

\subsection{Bernsteinove polyn�my}

$k$-ty ($0 \le k \le n$) \emph{Bernesteinov polyn�m}\footnote{Ob�as zvykn� vola� aj Bezi�rove b�zic� funkcie.} 
$n$-t�ho stup�a je
\begin{equation}
B^n_k(t) = {n \choose k} t^k(1-t)^{n-k}.
\end{equation}
Za ich defini�n� obor budeme bra� interval $[0,1]$.

Tu s� polyn�my pre mal� $n$.
\begin{itemize}
\item Pre $n=0$ je jedin� tak� polyn�m $B_0^0$ kon�tatne rovn� $1.$
\item Pre $n=1$ s� dva $$B^1_0(t)=1-t,\quad B^1_1(t) = t.$$
\item Pre $n=2$ s� tri $$B^2_0(t)=(1-t)^2,\quad B^2_1(t) = 2t(1-t), \quad B^2_2(t)=t^2.$$
\item Pre $n=3$ s� �tyri $$B^3_0(t)=(1-t)^3, \quad B^3_1(t) = 3t(1-t)^2, \quad  B^3_2(t)=3t^2(1-t), \quad B^3_3(t)=t^3.$$
\end{itemize}

Dole�it� je vedie� zderivova� tak� Bernsteinov polyn�m.
\begin{equation}
\begin{split}
[B^{n}_k(t)]^\prime  	&= \left[{n \choose k} t^k(1-t)^{n-k}\right]^\prime 				\\
		&= {n \choose k}kt^{k-1}(1-t)^{n-k} - {n \choose n-k}(n-k)t^k(1-t)^{n-k-1}	\\
		&= n{n-1 \choose k-1}t^{k-1}(1-t)^{n-k-1} - n{n-1 \choose n-k-1}t^{k-1}(1-t)^{n-k-1} \\
		&= n\left[{n-1 \choose k-1}t^{k-1}(1-t)^{n-k-1} - {n-1 \choose k}t^{k-1}(1-t)^{n-k-1}\right] \\
		&= n\left[B^{n-1}_{k-1}(t) - B^{n-1}_k(t) \right] \\
\end{split}
\end{equation}
V tomto vzorci (ale aj pr�padne hocikde nesk�r) pre $k$ mimo rozsahu $0,1,\dots,n$ berieme $B^n_k(t)$ kon�tatne nulov�.
D�vod je ten, �e vtedy je (resp. sa kladie) ${n \choose k}=0$.

O Bernsteinov�ch polyn�moch plat� nieko�ko faktov, ktor� stoja za re�:

\begin{itemize}
\item Ich hodnoty s� v intervale $[0,1]$, teda presnej�ie 
\begin{equation}
B^n_k(t) \in [0,1], \qquad \text{pre } t \in [0,1].
\end{equation}
\item S��et v�etk�ch $n+1$ polyn�mov d�va dokopy kon�tatn� jednotku
\begin{equation}
B^n_0(t) + B^n_1 + \dots + B^n_n(t) = \sum_{k=0}^n {n \choose k}t^k(1-t)^k  = ((1-t)+t)^n = 1.
\end{equation}
\item S� to unimod�lne (jednohrb�) funkcie s jedin�m maximov v bode $t=k/n$ (pre $n>0$).
\item Tvoria b�zu polyn�mov nanajv�� $n$-t�ho stup�a.
\item Sp��aj� rekurenciu
\begin{equation}
B^{n+1}_k(t) = tB^n_{k-1}(t) + (1-t)B^n_k(t).
\end{equation}
\end{itemize}

\subsection{Bezi�rove krivky}

Ke� m�me dan�ch $n+1$ bodov $V_0, V_1, \dots, V_n$ v euklidovskej rovine $E^2$ alebo priestore $E^3$, tak definujeme
\emph{Bezi�rovu krivku} $n$-t�ho stup�a
\begin{equation}
B^n(t) = \sum_{k=0}^n B^n_k(t) V_k, \qquad \text{pre } t \in [0,1].
\end{equation}

Ke� sa to poderivuje, tak m�me jej doty�nicu v �ubovo�nom bode. Vyu�ijeme vy��ie vyr�tan� deriv�ciu Bersteinovho polyn�mu.
\begin{equation}
\begin{split}
[B^n(t)]^\prime	&= \left[\sum_{k=0}^n B^n_k(t) V_k \right]^\prime 			\\
		&= \sum_{k=0}^n [B^n_k(t)]^\prime V_k 					\\
		&= n\sum_{k=0}^n (B^{n-1}_{k-1}(t)  - B^{n-1}_k) V_k 			\\
		&= n\sum_{k=0}^{n-1} B^{n-1}_k(t) (V_{k+1} - V_k) 			\\
\end{split}
\end{equation}

Z tohto a vlastnost� Bernsteinov�ch polyn�mov n�m plynie, �e
\begin{itemize}
\item Krivka le�� cel� v konvexnom obale svojich riadiacich vrcholov.
\item M� pseudolok�lne riadenie. Teda ke� pohnem nejak�m vrcholom, tak sa "podstatne zmen�" len k�sok okolo neho.
\item Krivka sa dot�ka spojnice svojich dvoch prv�ch a dvoch posledn�ch riadiacich bodov.
\end{itemize}

\subsection{Casteljauov algoritmus}
Je to algoritmus na vy��slovanie (a n�sledn� vykreslenie) Bezierovej krivky pre nejak� hodnotu parametra $t$.
Samozrejme ide to robi� aj priamo dosaden�m do vzorca, ale toto je z�bavnej�ie, numericky stabilnej�ie,
ba �o viac vieme tak �ahko krivku rozdeli� na dve.

Postup je nasledovn�: Je dan� nejak� fixn� $t$, v ktorom r�tame bod krivky. Na za�iatku m�me $n+1$ riadiacich vrcholov
$V_0, V_1, \dots, V_n$, ozna��me ich pref�kane ako body nultej gener�cie 
$$V_0^0 := V_0, \quad V_1^0 := V_1, \quad \dots, \quad V_n^0 := V_n.$$
Z nich skon�truujeme body prvej gener�cie, t�ch u� bude len $n$. N�sledne body druhej, t�ch bude len $n-1$, at�.
A� nakoniec dostaneme jedin� bod $V^n_0$ $n$-tej gener�cie. Tento bod je bodov Bezi�rovej krivky, teda $B^n(t) = V_0^0$.
Tu je rekurentn� vzorec, ako r�ta� body $r$-tej gener�cie:
\begin{equation}
V_k^r = (1-t)V_k^{r-1} + tV_{k+1}^{r-1}, \qquad \text{pre } r<0\le n, \quad  0\le k \le n-r.
\end{equation}
Tento reku--rere
\footnote{Ako n�m u�ite�ka matematiky na gymn�ziu vysvetlila, �e rekurencia je od rekurere, �o znamen� kr��at sp�t.} 
sa naz�va \emph{Casteljauov algoritmus}.

To, �e plat� $B^n(t) = V_0^0$, teda $V_0^0$ je bodom krivky sa dok�e z toho
�ubovoln� vrchol v �ubovo�nej gener�cii vieme vyjadri� pomocou p�vodn�ch riadiacich vrcholov
\begin{equation}
V_k^r =  \sum_{j=0}^r B^r_j(t)V_{k+j}
\end{equation}
Toto sa hravo dok�e indukciou a pou�it�m vlastnost� kombina�n�ch ��sel.

Krivka sa n�m sekne v na�om bode $t$ na dve �asti. Obe s� to polynomick� krivky a preto s� zap�sate�n� ako Bezierove krivky.
D� sa dok�za�, �e riadiacimi vrcholmi �avej �asti s� vrcholy $V_0^0, V_0^1, V_0^2 \dots, V_0^n$
a pravej $V_0^n, V_1^{n-1}, V_2^{n-2} \dots, V_n^0$.
(S� to dos� otravne dlh� v�po�ty. Lep�ie je si to na�rtn�� na papier a uveri�.)

\subsection{Zvy�ovanie stup�a}

Toto sl��i na to, ke� chceme  prida� �al�� riadiaci vrchol bez toho, aby sme zmenili tvar krivky.
S viac riadiacimi vrcholmi m��me potom krivku lep�ie a jemnej�ie meni�.

Funguje to asi takto: M�me Bezi�rovu krivku $B(t)$ stup�a $n$ definovan� $n+1$
riadiacimi bodmi $V_0, V_1, \dots, V_n$.  Skon�truujeme riadiace vrcholy $W_0,
W_1, \dots, W_{n+1}$, tak�, �e Bezi�rova krivka nimi ur�en�, bude toto�n� s
na�ou $B(t)$.
Evidentne mus� $W_0=V_0$ a $W_{n+1}=V_n$, zvy�n� body sa dor�taj� pod�a nasledovn�ho vzorca
\begin{equation}
W_i = \frac{i}{n+1}V_{i-1} + \left(1 - \frac{i}{n+1}\right)V_i.
\end{equation}
D�kaz je priamo�iare dosedenie a n�sledn� u�apakanie.
(To, �e to principi�lne muselo �s� vyjadri�, vypl�va z toho, polyn�m stup�a najviac $n$ je aj polyn�mom stup�a najviac 
$n+1$ a z toho, �e Bernsteinove polyn�my tvoria b�zu.)

\subsection{Racion�lne Bezi�rove krivky}
Ide o zov�eobecnenie Bezi�rov�ch kriviek. Majme riadiace body v priestore (t.j. v $E^3$) $V_0,V_1,\dots,V_n$ ako 
u klasick�ch Bezi�rov�ch kriviek. Navy�e prid�me ka�d�mu bodu prid�me v�hu $w_i$, re�lne (najlep�ie kladn�) ��slo.
Potom \emph{riacion�lna} Bezi�rova krivka je 
\begin{equation}
B^n(t) = \frac{\sum_{k=0}^n B^n_k(t) w_i V_i}{\sum_{k=0}^n B^n_k(t) w_i}, \qquad \text{pre } t \in [0,1]
\end{equation}
Racion�lne sa volaj� preto, �e s� podielom dvoch 
polyn�mov.\footnote{Presnej�ie ka�d� s�radnica zvl᚝ je podielom dvoch polyn�mov.}

Nech riadiace vrcholy pov�dn� riadiace vrcholy $V_i$ mali s�radnice $V_i=[x_i,y_i,z_i]$.
Uva�ujeme klasick� Bezi�rovu 4D krivku s riadiacimi vrchlolmi $U_i=[w_ix_i,w_iy_i,w_iz_i,w_i]$.
(Toto mo�no ch�pa� aj ako homog�nne s�radnice p�vodn�ch bodov, lebo $[w_ix_i,w_iy_i,w_iz_i,w_i] \equiv [x_i,y_i,z_i,1]$.)
\begin{equation}
B^n(t) = \sum_{k=0}^n B^n_k(t) U_i = \sum_{k=0}^n B^n_k(t) 
\begin{bmatrix}w_i x_i \\ w_i y_i \\ w_i z_i \\ w_i\end{bmatrix}	
=
 \begin{bmatrix} 
 \sum_{k=0}^n B^n_k(t) w_i x_i \\
 \sum_{k=0}^n B^n_k(t) w_i y_i \\
 \sum_{k=0}^n B^n_k(t) w_i z_i \\
 \sum_{k=0}^n B^n_k(t) w_i \\
 \end{bmatrix} 
\end{equation}
Potom t�to krivka ch�pan� ako 3D krivka je racion�lnu Bezi�rou krivkou
\begin{equation}
B^n(t) =
 \begin{bmatrix} 
 \sum_{k=0}^n B^n_k(t) w_i x_i \\
 \sum_{k=0}^n B^n_k(t) w_i y_i \\
 \sum_{k=0}^n B^n_k(t) w_i z_i \\
 \sum_{k=0}^n B^n_k(t) w_i \\
 \end{bmatrix} 
\equiv 
 \frac{1}{\sum_{k=0}^n B^n_k(t) w_i}
 \begin{bmatrix} 
 \sum_{k=0}^n B^n_k(t) w_i x_i \\
 \sum_{k=0}^n B^n_k(t) w_i y_i \\
 \sum_{k=0}^n B^n_k(t) w_i z_i \\
 1
 \end{bmatrix} 
= \frac{\sum_{k=0}^n B^n_k(t) w_i V_i}{\sum_{k=0}^n B^n_k(t) w_i}
\end{equation}

Inak sa na racion�lnu krivku mo�no d�va� ako na stredov� priemet (so stredom v po�iatku) do nadroviny $w=1$
($w$ je �tvrt� s�radnica v 4D). Prakticky (napr. v OpenGL) sa to r�ta tak, �e t� krivku r�tame 4D ako be�n�
Bezi�rovu krivku a nakoniec to predel�me �tvrtou s�radnicou. 
(Alebo ani nepredel�me a rovno po�leme do OpenGL v homog�nnych s�radniciach.)

Defacto ka�d� krivka alebo aj plocha, ktor� je definovan� len pomocou riadiacich vrcholov existuje aj racion�lnej verzii.
Toto plat� minim�lne pre Bezi�rove krivky a plochy (vr�tane Bezi�rovho trojuholn�ka), B-splajnov a B-splajnov�ch pl�ch.
Idea a vzorce je v�dy t� ist� ako tu, tak�e sa t�m nebudem viac �peci�lne zaobera�.

\section{B-splajny}
\subsection{B-splajnov� b�zick� funkcie}
B-splajnov� b�zick� funkcie s� pre B-splajny asi to, �o pre Bezi�rove krivky
Bernsteinove polyn�my. S� ale o dos� komplikovanej�ie, a hlavne nie s� to polyn�my ale zlepeniny polyn�mov.

Najprv m�me nejak� prirodzen� ��slo $m$ a neklesaj�cucu postupnos� $m+1$ re�lnych ��sel $t_0 \le t_1 \le
\dots \le t_m$. T�to postupnos� sa naz�va uzlov� vektor (d�ky $m$). Ak sa nejak� ��slo vyskytuje v postupnosti viackr�t
hovor�me, �e uzol je n�sobn�, po�et v�skytov uzla vol�me jeho n�sobnos�ou.
Na tomto uzlovom vektore definujeme $i$-tu \emph{B-splajnov� b�zick� funkciu} $N^d_k(t)$ stup�a $d$.
Pre stupe� nula je 
\begin{equation}
N^0_k(t) = 
\begin{cases}
1, & t \in [t_k, t_{k+1}) \\
0, & \text{inak} \\
\end{cases}, \qquad \text{pre } 0\le i \le m-1.
\end{equation}
Pre vy��ie stupne ich definujeme rekurentne
\begin{equation}
N^d_k(t) = \frac{t-t_k}{t_{k+d}-t_k}N^{d-1}_k(t) + \frac{t_{k+d+1}-t}{t_{k+d+1}-t_{k+1}}N^{d-1}_{k+1}(t),
\end{equation}
 pre  $0\le i \le m-d-1$.
Ak by v defin�cii v niektorom zlomku v menovateli vy�la nula (kv�li n�sobnosti uzlov), tak ten zlomok ch�peme ako nulov�.

Stup�a $d$ je ich $m-d$ a ��slujeme ich $B^d_0, B^d_1, \dots, B^d_n$, kde $n=m-d-1$.
Defini�n�m oborom funcki� stup�a $d$ je interval $[t_d, t_{m-d}]$.

Tieto funkcie maj� kopec zauj�mav�ch vlastnost� (niektor� s� podobn� ako u Bernsteinov�ch polyn�mov):
\begin{itemize}
\item S� nez�porn�. $N^d_i(t)$ je kladn� na intervale $(t_i, t_{d+1})$; tento
interval sa naz�va \emph{nosi�} (angl. support).  S� unimod�lne (jednohrb�).
\item Funkcie stup�a $d$ sa na intervale $[t_d,t_{m-d}]$ sa s��taj� na kon�tatn� jednotku. Teda
\begin{equation}
N^d_0(t) + N^d_1(t) + \dots + N^d_n(t) = \sum_{k=0}^n N^d_k(t) = 1, \qquad \text{pre } t \in [t_d, t_{m-d}].
\end{equation}
\item S� to �iastkovo polynomick� funckie (pr�slu�n�ho stup�a). V neuzlovom bode s� hladk� a
v uzlove s n�sobnos�ou $r$ s� spojit� r�du $d-r$ (trieda $C^{d-r}$).
\item Tvoria vektorov� priestor dimenzie $n+1$.
\end{itemize}

\subsection{Vektorov� priestor b�zick�ch funcki�}
TODO

\subsection{B-splajnov� krivky}
Idea je rovnak� ako u Bezi�rov�ch kriviek, len namiesto Bernsteinov�ch polyn�mov pou�ijeme B-splajnov� b�zick� funckie.
Teda m�me $n+1$ riadiach vrcholov $V_0, V_1, \dots, V_n$ v nejakom Euklidovovskom priestore (rovina alebo priestor),
uzlov� vektor d�ky $m$ a na �om definovan� b�zick� funkcie stup�a $d$, pri�om plat�
\begin{equation}
m=n+d+1.
\end{equation}
\emph{B-splajnovou krivkou} (skr�tene \emph{B-splajnom}) rozumieme krivku
\begin{equation}
N^d(t) = \sum_{k=0}^n V_k N^d_k(t), \qquad \text{pre } t \in [t_d, t_{m-d}].
\end{equation}

Jej z�kladn� vlastnosti s�:
\begin{itemize}
\item Lok�lne riadenie, teda, ke� pohnem riadiacim vrcholom, tak sa zmen� naozaj len k�sok krivky.
(TODO: Ktor� k�sok presne.)
\item Siln� vlastnos� konvexn�ho obalu, teda k�sok krivky od $[t_i, t_{i+1})$ 
le�� v konvexnom obale bodov $V_{i-d}, V_{i-d+1}, \dots, V_i$.
\item O spojitosti plat� to, �o pre b�zick� funkcie.
\end{itemize}

\subsection{De Boorov algoritmus}

Idea je podobn� ako u Casteljauovho algoritmu.  
Povedzme, �e chceme krivku vy��sli� v bode $t \in [t_i, t_{i+1}]$. 
Vezmeme tie riadiace vrcholy, ktor� maj� na tento k�sok vplyv. To s� $V_{i-d}, V_{i_d+1}, \dots, V_i$.
(Je ich $d+1$.) Ozna��me ich, ako body nultej gener�cie $V_{i-d}^0, V_{i-d+1}^0, \dots, V_i^0$.
N�sledne generujeme body �al��ch gener�ci� takto:
\begin{equation}
V_k^r = (1-\alpha) V_k^{r-1} + \alpha V_{k+1}^{r-1}, 
\end{equation}
kde 
\begin{equation}
\alpha = .
\end{equation}
TODO

\subsection{Vo�ba uzlov}
Ak chceme, aby B-splajn za��nal v bode $V_0$ a kon�il v bode $V_n$, tak mus�me vhodne zvoli� uzlov� vektor.
Menovite prv� a posledn� uzol treba zvoli� s n�sobnoso�ou $d$. Zvy�n� uzly m��me zvloli� v pravidlen�ch rozostupoch.
Teda napr. pre $m=9,d=3$ (a teda $n=5$) vyzer� tak� uzlov� vektor napr. 
takto $(0,0,0,1,2,3,4,5,5,5)$.\footnote{�k�lovanie a posun s� dovolen�.
Tak�e rovnako dobr� je aj uzlov� vektor $(5,5,5,5.1,5.2,5.3,5.4,5.5,5.5,5.5)$. }
(Toto defacto je najbe�nej�� uzlov� vektor.)

Ob�as chceme dosta� uzavret� krivku (teda krivku, ktor� za��na a kon�� v tom istom bode).
TODO

\subsection{B\"ohmov algoritmus vkladania uzla}
TODO

\subsection{Racion�lne B-splajny}
Ide o zov�eobecnenie B-splajnov�ch kriviek. Uva�ujme v�etko tak ako u norm�lnych B-splajnov, 
ale navy�e ka�d�mu riadiacemu $V_i$ vrcholu pridajme v�hu $w_i$. Potom racion�lnym B-splajnom je 
\begin{equation}
N^d(t) = \frac{\sum_{k=0}^n N^d_k(t) w_i V_i}{\sum_{k=0}^n N^d_k(t) w_i}
\end{equation}
Ob�as sa tieto krivky volaj� tie� NURBS (Non-Uniform Rational B-Spline).
(Non-Uniform zna�� to, �e uzlov� vektor (postupnos�) nie je pravideln�.)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%      P L O C H Y       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\part{Plochy}
Plocha je podobne ako plocha, zobrazenie $S:D \to E^3$, kde $D$ je nejak� oblas� (podmno�ina) $\mathbb R^2$.
Op� po�adujeme hladkos� a regul�rnos� $S(u,v)$. Hladkos� zna��, tak ako u kriviek dostato�ne (najlep�ie nekone�ne)
ve�a deriv�ci�. Regul�rnos� v tomto pr�pade zna��, �e prv� parci�lne deriv�cie $\frac{\partial S(u,v)}{\partial u}$
a $\frac{\partial S(u,v)}{\partial v}$ boli (ako vektory) v �ubovo�nom bode krivky line�rne nez�visl�.

\section{Bezi�rove plochy}
Ide o tenzorovo-s��inov� plochu. 
M�me sie� (mrie�ku) $(m+1) \times (n+1)$ riadiacich vrcholov $V_{i,j}$, ($0 \le i \le m, 0 \le j \le n$).
Potom Bezierova plocha stup�a $m \times n$ je
\begin{equation}
B^{m,n}(u,v) = \sum_{i=0}^m \sum_{j=0}^n V_{i,j} B^m_i(u) B^n_j(v), \qquad \text{pre } u,v \in [0,1].
\end{equation}

Vlastnosti to m� naskrze podobn� ako Bezi�rova krivka (konvexn� obal, pseudolok�lne riadenie.)
�tyri krajn� krivky $B^{m,n}(u,0)$, $B^{m,n}(u,1)$, $B^{m,n}(0,v)$ a $B^{m,n}(1,v)$ s� Bezi�rov�mi krivkami
ur�en� riadiacimi bodmi $V_{i,0}$, resp. $V_{i,n}$, resp. $V_{0,j}$, resp. $V_{m,j}$.
Vo v�eobecnosti smerov� $u$-krivky a $v$-krivky s� (nejak�mi) Bezi�rov�mi krivkami. 
Deriv�cie treba r�ta� parci�lne, zvl᚝ pod�a $u$ a zvl᚝ pod�a $V$.

Existuje dvojrozmern� Casteljaou pre t�to plochu.
Pre jednoduduchos� predpokladajme, �e plat� $m=n$. Idea je t� ist� ako v jednorozmernom pr�pade:
M�me fixn� $u,v$. Na za�iatku m�me �tvorcov� sie� $(n+1) \times (n+1)$ p�vodn�ch riadiacich vrcholov
$V^{0,0}_{i,j}$ gener�cie $0,0$.
V ka�dej �al�ej gener�cii sa zmen�uje strana �tvorca o jedna, a� k�m nedostaneme jedin� vrchol.
\begin{equation}
V^{r,r}_{i,j} = (1-u, u) 
\begin{pmatrix}
V^{r-1,r-1}_{i,j} & V^{r-1,r-1}_{i,j+1} 	\\ 
V^{r-1,r-1}_{i+1,j} & V^{r-1,r-1}_{i+1,j+1} 	\\
\end{pmatrix}
\begin{pmatrix} 1-v \\ v \end{pmatrix},	
\quad 0<r\le n,\ 0 \le i,j \le n-r
\end{equation}
Samozrejme nemus�me ma� oba horn� indexy (gener�cie) rovnak� a m��eme r�ta� v�eobecnej�ie
\begin{multline}
V^{p,q}_{i,j} = (1-u, u) 
\begin{pmatrix}
V^{p-1,q-1}_{i,j} & V^{p-1,q-1}_{i,j+1} 	\\ 
V^{p-1,q-1}_{i+1,j} & V^{p-1,q-1}_{i+1,j+1} 	\\
\end{pmatrix}
\begin{pmatrix} 1-v \\ v \end{pmatrix},	
\\
\text {pre } 0<p\le m,\ 0<q\le n,\ 0 \le i \le m-p,\ 0\le j \le n-q.
\end{multline}
D� sa to dokonca vo�ne zamie�a� s jednorozmern�m Casteljauom n�hodne v
�uvolnom zo smerov $u,v$ (resp. prv�, druh� index) a meni� tak v jednom kroku len jeden z horn�ch indexov.

Racion�lna verzia je o tom istom, len sa vrcholom pridaj� v�hy $w_{i,j}$
\begin{equation}
B^{m,n}(u,v) = \frac{\sum_{i=0}^m \sum_{j=0}^n w_{i,j}V_{i,j} B^m_i(u) B^n_j(v)}
{\sum_{i=0}^m \sum_{j=0}^n w_{i,j} B^m_i(u) B^n_j(v)}, \qquad \text{pre } u,v \in [0,1].
\end{equation}

\section{Bezi�rov trojuholn�k}
Tu je hrozn� finta, plocha nebude definovan� nad ob�nikom, ale nad trojuhol�kom. 
Presnej�ie ako defini�n� obor berieme nasledovn� mno�inu troj�c
\begin{equation}
\{(u,v,w)\ |\ u,v,w \ge 0,\ u+v+w=1 \}.
\end{equation}
Najlep�ie si je to predstavi� takto: M�me v rovine trojuholn�k $A,B,C$, potom ka�d� bod $X$ roviny
vieme nap�sa� ako barycentrick� kombin�ciu bodov $A,B,C$, teda $X=uA+vB+wC$. N�s bude (za be�n�ch okolnost�) 
ale tr�pi� len vn�tro trojohol�ka $A,B,C$ tak�e sa obdedz�me len na konvexn� kombin�cie t.j. $u,v,w\ge0$.

�alej m�me trojuholn�kov� sie� ${n+2 \choose 2}$ riadiacich vrcholov (trocha haluzne indexovan�) $V_{i,j,k}$ ($i,j,k\ge0$, $i+j+k=n$). Potom Bezi�rov trojuholn�k stup�a $n$ je
\begin{equation}
B^n(u,v,w) = \sum_{\substack{i+j+k=n \\ i,j,k \ge 0}} \frac{n!}{i!j!k!} u^i v^j w^k V_{i,j,k}.
\end{equation}
Tri krajn� krivky s� Bezi�rov�mi krivkami pr�slu�n�ch krajn�ch riadiacich vrcholov.

Existuje aj Casteljauov algorimtus pre tento trojuholn�k. 
Funguje asi takto: M�me nejak� fixn� $(u,v,w)$, v ktorom chceme zr�ta� bod plochy. M�me body nultej gener�cie
tvoriace trojuholn�kov� sie� r�du $n$ (t.j. je ich ${n+2 \choose 2}$). V ka�dom �al�om kroku sa tento r�d zmen��
o jedna pod�a vzorca 
\begin{equation}
V^r_{i,j,k} = uV^{r-1}_{i+1,j,k} + vV^{r-1}_{i,j+1,k} + wV^{r-1}_{i,j,k+1}, \qquad \text{pre } i+j+k=n-r,\ i,j,k\ge0.
\end{equation}
Nakoniec bod $V^n_{0,0,0}$ je bodom plochy, t.j. $V^n_{0,0,0} = B^n(u,v,w)$.

Plat� tie� (podobne ako pre Bezi�rove krivky), �e Casteljau n�m vygeneruje aj nov� riadiace vrcholy troch men��ch
trouholn�kov st�kaj�cich sa vo vyr�tanom bode. Riadiacimi vrcholmi prv�ho s� body $V^k_{i,j,0}$, druh�ho $V^j_{i,0,k}$
a tretieho $V^i_{0,j,k}$, pri�om $i+j+k=n$, $i,j,k \ge 0$.

O Bezi�rovom trojohuln�ku sa d� toho poveda� e�te hrozne ve�a. 
Napr. o deriv�cii v �ubovo�nom smere alebo o hladkom sp�jan� trojuholn�kov.

Existuje aj racion�lnu verzia, ktor� si iste ka�d� r�d domysl�.

\section{B-splajnov� plochy}
Zase len tr�pna tenzoro-s��inov� plocha, vern� k�pia Bezi�rovej plochy.
\footnote{Trochu tu doch�dza abeceda.}
M�me dva uzlov� vektory $u_0 \le u_1 \le \dots u_p$ (pre smer $u$) a $v_0 \le v_1 \le \dots v_q$ (pre smer $v$)
M�me sie� (mrie�ku) $(m+1) \times (n+1)$ riadiacich vrcholov $V_{i,j}$, ($0 \le i \le m, 0 \le j \le n$).
A stupne plochy $r,s$. ��sla $p,m,r$ a $q,n,s$ sp��aj� rovnosti
\begin{eqnarray}
p&=&m+r+1,\\
q&=&n+s+1.
\end{eqnarray}
Potom B-splajnov� plocha stup�a $r \times s$ je
\begin{equation}
N^{r,s}(u,v) = \sum_{i=0}^m \sum_{j=0}^n V_{i,j} N^r_i(u) N^s_j(v), 
\quad (u,v) \in [u_r,u_{p-r}] \times [v_s,v_{q-s}].
\end{equation}
Dvojrozmern� De Boorov algoritmus som nikde nevidel a ani nesna�il vymyslie�, tak sa m��te posna�i� sami.
Racion�lna verzia je podobn�, vrcholom len prid�te v�hy $w_{i,j}$
\begin{equation}
N^{r,s}(u,v) = \frac{\sum_{i=0}^m \sum_{j=0}^n w_{i,j} V_{i,j} N^r_i(u) N^s_j(v)}
{\sum_{i=0}^m \sum_{j=0}^n w_{i,j} N^r_i(u) N^s_j(v)}.
\end{equation}

\section{Priamkov� plochy}

\section{Jendoduch� Coonsova z�plata} 

M�me �tyri krivky v priestore $X(u,0)$, $X(u,1)$, $X(0,v)$ a
$X(1,v)$.\footnote{Ozna�enie je na prv� poh�ad dos� zav�dzaj�ce a zm�to�n�, ale takto sa to be�ne v�ade
p�e.} Tieto �tyri kryvky musia by� tak�, aby v porad� prv�, tretia, druh�,
�tvrt� tvorili uzavret� krivku.\footnote{Na�e ozna�enie si vlastne vynucuje.} Na�ou �lohou je zostroji� nejak� (rozumn�)
plochu $X(u,v), X:[0,1] \times [0,1] \to E^3$, ktorej by tieto �tyri krivky
boli krajn�mi krivkami.

Za�neme najprv jednoducho, vezmeme priamkov� plochu ur�en� prvou a druhou krivkou:
$$X_C(u,v) = (1-v)X(u,0) + vX(u,1).$$
Podobne mo�no zobra� priamkov� plochu ur�en� tre�ou a �tvrtou krivkou:
$$X_D(u,v) = (1-u)X(0,v) + uX(1,v).$$
Ide�lne by bolo ich nejako skombinova�. Na to, ako to urobi�, pri�iel p�n Coons. 
My�lienka je tak�, �e ich ���tame a od toho odpo��tame bilen�rny interpolant �tyroch rohov $X(0,0)$, $X(0,1)$,
$X(1,0)$ a $X(1,1)$. Ten biline�rny interpolant $X_{CD}$ vyzer� takto:
$$X_{CD}(u,v) = (1-u,u) \begin{pmatrix} X(0,0) & X(0,1) \\ X(1,0) & X(1,1) \end{pmatrix} 
\begin{pmatrix} 1-v \\ v \end{pmatrix}.
$$
V�sledn� Coonsova plocha je potom 
\begin{equation}
X(u,v) = X_C(u,v) + X_D(u,v) - X_{CD}(u,v).
\end{equation}

\section{Bikubick� Coonsova z�plata}

Situ�cia je podobn� ako u jednoduchej Coonsovej z�plate.  Navy�e v�ak m�me
predp�san� aj prie�ne deriv�cie (tzv. \emph{stuhy}) pozd� hrni�n�ch kriviek.
Teda okrem kriviek $X(u,0)$, $X(u,1)$, $X(0,v)$ a $X(1,v)$ s� dan�
aj deriv�cie v prie�nom smere na ne $X_v(u,0)$, $X_v(u,1)$, $X_u(0,v)$ a $X_u(1,v)$.

Idea je podobn� ako pri jednoduchej z�plate. Najpr zostroj�me pomocou Hermitovej krivky
plochu $X_C(u,v)$, ktor� interpoluje prv� a druh� krivku a m� prie�ne deriv�cie v smere $v$
na krajoch $X_v(u,0)$, $X_v(u,1)$
$$X_C(u,v) = H^3_0(v) X(u,0) + H^3_1(v)X_v(u,0) + H^3_2(v)X_v(u,1) + H^3_3(v)X(u,1).$$
Podobne v pre druh� smer
$$X_D(u,v) = H^3_0(u) X(0,v) + H^3_1(u)X_u(0,v) + H^3_2(u)X_u(1,v) + H^3_3(u)X(1,v).$$
Nakoniec e�te od��tame bikubick� interpolant $X_{CD}(u,v)$:
$$X_{CD}(u,v) = 
(H^3_0(u),H^3_1(u),H^3_2(u),H^3_3(u))
\begin{pmatrix}
X(0,0) 		& X_v(0,0) 	& X_v(0,1) 	& X(0,1) 	\\
X_u(0,0)	& X_{uv}(0,0)	& X_{uv}(0,1) 	& X_u(0,1) 	\\
X_u(1,0)	& X_{uv}(1,0)  	& X_{uv}(1,1)	& X_u(1,1) 	\\
X(1,0) 		& X_v(1,0) 	&  X_v(1,1) 	& X(1,1)	\\
\end{pmatrix}
\begin{pmatrix}
H^3_0(v) \\ H^3_1(v) \\ H^3_2(v) \\ H^3_3(v)
\end{pmatrix}
$$
V�sledn� \emph{bikubick� Coonsova z�plata} bude
\begin{equation}
X(u,v) = X_C(u,v) + X_D(u,v) - X_{CD}(u,v).
\end{equation}


\end{document} 
