Representing Curves and
Surfaces
1
Introduction
• We need smooth curves and surfaces in
many applications:
– model real world objects
– computer-aided design (CAD)
– high quality fonts
– data plots
– artists sketches
2
Introduction
• Most common representation for surfaces:
– polygon mesh
– parametric surfaces
– quadric surfaces
• Solid modeling
– don’t miss the next episode...
3
Introduction
• Polygon mesh:
– set of connected planar surfaces bounded by
polygons
– good for boxes, cabinets, building exteriors
– bad for curved surfaces
– errors can be made arbitrarily small at the cost
of space and execution time
– enlarged images show geometric aliasing
4
Introduction
• Parametric polynomial curves:
– point on 3D curve = (x(t), y(t), z(t))
– x(t), y(t), and z(t) are polynomials
– usually cubic: cubic curves
5
Introduction
• Parametric bivariate (two-variable) polynomial
surface patches:
– point on 3D surface = (x(u,v), y(u,v), z(u,v))
– boundaries of the patches are parametric
polynomial curves
– many fewer parametric patches than polynomial
patches are needed to approximate a curved surface
to a given accuracy
– more complex algorithms though
6
Parametric cubic curves
• Polylines and polygons:
– large amounts of data to achieve good accuracy
– interactive manipulation of the data is tedious
• Higher-order curves:
– more compact (use less storage)
– easier to manipulate interactively
• Possible representations of curves:
– explicit, implicit, and parametric
7
Parametric cubic curves
• Explicit functions:
– y = f(x), z = g(x)
– impossible to get multiple values for a single x
• break curves like circles and ellipses into segments
– not invariant with rotation
• rotation might require further segment breaking
– problem with curves with vertical tangents
• infinite slope is difficult to represent
8
Parametric cubic curves
• Implicit equations:
– f(x,y,z) = 0
– equation may have more solutions than we
want
• circle: x² + y² = 1, half circle: ?
– problem to join curve segments together
• difficult to determine if their tangent directions
agree at their joint point
9
Parametric cubic curves
• Parametric representation:
– x = x(t), y = y(t), z = z(t)
– overcomes problems with explicit and implicit
forms
– no geometric slopes (which may be infinite)
– parametric tangent vectors instead (never infinite)
– a curve is approximated by a piecewise
polynomial curve
10
Parametric cubic curves
• Why cubic?
– lower-degree polynomials give too little
flexibility in controlling the shape of the curve
– higher-degree polynomials can introduce
unwanted wiggles and require more computation
– lowest degree that allows specification of
endpoints and their derivatives
– lowest degree that is not planar in 3D
11
Parametric cubic curves
• Kinds of continuity:
– G0: two curve segments join together
– G1: directions of tangents are equal at the joint
– C1: directions and magnitudes of tangents are
equal at the joint
– Cn: directions and magnitudes of n-th
derivative are equal at the joint
12
Parametric cubic curves
• Major types of curves:
– Hermit
• defined by two endpoints and two tangent vectors
– Bezier
• defined by two endpoints and two other points that
control the endpoint tangent vectors
– Splines
• several kinds, each defined by four points
• uniform B-splines, non-uniform B-splines, ß-splines
13
Parametric cubic curves
• General form:
x(t ) a x t 3 bx t 2 c x t d x
y (t ) a y t 3 by t 2 c y t d y
z (t ) a z t 3 bz t 2 c z t d z
ax a y az
b b b
C x y z
T [t 3 t 2 t 1]
cx c y cz
d
x d y d z
Q(t ) [ x(t ) y (t ) z (t )] T C T M G
14
Parametric cubic curves
• It is not necessary to choose a single
representation, since it is possible to convert
between them.
• Interactive editors provide several choices,
but internally they usually use NURBS,
which is the most general.
15
Parametric bicubic surfaces
• Generalization of parametric cubic curves.
Q( s, t ) T C (t ) T M G (t )
• For each value of s there is a family of
curves in t.
• Major kinds of surfaces:
– Hermit, Bezier, B-spline
16
Parametric bicubic surfaces
• Displaying bicubic surfaces:
– brute-force iterative evaluation is very
expensive (the surface is evaluated 20,000
times if step in parameters is 0.01)
– forward-difference methods are better, but still
expensive
– fastest is adaptive subdivision, but it might
create cracks
17
Quadric surfaces
• Implicit form:
f ( x, y, z ) ax 2 by 2 cz 2 2dxy 2eyz 2 fxz 2 gx 2hy 2 jz k 0
• Particularly useful for molecular modeling.
• Alternative to rational surfaces if only
quadric surfaces are being represented.
18
Quadric surfaces
• Reasons to use them:
– easy to compute normal
– easy to test point inclusion
– easy to compute z given x and y
– easy to compute intersections of one surface
with another
19
Summary
• Polygon meshes
– well suited for representing flat-faced objects
– seldom satisfactory for curved-faced objects
– space inefficient
– simpler algorithms
– hardware support
20
Summary
• Piecewise cubic curves and bicubic surfaces
– permit multiple values for a single x or y
– represent infinite slopes
– easier to manipulate interactively
– can either interpolate or approximate
– space efficient
– more complex algorithms
– little hardware support
21