next up previous contents index
Next: 11.6.3 Global self-intersection of Up: 11.6 Pipe surfaces Previous: 11.6.1 Introduction   Contents   Index


11.6.2 Local self-intersection of pipe surfaces

The pipe surface $ {\bf p}(r)$ can be parametrized using the Frenet-Serret trihedron $ ({\bf t}(t), {\bf n}(t), {\bf b}(t))$ [76,351] as follows:
$\displaystyle {\bf p}(t,\theta)={\bf c}(t)+r[\cos \theta {\bf n}(t)+\sin
\theta {\bf b}(t)]\;,$     (11.111)

where $ t \in [0,1] $ and $ \theta \in [0, 2 \pi]$ . Its partial derivative with respect to $ t$ is given by
$\displaystyle {\bf p}_{t}(t, \theta)= \dot{\bf c}(t)+r[\cos \theta
\dot{\bf n}(t)+\sin \theta \dot{\bf b}(t)]\;.$     (11.112)

Equation (11.112) can be rewritten using the Frenet-Serret formulae (2.57) as
$\displaystyle {\bf p}_{t}(t, \theta)=\vert\dot{\bf c}(t)\vert(1-\kappa(t)r\cos ...
...in \theta {\bf n}(t)+r
\vert\dot{\bf c}(t)\vert\tau(t)\cos \theta {\bf b}(t)\;,$     (11.113)

where $ \kappa (t)$ and $ \tau (t)$ are the curvature and torsion of the spine curve given by (2.26) and (2.48), respectively. Similarly we can derive $ {\bf p}_{\theta}$ as
$\displaystyle {\bf p}_{\theta}(t, \theta)=r[-\sin \theta {\bf n}(t)+\cos \theta
{\bf b}(t)]\;.$     (11.114)

The surface normal of the pipe surface can be obtained by taking the cross product of (11.113) and (11.114) yielding
$\displaystyle {\bf p}_{t} \times {\bf p}_{\theta}=-\vert\dot{\bf c}(t)\vert r [1-\kappa(t)r\cos\theta][ \sin\theta {\bf b}(t)+\cos \theta {\bf n}(t)]\;.$     (11.115)

It is easy to observe [206,76,351] that the pipe surface becomes singular when $ 1-\kappa(t)r\cos \theta =0$ . Since $ \cos\theta$ varies between -1 and 1, there will be no local self-intersection if $ \kappa(t)r<1$ . Therefore, to avoid local self-intersection we need to find the largest curvature $ \kappa_{a}$ of the spine curve and set the radius of the pipe surface such that $ r<1/\kappa_{a}$ .

The curvature $ \kappa (t)$ of a space curve $ {\bf c}(t)$ is given in (2.26). Thus, to find the largest curvature $ \kappa_{a}$ we need to locate the critical points of $ \kappa (t)$ , i.e. solve the equation $ \dot\kappa (t)=0$ (8.20), and decide whether they are local maxima (see Sect. 7.3.1). Then we compare these local maxima with the curvature at the end points, i.e. $ \kappa(0)$ and $ \kappa (1)$ , and obtain the largest curvature. This problem can be solved by elementary calculus. If the spine curve is given by a rational Bézier curve, equation $ \dot\kappa (t)=0$ reduces to a single univariate nonlinear polynomial equation (8.21) for a planar spine curve and (8.22) for a 3-D spine curve. In the case where the spine curve is a rational B-spline, we can extract the rational Bézier segments by knot insertion [175,314].

Example 11.6.1. The parabola $ y=x^2 $ has its largest curvature $ \kappa=2$ at $ x=0$ . Therefore in order to have no local self-intersection the radius should be $ r<\frac{1}{2}$ . Figure 11.32 shows the local self-intersection of the pipe surface with the above parabolic spine curve and with radius 0.8. Obviously, there is a local self-intersection on the pipe surface corresponding to the point $ x=0$ at the spine curve.

Figure 11.32: Local self-intersection of a pipe surface ( $ r=0.8$ ) (adapted from [256])
\begin{figure}\vspace*{5mm}
\centerline{
\psfig{figure=fig/local.PS,height=4in}
}
\vspace*{-5mm}\end{figure}


next up previous contents index
Next: 11.6.3 Global self-intersection of Up: 11.6 Pipe surfaces Previous: 11.6.1 Introduction   Contents   Index
December 2009