Surface Construction

The general problem of determining the boundary curves and the surface curves are special cases of the following interpolation problem: given two points $ {\bf p}_0$ and $ {\bf p}_1$, as well as associated normals $ {\bf n}_0$ and $ {\bf n}_1$, find a function of the form

$\displaystyle {\bf p}(t) = (1 - t) {\bf p}_0 + t {\bf p}_1 + g(t)\left[(1 - t){\bf n}_0 + t{\bf n}_1\right].
$

which interpolates surface points $ {\bf p}_0$ and $ {\bf p}_1$ with tangent normal to $ {\bf n}_0$ and $ {\bf n}_1$ at the endpoints. If $ {\bf p}(t)$ is to interpolate the endpoints, then $ g(0) = g(1) = 0$. We compute the required values for $ g'(t)$ at the endpoints and apply Hermite interpolation.

Derivative interpolation requires that the tangents $ {\bf p}'(0)$ and $ {\bf p}'(1)$ lie in the plane normal to the $ {\bf n}_0$ and $ {\bf n}_1$, respectively, which amounts to requiring $ {\bf p}'(0)\cdot{\bf n}_0 = 0$ and $ {\bf p}'(1)\cdot{\bf n}_1
= 0$. We have

$\displaystyle {\bf p}'(t) = {\bf p}_1 - {\bf p}_0 + g(t)({\bf n}_1 - {\bf n}_0)
+ g'(t)\left[(1 - t){\bf n}_0 + t{\bf n}_1\right]
$

and consequently
$\displaystyle g'(0)$ $\displaystyle =\!\!\!\!$ $\displaystyle \frac{\left[{\bf p}_0 - {\bf p}_1 + g(0)({\bf n}_0 - {\bf n}_1)\r...
...ot{\bf n}_0}
= \left[{\bf p}_0 - {\bf p}_1 \right]\cdot{\bf n}_0\makebox[1ex]{}$ (1)
$\displaystyle g'(1)$ $\displaystyle =\!\!\!\!$ $\displaystyle \frac{\left[{\bf p}_0 - {\bf p}_1 + g(1)({\bf n}_0 - {\bf n}_1)\r...
...t{\bf n}_1}
= \left[{\bf p}_0 - {\bf p}_1 \right]\cdot{\bf n}_1.\makebox[1ex]{}$ (2)

The height function $ g(t)$ is then constructed from the endpoint derivative values and the Hermite basis functions:

$\displaystyle g(t) = g'(0) H_1^3(t) - g'(1) H_2^3(t)$ (3)

where $ H_i^3$ are two of the cubic Hermite basis functions:
$\displaystyle H_1^3(t)$ $\displaystyle =$ $\displaystyle (1 - t)^2 t$  
$\displaystyle H_2^3(t)$ $\displaystyle =$ $\displaystyle (1 - t) t^2.$  

Comments: Brian Smits
2000-06-02