Boundary Curves

The first step in the construction of the surface is to construct three boundary curves which interpolate the endpoints and derivatives (from the vertex normals). The edges of the triangle are parameterized in terms of a single barycentric coordinate as follows:

$\displaystyle {\bf p}_0{\bf p}_1$ $\displaystyle \leftrightarrow$ $\displaystyle (1 - \beta , \beta , 0)$  
$\displaystyle {\bf p}_1{\bf p}_2$ $\displaystyle \leftrightarrow$ $\displaystyle (0, 1 - \gamma , \gamma )$  
$\displaystyle {\bf p}_2{\bf p}_0$ $\displaystyle \leftrightarrow$ $\displaystyle (\alpha , 0, 1 - \alpha ).$  

Each is therefore a univariate function and the cubic Hermite interpolation described in the previous section may be applied. The height function on the endpoints is necessarily zero, and if we assume the vertex normals are unit vectors, the boundary height functions have the clean formulation
$\displaystyle h(1 - \beta , \beta , 0)$ $\displaystyle =$ $\displaystyle {\bf n}_0\cdot({\bf p}_0 - {\bf p}_1) (1 - \beta )^2 \beta$  
  $\displaystyle -$ $\displaystyle {\bf n}_1\cdot({\bf p}_0 - {\bf p}_1) (1 - \beta ) \beta ^2$ (4)
$\displaystyle h(0, 1 - \gamma , \gamma )$ $\displaystyle =$ $\displaystyle {\bf n}_1\cdot({\bf p}_1 - {\bf p}_2) (1 - \gamma )^2 \gamma$  
  $\displaystyle -$ $\displaystyle {\bf n}_2\cdot({\bf p}_1 - {\bf p}_2) (1 - \gamma ) \gamma ^2$ (5)
$\displaystyle h(\alpha , 0, 1 - \alpha )$ $\displaystyle =$ $\displaystyle {\bf n}_2\cdot({\bf p}_2 - {\bf p}_0) (1 - \alpha )^2 \alpha$  
  $\displaystyle -$ $\displaystyle {\bf n}_0\cdot({\bf p}_2 - {\bf p}_0) (1 - \alpha ) \alpha ^2.$ (6)

We have used the same letter $ h$ for all three edges because in effect the above equations represent the desired height function restricted to the boundaries. The Coons patch approach ``fills in'' the rest of the surface function in a meaningful way. The actual boundary curves are computed as
$\displaystyle \hspace{-3ex}{\bf p}(1 - \beta , \beta , 0)$ $\displaystyle =\!\!$ $\displaystyle (1 - \beta ){\bf p}_0 + \beta {\bf p}_1$  
  $\displaystyle +\!\!$ $\displaystyle h(1 - \beta , \beta , 0)
\left[(1 - \beta ){\bf n}_0 + \beta {\bf n}_1 \right]$ (7)
$\displaystyle \hspace{-3ex}{\bf p}(0, 1 - \gamma , \gamma )$ $\displaystyle =\!\!$ $\displaystyle (1 - \gamma ){\bf p}_1 + \gamma {\bf p}_2$  
  $\displaystyle +\!\!$ $\displaystyle h(0, 1 - \gamma , \gamma )
\left[(1 - \gamma ){\bf n}_1 + \gamma {\bf n}_2 \right]$ (8)
$\displaystyle \hspace{-3ex}{\bf p}(\alpha , 0, 1 - \alpha )$ $\displaystyle =\!\!$ $\displaystyle \alpha {\bf p}_0 + (1 - \alpha ){\bf p}_2$  
  $\displaystyle +\!\!$ $\displaystyle h(\alpha , 0, 1 - \alpha )
\left[\alpha {\bf n}_0 + (1 - \alpha ){\bf n}_2 \right].$ (9)

Comments: Brian Smits
2000-06-02