|
Extrusion Surface
Lofting Surface
Coons Patch
Gordon Surface
Surface of Revolution
Classical Surfaces
Extrusion Surface --
Perhaps the simplest type of B-spline tensor product surfaces is the
Extrusion Surface. We first define a profile curve such as this one.
It is a planar curve. We focus on its control polygon, make a copy of
it, stretch the copy and connect the corresponding vertices to form
a mesh for such a surface. It is called an extrusion surface. The profile
curve doesn't have to be planar. If we modify its control polygon, such
that it becomes a non-planar profile curve, it can still be extruded
into a surface. In fact, the direction of the extrusion determined by
these two boundary curves can be rather arbitrary.
Extrusion Surface Definition: Let a(t) ‘ be a profile curve. For each
t ‘ I, we assign a vector w(t) ‘ to the point a(t) ‘ . When w(t) is
parallel to a fixed direction W in , then the parametrized surface x(t,
v) = a(t) + v w(t), w(t) = W is called an extrusion surface.
Lofting or Ruled Surface --
Extrusion surfaces can be viewed as a special case of Ruled Surfaces,
the next simplest type of surfaces. The only difference is that the
two boundary curves don't have to be related to each other at all. Suppose
we have a non-planar curve. Let us say it is cubic, floating end with
no interior knots. The other curve is quadratic, open end with one interior
knot. We would like to create a surface that interpolates these two
space curves, with a minimal degree, namely, linear across the gap like
this. Here is how we construct such a surface. In order to form a tensor
product B-spline surface, we cast the two boundary curves to have the
same order and exactly the same knots. First we need to raise the degree
of the quadratic curve to be cubic. Notice that raising the degree will
cause a double knot in the middle. Now both of them are cubic, but their
knots are not compatible. For this boundary curve, we need to convert
from floating end to open end condition. We insert new knots, and throw
away the redundant knots and control vertices. Furthermore, we need
two extra interior knots. Now we have two curves, both are cubic, and
they have exactly the same knots, and exactly the same number of control
vertices. Therefore, we can line them up to form a mesh for a surface.
It is called a Ruled Surface or a Lofting Surface.
Lofting or Ruled Surface Extrusion surfaces can be viewed as a special
case of ruled surfaces. Definition: In the definition of an extrusion
surfce, if we do not require that w(t) parallel to a fixed direction,
then the parametrized surface defined by x(t, v) = a(t) + v w(t) is
callled the ruled surface generated by {a(t), w(t)}, where the curve
a(t) is called a directrix of the surface of x and the line Lt (which
passes through a(t) and is parallel to w(t)) is called a ruling. Example
1: A cone is a ruled surface generated by a family {a(t), w(t)}, t ‘
I, where a(I) c P and the rulings Lt all pass through a point p P.
Application of Ruled Surfaces Ruled surfaces, also called "lofted surfaces,"
are both simple and fundamental to surface design. They are of considerable
importance in their own right, in particular for the design of "functional"
surfaces in mechanical engineering. Ruled surfaces solve the following
problem: given two space curves c1 and c2, both defined over the same
parameter interval u ‘ [0,1], find a surface x that contains both curves
as "opposite" boundary curves. More precisely: find x such that x(u,0)
= c1(u), x(u,1) = c2(u) ...(*) Clearly the stated problem has infinitely
many solutions, so we pick the "simplest" one: x(u,v) = (1-v)c1(u) +
vc2(u) This leads us to: x(u,v) = (1-v)x(u,0) + vx(u,1). ...(**) Remark
1: Ruled surfaces have the familiar flavor of linear interpolation:
every isoparametric line u = const. is a straight line segment, as illustrated
in the figure. Remark 2: If we write (**) as x(u,v) = x(u,0) + v(x(u,1)
- x(u,0)) then following the definition of a ruled surface, we have
(i) a(u) = x(u,0) = c1(u) is the directrix of the surface. (ii) w(u)
= x(u,1) - x(u,0) is the direction of the ruling Lu.
Coons Patch --
Gordon Surfaces are actually a special case of a more generalized type
of surfaces called the Coons Patch. Recall that given two points and
two tangent vectors at the points, it is possible to uniquely define
a cubic curve. It is called Hermite Interpolation. An extension to this
approach is to specify four corner points and the directional derivatives
at these corners for defining a bi-cubic surface. Again, this problem
is under-specified because there are 16 degrees of freedom and only
12 of them are specified (that is, four positions plus two derivatives
at these four points). These 12 quantities are already sufficient to
define the boundaries of the surface. In case we consume the remaining
four degrees of freedom by setting the four twist derivatives, or mixed
partial derivatives, at the corners, then we have a unique bi-cubic
surface. This approach was first developed by Ferguson with mixed partial
derivatives set to zero, and called Ferguson Patch. It was also developed
independently by Coons, and later it is better known as the Coons Patch.
Coons Patches: Bilinearly Blended
A ruled surface interpolates to two boundary curves -a rectangular
surface, however, has four boundary curves, and that is precisely
what a Coons patch interpolates to. To be more precise: given are
four arbitrary curves c1(u), c2(u) and d1(v), d2(v), defined over
u ‘ [0,1] and v ‘ [0,1], respectively. Find a surface x that has these
four curves as boundary curves: x(u,0) = c1(u), x(u,1) = c2(u) x(0,v)
= d1(v), x(1,v) = d2(v) We have just developed ruled surfaces,so let
us utilize them for this new problem. The boundary curves define two
ruled surfaces: rc(u,v) = (1-v)x(u,0) + vx(u,1) and rd(u,v) = (1-u)x(0,v)
+ ux(1,v). A little thought reveals that the "interpolation failures"
are captured by one surface: the bilinear interpolant rc d to the
four corners. We are now ready to create a Coons patch x. It is given
by x = rc + rd - rc d ..(*) or, in the form of a recipe: "loftu +
loftv - bilinear" (also referred to as the boolean sum).
Writing (*) in full detail gives It is left as an exercise for the
student to verify that (**) does indeed interpolate to all four boundary
curves. We can now justify the name "bilinearly blended" for the preceding
Coons patch: a ruled surface "blends" together the two defining boundary
curves; this blending takes place in both directions. However, the
Coons patch is not generally itself a bilinear surface-the name refers
purely to the method of construction. The functions 1-u, u, and 1-v,
v are called blending functions. A close inspection of (**) reveals
that many pairs of blending functions, say f1(u), f2(u) and g1(v),
g2(v), could also be used to construct generalized Coons patch. It
would then be of the general form There are only two restrictions
on the fi and gi : Each pair must sum to one identically: otherwise,
we would generate nonbarycentric combinations of points. Also, we
must have f1(0) = g1(0) = 1, f1(1) = g1(1) = 0 in order to actually
interpolate. The shape of the blending functions has a predictable
effect on the shape of the resulting Coons patch. Typically, one requires
f1 and g1 to be monotonically decreasing; this produces surfaces of
predictable shape, but is not necessary for theoretical reasons. Surface
modelers that employ Coons patches typically allow designers to change
the blending functions as a way to model the interior of the patch.
Coons Patches: Partially Bicubically Blended
The bilinearly blended Coons patch solves a problem of considerable
importance with very little effort, but we pay for that with an annoying
drawback. Consider the figures: it shows two bilinearly blended Coons
patches, defined over u ‘ [0,2], v ‘ [0,1]. The boundary curves v
= 0 and v = 1, both composite curves, are differentiable. However,
the cross boundary derivative is clearly discontinuous along u=1.
Analyzing this problem, we see that it can be blamed on the fact that
cross boundary tangents along one boundary depend on data not pretaining
to that boundary. For example, for any given bilinearly blended Coons
patch, a change in the boundary curve x(1,v) will affect the derivatives
across the boundary x(0,v). How can we seperate the derivatives across
one boundary from information along the opposite boundary? The answer:
use different blending functions, namely, some that have zero slopes
at the end points. Striving for simplicity, as usual, we find two
obvious candidates for such blending functions: the cubic Hermite
polynomials
Let us investigate the effect of this choice of blending functions:
we have set f1 = g1 = and f2 = g2 = in (***). The cross boundary derivative
along, say, u = 0, now becomes all other terms vanish since for i
= 0 and i = 1. Thus, the only data that influence xu along u=0 are
the two tangents xu(0,0) and xu(0,1)-we have achieved our goal of
making the the cross boundary derivative along one boundary depend
only on information pertaining to that boundary. Unfortunately, we
have also created a new problem. At the patch corners, these patches
often have "flat spots." The reason: partially bicubically blended
Coons patches, constructed as above, suffer from zero corner twists:
This is easily verified by simply taking the uv-partial of (***) and
evaluating at the patch corners. The reason for this poor performance
lies in the fact that we only use two functions, and , from the full
set of four Hermite polynomials. Both have zero derivatives at the
interval endpoints, and both pass that property on to the surface
interpolant. We will now modify the partially bicubically blended
Coons patch in order to avoid the flat spots at the corners.
Coons Patches: Bicubically Blended
Cubic Hermite interpolation needs more input than positional data-first
derivative information is needed. Since our positional input consists
of whole curves, not just points, the obvious data to supply are derivatives
along those input curves. Our given data now consist of x(u,0), x(u,1),
x(0,v), x(1,v) and xv(u,0), xv(u,1), xu(0,v), xu(1,v). We can think
of the now prescribed cross boundary derivatives as "tangent ribbons,"
illustrated in the figure(only two of the four "ribbons" are shown).
The derivation of the bicubically blended Coons patch is analogous
to the one done before: we must simply generalize the concept of a
ruled surface appropriately. This is almost trivial; we obtain for
the u-direction and Proceeding as in the bilinearly blended case,
we define the interpolant to the corner data. This gives the tensor
product bicubic Hermite interpolant hc d: The bicubically blended
Coons patch now becomes x = hc + hd - hc d .
Gordon Surface --
The next type of surface can be defined by four boundary curves. It
is called Gordon Surface. Given four boundary curves, our task is to
find a surface that interpolates these boundary curves. Certainly this
problem is under-specified because there are infinitely many surfaces
that can interpolate any four given boundary curves. Assume that these
curves have the same degree and knots (if not, we know how to raise
the degree and how to refine the knots to make them compatible). Furthermore,
let us assume that they are cubic Bezier. Then, effectively, we have
12 control vertices already defined among the 16 degrees of freedom
for a bi-cubic surface. Our task is to locate the interior control vertices,
the remaining four degrees of freedom. These control vertices can be
calculated by a Boolean Sum Operator. A Boolean Sum Operation can be
regarded as an extension to lofting because it basically lofts the boundary
curves in both parametric directions. Lofting across the U direction
while interpolating these two boundary curves will generate a ruled
surface. Let us call the operation L1. Lofting across thc V direction
while interpolating these two boundary curves will generate another
ruled surface. Let us call the operation L2. The product of L1 and L2
is a bi-linear interpolation which generates a surface that interpolates
the four corner points. The operation (L1 + L2 - L1 * L2) will generate
a surface that interpolates all the four boundaries. This is particularly
useful to fill in planar regions surrounded by boundary curves especially
when the parametrization of the interior is not important.
Gordon surfaces are a generalization of Coons patches. They were developed
in the late 1960s by W. Gordon, who was then working for the General
Motors Research labs. He coined the term "transfinite interpolation"
for this kind of surfaces. It is often not sufficient to model a surface
from only four boundary curves. A more complicated (and realistic) situation
arises when a network of curves is prescribed, as shown in the figure.
We will construct a surface g that interpolates to all these curves-they
will then be isoparametric curves g(ui , v); i=0,...,m and g(u,vj );
j=0,...,n. We shall therefore refer to these input curves in terms of
the final surface g. The idea behind the construction of this Gordon
surface g is the same as for the Coons patch: find a surface g1 that
interpolates to one family of isoparametric curves, for instance to
the g(ui , v). Next, find a surface g2 that interpolates to the g(u,
vj ). Finally, add both together and subtract a surface g12.
Let us start with the task of finding the surface g1. If there are
only two curves g(u0, v) and g(u1,v), the surface g1 reduces to the
lofted surface , where the are the linear Lagrange polynomials. If we
have more than two input curves, we might want to try higher degree
Lagrange polynomials: Simple algebra verifies that we have successfully
generalized the concept of a lofted surface. Let us return to the construction
of the Gordon surface, for which g1 will only be a building block. The
second building block, g2, is obtained by analogy: The third building
block, g12, is simply the interpolating tensor product surface The Gordon
surface g now becomes g = g1 + g2 - g12 . It is left as an exercise
for the student to verify that g in fact interpolates to all given curves.
Remark: Note that for the actual computation of g, we do not have to
use the Lagrange polynomials. We only have to be able to solve the univariate
polynomial interpolation problem, for example, by using the Vandermonde
approach.
Surface of Revolution --
Suppose we start with a circular are of 90 degrees, duplicate it to
form a full circle to be used as the trajectory for sweeping. On the
Y-Z plane let us construct a cubic B-spline curve. A sweep surface of
this curve should contain all the curves generated by rotating this
curve, and its horizontal cross sections should always be circles. How
do we generate the control mesh for such a rational B-spline surface?
At each control vertex of the curve, we form a network similar to the
trajectory circle except that we set their radii to be the Y-coordinate
of each control vertex, connect the network vertically. This forms the
control mesh of a sweep surface of this curve that is a rational B-spline
tensor product surface.
Classical Surfaces --
Many classical geometric objects like cylinders, cones, tori and spheres
belong to the family of "surfaces of revolution." The following videos
show how to design these surfaces in CAGD.
Torus If we start with a full circle to form a network of points that
form a control mesh, the sweep surface is a torus.
Sphere If the we start with this circular arc to form a network of
points that form a control mesh, the sweep surface is a spherical patch.
The problem with this surface is thal there are two degeneracies, at
the north pole and south pole. There is an alternative way to construct
a sphere with patches, such that each spherical patch is a rational
bi-quartic tensor product B-spline surface and that they form a cube
topology that does not have any degeneracy.
|