//Logo Image
Last updated: Yeh-Liang Hsu (2010-11-18).
Note: This is the course material for “ME550 Geometric modeling and computer graphics,” Yuan Ze University. Part of this material is adapted from CAD/CAM Theory and Practice, by Ibrahim Zeid, McGraw-Hill, 1991. This material is be used strictly for teaching and learning of this course.

Synthetic surfaces

1.    Bezier surface

Two sets of orthogonal Bezier curves can be used to design an object surface by specifying by an input mesh of control points, as shown in Figure 1. Bezier surfaces have the same properties as Bezier curves, and they provide a convenient method for interactive design applications. For each surface patch, we can select a mesh of control points in the xy “ground” plane, then we choose elevations above the ground plane for the z-coordinate values of the control points. Patches can then be pieced together using the boundary constraints.

Figure 1. A cubic Bezier patch.

Assignment 1

Generate the surface of an object, e.g., a car, the mouse of your computer, etc., using your CAD software. Use 4×4 control points as your input. Define an xy “ground plane” first, then use the procedure described above to adjust the z-coordinates of your control points, until you get the surface you want. Can you render this surface in your CAD software?

A tensor product Bezier surface is an extension for the Bezier curve in two parametric directions u and v.


where P(u, v) is any point on the surface and  are the control points. These points form the vertices of the control or characteristic polyhedron.

Figure 1 shows a cubic Bezier patch. Substituting n=3 and m=3 into Equation (1), the patch equation is


This equation can be expanded to give

This equation can be written in a matrix form as





Assignment 2

Use the same 4×4 control points generated in assignment 1, write a Matlab program to draw the Bezier surface using Equation (4). Use proper mesh and views to display the surface. Compare the surface you draw with the surface generated in assignment 1. Show the Matlab program too.

2.    B-Spline surface

A tensor product B-spline surface is an extension for the B-spline curve in two parametric directions u and v.


For n=m=3, the equivalent bicubic formulation of an open and closed cubic B-spline surface can be derived as below. First, let us find the matrix form of Equation (5). This equation is identical in form to the Bezier surface equation (1). Thus, by replacing the Bernstein polynomials in Equation (4) by the B-spline functions yields the matrix form of Equation (5) as




where  is an  matrix of the vertices of the characteristic polyhedron of the B-spline surface patch. For a 4×4 cubic B-spline patch, Equation (6) becomes

Assignment 3

Redo assignment 1. This time use as many control points as necessary to generate a better-looking surface.

3.    Coons Surface

All the surface methods introduced thus far share one common philosophy; that is, they all require a finite number of data points to generate the respective surfaces. In contrast, a Coons surface patch is a form of “transfinite interpolation,” which indicates that the Coons scheme interpolates to an infinite number of data points, that is, to all points of a curve segment, to generate the surface. The Coons patch is particularly useful in blending four prescribed intersecting curves, which form a closed boundary.

Development of the Coons surface patch centers around answering the following question: what is a suitable well-behaved function P(u, v) which blend the four given boundary curves and which satisfies the boundary conditions, that is reduces to the correct boundary curve when u=0, u=1, v=0, and v=1.

Let us first consider the case of a bilinearly blended Coons patch




The resulting surface patch described by Equation (10) does not satisfy the boundary conditions.



Let us define a “correction surface” below:


Subtracting  from Equation (10) gives


Now P(u, v) in Equation (14) satisfies the boundary conditions,



The left column and the upper row of the matrix represent  and  respectively, while the lower right block represents the correction surface .

Assignment 4

Define 4 Bezier curves P(0, v), P(1, v), P(u, 0), P(u, 1). Write a Matlab program to draw the corresponding bilinearly blended Coon’s patch using Equation (16). Use proper mesh and views to display the surface. Show the Matlab program too.

The functions –1, 1-u, u, 1-v, and v are called blending functions because they blend together four separate boundary curves to give one surface. For cubic blending function , we can define




4.    Triangular Patches

In triangulation techniques, three parameters u, v and w are used and the parametric domain is defined by a symmetric unit triangle of , , and , as shown in Figure 2. The coordinates u, v and w are called “barycentric coordinates.” While the coordinate w is not independent of u and v (note that u+v+w=1 for any point in the domain), it is introduced to emphasize the symmetry properties of the barycentric coordinates.

Figure 2. Representation of a triangular patch.

A triangular Bezier patch is defined by



For example, as shown in Figure 3, a cubic triangular patch is


Assignment 5

Define 10 control points in a similar pattern shown in Figure 2. You can also define an xy “ground plane” first, then adjust the z-coordinates of your control points. Write a Matlab program to draw the corresponding cubic triangular patch using Equation (22). Use proper mesh and views to display the surface. Show the Matlab program too.

For n=4, the triangular patch is defined as


Figure 3. Triangular Bezier patches

Assignment 6

Derive Equation (23) using the definitions in Equation (20) and Equation (21).