//Logo Image
**Last updated: Yeh-Liang Hsu (2010-11-12).**

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

# Geometric properties of surfaces

## 1.
Bilinear Surface

**◇****Assignment 1**

## 2.
Hermite Bicubic Surface

**◇****Assignment 2**

## 3.
Geodesics

**◇****Assignment 3**

## 4.
Curvatures

**◇****Assignment 4**

**◇****Assignment 5**

**◇****Assignment 6**

A bilinear
surface is derived by interpolating four data points, using linear equations in
the parameters *u* and *v* so that the resulting surface has the four
points at its corners, denoted **P**_{00}, **P**_{10}, **P**_{01},
and **P**_{11}, as shown in Figure 1.

Figure 1. A bilinear surface

**Deriving the equation of a bilinear surface would be
equivalent to finding the expression of the coordinates of an arbitrary point
corresponding to the parameter values u and v.** We assume that this point is obtained by dividing the line segment
between

_{ }**P**_{0v} = (1-*v*)**P**_{00} + *v***P**_{01} (1)

_{ }**P**_{1v} = (1-*v*)**P**_{10} + *v***P**_{11} (2)

Similarly, **P**(*u*,
*v*) is obtained from **P**_{0v} and **P**_{1v}
as

_{ }**P**(*u*, *v*) = (1-*u*)*P** _{0v}*
+

Substituting Equation (1) and (2) into Equation (3) gives the following equation of a bilinear surface:

_{ }**P**(*u*, *v*) = (1-*u*)[(1-*v*)**P**_{00}
+ *v***P**_{01}] + *u*[(1-*v*)**P**_{10} +
*v***P**_{11}]

**=**[(1-*u*)(1-*v*) *u*(1-*v*) (1-*u*)*v* *uv*][**P**_{00 }**P**_{01} **P**_{10} **P**_{11}]^{T}

_{} (4)

We can verify
that the four data points are at the corners of the bilinear surface by
substituting the proper combination of 0 and 1 for *u* and *v* in
Equation (4). Equation (4) also tells us that **a bilinear surface is obtained by simply blending the
effects of the corner points after they are weighted by the blending functions
(1- u)(1-v), u(1-v), (1-u)v, uv.** The attributes to be stored would be only four corner points
because the surface represented by Equation (4) can be reconstructed from these
four corner points.

Define 4 corner points in 3D space. Write down the bilinear
surface equation using Equation (4). Write a simple Matlab program to draw the
surface. Use proper mesh and views to display the surface. Show your Matlab
program too. ◇

Because the blending functions are linear, the bilinear surface tends to be flat. Bicubic surfaces provide designers with better surface design tools when designing surfaces. The bicubic equation can be written as

_{} _{} (5)

_{} _{} (6)

where _{} and the
coefficient matrix [**C**] is

_{} (7)

Hermite Bicubic
Surface is an extension of Hermite cubic spline. As shown in Figure 2, **16 boundary conditions are required
to find the coefficients of the equation. They are the 4 corner data points,
the 8 tangent vectors at the corner points (two at each point in the u
and v directions), and the 4 twist vectors at the corner points.**

Figure 2. A parametric surface patch with its boundary conditions

**The twist vector at a point on a surface measures the
twist in the surface at the point.** It is the rate
of change of the tangent vector _{} with respect to *v*
or _{} with respect to *u*
or it is the cross (mixed) derivative vector at the point.

_{} (8)

The **normal to a surface** is another important analytical property. It is used to calculate
cutter offsets for three-dimensional NC programming to machine surfaces, volume
calculations, and shading of a surface model. The surface normal at a point is
a vector which is perpendicular to both tangent vectors at the point (Figure 2); that is,

_{} (9)

And the unit normal vector is given by

_{} (10)

The Hermite bicubic surface can be written in terms of the 16 input vectors:

_{} _{} (11)

where _{} is the Hermite
matrix given by

_{} (12)

and [**B**] is **the geometry** or **boundary condition matrix****:**

_{} (13)

Equation (11) can be further expressed as

_{} (14)

_{} (15)

The second order
twist vectors _{} are difficult to
define. The **Ferguson**** surface**
(also called the F-surface patch) **is a bicubic surface patch with zero twist vectors at the patch
corners**, as shown in Figure 3. Thus, the boundary
matrix for the F-surface patch becomes

Figure 3. The F-surface patch

_{} (16)

This special surface is useful in design and machining applications. The tangent vectors at the corner points can be approximated in terms of the corner positions using the direction and the length of chord lines joining the corner points. Hence, the designer does not have to input tangent vector information and the computations required to calculate the surface parameters are simplified. This is useful if tool paths are to be generated to mill the surface.

Define 4 corner points in 3D space. Estimate the tangent
vectors using the 4 corner points. Construct the boundary condition matrix **[B]**
in Equation (13). Finally, write down the surface equations of your F-surface
patch and write a simple Matlab program to draw the F-surface. Use proper mesh
and view to display the surface. Show your Matlab program too. ◇

In general, two
distinct points on a surface can be connected by many different paths, of
different lengths, on the surface. **The paths that have minimum lengths are analogous to a straight
line connecting two points in euclidean space and are known as geodesics.** Surface geodesics can, for example, provide optimized motion
planning across a curved surface for numerical control machining, robot
programming, and winding of coils around a rotor.

Construct a sphere to represent the earth. Check out the latitudes and longitudes of Taipei, Tokyo, the North Pole, and San Francisco, and mark (approximately) the positions of the 4 cities on the earth. Check out the definition of a “great circle route”. Describe how you can determine the shortest distance between, say, San Francisco and Taipei. Draw the shortest path on the sphere. ◇

The
infinitesimal distance between two points (*u*, *v*) and (*u*+*du*,
*v*+*dv*) on a surface is given by

_{} (17)

Equation (17) is
often called the** ****first fundamental quadratic form of a
surface** and is written as

_{} (18)

where

_{} (19)

*E*, *F*, and *G*
are the first fundamental, or metric, coefficients of the surface.

The distance
between two points _{} and _{} shown in Figure
1, is obtained by integrating Equation (18) along a specified path _{} on the surface to
give

_{} (20)

where _{} and _{} The minimum *S*
is the geodesic between the two points.

Figure 4. Surface geodesics.

For a 2-D
non-parametric curve *y*=*f*(*x*), the curvature *k*(*x*)
(inverse of radius of curvature *r*(*x*)) can be expressed as below:

_{} (21)

For small
deflection (*y'*<<1), the curvature is approximated by

_{} (22)

For a 2-D
parametric curve _{}, note that _{}, and _{}, Equation (21) can be transformed into

_{} (23)

For a 2-D
parametric curve represented in terms of its arc length *s*

_{},

_{} (24)

but _{} and _{}, thus we can obtain the simultaneous differential equations:

_{} (25)

_{} (26)

For a space
curve of parametric representation _{}, the curvature _{} at a point _{} on the curve is

_{} (27)

where _{}, _{}.

Use 4 control points to generate a Bezier curve in 2D
space. Calculate the curvature at *u*=0.5 using both Equation (23) and
Equation (27). Compare the results. Do the results make sense to you? ◇

Referring to
Figure 5, when we rotate the plane around the normal, the curvature varies and
has a maximum and minimum value in two perpendicular directions. We call the
extreme values the **“principle normal curvatures”** and
denote them as _{} and _{}.

Figure 5. Principle Curvature

The principle curvatures are the roots of the following equation:

_{} (28)

where

_{} (29)

The **Gaussian curvature** at a point on the surface is defined as

_{} (30)

The **mean curvature** is defined as

_{} (31)

A **“curvature map”** in the *u*-*v* domain can be plotted for a surface to
check the smoothness of the surface.

Calculate the *E*,
*F*, *G* in Equation (19) and *L*,
*M*, *N* in Equation (29) on any given point of the bilinear surface
generated in Assignment 1. ◇

For the bilinear surface you generated in Assignment 1,
calculate the principle normal curvatures, Gaussian curvature, and mean
curvature at *u*=0.5, *v*=0.5. ◇