Počítačová grafika

Plochy

Coonsova bilineární plocha

Coonsova bilineární plocha

interpolační plocha

Dáno: okrajové křivky $P_0(u), P_1(u), P_0(v), P_1(v)$
- tzv. křivočarý čtyřúhelník

Coonsova bilineární plocha

Vektorová rovnice:$$P(u,v)=(1-u,1,u)\cdot M\cdot\begin{pmatrix}1-v\\1\\v\end{pmatrix};\ (u,v)\in [0,1]^2$$

Mapa plátu:$$M=\begin{pmatrix}-P_{00}&P_0(v)&-P_{01}\\P_0(u)&\vec{o}&P_1(u)\\-P_{10}&P_1(v)&-P_{11}\end{pmatrix}$$

Coonsova bilineární plocha

Mapa plátu:

Coonsova bilineární plocha

Coonsova bilineární plocha

souvislost s přímkovou přechodovou plochou a plochou hyperbolického paraboloidu:

$$P(u,v)=(1-v)P_0(u)+vP_1(u)+(1-u)P_0(v)+uP_1(v)-\\-((1-u)(1-v)P_{00}+u(1-v)P_{10}+v(1-u)P_{01}+uvP_{11})$$

Coonsova bilineární plocha

souvislost s přímkovou přechodovou plochou a plochou hyperbolického paraboloidu:

$$P(u,v)=\color{blue}{(1-v)P_0(u)+vP_1(u)}+\color{green}{(1-u)P_0(v)+uP_1(v)}-\\-(\color{purple}{(1-u)(1-v)P_{00}+u(1-v)P_{10}+v(1-u)P_{01}+uvP_{11}})$$

$$P(u,v)=\color{blue}{R(u,v)}+\color{green}{S(u,v)}-\color{purple}{T(u,v)}$$

Coonsova bilineární plocha

Coonsova bilineární plocha - vlastnosti

  • interpoluje dané 4 okraje
  • interpoluje rohy plátu

Coonsova bilineární plocha ($\ast $)

rovinné křivky + triviální parametrizace → explicitní rovnice plochy

$$z=(1-x,1,x)\cdot\begin{pmatrix}-z_{00}&z_0(y)&-z_{01}\\z_0(x)&\vec{o}&z_1(x)\\-z_{10}&z_1(y)&-z_{11}\end{pmatrix}\cdot\begin{pmatrix}1-y\\1\\y\end{pmatrix}$$

Coonsova bilineární plocha ($\ast $)

možný další tvar vektorové rovnice

$$(1-u,-1,u)\cdot\begin{pmatrix}-P_{00}&P_0(v)&-P_{01}\\P_0(v)&\color{blue}{P(u,v)}&P_1(u)\\-P_{10}&P_1(v)&-P_{11}\end{pmatrix}\cdot\begin{pmatrix}1-v\\-1\\v\end{pmatrix}=0$$

Coonsova plocha ($\ast$)

Coonsova bikubická plocha

$$P(u,v)=(F_0(u),1,F_1(u))\cdot\begin{pmatrix}-P_{00}&P_0(v)&-P_{01}\\P_0(u)&\vec{o}&P_1(u)\\-P_{10}&P_1(v)&-P_{11}\end{pmatrix}\cdot\begin{pmatrix}F_0(v)\\1\\F_1(v)\end{pmatrix};\ (u,v)\in [0,1]^2$$

$F_0(t)=2t^3-3t^2+1\\F_1(t)=-2t^3+3t^2$

Coonsova bikubická plocha ($\ast$)

  • vektory zkrutu (twisty) v rozích plátu jsou nulové

Bézierova plocha

Bézierova plocha

aproximační plocha

Dáno: mapa plátu

$$M=\begin{pmatrix}V_{00}&V_{01}&\dots&V_{0n}\\V_{10}&V_{11}&\dots&V_{1n}\\ \vdots&\vdots& &\vdots\\V_{m0}&V_{m1}&\dots&V_{mn}\end{pmatrix}$$
$(m+1)\times(n+1)$ bodů

Bézierova plocha

síť řídících bodů, mapa plátu

Bézierova plocha

Vektorová rovnice:

$$P(u,v)=\mathscr{B}(u)\cdot M\cdot {\mathscr{B}(v)}^T;\ (u,v)\in [0,1]^2$$
kde

$\mathscr{B}(u)=(B_{0m}(u),B_{1m}(u),\dots,B_{mm}(u))\\ \mathscr{B}(v)=(B_{0n}(v),B_{1n}(v),\dots,B_{nn}(v))$

jsou Bernsteinovy polynomy

Bézierova plocha - příklad

Je dána mapa M plátu:

$$M=\begin{pmatrix}(0,0,2)&(0,1,1)&(0,2,1)&(0,3,0)\\(1,0,2)&(1,1,1)&(1,2,0)&(1,3,0)\\(2,0,1)&(2,1,1)&(2,2,0)&(2,3,0)\end{pmatrix}.$$
    Určete:
  • vektorovou rovnici plátu
  • rovnice tečných vektorů parametrických křivek
  • rovnici vektorů zkrutu
Načrtněte okrajové křivky plátu.
vektorová rovnice plátu:

$$P(u,v)=\mathscr{B}(u)\cdot\begin{pmatrix}(0,0,2)&(0,1,1)&(0,2,1)&(0,3,0)\\(1,0,2)&(1,1,1)&(1,2,0)&(1,3,0)\\(2,0,1)&(2,1,1)&(2,2,0)&(2,3,0)\end{pmatrix}\cdot{\mathscr{B}(v)^T}$$
kde $\mathscr{B}(u)$ a $\mathscr{B}(v)$ obsahují Bernsteinovy polynomy příslušného stupně

$$\Downarrow$$
$$\mathscr{B}(u)=(B_{02}(u),B_{12}(u),B_{22}(u))\\ \mathscr{B}(v)=(B_{03}(v),B_{13}(v),B_{23}(v),B_{33}(v))$$
Stupně Bernsteinových polynomů souvisí s maticí řídicích bodů (zde typ 3x4) a je od nich odvozen i název konkrétní plochy - v tomto případě Bézierova kvadraticko-kubická plocha
vektorová rovnice plátu:

$$P(u,v)=(2u,3v,-2u^2v^3+6uv^3+3u^2v-6uv^2-2v^3-u^2+3v^2-3v+2);\ (u,v)\in[0,1]^2$$
rovnice tečných vektorů parametrických křivek:

$P^u(u,v)=(2,0,-4uv^3+6v^3+6uv-6v^2-2u)\\P^v(u,v)=(0,3,-6u^2v^2+18uv^2+3u^2-12uv-6v^2+6v-3)$

rovnice vektorů zkrutu:

$P^{uv}(u,v)=(0,0,-12uv^2+18v^2+6u-12v)$
tečné vektory v rohových bodech:

$$\begin{matrix}P^u(0,0)=(2,0,0)&P^v(0,0)=(0,3,-3)\\P^u(0,1)=(2,0,0)&P^v(0,1)=(0,3,-3)\\P^u(1,0)=(2,0,-2)&P^v(1,0)=(0,3,0)\\P^u(1,1)=(2,0,0)&P^v(1,1)=(0,3,0)\end{matrix}$$
vektory zkrutu v rohových bodech:

$$P^{uv}(0,0)=(0,0,0)=P^{uv}(1,1)\\P^{uv}(0,1)=(0,0,6)=P^{uv}(1,0)$$
síť řídících bodů + plocha v axonometrii
síť řídících bodů a okrajové křivky v kosoúhlém promítání

de Casteljau algoritmus konstrukce bodu
- pro plochy

Příklad

de Casteljau algoritmus konstrukce bodu
- pro křivky

Příklad

Bézierova plocha - vlastnosti

  • interpoluje rohy řídící sítě
  • okraje plátu jsou Bézierovy křivky
  • tečné vektory v rozích plátu jsou násobky krajních ramen řídících polygonů okrajových křivek
  • vektor zkrutu v rohu plátu je určen řídícími body rohového oka sítě
  • jestliže je rohové oko sítě rovnoběžník, je vektor zkrutu nulový

Příště:
vztah Coonsovy bilineární a Bézierovy plochy
plátování