 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.