//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

**◇****Assignment 1**

**◇****Assignment 2**

## 2.
B-Spline surface

**◇****Assignment 3**

## 3.
Coons Surface

**◇****Assignment 4**

## 4.
Triangular Patches

**◇****Assignment 5**

**◇****Assignment 6**

**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.

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*.

(1)

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

(2)

This equation can be expanded to give

This equation can be written in a matrix form as

(3)

or

(4)

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. ◇

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

(5)

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

(6)

or

(7)

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

Redo assignment 1. This time use as many control points
as necessary to generate a better-looking 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**

(8)

(9)

(10)

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

(11)

(12)

Let us define a “correction surface” below:

(13)

Subtracting from Equation (10) gives

(14)

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

(15)

(16)

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

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

(17)

(18)

(19)

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

(20)

(21)

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

(22)

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

(23)

Figure 3. Triangular Bezier patches

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