You are on page 1of 534

GEOMETRIC

MODELING

(Second Edition)

Michael E. Mortenson

Wiley Computer Publishing

John
Wiley
and Sons, Inc.

New York Chichester


\342\226\240 . Weinheim . Brisbane . Singapore - Toronto
PREFACE

Geometric modeling
is now
taught, studied, and practiced world-wide. It has
come to affect the lives of us all. It makes possible the fast and accurate

image construction of medical diagnostic devices. It is the basis of computer-


aided design and manufacture of aircraft, automobiles, and consumer

products\342\200\224making possible safer, more efficient, and more pleasing designs,


lowering costs, and providing more choices through customizedproduction.
Geometric modeling gives
scientists
graphic displays of phenomena beyond
anyone's power to visualize just a few years ago. It even speeds the
design

and construction of America's Cup contenders and challenges our movie


heroes and heroines with ever more fantastic virtual dragons to slay and
worlds to conquer.The end is not in sight.
Many years have passed since publication of the first edition of Geometric
Modeling. They have been productive years for those of us and
exciting

working in the field. During this time two compelling circumstances have

motivated and affected the creation of this second edition. The first is the
progress occurring within
geometric modeling itself, as a result of vigorous
ongoing research and of increasingly more sophisticated demands of client

applications.The second is the comments from almost a generation of


readers of the first edition\342\200\224students, teachers, and professionals alike.
Although clearly a descendant of the first, this second edition is a

substantial revision
reflecting both new developments and a maturing discipline.
With the increased capability, availabiliiy,and affordability of
computers,

geometric
modeling applications have spread from mainframes and
supercomputers
to workstations and PCs. The usefulness of geometric modeling has

ix
broadened from its initial applications in the aerospace and automotive

industries and now includes such diverse areas as special effects in


cinematography
and television Commercials and the design and control of type
fonts. Considering all entirely this\342\200\224and with new fields such as virtual reality,
computer vision, and scientific visualization bringing us into the third

millennium\342\200\224the need is
growing for practitioners in all the related fields and client
applications to be knowledgeableand current in
geometric modeling.
The second edition of Geometric Modeling offers the reader a

comprehensive look at the indispensable core concepts of geometric modeling,


describing
and
comparing all the important mathematical structures for modeling
curves, surfaces, and solids, and showing how to
shape and assemble those
elements into more complex models. Like the first edition, it is intended for
students, teachers, and professionals in the field of geometric modeling and its
primary applications, including computer graphics, computer-aided design
and
manufacturing, robotics, and scientific visualization, among many others.
While the first edition was intended to be used a textbook,
primarily
as the

second edition will serve well as a professional tutorial and reference,


teaching resource, and primary or supplementary textbook. Its language is as free
as practical from the jargon applications so that it may of
special
focus on the

geometry and be universally accessible across a wide range of


disciplines.
For

these same reasons, application-oriented algorithms and programming


are omitted.
techniques

There are three important functions of geometric modeling: to represent


elementary forms (for example, curves, surfaces,
and solids), to shape and
assemble those forms into more complex objects, and to process the
necessary
concomitant geometry (for example, computation of intersections,

offsets,
and fillets). The content and organization of this text reflect these
functions. Chapter I
attempts
to answer the question, What is geometric
modeling?
It briefly discusses its history and the underlying mathematics.
Chapters 2
through
5 are all about curves: mostly Hemiite, Bezier, and B-Spline;
their mathematical representation, modification, and analysis. Surfaces,

including
the
quadric, bicubic Hermite, Bezier, and B-Spline, are the subjects
of Chapters 6 through 9. Chapter 10 addresses the still esoteric world of

trivariate parametric solids, as well as simple shape generation through


transformations and instanciation of parameterized primitive shapes, sweep
operations,
and controlled nonlinear deformations. Much of the power of
contemporary geometric modeling resides in its capacity to synthesize,
allowing
us to describe complex shapes as arrangements of much simpler ones;
thus, the subject of
Chapter
11 is complex model construction, beginning with
the topology of models and proceeding theory with the and application of

graph-based, Boolean, boundary, and space-partitioning models. Chapter 12


Preface xi
\342\226\240

presents
a discussion on the newly emerging methods of relational geometric
synthesis. Appendices A and \320\222 review vectors and matrices, respectively
Appendix \320\241 summarizes various transformations of models. An extensive
bibliography, frequently referenced in the text,completes this work-
Several subjects are not included.
Although well-understood, they are
either not yet widely accepted, too specialized, or mathematically beyond
the scope of this text. For example, nontensor product patches, general
offsets and blends, nonstandard parameterization schemes, and Euler models
are no! discussed here.
As Geometric a
Modeling textbook, can be used for a one- or two-
semester course at the upper division or
graduate
level in any of the

disciplines
mentioned, including engineering, physics, computer science, and
applied mathematics. Some prior course work is required in
elementary

calculus, analytic geometry,


and vector and matrix methods. Programming skills,
while useful, are not necessary for understanding this text.

The importance of geometric modeling has long been recognized in its


many fields U is, of course, a primary of
application. ingredient of computer
graphics and computer-aided design and manufacturing,as well as of such

more recent applications as computer art, cinematographic special effects,


robotics, computer vision, scientificvisualization, reality. and virtual Progress
in any of these areas now depends in large measure on how well we Can

create effective
geometric models.

Finally, I must repeat a warning is-sued in the first edition: The geometric
model of an
object or the simulation of a process via geometric metaphor is
not the object or When we ask the model the
process. questions, when we
analyze it to better understand or predict the behavior of what is
being

represented, we must remember that the answers and results pertain first to the
model itself and only conditionally to its object. only if the model If and

closely corresponds to the object or process can we safely infer the object's
or process' behavior from the model's behavior. The accuracy of modeling
methods is an art and science in itself.
ACKNOWLEDGMENTS

The
history of geometric modeling is one of unique cooperation between
industry and academia, and material presented from both. Many here draws

individuals worked to develop and refine the theories and techniques of


geometric
modeling,
and many of the most important contributions are
referenced in this text. So I must repeat my acknowledgment in the first edition of

all those both well-known and anonymous researchers and developers who
have contributed to geometric modeling over the past 40 years.The authors
whose works are listed in the bibliography have created a new discipline.
Their work has made possible a growing family
of scientific, industrial, and

commercial applications whose very existence is not possible without a


strong underlying geometric modeling capability.

I thank the many readers of the first edition who took the time to offer
valuable comments and
suggestions.
I especially thank the directors and staff of
the Port Townsend and Jefferson County public libraries, particularly Carol

Cahill, Reference Librarian at the Port Townsend library, and Shery Hart, at the

Jefferson County library- Although these two small rural libraries are not
endowed with the resources of a large university library, the diligence and
professional skills of their staffs are the equal of that found anywhere. I also thank
Bob Aronds, Diane Cerra (now
with
Morgan Kaufmann), and Marjorie
Spencer, my editors at Wiley, for all they have so thoughtfully
and

professionally
done to make the production of this edition an enjoyable experience. Harry
Meriwether and Art Eshleman I thank for their example must
especially
of
how to think geometrically and for an understanding modeling process of the

itself, both of which I had the pleasure to learn from them many years ago.

\342\226\240
\342\226\240
\342\226\240

XIII
xiv \342\226\240
Acknowledgments

I thank Dr. John S. Letcher, Jr..president and founder of AeroHydro Inc.,


Southwest Harbor, Maine, for
permission to use the panelization drawing of
the keel and bulb structure of Black Magic as artwork (see About the cover

the Cover). This geometric model was Created using the methods of
relational
geometric synthesis (see Chapter 12) and AeroHydro's MultiSurf
program. I also thank Dr. John S. Letcher,Jr., D Michael
Shook, Seth H.

Porter, and George A. Dickson for permission to include their original


article on relational
geometric synthesis as Chapter 12 of this text. Their work is
an important contribution to the field of geometric modeling.
Finally, thanks to my wife Janet, who will never forget the struggles we had

preparing
the manuscript for the first edition, using an Apple II and a now
long-expired word processor that had no equation-editing capability. Even

so, she contributed as much time and effort to this edition.

Michael E. Mortenson

Port Townsend
October 1996
CONTENTS

About the Cover vii

Preface ix

Acknowledgments xiii

1 Introduction 1

1.1 What Is Geometric Modeling? 1


1.2 History 6

1.3 Tlie Mathematics II

1.4 Conventions and Notation 16

2 Curves 19

2.1 Intrinsic Equations of Curves 19

2.2 Explicit and Implicit Equations of Curves 22


23 Parametric Equations of Curves 23
2.4 Conic Curves 31

2.5 Hermite, Bezier. and B-Spline Curves: An Overview 32


2.6 Points on a Curve 34
XV
xvj Contents
\342\226\240

3 Hermite Curves 39

3/1 Algebraic and Geometric Forms 39


3.2 Hermite Basis Functions 42

3.3 Matrix Form 47

3.4 Tangent Vectors 50


3.5 Truncating and Subdividing 54
3.6 Three-Point Interpolation 60
3.7 Four-Point
Interpolation
61

3.8 Conic Hermite Curves 64


3.9 Composite Hermite Curves 74

4 Bezier Curves 81

4.1 Bezier Basis Functions 83

4.2 Control Points 89


4.3 Truncating and Subdividing 97
4.4 Composite Bezier Curves 105
4.5 Rational Bezier Curves 108

5 B-Spline Curves 113

5.1 Nonuniform B-Spline Basis Functions 113


5.2 Uniform B-SplineBasis Functions 126

5.3 Quadratic and Cubic B-Splinc Basis Functions 128


5.4 Closed B-Spline Curves 130
5.5 Continuity 134
5.6 Conversion Between Basis Functions 137

5.7 Nonuniform Rational B-Spline Curves 139


5.8 Representing Conies with NURBS Curves 140
5.9 Cubic Beta
Splines
142

6 Surfaces 143

6.1 Explicit and Implicit Equations of Surfaces 144


6.2 Quadric Surfaces 145

6.3 Parametric Equations of Surfaces 149


6.4 Hermite, Bezier, and B-Spline Surfaces: An Overview 156
Contents xvii
\342\226\240

6.5 Points on a Surface 158


6.6 Curve Nets 159
6.7 Embedded Curves 161

7 The Bicubic Hermite Surface 169

7/1 Algebraic and Geometric Forms 169


7.2 Hcrmitc Patch Basis Functions 179
7.3 Tangent
and Twist Vectors 180

7.4 Normals 182


7.5 Sixteen-Point Form 184
7.6 Reparameterization of a Patch 186

7.7 Truncating and Subdividing a Patch 191


7.8 Composite Hcrmitc Surfaces 192
7.9 SpecialHermite Patches 203

7/10 Blend Surfaces 213

8 Bezier Surfaces 217

8.1 The Tensor Product Bezier Patch 217


8.2 The Bicubic Bezier Patch 218

8.3 A 3 x 5 Rectangular Array of Control Points 220


8.4 Converting
Between Bicuhic Bezier and Hermite Forms 222
8.5 Degree Elevation in a Bezier Surface 223
8.6 CompositeBezier Surfaces 224

8.7 Rational Bezier Patch 225

9 B-Spline Surfaces 227

9.1 The Tensor Product B-Spline Surface 227


9.2 Matrix Form 228

9.3 Open and Closed B-Spline Surfaces 228


9.4 Nonuniform Rational B-Spline Surfaces 235

10 Solids 237
10.1 Parametric Solids 237

10.2 The Tricubic Solid 240


xviii Contents
\342\226\240

103 Curves and Surfaces Embedded in a Solid 253


10.4 Generalized Notation Scheme and Higher-Dimension
Elements 257

10.5 Instances and Parameterized Shapes 260


10.6 Sweep Solids 264
10.7 Controlled Deformation Solids 275

11 ComplexModel Construction 281


11.1 Topology
of Models 282

11.2 Graph-Based Models 310


11.3 Boolean Models 318
1L4 Boundary Models 356
11.5 Space-PartitioningModels 367

12 Relational Geometric Synthesis 373

12.1 Introduction 373


12.2 Relational Model Structure 378
12.3 Model Evaluation 383
12.4Serialization 387
12.5 Relational Entities 388

12.6 Detailed Example 401


12.7 Applications 404
12.8 Open Issues in Relational
Geometry
411

12.9 Conclusions 415

APPENDIX A Vectors 417

APPENDIX \320\222 Matrices 431

APPENDIX \320\241 Transformations 439

CI Translation 441
G2 Rotation in the Plane 444
C.3 Rotation in
Space
about the Principal Axes 447
C.4 Rotation in Space about an Arbitrary Axis 453
Contents xix
\342\226\240

C.5 Reflection 457


C.6 Dilation and Shear 462
C.7 Multiple Sequential Transformations 467

Bibliography 473

Index 509
INTRODUCTION

Tills
chapter
introduces
geometric modeling in the context of the forces
motivating and shaping its development, and tries to answer the
question,

What is geometric modeling? The history of geometric is itself modeling


growing in
importance
because of what it tells us about the interplay of
theory
and
application, academia and industry, as well as ideas and
personalities, perhaps suggesting ways of managing these forces more effectively This
chapter reviews the highlights of this history,Themathematics of
geometric

modeling spans the disciplines of differential geometry, linear and Boolean


algebra, topology, numerical methods, vectors, and this chapter and
matrices,

briefly discusses their use. The chapter concludes with a summary of the
text's conventions and notation scheme.

1.1 WHAT IS GEOMETRIC MODELING?

Geometric modeling evokes a curious mix of the visual analytic in and the

the eyes and minds of those of us who study and apply it. The visualresponse
arises from its association with the simulation of shapes that define objects in
the real world, from its association potential
with the
reality of the designer's
work, and from its symbiosis with computer graphics. The analytical
response arises from an awareness of the elegant and often subtle
mathematics that is its foundation.

The term geometric modeling first came into use during the late 1960s and

early 1970s, a time of rapidly developing computer graphics and computer-

1
2 Introduction
\342\226\240

aided
design and manufacturing technologies. The decipline of geometric
modeling is an interrelated, although somewhat looselyintegrated,
collection of mathematical methods that we use to describe the shape of an object
or to express some physical process
in terms of an appropriate geometric
metaphor. These methods include computer-aided geometric design, solid
modeling, algebraic geometry,
and computational geometry. Computer-aided

geometric design (CAGD) applies the mathematics of curves and surfaces to


modeling, primarily using
the
parametric equations of differential geometry.
It is here that we find the roots of contemporary geometric modeling.Solid
modeling, usually
encountered as constructive solid geometry (CSG), allows
us to combine simple shapes to create complexsolid models. CSG has its

mathematical foundations in topology, algebraic geometry, and Boolean


algebra. Algebraic geometry is the contemporary extension of classical

analytic geometry, including


differential geometry. Computational geometry is
concerned with design and analysis of geometric algorithms, and has
strong

ties to numerical methods, computation theory, and complexity analysis.


Computer-aided geometric design and constructive solid geometry
are

branches of geometric modeling, whereas algebraic and computational


geometry tend other fields as well-
When we construct a model of some object, we create a substitute\342\200\224a

representation. The
object may already exist physically, it may be the design for
some as yet nonexistent object, be some virtual it
may object never intended
to be physically realized, or it may be the basis for the
geometric

interpretation of some physical process that we wish to visualize. An effective model is


usually easier to test than and
analyze
the actual object, and it responds,
within limits, in the same the actual way
as
object. To model something, then,
is to give shape or form to it. In contemporary geometric modeling, we

define a shape by a set of mathematical statements and logical relationships


satisfying
a set of axioms. These axioms we interpret as true statements about
the model, and the consequent general properties of the model we analyze
and evaluate as representative of the modeled objeet itself. The axioms, of
course, correspond a
priori to properties of the object that is modeled.
Geometric
modeling
is the process of creating these statements and
relationships.

Traditionally, models were made of clay or wood or rendered as sketches


or engineering drawings. For large objects, the model was usually much

smaller and easier to evaluate before committing to the construction of the


real thing. Now we use geometric modeling to create a precise mathematical
description of the shape of a real or hypotheticalobject, or to simulate a

process or phenomenon that has a geometric analog. This description is


analytical
and abstraet, in contrast to a physical model, which is literal and con-
What k Geometric Modeling? 3
\342\226\240

crete. Physical models or mock-ups are still successfully used, and their story,
in itself, is worthy
of a
separate study. We create a model, either physical or
abstract, because it is a convenient and economical substitute for the real
object or process, and because it is easier and more practical to
analyze
a

model than \320\256


test, measure, or experiment with the real object or
phenomenon. This
may be because of size (the real object is too big or too small),
complexity (the
model is simpler relative to the characteristics of interest), or
time (real phenomena are too fast, too slow, or uncontrollable). Beyond the

advantages of analysis, the mathematical model of an object's geometry is an

important way to convey information. For example, the abstract geometric


model of a mechanical part is now
commonly
used to transmit design and

production data between engineering and manufacturing operations.


Through the medium of
computer graphics
and its rendering capabilities, a
geometric model becomes the basis for exploring and evaluating aesthetic
and functional
qualities of some object. It is becoming more difficult, indeed,
to overstate the importance of
geometric modeling.

Geometric modeling, using differential and analytic geometry, vector and


matrix methods, tensors, topology, set theory,
and an arsenal of numerical

computation methods to capture the potentially complex description of an


object, requires the power of a
computer.
It is a computer-aided process, with
the model stored in and analyzed by
a
computer. Using a computer is, in fact,
central to the entire geometric-modeling process. Without computational
power, we would be unable to construct and analyze models sophisticated or
complex enough to be of any practical importance. So, even though the

computer
is not
explicit in our studies, it is ever present, if only in the background
as our implied L%geometry engine.\"

Where we were once satisfied with two-dimensional representations of


physical objects, we now demandand achieve topologically valid and

analytically complete
three-dimensional models. These models allow us to deter-
mine any geometric property or attribute. Obviously,
the
long
association of

geometric modeling with computer graphics demonstrates that visualization


and appearance are important concerns, find that a complete and we model
must satisfy the requirements of both rendering and analysis. In fact, we can

now identify three important application categories of geometric modeling:

1. Representation of an existing object, where we must create a geometric

model only once.


2. Ab initio design, where we must create a new
object to satisfy some
functional or aesthetic goals, defining and revising a hypothetical object's
shape and performing appropriate analysis until we create a shape that

fulfills the design criteria.


4 Introduction
\342\226\240

3. Rendering, where we must generate an image of the model in order to


visually interpret
and evaluate it.

These three categories are, of course, closely related. For example, when we

first create the geometric model of a new, physically nonexistent product, it


must be suitable and evaluation. for
analysis
After selecting a specific design,
we can use its geometric model to guide the manufacture of the
object. When

production is complete, the model finally represents the physical shape of an


existing object. At
any point
in this process, the geometric model provides
information for rendering visual images of the
object, including engineering
drawings and computer graphics displays.
Computer graphics, computer-aided design, and computer-aided
manufacturing
have been and continue to be the driving forces behind the
development
of much of
geometric modeling. Now robotics, computer vision,
virtual reality, scientific visualization, and artificial intelligenceare making

demands on
new
geometric-modeling capabilities. Computer graphics
systems can now
routinely produce realistic two-dimensional color-shaded
renderings
of three-dimensional
objects, including the appearance of texture,
translucence, and the effects of multiple light sources. Art, animation, and

virtual reality are each contributing their own impetus to the state of the art.
Many visual
special
effects in feature films and advertising rely on these
display systems
and
modeling techniques. Advances in solid modeling,
polygonal,
and
sculptured-surface techniques have made much of this possible.
Development work continues on more sophisticated computer-aided
design and
manufacturing systems, with much of this effort aimed at creating
a virtually paperless and seamless engineering and
manufacturing process.
In

design and drafting, the engineer's activities may soon be more like sculpting
than
drafting.
The new sculpting tools, using combinations of simple solid
shapes and sophisticated shape transformations, will mimic not only those of
the artist but also those forming processes available in
manufacturing,

extending a design engineer's ability to rapidly create and evaluate highly


complex models.
Engineering analysis is an area
undergoing change with the increasing
sophistication of solid modelers. Solid modelers permit rapid construction of

fi.iitc-element models. They also permit automatic static and dynamic


structural
analysis of mechanical parts subjected to a variety of loading
conditions. The effects of these loads are then quickly and accurately displayed,
using computer graphics.
Computer-aided kinematic
analysis
of complex mechanisms also becomes
possible, because designers can move parts of a solid model independently
and check clearances between those parts, either visually or analytically. It is
What Is Geometric Modeling? 5
\342\226\240

also now possible to ask other often-neglected questions, such as: Is there
sufficient clearance for or screwdriver a wrench to reach and turn a fastener
whose location allows only limited access? or Is it
possible
for a robotic spot-
welder to reach a joint?
Perhaps one of the most fertile applications of
geometric modeling
is

computer-aided manufacturing. For example, geometric modeling makes


possible process planning and machine tool path-verification systems
that

are completely automatic. Engineering designers may furnish, via a


computer database, complete and unambiguous geometric models of parts to be
manufactured. Manufacturing programs then interpret these models and

generate production
and assembly instructions for the automated machine
shop and assembly line. Automated inspection of finished
parts
e also now

possible, improving quality assurance processes.


Developers of geometric-modeling systems now offer their
products for

application to robotics and computer vision, fields important to artificial


intelligence systems.Advanced geometric-modeling systems
will
encourage

a synthesis of these fields to produce intelligent robots that move in three


dimensions and recognize objects from
visual, tactile, and other sensory
information. Ultimately, robots will be programmed to create, on their own,

a
geometric
model of their immediate environment using artificial senses
and adaptive powers of inference.
Geometric modeling is
appropriately
cast as an applied art and science.
However, with strong stimulus from its client applications, the need for an

overarching theory of geometric modeling is growing. As models become


more complex, computer-aided design and
manufacturing
and
computer

graphics systems require automatic self-validation of the model, an


understanding
of
geometric equivalence (both qualitative and quantitative), and
more natural and powerful shaping procedures. Robotics and computer
vision(Where am I? What is it?) require models amenable to spatial
reasoning
in
configuration spaces. Virtual reality and scientific visualization require
geometric models susceptible to dynamic influences. For all these the answer

may lie in a new geometric metaphor encompassing both shape and behav-
ior.The various conceptual fragments of
contemporary geometric modeling
offer partial solutions in these applications. However, some future
integrative
general theory of geometric modeling may yield more comprehensive
results.
Much work remains to be done in
geometric modeling on both fronts\342\200\224

theoretical and applied. We need a better understanding of why we model, of


the kinds of models
possible (physical
and mathematical), and of the
effectiveness of
modeling
and how it might best be measured. We need to explore
the natural limits to visualization and how
geometric modeling can work
6 Introduction
\342\226\240

within these limits and perhaps help to overcome them. Wc need a better
understanding of the
relationship between the object and its model, the
strength of their correspondence, how to minimizeambiguities in a
model,

and how we choose a model.

1.2 HISTORY

The history of mathematical geometric modelinggoes back over one

thousand
years,
to the application of conic sections to naval architecture, when
engineers and ship builders designed and lofted of ships' hulls the lines

based on by then well-known methods for constructing conic curves. More


recently, the
shapes
of ships and aircraft were manually lofted and stored in
vast libraries of scribed sheet-metal sections. revolution occurred. In Then a

the 1950s and early 1960s, the advent of the electronic computer changed
forever the
way we do modeling.
The roots of today's geometric modeling are found in the earliest

computer graphic systems developed for computer-aided design and


manufacturing. These, in turn, are descendants of the U.S. Air Force's SAGE
computer system of the 1950s.Ivan working at MIT, was Sutherland
(1963),

among the earliest pioneers in this field with his Sketchpad system.This and

other early graphics systems suggested wonderful possibilities for


improving
and
extending the engineering design and drafting process, and they
stimulated development of much of the mathematics that is the basis of

today's geometric modeling. However, the modeling during that early


period tended to emphasize appearance and rendition of design on the

engineering side, with the notable exception of the finite-element models


used in structural
analysis and analogous models used in aerothermody-
namic analysis.
On the manufacturing side, the history
of
geometric modeling begins with
the simple subtractive modeling of numerical control processes. Computers
were introduced into manufacturing
to calculate and control the cutter
motions of machine tools. This required a new way
of
understanding
and

extracting the shape information of an object's design from its engineering


drawings. Such a task was not
possible until special languages were

developed
to translate the shape information from the drawing into a computer-
compatible format. D. T. Ross (1959), at the Illinois Institute of Technology,
guided an early and highly successful effort to do just that, using
classical

analytic geometry as a basis for a modeling and machine control language.


The APT languageemerged from this work.
Using APT, a parts programmer
constructs a geometric model of an object to be machined from raw stock
7
\342\226\240
History

and
incorporates cutting instructions, which reference the model, for
computer-controlled
machine tools. This marked the beginning of the
numerically
controlled
(NC) machinery revolution in industry.
In the mid-1960s, Ross (1967), then at MIT, developed an advanced

compiler language
for graphics programming and for generating problem-
oriented languages. S. A. Coons (1963,1965), also at MIT, I C. Ferguson and

(1964) at Boeing began important work in nonrational free-form curves and


sculptured surfaces, using
the cubic Hermite interpolation scheme. Coons1
pioneering work was also important because the development it stimulated

of other curve and surface representations. The early efforts of Castel- \316\225 de

jau (1959, 1963) were quickly followed by the independent and insightful
work of P. Bezier
(1966,1967,1968), who produced a widely used method for
curve and surface design.
At about this time, General Motors developed its DAC-1 system. Several
other companies, notably Douglas, Lockheed, and
McDonnell, also made

significant developments. The Douglas effort was led by A.E.Eshlemanand


H. D Meriwether (1966,1967), who extended
considerably the

understanding
and usefulness of the cubic and bicubic Hermitian forms of curves and
surfaces. To Eshleman and Meriwether,the idea of a mathematical model

describing and recording the geometry of the end product of a design was
important, but the real prize
was the process\342\200\224the use and evolution of the
model through all phases of design and analysis, and on into the

manufacturing process
itself. Of course, this put an emphasis on the universality and
versatility of the modcVs
representational form; a philosophical approach
still bearing fruit, as witness the popular and widely used nonuniform
rational
B-Spline
or NURBS form. The sucecss of the NURBS form arose out of
the simple fact that design
and
manufacturing processes still rely on standard
analytic shapes, such as straight lines, circles,conies, and
quadric
surfaces.

Rational curve and surface representation forms, like NURBS, are capable
of incorporating both standard and free-form
shapes.

Early
limitations of the NC programming languages further stimulated
work on the mathematics and applications of
sculptured
surfaces and solid

modeling. This was reinforced by a growing need in the automotive and

aircraft industries. Detroit was interested in the geometry of styling\342\200\224body

shapes, aesthetics, and highlights. Meanwhile, in Seattle, St. Louis, and


Southern California, aircraft engineering departments were looking for better
structural and aerodynamic shape-modeling tools. At this time, new
ground

was broken in the mathematics of parametric geometry, including Coons1


bicubic patches and Bezier's (1974) special surfaces, notation with the

scheme introduced by A. R. Forrest (1971). From a productive decade of


research and development ending
in the mid 1970s, there emerged the idea
8 Introduction
\342\226\240

of
piecewise curves and surfaces, the joining together of many individual
curve segments or surface patches to form more complex shapes.
Meanwhile, some workers in computer graphics and certain areas of
computer-aided design (includingarchitecture) began
work in two areas of

geometric modeling now called wireframe and polygonal schemes. These


were initially two-dimensionaland were intended as drafting tools or
methods for
reducing
and
interpreting digitized data. A wireframe model is
composed
of lines and curves defining the edges of an object, and it is usually
constructed interactively.This is done in much the same way as an
engineering drawing,
where each line or curve element is constructed separately
and independently. The model is stored in the
computer
as a list of lines and
curves.
Current wireframe modeling systems are capable of
constructing
three-

dimensional representations and have considerably enhanced interactive


procedures. However, all pure wireframe systems exhibit well-known, often

severe, deficiencies. For example, three-dimensional wireframe models are


frequently ambiguous. Figure 1.1 is a good example ambiguity,
of this

because there are three equally likely passages through the object. It is also
easy to create nonsenseobjects,sincethese systems usually
have no internal

logical tests to prohibit this. Figure 1.2a shows a classical example. Implied
faces
interpenetrate
in a
way that makes the interpretation of a physically
realizable solid impossible. The wireframe 1.2b is a different in
Figure
kind
of nonsense object, because it cannot be constructed or interpreted in three-

dimensional space. Another deficiency is the lack of contour or profile


information for surfaces inferred between the wireframe lines and curves. Figure
13 illustrates this limitation.

Figure 1,1 Wireframe ambiguity.


History
- 9

Figure 1.2 Wireframe nonsense objects.

Polygon modeling schemes were initially developed pietures


or to create

renderings, but there is a considerable gray area between polygon and


wireframe
systems,
and the distinction is not always clear. The polygonal data
structure is, however, straightforward, consisting of topologicallycross-
referenced lists of vertices, edges, and faces. The picture-generating and
associated with systems
picture-manipulating algorithms polygonal modeling
are often highly sophisticated. This is true because in
polygonal schemes
part

have been extensively used as research tools for computer graphics display
technology, with animation and hidden-surface or ray-tracing techniques at
the leading edge.
10 Introduction
\342\226\240

Contour in farm hi ion noi included in wireframe model

Figure 1.3 Missing contour information.

Coons, Ferguson, and others developed sculptured


surfaces to
replace the

traditional lofting techniques of the shipbuilding, automotive, and aircraft


industries with
something faster, more accurate, and versatile. They were
after forms that were easy to modify and that were compatible with
analysis

and manufacturing processes. The well-known parametric cubic patches of


Coons and Ferguson and the formulations of Bezier,as mentioned

previously,
were
early successes. Not much later, in the 1970s, W. J. Gordon and R.
F Riesenfeld (1974b)introduced and
applied B-Spline
curves and surfaces
to computer-aided geometric design. Barsky ([981) introduced an important
variation, the beta-Spline, Rational formulations of the Bezier and B-Spline
followed soon after, culminating in the very powerful and popular NURBS
curves and surfaces (nonuniform rational B-SpHnes). I. Schoenberg (1946),
M. G. Cox (1972), and C. de Boor (1972) laid the mathematical foundation

for much of this work. More recently J. S. Letcher (1995) led the
development and successful application of a new object-oriented framework for
computer-aided geometric design, called relational geometry (see Chapter
12). Taken
together
these methods, grounded in the parametric curves and
surfaces of differential geometry, form the core of computer-aided
geometric
design.

Solid
modeling, a relative newcomer, is intended to overcome some of the
limitations of the other schemes when
representing
and
analyzing three-

dimensional objects. The goal of solid modeling is to create unambiguous


and
complete geometric representations of objects. There have been several
different approaches, including boundary representations (B-reps) and

constructive solid
geometry (CSG), pioneered by A. A. G. Requicha and \316\227. \316\222.

Voelker
(1977). Perhaps at the farthest frontier of geometric modeling and
The Mathematics 11
\342\226\240

still
awaiting a wider recognition of its potential is true solid modeling, where
the internal properties oT an
object are as fully represented as its surface

properties. E. L.Stanton and L. M.Crain( 1974/1977)began this area work in

over twenty years ago. Later chapters discuss these areas of solid modeling
in much
greater detail.

It is tempting to assume that the evolution of geometric modeling


followed the line of descent from wireframe representations to sculptured
surfaces, culminating
in solid models. However, this is not the case. The record
seems to show concurrent, but
largely independent, development in all three
areas. Even the seemingly later development of constructive solid geometry
has a few tenuous roots in the APT technology of the 1960s, There have heen
and there continue to be efforts made to combine and hybridize the various
modeling techniques, including the marrying of parametric and implicit
geometries. Furthermore,
the possibilities of interactive alteration and
optimization of
shapes
has gained increasingly more attention, stimulating a
reconsideration of all current modeling methods. The future of
geometric

modeling looks bright, and it is bound to bring many surprises.

1.3 THE MATHEMATICS

At first
glance,there appears
to be a large menagerie of unrelated curves and
surfaces, but this is misleading. All parametric polynomial representations

have an equivalent implicit form. The Hermite and Bezier representations


are special cases of the B-Spline the nonrational form,
and
representations
are special cases of the rational forms. This text proceeds from the more

special and restricted forms to the more general and inclusive forms, and for
curves and surfaces focusesparticularly on parametricrepresentations.
This
study
of geometric modeling makes extensive use of several mathe-
maiical techniques, in addiiion to the parametric equations of curves and

surfaces from differential geometry. The most important of these techniques


arc linear algebra, vectors, matrix methods,
set
theory (including Boolean

operations), polynomial interpolation, and numerical methods. Here is a

brief review of some of them.


The vector is perhaps the single most important mathematical device
used in
geometric modeling.
We can think of a vector itself as a geometric
object, because to fit our geometric it seems intuition of displacement. This
notion of objectivity is easily obscured if we are limited to working with
vector components only individually and separately. Vector geometry
offers a distinct
advantage over classical analytic geometry by minimizing
Introduction

dependence on a specific coordinate system. At the very least, vectors


often allow the choice of a particular coordinate system to be postponed
until the later
stages of a computational process. VectoTS, of course, carry
more inherent geometric meaning than
just displacement
and direction.

Simple vector Operations reveai geometric relationships, such as


perpendicularity
and
parallelism.
These operations support algebraic methods
while retaining geometric meaning. Last, but not [east, vector equations
handle several
component equations at once. Appendix A presents a
review of vectors.
Matrix algebra is another powerful too! modeling.
The array of
geometric

of elements that makes up a matrix may represent simply an orderly way


of

storing numbers pertinent to some problem or perhaps a set of polynomial


equation coefficients. The rules algebra
define allowable of matrix

operations these on
arrays. Another use of a matrix is as an operator. Here, the
matrix performs a
geometric
transformation on a set of points by operating
on the position vectors that define those points.The interpretation
of a

matrix as a geometric operator is the foundation of many geometric-


modeling computations. Because we will also encounter determinants in

many operations and expressions in this book, it is a good idea to become

reacquainted with their special properties. Appendix \320\222 reviews both

matrices and determinants.

Approximation and interpolation describe two ways of fitting a curve or


surface to a set of data points or curves. Under an approximation-fitting
scheme, a curve must pass reasonably close to the data points not but is

required to pass through, or interpolate, them. Under an interpolation-fitting


scheme, however, the curve through each data point. Here we use must
pass

the powerful but simple theorem that says line exactly interpolates a
straight

(is defined by and passes through) two given points, a eonic curve
interpolates
points,
a cubic
three
interpolates four points, and so on.This suggests a

polynomial of
degree
n: that is, a function of the form

f(x) =
\302\267
\342\226\240
\342\226\240
av
+ axx + + \317\215/

These
polynomials are widely used for interpolation because they can be
evaluated, differentiated, and integrated easily a finite number of and in

steps by using just the basic arithmetic operations of addition, subtraction,


and
multiplication.

Using polynomials
of the same order as the number of points is very
sensitive to the choice of interpolation points. At appropriately chosen points,
they may produce a shape differing very
little from that of the best
approximation method. However, if the interpolating function is badly behaved,
The Mathematics 13
\342\226\240

producing an unacceptable shape anywhere in the sequence of interpolation


points, then it may be poor everywhere. the distribution of data For
example,

points may lead us to expect a smooth, convex interpolating curve. However,


the
may
instead
resultbe a curve with many inflection points, that is, one that
wiggles.Using piecewisepolynomials usually
allows us to
sidestep this
problem. That is, we can construct a composite curve consisting of a string of curve
segments by fitting successive [ow-degree polynomial curves to

corresponding
successive
groups
of data points. In fact, as Farin (1993a) points out, high-
degree polynomial interpolation is now
mostly of theoretical value, because
the piecewise approach is faster, more accurate, and reliably produces more
acceptableshapes.
Numerical methods and analysis are necessary because the algorithms of
geometric modeling are not processed on ideal computing machines with

unlimited precision and capacity This means that computations cannot be


executed or carried out exactly Horner's rule to evaluate a general

polynomial of
degree
\316\267 and the forward difference method to evaluate a
polynomial at
equal intervals of the parametric variable are both discussed in
Section 2.6,
An iterative technique called Newton's method
(since
he was the likely
inventor of it) finds the roots of a given function f[u) =
0. A better name

might be the sliding tangent method.This method works in certain controlled


conditions- We isolate the roots ur such that u} < itr < uki where there is only

l(u)

Figure 1.4 Newton's method


14 Introduction
\342\226\240

one root in this interval and the function (or curve) is well-behaved, with no
discontinuities or inflections(see Figure 1,4).
We let

Then

where 1/'(\320\270()1
> Oand ut
=
ul when \320\270| + ,
-
ut- 0. If f(ut) is zero \320\276\321\202
very small,

then the shift or increment is very large, and convergence to a solution is


doubtful. Here is an
example:

=
30\321\2133-3\321\2132 + 9\321\213-15
\320\224\321\213)

= 90u2 - + 9
f(u) \320\261\321\213

30\320\270\321\215-\320\227\320\2702 + 9\302\253-15
= -
\320\230\321\206-1 \320\230,
-
90\320\2702 +
\320\261\321\213 9

0.416667 -> 0.850596

0.850596 -> 0.720948

0.720948 -> 0.698190

0.698190 -> 0.697539

0.697539 -> 0.697539

\320\275,-0.697539

Quadrature formulas evaluate integrals. The underlying assumption is


that an integTal represents the area under a curve defined by some function,

say/ftO-Thus

dA= \\ f(u)du
CI

where \320\224\320\270)
is an
explicit
formula that can be evaluated at any \321\213 in the Tange

(\321\217\320\224) (see FiguTe 1-5).


The Newton-Cotes quadrature formulas assume equally spaced oTdinates,
including the bounding ones (see Figure 1,6).Hie first fout formulas \320\260\321\202\320\265:
The Mathematics IS
\342\226\240

Figure 1.5 Quadrature.

w
= +
\320\2732 [/\320\253 \320\224\321\213\321\214)] (TTapezoidal rule)
\321\203

w
=
\320\220\321\212
\342\200\224\320\251\321\206\320\260)
+
Af{uh) + \320\224\320\270\321\201)] (Simpson rule)

\320\227\320\2751

^
- + 3/K) + 3/K) + /K)]
\"g-t/\320\253

4\316\2671

= +
\320\233 \342\204\226\320\264)
+
32/ti<u) + 12\320\233\"\321\201)
+
32/i\302\243'j) 7/i\"i)]
\"90

wheTe A, is the lotal area and w is the width of a single quadrature division.
For example, A5 is the lotal area between a,e. The sequence continues for

higheT-OTder formulas.

Figure 1.6 Quadrature divisions.


16 Introduction
\342\226\240

AnotheT appToach, Gaussian quadrature, abandons equal spacing and


allows the function to be sampled (evaluated) at \321\202\320\276\321\202\320\265
optimal
locations.

There are, of course, many otheT quadrature formulas. Each should


be evaluated and selected for
any particular problem based on its

applicability,

1.4 CONVENTIONS ANO NOTATION

Hereisaiist of the common


\321\202\320\276\321\202\320\265
symbols and notations used in this text. In
most cases, they will also be explained when first used. As for conventions,
the righl-handed Cartesian coordinate system is assumed unless noted
otherwise.

fl,fe,c,.. . Scalars,constantcoefficients:lowercase
letters
ajb,p,r,s,... Vectors:
boldface, lower-case letters

lal Magnitude, length of \320\260,


\320\276\321\202 of
\320\277\320\276\321\202\321\202 a

vector

\316\221,\316\222,\316\234,... Matrices: boldface, uppercase letters

\316\221^,\316\222_1,\316\234_1,.
.. Matrix inveTSe

A7, B7, MT,... Matrix transpose


Q>n m,h
\320\252\321\204
... Matrix elements or other array
elements
a',p',A',P',, .. Transformed vectOT or matrix

IAI or \\A\\ Determinants

\320\233, 5, Q,,.. Quaternions

s, r, u, v, wf.. . PaTametric variables


\317\207, \316\275, \316\266\320\276\320\263\321\205|,\320\273\320\263\320\263,\320\245\320\267
Cartesian coordinates

\320\270 Union

\316\267 InteTSection

-
Difference
a t=
b a is an elemen t of b
V For all
[a,b] Closed interval,continuous values
\\a
;
b]
Closed interval, integral or discTete
values

(a,b) Open interval, continuous values


Conventions and Notation 17
\342\226\240

Differentiation:

dy
-
\321\203

dx

d2y
yxx~-
dx2

dx
X\320\271--

du

d2x
vflHJ _

dud w

and so foTth.

n\\ n!
. means
ij i\\(n-i)\\
The notation for
Hermite, Bezier, and B-Spline curves and surfaces is far
from uniform and standardized literature. in the The notation used in this text
conforms to generally accepted, although not universal, forms. They
are

presented here tor


comparison and reference in both canonical and matrix form,
including the Tational B-Splinc foTms. The numbers in
parentheses the
\320\260\321\202\320\265

equation numbers of these expressions wheTe they fiTst


\320\260\321\202\320\265 found in the text.

Hennite cuTve:

=
\321\200(\320\270) \320\225\321\214\320\233\321\217(\320\270) (\320\227.\320\237)

\320\263
-\320\236

=
\321\200(\320\275)
\320\2501,\320\222 (3 20)

Bezier curve:

=
P(h) \302\243pA\302\273
(4.2)
\320\263
-\320\236

=
\320\270\320\234\320\271\320\240
\321\200(\320\270) (4.7)

curve:
B-Spline

\320\273

=
\321\200(\320\270) \316\243 \320\240'\320\233\320\270\320\241\") (5-1)

\316\257-0

=
p^) UM.,PK (5.16)

\316\271*0

=
p(\") - <M9>
wo
i = ()
18 Introduction
\342\226\240

Hetmite surface:
m ft

\317\201(\302\273. w)=\316\243 \316\243 v^m^h


1= 0
\320\237\321\203*

=
\321\200(\320\270,\320\270>)
UMFBM^W

Bezier smface:

\320\273> ->

=
\317\201(\316\257\316\257,\316\234') \316\243 \316\243 \321\200,\320\220.\320\226*\320\230

d * (I \342\226\240=
0
f

-
p(M,w) UMbPMjJ'W7'

B-Spline smface:

-1 \\ -\"\342\226\240

=
p(\302\253,w) 2, \316\226 \317\201-\316\233\316\272\316\237\316\237^\317\207\316\227

d * O/* II

m p>

\302\243\302\243\320\273,7\320\240,\320\233\320\273(\302\273)\320\273'1,\320\230

m /I
CURVES

Curves are often defined as the locus of a point moving degree of with one

freedom. Another definition describes a curve as the locus of a one-


parameter family of points. History records many variations on the idea of a
curve as of one dimension,
a
path having length only. Such definitions may
help us to visualize a curve and to
improve
our intuitive sense of its

behavior,
but they are not
explicitly analytical. Of more importance to geometric
modeling is that these definitions lead to useful
analytical expressions-Ways

to mathematically describe curves for geometric modeling include intrinsic


equations, explicit and implicitequations, and
parametric equations. The

latter
category
is expressed powerfully in the Hermite, Bezier, and B-Spline
forms. This chapter briefly reviews and compares these methods for

representing
curves. Many modeling problems require us to determine a series of
points on a curve; so this chapter concludes with a discussion of the direct-
and inverse-point solution,

2.1 INTRINSIC EQUATIONS OF CURVES

An intrinsic property that


depends
on only the figure is one in question, and
not its relation to a coordinate system or other externa! frame of reference-

The fact that a rectangle has four equal angles is intrinsic to the rectangle,
but the fact that a
particular rectangle has two vertical sides is extrinsic,
because an external frame of reference is
required
to determine which

direction is vertical.

19
Intrinsic descriptions of a figure are easy to construct and understand.
Imagine that you
are
standing in a large open space, free of any obstructions
or convenient reference points, and that to do a simple experiment you
want

in intrinsic geometry First, you decide to walk square path;


this is easy, in a

because the intrinsic definition of a square is simple. From any


initial

position and
orientation, walk ahead, say, 10 paces; turn to your right 90 degrees,
and walk 10 turn
more
right 90 degrees
paces; again, and walk 10 more paces.
Repeat this one more time, should be back at your starting position.
and
you

The 90-degree turns certainly do not require reference system, any


external

since you can easily imagine various \"local\" methods to determine these
turns, and counting to 10 is
obviously
a
purely local operation. You have just
exercised a procedural intrinsic definition square,
and what works for a of a

square works equally well with other Figures. with a circle.


Again, Try
this

start anywhere. How many different intrinsic procedures can you find for

walking in a circle? This demonstrates that intrinsic definitions are more


local than traditional Cartesian coordinate definitions. Intrinsic definitions

deal with geometry a little piece at a time.


These exercises may strengthen our intuitive appreciation of an intrinsic

description,
but they are not rich in analytical potential. For this we must
look at an example of an intrinsic equation. A curve requires two intrinsic
equations, one expressing its curvature 1/p and one its torsion \317\204as functions

of its arc length s;

and z =
-=\342\204\226) g(s) (2.1)

Torsion is a measure of how much a


space curve deviates from a plane curve

(how much it tries to twist out of the osculatingplane), length is, of and arc

course, the length measured along the curve. The theory of curves proceeds
from these intrinsic equations.

[t is interesting to make a distinction between intrinsic equations, as just


defined, and the so-called natural equations. A natural equation of a curve is
any equation connecting its curvature 1/p, torsion
\317\204,
and arc length s:

(2.2)
/(-,v)=0

This equation imposes a condition on the curve,so has certain special that it

properties, but many curves may have these properties. For example, 0 is =
\317\204

a natural equation characterizing all plane curves, and 1/p = 0 is also a natural

equation characterizing all straight lines. An additional independent natural


equation g(l/p,ivv) = 0 of the curve determines still more. Solving the curve

the two natural equations/(1/\317\201,\317\204,.\316\275)


= 0 and g(llpxs)
= 0
simultaneously for
Intrinsic Equations of Curves 21
\342\226\240

1/p and as
\317\204 functions of s produces intrinsic equations. Two natural
equations determine a curve uniquely, except for its position in space.
Here is a slightly different approach, using Figure
2.1 and limited to plane
curves: Given the initial point of a curve, the variation of \316\270 with arc length.\316\275

will completely define the curve, \316\270 is the angle subtended by the tangent to
the curve with the \317\207 axis. The
relationship between s and \316\270 is an intrinsic

equation of the curve.


Curvature, =
\320\272
1/p, emerges from the intrinsic equation

A parametric description of a curve in terms of its arc length begins with


the equationsx = *(s) and y
=
y(s).Tht functionsx(s) andy(s) are related by
the equations
dx
= cosO and dy
= sinO
(2.4)
ds ds

Differentiating these equations with respect to s and substituting \320\272 for

dQIds, dxlds for cos \316\270 and


dylds for sin \316\270
yields
the simultaneous differential

equations
tfx
+ K(s)dy = 0
ds2 ds

tfy K(s)dx = 0
(2,5)
ch] ds

Figure 2.1 Intrinsic definition of a curve.


22 * Curves

Using appropriate
numerical procedures, we solve these two second-order
equations for x(s) and y(s) for any given
curvature function k(j).

2.2 EXPLICIT ANO IMPLICIT EQUATIONS OF CURVES

In the plane, the explicit equation of a curve takes the general form

y=\342\204\226 (2-6)

In this form, there is only one \321\203


value for each \317\207 value. Consequently, it

cannot
represent
closed or multiple-valued curves. This limitation is avoided by
using an implicit equation of the general form

= 0
f(x,y) (2.7)

Both explicit and implicit forms are axis dependent.Therefore, the choice
of the coordinate system
affects the ease of modeling the curves and
calculating
their
properties.
In
spite of this limitation, implicit equations prove to
be useful, usually as an
adjunct
to a larger, parameter-based modeling
scheme. In fact, mathematicians have demonstrated that every parametric
form has a
corresponding implicit form, but there are implicit forms that
have no known parametric representation or are not amenable to

parameterization. The
implicit formulation expedites the computation of
intersections and the classification of points. The later characteristic allows us to
determine if a
given point
is on the curve or on one side of it or the other.
Both these procedures are more difficult with a
parametric representation.
Seder berg and Goldman (1986) and Hoffmann (1993),among others,discuss
methods of conversion between parametric and implicit forms.
The implicit equations of the straight line and conic curve are

Ax + By + C=0

and

Ax2 + IBxy + Cy2 + Dx +


Ey + F=Q

respectively. An analysis of the coefficients of these equations yields


information about special geometric characteristics of a line or curve. Section 2.4
discusses more about this analysis for the conic.

Even a very simple analysis of the equation of an implicitly defined curve


reveals characteristics important to the
geometric modeling process. For

example, the following conditions determine the possible symmetries of a


plane curve1.
Parametric
Equations of Curves 23
\342\226\240

L If f{x, y)
= -y),
\302\261f(-x, the curve is symmetric about the origin (or other
point, given
an
appropriate transformation); for
example, a circle x2+y- = r>
2. If f(x4y) =\302\261f(x.-y),
the curve is symmetric about the* axis; for example,
the parabolas = y2.

3- If
f(x,y) =\302\261f(~xfy), the curve is symmetric about the \321\203axis; for example,
the parabola^ =*?.

4_ Uf(x4y) = the curve as symmetric about the line* = for


\302\261f(y,x), \321\203,'

the = k2.
example, hyperbola xy

5_ If f(x4 y) = \302\261f(-y, -x),


the curve is symmetric about the line \317\207
=
-\321\203;
for

the =
example, hyperbola xy \342\200\224k2.

2.3 PARAMETRIC EQUATIONS OF CURVES

Ordinary, single-valued explicit functions, such as \321\203 =f{x),


cannot
represent
most shapes used in geometric modeling. There are many reasons for this.
First, the
shapes
of most objects are intrinsically independent of any
coordinate
system,
[t is the relationship between the points themselves that
determines the resulting shape of a curve or surface fit through a set of points, not
the relationship between these points
andsome
arbitrary coordinate system.
In fact, most modeling applications require that the choice of a coordinate

system should not affect the shape. Second, any solid, closed object will have
some tangent lines or
planes parallel
to the principal axes or planes of any
chosen coordinate system. For shapes defined functions, by explicit
this

results in values of infinity for some slopes on the model, or results in some

other ill-defined mathematical properties. Finally the curves and surfaces of


geometric modeling are often nonplanar and bounded, and are not
easily

represented by an ordinary nonparametric function.


For these reasons and many others related to ease of
programming
and

computability, the preferred way to represent shapes in geometric modeling


is with parametric equations. For example, a two-dimensional curve is

defined not by a single ordinary function like \321\203


=
/(\321\205),
but by a set of two
functions \317\207
=x(u)fy
=
y(u) of a parameter u. A three-dimensional curve is
defined by =
\321\205
\321\205(\320\270),\321\203
=
\321\203(\320\270),\320\267\320\277\320\260
-
\316\266
z(u). These curves have a natural vector
representation. For a space curve,
=
\321\200(\320\275) \320\234\320\275) y(u) \317\206)] (2.8)

and, hy simple extension, for a surface.

p(u, w) = [x(u4 w) x{u4 w) z(uw)] (2.9)


24 Curves
\342\226\240

Parametric equations avoid many of the problems associatedwith non-

parametric functions. They also best describe the way curves are drawn by a
plotter or some computergraphics display screens. Here two time functions
x(l) and y(t) control the servo system of a plotter or the electron beam
deflection system of a vector display, causing the pen or electron beam to
move on the appropriate curve.
The point is the basic element of parametricgeometry and geometric
modeling. It is an ordered set of real numbers, whose implied coordinate
nature defines a position in three-dimensionalEuclideanspace.A vector
may be defined in much the same way, so that frequently the terms point and
vectorare interchangeable. For example, the radius vector (or position
vector) defines a point.
Parametric equations generate the sets of points defining most of the

curves, surfaces, and other geometric elementsdiscussed in this text. The


following equations are an example of the parametricrepresentation of a
curve (see Figure 2.2). Of course, it is not possible to plot the curve for all
values of from
\320\270 -\302\253to We
-\320\270\302\273.must select an in terval that has some
significance to the modeling situation and that has computational convenience.
The curve in the figure is plotted for an interval on it of \320\270
\320\265[-1,1], for the
equations

Figure 2.2 A parametric curve.


Parametric Equations of Curves 25
\342\226\240

= 3tr
\317\207

y=us-u + l (2.10)
z = 2u + 3

is the
\320\270
\320\235\320\265\320\263\320\265, parametric variable and also the independen t variable.

Substituting
a specific value of w into each of these equations produces specific
values of x, y, and z. Each value of \320\270
generates a point on the curve. This
produces three other curves as well. These arc the curves (x,u), (y,u), and

in parameter
(\320\263,\316\267) space (see below), also shown in the figure.
It is usually convenient to normalize the domainof the parametric
variable, which means restricting its value to the closed interval betweenOand 1,
inclusive. We express this condition symbolically as \320\270
\320\265
[0,1], establishing the
curve hounding points and creatinga curve segment. Some examples of
parametric equations of curves using this convention follow.The first example is
a set of linear parametric equations
x=a + kt y
= b + nnt z = c + nu (2.11)
where a,b,c, and arc constants
\316\231,\316\267\316\271,\316\267 and This
\320\265
\320\270[0,1]. particular curve is a
straight line starlingat point p(0)
=
\\a hc] and ending at p(l)
= + /)
[(\320\271

(b + (c +
\317\200\316\271) with
\320\273)], direction cosines proportional to \316\231,\316\267\316\271,\316\267.

Another example is

x = u =i,i
\321\203 z = u* (2.12)
This curve isa cubicalparabolaand also one form of a twisted cubic.Because
Ue[0,l],it ishoundedbyp(0)=[0 0 0] and
p(l)= [1 l 1].
The final example is

x = acosu z
y-\316\261\317\215\316\267\316\271\316\271
= bu
(2-13)
This curve is a left-handedcircularhelix, It is the locus of or machine screw.
a point that revolves around distance a from it (in
the axis
\316\266 at a constant
other words, a helix of radius = a). At the same time, the helix moves parallel
to the \316\266
axis at a rate proportional to the angle of revolution\320\275.
If b < 0, then

the helix is right-handed.


The versatility of the parametric form is apparent in these examples,and
it is interesting to see how it adapts to curve-defining functions expressing a
direct relationshipbetweenthe Cartesian variables x,y,z- The following
discussion reveals this t-al
\316\267
\316\277 ways-obvious relationship. For example, one
equation in xytz represents a surface.Two independent simultaneous equations
in i,y,z,say,

F(x,y,z)
= \302\256 = 0
(2.14)
G(x,y,z)
represent the intersectionof two surfaces, which is locally a curve.They are the
implicit equationsof a curve in three dimensions. defined this way is
A curve
inherently unbounded; however, only a bounded part of il may he of interest.
Solving
the implicit equations for two of the variables in terms of the

third, say for and


\321\203 in
\316\266 terms of x, produces
y = y(X) Z =
z(x) (2.15)

These equations represent the same curve as do Equations (2.14), and they,
or the equations similarly expressingany two of the coordinates of a variable
point on the curve as functions of the third coordinate,are the explicit
equations of the curve. Each of Equations (2.15) separatelyrepresentsa cylinder
projecting the curve onto one of the principal planes,so they are a special
form of Equations (2.14) for which the two surfaces are projecting cylinders.
Solving the first of the three parametric =
equations \317\207 x(u),
= and
\321\203\321\203(\320\270),
=
\316\266z{u) of a curve for \320\270 as a function of x, that is, u(x), and substituting the
result into the two remaining expressions, produces the explicit Equations
(2.15). From one point of view, these explicit equations, when supplemented
by the identity
= \320\273;,
\320\273; are also parametric equations of the curve; that is,
= \317\207
\317\207 = =
y y(X) \317\207Z(x) (2.16)

Now the parameter is also the coordinate\320\264\320\263.\320\242\320\252\320\265


difficulty with this approach
is the obviously unacceptablelimitationon the range of x, because the
parametric variable must be normalized to the interval e [0,1],
\317\207 or a similar finite
domain, to definea curve segment. Introducing a parametric function of the
following form easily resolves this problem:

= \342\200\224
\302\253
(2.17)
X-l \342\200\224Xo

This allows an explicit range of \320\273;


expression from x0 to ^.provided ue[0,l],
through the parametric functions x(u), where
=
\320\273: = -
+ (\321\205\320\263
x(u) \317\2070 \321\2050)\321\206 (2.18)

It satisfies the normalization condition on the parametricvariable without


compromising the range of \320\273;.
Substituting this relationship into Equations
(2.16) yields =
\317\207 x(u),
= and
\321\203\321\203[\320\273-(\320\275)],
=
\316\266
z[x(u)], simplify to
which, of course,
= \317\207
\317\207 =
\321\203 y(u),
(\320\270), and =
\316\266 These are
\316\266(\316\271\316\271). the parametric forms introduced
earlier, which means that a large class of explicit functions easily converts
into parametric form.

All of this leads to the following definition:A curve segment is a bounded


collection of points whose coordinatesarc given by continuous, one-
parameter, single-valued polynomials of the form
=
\321\205\321\204) y
=
y{u) z= z(u) (2.19)
Parametric Equations of Curves 27
\342\226\240

where the parametric variable \320\270


is ordinarily constrained to the closed interval
e
\320\270
[0,1], and the positive sense on the curve is the directionin which \320\270
increases. The curve is point-bounded because il has two definite endpoints,
oneat = 0
\320\275 and the other at \320\270
=1.The x(u),y(u), and z(u) functions may be of
a fixedpolynomial form, defining basis functions that
generate curves with a
characteristic set of properties. Specialbasisfunctions generate the Hermite,

Bezier, and B-Spline curves, discussed in Chapters3,4, 5, respectively,


and

We can treat the coordinates of any point on a parametric curve as the


components of a vector Figure
\321\200(\320\275). 2.3 ill ustrales this and other important vector
elementsof a curve. Unless noted otherwise, the tangent vectors arc not drawn
to scale. Here p(w) is the vector to the point x(u),y(u),z(u),and p\"(u) is the
tangent
vector to the curve at that point, obtained by differentiating \321\200(\320\275):

du
(2.20)
The vector components of p\"(w) are

Mu) .. = dy(u) dz{u)


r._. y< z\" = (2.21)
du du du
These are the parametric derivatives. When \320\270
appears as a superscript, it
indicates differentiation with respect to w. The relationship between the
parametric derivatives and the ordinary derivatives of Cartesian space is
dy dyidu

dx dxidu
and similarly for dyidz and dzidx.

Figure 2.3 Elements of a parametric curve.


Model spaceis the three-dimensional space defined by the familiar
Cartesian coordinates x,y,z. It is the space in which a geometric model is fully
developed and expressed. The parameter space of a curve is the set of three
two-dimensional spaces defined by (\320\273-,\320\275), and
(\321\203,\320\270), Any parametric
(\316\266,\320\270)\302\267

curve can be decomposed into its three components in parameter space.


Plots of a curve in terms of its parameter spacecomponents, called cross

plots, are sometimes useful in understanding its behaviorin model space.


Figure 2.4 demonstrates the decomposition of a specificcurvewhose
algebraic representation is

x(u)
= -6.5u3 + 9u2 + 0.5u + l

y(u) =-12a3+ 181^-2 (2.22)

z(u) = -10.25\316\2673 + 14.75\320\2742 + 1.5u - 2

-1 \342\226\240
\316\273\316\271 = -\316\231
\320\273\302\267'/
1
1
= 1 \316\271 \"\302\267 - 0.5
*0 \302\273*S ]
1 1 *-\302\273
0 0.5 1

= \320\236
*~y'i

= 0.25
\321\212\302\253

Figure 1A Parameter space of a curve.


Parametric Equations of Curves 29
\342\226\240

where

x\" = -\\9.5ttl + l8u + .5u

= +
\320\243' -36\320\2752 36\320\275 (2.23)

z\" = -30.75u2 + 29.5n + 1.5


This figure shows components plotted in the interval it e [0.1].
the parametric
These are convenient delimiting valuesof the parametric
mathematically
variable.although any interval on the \320\270
line can be used without affecting the

shape or positionof the curve if appropriate adjustments arc made to the


algebraic or geometric coefficients. Later, we wi II discuss how to change this
interval using a procedure called reparameterization. Different horizontal

and vertical scales on these plots affect the apparent slope of the tangent
vectors. We replot them so that the \316\275-,
\320\273'-, and
\320\263-, \320\275-axis scales are equal.
The algebraic coefficients control the positionof a curve in space as well
and shape.Eachvalue of
as its size it (for it, in Figure
example, 2.4) defines a
unique point on the curve in model space. Plotting the successive sets of \317\207,\316\275,\316\266
values generated by successive w values creates the entire curve. Each
variable v. and
.\317\204, is independently
\316\266 controlled, and a different curve results even
if only one coefficient is changed.
The graphs in parameterspaceshow the behavior of each Cartesian
coordinate from one end of the curve to the other as the parametricvariable\320\270
varies over its domain from 0 to l.The graphsalsoshow the hehavior of the
parametric derivatives as representedby the slopes at points on these curves
(for example.dxiduat \320\270
= Each
\320\270). Cartesian coordinate varies continuously
over its range (that is,from p\342\200\236
to pi) as the parametric variable it varies
continuously over its domain. Here \320\273;, and
\316\275, arc
\316\266 the dependent variables
whose values are determinedhy the independent variable u.
We can infer many characteristics of a curve hy inspecting the graphs of
the component curves. Figure2.5shows several special cases that are easily
verified by sketching the resulting curves in model space. Here we see a
curve contracted to a point (a degenerate curve of zero length), a straight

line, a plane curve, or a spacecurve, depending on the values assigned to its


coefficients.The Cartesiancoordinatesx,y,z arc stacked in the figure, and
another informative graphictechniqueis to superimpose them. Thus, we plot
the value of the parametric variablealong the horizontal axis and plot and

superimpose the model-space variablesalonga commonvertical axis.

Parametric equations have many advantages over other formsof


representation. Here are the most important ones:
30 Curves
\342\226\240

J'rj \342\200\224O-Vi

JO?

fa) Pmm (b) Straight line

6.\316\231\316\212

soC-

\320\231
Straight line (d) Plane curue

=0^\"

\320\236 '' 1

(e) Plane curue (f) Space curve

Figure 2.5 Special curves shown in parameter space.


Conic Curves 31
\342\226\240

\342\226\240
They allow separation of variables and direct computation of point

coordinates.

\342\226\240
It is easy to express parametric equations as vectors.
\342\226\240
Each variable is treated alike.
\342\226\240
There are more degrees of freedom to control curve shape.
\342\226\240
Transformations may be performed directly on them.
\342\226\240
They accommodate all slopes without computational breakdown.
\342\226\240
Extension or contraction into higher or lower dimensionsis directand
easy without affecting the initial representation.
\342\226\240
The curves they define are inherently bounded when the parameter is
constrained to a specified finite interval.
\342\226\240
The same curve often can be represented by many different parameter-
izations. Conversely, a parameterization schemeis sometimes chosen

beeause of its effect on curve shape.

See Ball(1984), Filip and Ball (1989). and others for in-depth discussionof
the effects of parameterization on shape.

2.4 CONIC CURVES

A conic curve is defined by a second-degree implicitequation.Conversely,


any second-degree equation definesa conic. The standardformis
Ax2 + 2Bxy + Cy2 + 2Dx + 2Ey + F= 0 (2.24)
In matrix form, this equation becomes
PQPr=0 (2.25)
where

\320\220 \320\222 D

= \320\222\320\241\320\225
Q (2.26)
D \316\225 F

and

\316\241-[\320\273-\321\2031] (2.27)

is given
\320\240
\320\235\320\265\320\263\320\265 by homogeneous coordinates.
32 Curves
\342\226\240

Table 2.1 Conic curve characteristics


\320\272 IQI Olher conditions Type

0 *0 Parabola
0 0 C*0,Fr-CF >0 Two parallel real lines
0 0 C^O.F'-CF^O Two parallel coincident lines

0 0 CiO.F-CFkO Two parallel imaginary lines


\317\213 0 C = B = 0.D2-AF> \342\226\2400 Two parallel real lines
0 0 C = B = 0.D:~/l/7== 0 Two parallel coincident lints

0 0 C = B = (\\D'-AF< .0 Two parallel innginary lines

<() 0 Point ellipse


<0 *0 -CIQI > 0 Real ellipse
<0 *0 -CIQI < (1 Imaginary ellipse
<0 *0 Hyperbola
<0 \317\213 Two intersecting lines

Certain characteristics of the conic equation are invariant under

translationand rotation transformations. These include + \320\241.


\320\233 If
\320\272=\320\220\320\241- and the
determinant IQI.The values of ft: and Q indicate the type of conic curve.Table
2.1 classifies conic curves using these characteristics.
Common parametric forms of coniccurves arc

Parabola:

= air
\320\273;

y = 2au (2.28)
Hyperbola:
= a
\317\207 sec \320\270

\320\270
\320\265 (2.29)
f-\317\200,\317\200]
y~b taii\320\270

Ellipse:

= a
\317\207 cos it
\316\271\316\271\316\265[-\317\200.\317\200] (2.30)
=h sin \316\267
>\342\226\240

2.5 HERMITE, BEZIER, AND B-5PLINE CURVES:AN OVERVIEW

The next three chapters discuss the Hcrmite, Bczicr,and B-Spline


parametric
curves, including both the nonrational and rational forms of the latter
Hermite, Bezier, and B-Spline Curves: An Overview 33
\342\226\240

two. Each nonrational form is a special case ol a rational form. The cubic
Hermite curve and bicubicHermitepatch were among the earliest forms
investigated and used in
geometric modeling. Their relative simplicity and
natural versatility makes them good starling points for studying curvesand
surfaces. The Hermite curves are a special case of the Bezier and B-Spline

forms, and the Bezier form is itself a special c aseof the B-Spline. The

Hermile, Bezier, and B-Spliue curves form the basic elementsof splines: curves

that consist of individual parametric curve segments joined to forma single


composite c urve whose continuity is controlled at the segment joints. Wc are
primarily interested in the cubic polynomial representations, becausethis is
the lowest degree capable of describing nonplanarcurves.A brief
comparisonof their most important characteristics follows.
Hermite interpolationis not restricted to points. In its standard fonn for
curves it uses both points and derivative data.For example, a cubic Hermite
curve is defined by its two end points and the tangent vectors at those points.
It interpolates all its control points and is fairly easy to subdivide. However,
its lack of invariance underaffine transformations can be troublesome if not
accounted for. This curve's name is identified with Charles Hennitc
(1822-1901). a French mathematician of considerable accomplishmentsin
the areas of cubic and quintic polynomials.
The Beziercurve is defined by a set of control points,the numberof which
determines the degree of the Bernstein polynomial basis functions that

describe its shape.This curve interpolates its first and last control points and
is tangent to the first and last sides of the open polygon definedby these
control points. It exhibits the convex hull properly and is the easiestof the curve
forms to subdivide. However, it does not offer local control, because
changing
the position of any control point produces shapechange throughout the

curve.
The B-Spline curve is a piecewise polynomial curve definedby a set of
control points which the curve ordinarilydoesnot interpolate. The degree of
its polynomial basis function is defined independently of the number of
control points. Local control of curve shape is possiblebecausechanges in

control point location do not propagate shape change globally, and control

points influence only a few of the nearby curve segments. A valuable


property of B-Splines
is that they are invariant under affine transformations. Filip
and Ball (1989) and others point out that some types of curves cannot he
practically representedas B-Splines. For example, this is true for a

procedurallydefined intersection curve, which is likely to require a very high degree

polynomial for its representation.


Barsky (1981) introduced a generalization of the uniform cubic B-Spline
called the beia-spline. This form permits parametricdiscontinuities while
34 \342\226\240
Curves

preserving continuity of the unit tangent and curvature vectors at joints.This


provides two additional parameters,calledbiasand tension, that are
independent of the control vertices and by which the shape of a curve or surface
can be manipulated. A rational formulationof the bela-spline is reported in
Bat-sky (1993) and earJier by Joe (1987).
B-Spline curves and Bezier curves have many advantages in common.
Control points influence curve shape in a predictable, natural way. making
them good candidatesfor use in an interactive environment. Both types of
curve are variation diminishing,axis-independent, and multivalued, and both
exhibit the convex hull property. However,it is the local control of curve
shape possiblewith B-Splines that gives this form an advantage over the
Beziertechnique, as docs the ability lo add control pointswithout increasing
the degree of the curve.

2.6 POINTSON A CURVE

To plot p(w), we calculate the coordinates


a curve of a series of points on it
for different values of the parametric variable, which requires that we

evaluatea
polynomial at predetermined increments of w.This is
process known as

the direct-point solution. Other modeling tasks require that we determine


the value of the parameter \320\270 corresponding lo a point p(w) which is given in

terms of its coordinates \320\273;, This


\316\266.
\321\203, is the inverse-point solution.

Direct-Point Solution
Most methodsfor modeling curves and surfaces, including Hermite, Bezier,
and B-Splinemethods,express the x, y, coordinates
\316\266 of points on these
elements as parametric polynomial The problem of calculating the
functions.
coordinatesof a
specific point curve becomes on aone of calculatinga
polynomial, and a simple, straightforward method for calculating polynomialsis
Homer's rule. Although the development that follows is in terms of scalar
polynomials, it applies equally well to vector polynomials.For the cubic
polynomial = uu4 + bu2 + cu + d, we rewrite it so that oniy three
p(u)
and
multiplications three additions are required lo compute the solutionfor a given
value of \320\263\320\263

p(u)
=
[(mi + b)u + c]u + d (2,31)
Toevaluatethe polynomial
of degree \316\267

\342\226\240\342\226\240\342\226\240
p{ii)-u\342\200\236u\" +ari.liiJ'-i + al,_2u\"~1+ + \320\260,\320\270
+ \320\260\320\277 (2,32)
Points on a Curve 35
\342\226\240

we generalize Horner's rule as follows:


for n = l

p(w)= (fl2W + <i[)w + \302\253() for -2


\316\267

p(u)
=
[(a3if + a2)u + \302\253i]w-+\342\226\240
a<> for n = 3

p{u)= + \320\260\320\267)\320\270
\\\\(\320\2604\320\270
+
(12]11 +(h}ii + a(l for = 4
\316\267

and so on.For any n,wc develop a straight-line program of 2n steps to


evaluate a general /ilh-dcgrcc polynomial. Clearly, \316\267
multiplications and \316\267

additions are necessary for each of the three coordinatesof a point. Combining
Horner's rule with a straight-line program yields:

for \342\226\240=1
\316\241 / +
\321\214- \321\2170

/ \316\220-
\320\2602\320\270

for /i-2
t<-tu

p<-t + a0

I <- ayit

t <- I + \302\2532

t <- \320\250
for = 3
\320\273

ff- tw

\317\201*-\316\257+\316\257\316\220\316\277

To evaluate points on a cubic Bczier curve using a variation on Horner's


nested multiplication scheme, we find that

P(w) = 0IO-h)Po
+
(j
(l-\302\243i)
\342\204\226
+
(2J\302\2732P2 (l-u)+l3|u-p3

where

\320\226

are binomial coefficients. Farin (1993a) describesde Caslcljau's algorithm

that recursively computes points on a Bezier curve.


Alternatively we may use incremental methods to compute coordinates
of points on a curve for successive values of the parametric variable. The
polynomial formal of the parametric functions lends itself to thesemethods.
We will
investigate one method, the forward differencemethod,to evaluate a

polynomial at equal intervals of the parametricvariable.


We begin with the simple case of a linear equation = cu + d
p(u)
and
evaluate p(u) for/j + 1 equally spaced values of u.To find a set of values p, where
Pi = p(i/n),i<=[0: 1],and \320\265
\320\270
[0,1].
we observe that the difference between two
successive values oi'p(if) is constant: pl+i - p, + f/n.Thus, we find successive
values of the polynomial p(it) by adding the constant cln lo the previous
value. This method is used effectively in the incremental plotting and
displaying
of curves.
To apply this method to polynomials of any degree, we first cunsider the
cubic polynomialp(u) = \320\260\320\270\321\212 cu + d. Here, the forward difference ptli-
+ bu1 -+\342\226\240

p-,~ duts not a constant, but a quadratic polynomial in /. If we can evaluate du

easily,then wc can alsoevaluate p, easily Applying the same process (that is.
forward difference) to evaluate du,wc findc/b 1- d,_, = d2.,.a linear equation
+

in ;'.This equationhas a constant forward difference and is easily evaluated.


Hereis an algorithm for evaluating a cubic polynomial, carrying out the
algebrato combine the three levels of forward differences:
\321\201
= ;+ +
3\316\257 + \342\226\240
<*!.. . Qi 1)4 (2\316\257+\316\231\316\232
rr rr -\316\263\316\267

d2., ,= 6(,+ l)^rr + ^rr (2.33)


ba
A,
If

We initialize thi ese variables and at


\317\201 u~ 0, where i = \342\226\240
0 and

p=d

a b \321\201
= +
\342\200\224
\342\200\224
+ -
d,
ir rr it

ba 2b (2-34)
IV IT
\320\237

ba
\342\200\224
\316\254\316\233=
\316\267'

Thus, pt>
= d. To calculate at
\317\201 the next and each successive increment, wc
require threeadditions:
d2 +
i\342\200\224dz di

d] d, +
<\342\200\224 (U_

p> <-p +dt


Points on a Curve 37
\342\226\240

Wc must repeal this three-step algorithm\302\273 limes, generating values forpi


to plt. Other methods for evaluating cubic polynomials require seveval
multiplications for each evaluation. However, after the compulations lo initialize
the four variables p, dt.d?. and d~. we require only three additions for each
point. Wc can apply this techniqueto polynomialsof any degree, resulting in
a loop that uses additions
\316\267 for polynomials of degree n.
One difficulty with the forward difference method is that we must

carefully select tl\\e numher increments to ensure


of equal evaluate that we

enough points curve smooth


to produce a enough for display or to provide
sufficient data for analysis. It is a good idea to subdivide the parameterrange

by halves and develop simple expressions for the location of the curveat its
midpointas we demonstrate for Hermitc curves (Section 3.5). Another
difficulty is that round-off errors accumulate as more points on the curve are

computed. Using sufficient precision often mitigates this problem. Sec


Shanlzand Chang (1988) for further discussion of this subject.

Effectsof Parameterization

Frequently, the direct-point solution for a succession of equalintervals of the

parameter on a curve produces unsatisfactory rcsuits. Equal parameter


values rarely produce equal intervals in model space. For a theoretical
discussion of this problem and possible solutions, see Epstein(I 976).Hartley and

Judd (1978,1980), and Farin (I 993a).

Inverse-Point Solution
Many modeling algorithms require that we find the value of the parametric
variable corresponding to a given point.Forexample, given
the \316\266
\320\273\\\321\203.

coordinates of a point on (or very near) a cubiccurve in model space, wc must find
the corresponding value of w, the inverse-point,solution.Th.is problem implies
calculating the roots of three cubicequations. These equations are, of course.

=
\316\233' + [}JI2 + +
\316\257\316\257,-\316\234'1 CXU f/,

V
= \302\253..\302\273*
+ b,tt2 + c,tt + rfh.
= + bzuz
\316\266\320\260\320\274} + + d7
\321\201-\320\270

A difficulty arises, though, because it is unlikely that the values


\320\270 (roots)
from each of these three cuhicequationswill be exactly equal. Compulation
methods contribute to the potential disparity, and the source and
significance of the point coordinates themselves add to it. In most cases,it is good
practice to assume, for example, that a given point q is not on a curve.
Instead, wc find the point on
\317\201 the curve closest to the given point q.
Curves
\342\226\240
\320\227\320\222

Figure 2.6 Vector interpretation


of the inverse-pointsolution.

We will solve
problem(hisfor a single point q and a parametriccubic
curve
(see Figure 2.6). We determine the point \317\201
on a curve closest to a point
q
in space by finding the vector (p
- q)
from the point q to the curve that is

perpendicular to the tangent ol the curve at point p. The problem is to find \317\201

such thai this condition is satisfied.


For (p - q) to be perpendicular to the tangent p\" at p, their scalar product
must be zero.This means thai

= 0
(p-q)-P\" (2.35)
For cubic curves,this results in a quintic polynomial in u. Various numerical
methods are available to solve such an equation. 01 course,onlvrootsin the
interval iie [0,1] are of interest. Each rootvalue in this interval determines a
point for
\317\201 which to compute-
Ip ql.Thepoint \317\201
yielding the minimum value
for (p
-
ql is the distance between them.
HERMITE CURVE

The algebraic description of a curve as a set of parametriccubicpolynomial


equations and their corresponding vector equation begins this chapter.We
sec that expressing the algebraic coefficients in lerins of boundary
conditions leads directly to the more convenient geometric form.The Hermite
basis functions emerge as the mathematical link between the algebraicand
geometric forms. We then find that both forms are expressedconcisely as

matrix equations, which prove useful when convertingbetweenHermite and

Bezicr basis functions as well as in othertransformationoperations. Varying

the magnitude of the tangent vectors offers a way to modify the interior
shape of a curve without changing the position of the or
endpoints the
Cartesian slopes at these points. Truncating and subdividing n curve is

accomplished by re parameterizing the basis functions and adjustingcertaincurve


boundary conditions. Additional refinements of the Hermite form allow a

curve to interpolate three or four given points. Some conic curves are
represented exactly by a Hermite curve, while others are closelyapproximated.
Finally, in this chapter we see that Hermite curve segments joinedend-to-
end form a composite curve, and if certain continuity conditionsaremet.it
will have the properties of a spline.

3.1 ALGEBRAIC AND GEOMETRIC FORMS

The algebraic form of a


parametric cubic curve is given by the following
three polynomials:
39
40 Hermite
\342\226\240 Curve

x(u)
= + bxul
\320\271\320\263\320\2753 + + dx
\321\201,\320\270

y(u)
= + b,.uz +
c\\.u + d,
\316\257\317\204\316\275\316\220\316\2573 (3.1)

z(u) = + brii2 +
\316\257\316\257-\316\257\316\2575 + d-
c-,\316\271\316\271

We usually restrict the parameter to


\320\270 values in the interval 0 to 1. inclusive,
or \320\270
\320\265
[0,1]. This restriction bounds the curve, creating a curve segment.The
12 coefficients, called algebraic coefficients, determine a unique curve,
includingits size,shape, and
position
in space. Therefore, two curves of the
same shape size have and different algebraic coefficients if they occupy
different
positions in space.
Writing these three equations in the more compactform of a vector
equation is not only less cumbersome to read and write but also allows us to
denote an arbitrary number of dimensions.
Thus, in vector notation,
Equations
(3.1) become

p(fi)
= au3 + \320\252\320\2702 + d
+ \321\201\320\270 (3.2)

where p(u) is the position vectorof any point


on the curve and a.b.c. d arc
the vector equivalents of the scalar algebraic coefficients.The componentsof
p(ii) correspond to the Cartesian coordinates of the point.
Equation (3.2) yet an suggests
even more simplified and shortened form,
using the summationnotation:

p(\") =
a<\"'
\316\243
i-O

Finally, using the Einstein convention and adjustingthe indicesas necessary

produces

= =
\320\260,\321\213'or
\321\200(\321\213) Xj a^u'

where the are


a\342\200\236
the algebraic coefficients andx; is thejth component.Thisis
the
power basis representation of a curve.
The algebraiccoefficients
are not the most convenient way of
controlling
the
shape of a curve modeling situations, nor do they
in typical
contribute much to an intuitive sense of a curve. However,the Hermite form
offers a practical alternative, allowing us to definea curve
segment in terms
of conditions at its endpoints,or boundaries.For a cubic Hermite curve,
these conditions are usually the endpoint coordinates and the tangent
directions at these points. Using the endpointsp(0)and p(l) and the
corresponding tangent vectors p\"(0) and p\"(l), we obtain the following four

equations:
Algebraic and Geometric Forms 41
\302\267

p(0)=d

p(l)
= a +b+t + d

= c
p\"(0)

p\"(l)-3a + 2b+c
where substituting
-
\320\2700 into Equation (3.2) obtains p(0). and substituting \320\270

= 1 into the equation obtains p(l). Finally, differentiating p(w) with respect to
= -
\320\270
yields p\"(u) + 2b\302\273+ c.
\320\227\320\260\320\263\320\223 and substituting =
\320\270 0 and \320\270 1 into this
obtains p\"(0) and p\"(l). Solving this set of lour simultaneous equations in
four unknowns yields the algebraic coefficients in terms of the boundary
conditions:
a = 2p(0)-2p(l)+p\"(0) + p\"(l)

b = -3p(0) + 3p(l)-2p\302\273(0)-p\"(l)
=
\302\273r
p\"(0)

d = p(0)

Substituting these expressionsfor the algebraic coefficients into Equation


(3.2) and rearrangingtermsproduces:
- - 3u2 +
(2u-
\321\200(\320\275) l)p(O) + (-2m3 + 3u2)p( I)
+ (\302\2733
- In1 + ii)p\"(0) + (iil - u2)p'O) (3.3)
We
simplify this equation using the following substitutions:
= 2\321\213-,-\320\227\321\2132+1
/?,(\320\274)

= ~2u'+3u2
F2(u)

\316\241\316\257
\316\273 , , , (3-4>
= \320\270
~2u- + u
\320\263\320\273(\320\270)

Now we can rewrite Equation (3.3)as

p(\302\253)
=
l-\\(u)V(0) + F2(u)p( I) + +
\320\236\320\224\321\200\"(0)
\320\222\320\224\321\200\"(1) (3-5)

We further simplify this equation by using subscriptsto represent the end-

point values.
\320\272
Equation (3.5) ihen becomes:

P('0= ''i(\302\253)pu+ +
/'\320\263(\\321\2001")F,(u)pt
+ F4(u)p\"i (3.6)
This is the geometric form,and the vcctoTS p\302\273, p]. po. p\"
arc the geometric
coefficients. The F terms \320\260\321\202\320\265
the Hermite basis functions (see Section 3.2).
42 Hermite
\342\226\240 Curve

There 12 degrees
\320\260\321\202\320\265 of freedom (4 vectors \317\207
3 components
per vector)
that we must specify to define fully and unambiguously the equations of the
cubic Hermite curve. As we will see later in more detail.it useful to specify
is
these
shape-controlling variables at the endpoints of a cuTve. where = 0 and
\320\270

= 1.
\320\270 is computationally
First.it easy to evaluatethe polynomialsat \320\270
= 0 and

=
\320\270 when joining many curves together end-to-end
I. Second, to form more
complex curves, we must control what is goingon at thoseends.
Thesecurves, like all parametric curves, are directional in the sense that
values at' the parameter increase
\320\270 monotonically when progressing from
point to point along the curve. We will discuss this characteristic in more
detail later,but it is important to understand that reversing the sequenceof
endpointsand tangent vector directions generates an identical curve. The
choiceof which end of a curve to define as p0 and which as p! is arbitrary
unless there is someadditional constraint dictating a preferred direction,
such as positionin a composite string of curves. There are no intrinsic
mathematical constraints.

3.2 HERMITE BASIS FUNCTIONS

The Hermite basis functions first in the derivation of the geometric


appear
form from the
algebraic form. They are the functions defined by Equations

(3.4). Figure 3.1 shows each function as a curve over the domain of the

parameter in the unit interval \320\270


\320\265
[0,1].
Three important characteristics of these basis functions are:

1. Universality\342\200\224they hold for all cubic Hermite curves.


2. Dimensionalindependence\342\200\224they are identical for each of the three
because
model-spacecoordinates, they
are dependent only on u.
3. Separation of boundary condition effects\342\200\224they allow the constituent
boundary condition coefficients to be decoupledfrom each other.

This means that we can selectively modify a single specific boundary


condition to alter the shape of a curve without affecting the other boundary
conditions.

These functions blend of the endpoints and tangent vectorsto


the effects
producethe intermediate point coordinate values over the domain of w. For
example, we can decompose a curve into its parametriccomponents
then decompose
\342\226\240*(\302\253),\321\203(\320\274),\320\263(\320\274).
each component curve into four orthogonal
curves corresponding to Fi(u)pa, F2(u)pu Fy(u)p,)\". and
F4(u)pf\". (An expla-
Hermite Basis Functions 43
\342\226\240

1 0
! \316\271 _| |'
- -L^i^ I
1
1
| U 1
1\342\200\224
\342\200\224\316\271
' \342\200\224\316\271\342\200\224'\342\200\224'\342\200\224~
-.

l.o

il )
'
1 \342\226\240 \316\223
1
1 |

. \342\226\240f\\
\342\200\224- \342\226\240
\320\263 1 \342\226\240
\342\200\224\316\271
i \316\271 \316\271
1
0.2

Figure 3.1 Cubic Hermite basis functions.

nation of orthogonalcurves and functions follows shortly.) Figure 3.2 shows


an examplewhere
5
\321\200\320\270=[5 0]

= [25 5 0]
pi

= 44
pi', [66 0]

pi'=[8 -6 0]
The dashedcurve shows the effect of multiplying y0\" hv 0.5. Notice how each
hasis function contributes to the total shape of the curve.
A situation analogous to that described for the position vector \321\200(\320\263()
also

holds for the tangent vector and second derivative vector p\"(\302\253)
and
\321\200\"\"(\320\274),

respectively, where

P\"(\")
= ffo(\ and = <l2p(u)
du \321\200\"\"(\320\274)
du~
44 Hermite
\342\226\240 Curve

Figure 3.2 A curve decomposed into four orthogonal


curves shaped by the basis functions.

Differentiating Equations (3.4) yields


F1(u)= - bu
\320\261\320\263\320\263

F'Mu) = -bu2 + bu
- 4\320\274
= \320\227\320\2752 + 1
\320\2403'(\320\275)

and

F'4'(u) = 12u- 6
Ff(u) = ~\\2u + b

= 6u-4
F\302\245(u)

/T(u)
= 6u-2
HermiteBasisFunctions \342\226\240
45

We compute the vectors p\"(u) and p\"\"(u)


at any point on a curve by using
the appropriate set of basisfunctions operating on the geometric
coefficients, so that

= + + +
p\"(\302\253) F4(u)Va \320\257(\320\270)\321\200,
FS(\302\253)p5 FX(u)p4 (3.9)

and

p\"(\302\253)
=
FT(u)p0 + F'l%u)Pi + Ff(u)pl+ FT(\302\253)pt (3-10)

The basis functions F\"iu) and F'fiu) are graphed in Figures 3.3 and 3.4,
respectively.
The point coefficientfunctions F,(u) are orthogonal because they have the
property F^u) F2(it) + = 1, so that when Fj(u) = 1 then F2(u)
= 0, and when
F^u) = 0 then F2i.1t) = 1. (The term orthogonal is boTTOwed to describe this
condition.) Furthermore, the tangent vectoT coefficients have the property
Fiiu) = /r4(ii)= uat ii = uandii=1.This means to the
that only p0 contributes
cuTve
position
at only p] contributes
= 0
\320\270 and at u= as
1, expected.
The orthogonality
of the /*\"?(\302\253)coefficients
requires that F'-ftu) = F4(u) =
F'Hu) = 1 and that F'{(u) =
F$(u) = Fi(u) = 0and F\"4(u)
= 0 and = 1 at \320\270
Fu4(u)
= 1. The
orthogonality of the F\"\"(u) cannot be demonstrated, because these
coefficients blend the standardboundary condi tions p0. pi, po, and p\".Instead
we would have to derive otherbasisfunctions, say that
\320\235\"%\320\270), blend \317\2010,
\317\201,.

the orthogonality of the //?'(\302\253) requires =


pS'. and pT- Here that H\\\"iu)
=
H*?(u) H4?(u)
= 0 and Huf(u)
= 1 at u = 0, and that
Hf(u)
= = \320\257
\320\257?\"(\320\274) \320\242(\302\253)

= \317\213
and = 1
\320\235\"\"{\320\270)
at =
\320\270 1.This is the second derivative foTm.
The symmetry between related pairs of basis function curves,for example

F]{u) and F2(u), \320\276\321\202


F3(\302\253) and /^(\320\270), allows us to reverse the direction of
parameterization and preservea curve'sshape, provided that the endpoints
are interchanged and the tangentvectordirections TeveTsed. There are

similar basis functions for otheT odd-degree HeTmite polynomials, such as the
quintic. Even-degTee polynomial basis functions are seldom used, because
they
have an odd number of degTees of freedom. This prohibitsestablishing
symmetrical conditions atboundary the cuTve segment endpoints.
Using the summation notation, we generalize Equation (3.6) as follows:

pH=jj>A\302\273 (3.11)

where is
\316\267 the of the polynomial and the b, \320\260\321\202\320\265
degTee the geometric
coefficient vectors. For we have bu = po,b,
= 3,
\316\267 =
p,,b2 = pii. and b3
=
p\". Shifting
the Tange of the indexi down one step makes it conform to the common
notation schemeso f BezieT and
B-Spline basis functions. For example, F^u)
of the cubic Hermite basis functions becomes F0i3(\302\253).
46 Hermite
\342\226\240 Curve

*\342\226\240
J
V
\320\273
t
V

\321\207,

-1.6

or '\317\204
\317\204\342\200\224\316\271

-*' \320\247^

S N
S \\

\320\270 .
.\342\200\224. \342\200\224 % ^

n'~ ^

\317\205

-0.A

1.0
/
\321\203
\342\200\242

\316\244 /
r~
'A'
\320\276
>
^'
-0.4

Figure 3.3 First derivative basis function curves.

Fot the quintic HeTmitecuTve, = 5


\316\267 and

=
(\320\270) b0F0,s(\302\253)
\317\201 + bjFJ5(u) + b2F2.5(u) +

b2F2s(u) + b4F4j(u) + b5FSi5(\302\253) (3.12)


wheTe, for example, we might make the following assignments:
b0
=
p0

b, = pi
b2 = pi,
Matrix Form 47
\342\226\240

Figure 3.4 Second derivative basis function curves.

b3 = p'i

b^pS\"
bs=pi\"
CleaTlythe order of the sixteniison the Tight side of Equation (3.12) is not
is
important.HoweveT,care required in constructing the b, and sets, so
/*\",,\342\200\236(\302\253)
that their tenns are appropriately linked by a common index.
These basis functions are a powerful modelingdevice. Using them, we can
calculate the coordinates and the first and second derivatives of any point on
any
cubic Hermitc cuTve. We will see similar basis functionswhen we study
Bezier and B-Spline curves, and, in fact, under certainconditions we can

convert from one basis to another.

3.3 MATRIX FORM

Matrixalgebra and its notation scheme offer a compact and powerful


mathematical form for representing a curve. Otherwise complex geometricoper-
48 Hermite
\342\226\240 Curve

ations, transformations, and analysis often becomesimple matrix operations.


We can rewrite Equation (3.2) as the productof matrices: two

\320\2701 \320\270 b \321\201d]r (3.13)


p(ii)=[ii3 1][\320\260

Letting

=[*(\")
\321\200(\320\270) y(u) z(u)f

U=
- \320\223\342\200\236\320\267
if \320\270
1]

A = [a b \321\201

we can then rewrite Equation (3.13) as


p(\302\253)
= UA
(3.14)
and similarly for the geometric form
p(u)=[F,(u) F2(u) p,
\320\222\320\224 \320\236\320\224][\321\200\320\276
p\"0 p',f (3.15)
If we now let

Fz(u)
\302\245=[\320\252(\320\270) F3(u) FA(u)]

and

B=[po p, pS \317\201\317\212]\316\223

then we can rewrite Equation (3.15) as


P=FB (3.16)
Given that A is (he matrix of algebraic coefficientsand \320\222
is the Hermite

geometry matrix containing the geometric coefficients,


then using matrix

algebTa we can develop a relationship betweenthe algebraic and geometric


forms. From Equation (3.4), we obtain
F= -
[(2\320\2303 3u2 + 1) (~2u3 + 3u2) (u2
- lu2 + u) (ir1- u2)] (3.17)

By inspection, we see that we can expressthe right side of this equation as


2-211
F=\\u
-3 3 -2 -1
I] 0 0 10 (3.1!

.10 0 0.

The matrix is the Hermitebasistransformation


4x4 matrix, which we will
denote by MF. This matrix controls the basis transformation between the
Hermite basis polynomials Fj(u)and the monomial basis u! orU.so that

F = UMf (3.19)
Matrix Form 49
\342\226\240

Substituting Equation (3.19) for (3.16) produces


p(u) = UMfB (3.20)
This means that

A = \316\222
\316\234, (3.21)
and, conversely, that

B=M>A (3.22)
where
\"\320\276\320\276\320\276\320\223

* f
D 0 1 0 (3.23)
.3 2 I 0.

We see that (3.21) and (3.22)allow ready conversionbetween


Equations
a IgebTaie
and
geometric and also that matrices U, F.and MF are
forms,
identical for all cubic Hermite curves. Only the A and \320\222
matrices vary from curve
to curve, depending on shapeand position. This means that it is convenient
and efficientto denotea specific curve by simply giving its matrix of
algebraic or geometric coefficients.
For a
given polynomial degree, different species of basis functions are
interchangeable through a matrix transformation. For
example, we let Br
represent a matrix of control points defining a curve p(u)
= UMfBf using
basis functions F = UMf.Then,\316\257\316\277\317\204
another system of basis functions we let
G= UMcandfind a set of control points B(, that reproduces the same curve.
This means it must be true that \320\270\320\234\321\201\320\222<;
=
UMfBfl so that BG = M^jMpBF.
Later, we will see that under certain conditions we can convert between
Hermiie and Bezier curves using this approach.
Rewriting Equations (3.9)and (3.10) in the more compact matrix form
yields
p\"(u)= F'B or p\"(u)
= UMj!B

and

p\"\"(w)
= F\"\"B or p\"\"(u)
= UM\302\243\"B

where

\320\240'=[(6\320\2702-6\320\270) (-6\320\2702
+ 6\320\270)
(3ii2-4ii + l) (3\316\271\316\2712-2\316\271\316\271)]

and

F\"\" = - + 6) - -
[(12\320\270 6) (-12\320\274 (6\302\253 4) (6\320\270 2)]
50 Hermite
\342\226\240 Curve

The basis matrices and


M\302\243 M'/!' are

\317\213 \317\213 \317\213 \317\213 0 \317\213 0 \317\213

6 -6 3 3 0 \317\213 0 \317\213
m; = and Mf =
-6 6 -4 -2 12 -12 6 6

0 0 1 \317\213 -6 6 -4 -2

3.4 TANGENT VECTORS

The tangentvectorat any point


on a curve is given by the first derivative of
the parametricequations defining the curve. The magnitude or length of the
tangent vector dependson the
parameterization and affects the interior
shape of the curve.
Here is how
tangent vectors work to define the shape of a curve.
Specifying
the coordinates and slopes at endpoints of a cubic Hermite curve
accounts for only 10 of the 12 degrees of freedomimplied by Equations
(3.1). supplied by the coordinatesx0,y0,z0
Six are and directly from
\321\205\321\212\321\203\321\212\320\263\321\212

the components of po and p.. Four moreare supplied by the direction cosines,
two from each end. Rememberthat there are only two independent
direction cosines at any point on a three-dimensional curve.The third direction

cosine is a function of the other two, becausethe sum of the squares of the
three direction cosinesequals one. This means that there are two more
degreesof freedomavailable to control the shape of a curve.
The slopesrepresented by tangent vectors p|j and p,' are thosein
are x'q \342\200\224 =
parameter
space.The components dx(0)/du and^y dx(l)ldu,and similarly
for \321\203
and z. These are directly related to the Euclidean slopes\321\203*
=
dyldx and
Z* = dzldx from yx = f/xu and z' = z\"/x\".

The tangent vector resolves the problem of the extra two degrees of
freedom in the
following way: A tangent vector operatesat eachendof the cubic
Hermite curve, as shown in Figure 3.5.Not only do these vectors define the
slopes al each end,but each vector also has a magnitude associated with it.
The magnitudes supply the eleventh and twelfth degrees of freedom and
contribute to the controlof the shape of a curve's interior.
The direction cosinesof the tangent to a point \320\270
on a curve comprise the
components of a unit vector t(u), where\320\246\320\275)
= where the
\317\201\"(\316\272)/\316\231\317\201\"(\316\272)\316\231,
direction cosines are ty(u),
\320\246\320\270),
From
1\320\263(\320\270). elementary geometry, we know that
= + + T\\(u) = 1
V?J(m)
\316\231\316\25200\316\231 i\302\273

where tx(u), ty(u), tz(u) \316\265 Furthermore,


[\320\236\320\224].
if =
\320\272 then
1\321\200\"(\320\274)1,
=
kt(u),
\321\200\"(\320\274)

where \320\272
represents the magnitude of p\"(it)- We add subscripts to indicatea
toits
specificpoini,corresponding \320\270
value,giving the tangent vectors for the
Tangent Vectors\342\226\240
51

Figure 3.5 Tangent vectors.

two endpoints of a curve as po


= k0%
andp'/ = kfa. Because the three

direction cosines are related by lt(u)l


= l.only two are independent variables. So
now we can expressthe matrix of geometric coefficients as
B = [p0 p, h3t0 \316\234\316\271\316\223 (3-24)

This is a very interesting state of affairs, becausewe see that it is a


property
of cubic Hermile curves that we can obtain many different curves (in
fact, an infinite family of them), all of which have the same endpointsand
slopes yet entirely different interior shapes, depending on the tangent vector

magnitudes and
\320\272$ kv By varying kQ and \320\272\321\212
we can control the curvature at
each end, or we can fix the location of some intermediate point.Figure3.6
shows the effect of varying kti and k, while holding constant all the other
geometric coefficients.The coefficients have the following values:
= 4.0 = 4.0 20=0
jc\342\200\236 y0

X]
= 24.0
\320\273
= 4.0 z, = 0
= 0.8320 = 0.5547 = 0
far /\"o, f0;

tu = 0.8320 flv
= -0.5547 = 0
f\342\200\236
52 Hermite
\342\226\240 Curve

10

3 ^4. 3

, 1 1 1 *-I
10 20

la)

10

.1*. = 10
\316\257\316\2234
,\316\220^\316\223-\342\200\224\"7\316\223\316\223-
=
\"-\316\2574^-\317\216\342\200\224\342\200\224\"

3 3
*X7

I 1 1 .,
10 20
lb)

Figure 3.6 Effect of tangent vector magnitude on curve shape.


(a) Symmetrical slopes and equal tangent vector magnitudes.
(b) Symmetrical slopes and unequal tangent vector
magnitudes.
TangentVectors 53
\342\226\240

The curves 3.6a are symmetricalaround a commonvertical


in Figure
axis, and their values of k0 and /\321\201,
respective are equal. In Figure 3.6b, /c0 is
varied while \320\272\320\263
is constant, which results in the asymmetrical family of

curves. Usually, when we model a curve we must meet somespecificdesign


criteria. However, the illustrations here are meant to explaincurve
behaviorand do not represent particular examples of applications to real design
problems.
When the magnitudes of the tangent vectorsexceedsomemultiple of the

chord length between the endpoints of the curve segment, the curve begins
lo exhibit undesirablecharacteristics, such as loops and cusps. Conversely,
very low magnitudesproduce relatively a flat curve. The chord length is Ipi -
= 20 for each curve in
pol Figure3.6,and a loop is produced in the curve when
ka
=
kx = 80 (that is, four times the chord length).
At first it appears that by manipulating magnitudes of p(j and p\" we can
force points on the curve to any location. But let us see what happens lo the

point corresponding to \320\2720.5. The values of the basis functionsal this point
=

are /^(0.5) = 0.5, F2(0.5) = 0.5,F2(0.5) =


0.125, and E,(0.5)
= -0.125, so lha I

= 0.5(po + \317\201,)+
p(0.5) 0.125(\317\201\"\316\261-\317\201\317\212)

= koto and =
kjtu we obtain
Substituting pg p\"

p(0.5) = 0.5(po+ p,) +


-
\316\261\316\22025(\316\233\342\200\236\317\2120
\316\233,\316\220,)

The curves shown 3.7 differ only in the valuesof kQand


in Figure A:,. In (wo
of the curves,g and h, the of pyis reversed
direction by using negative values
for kx. By manipulating the magnitudes and signs of pfj and p, while
their
preserving lines of action, we are able to force p(0.5)to any location. This is
true for any plane curve whetheror notit liesin a plane coincident with, or
parallel to, a principal plane of the coordinate system. There is, however, a
restriction on curve shape readily apparent only in nonplanar curves. If the
magnitudes(including signs) of the tangent vectors are varied, then p(0.5)
will always lie in a plane that is parallel lo bothp(J and pi1 and that passes
through the midpoint of the line joining p0 and pi (i.e.,0.5(po + pi)). Hereis a
casual proof.Trea ting k{, and \320\272\320\263
as independent variables, we write the
equation for p(0.5) as follows:

po.s(*o,*i) = 0.5(p0+ pi) + (0.125^\316\2740


-
(0.1251,)^

This is the vector equationofa planethrough the point 0.5(p0 + pi) and
containing t0 and tj. Of course, a similar restriction applieslo any other given
point on the
\317\201(\316\257\316\257,) curve.
54 Hermite
\342\226\240 Curve

Figure 3.7 Effect of tangent vectormagnitudeon the location of p(0.5).

3.5 TRUNCATING AND SUBDIVIDING

We can break down into smaller segmentsby truncating


a curve or
it.
subdividing There reasons for doing this. For example,
are many we may truncate
to isolate and extract that part of a curve surviving a model modification
process,or subdivide il lo compute
points for displaying it. To truncate,
subdivide, or change the direction of parameterization of a curve ordinarily
requires a mathematicaloperationcalled reparamelerization. Ideally, this

operation produces a change in the parametric interval so that neither the


shape nor the position of the curveis changed.This effect is often referred to
as shape invariance parameterization and
under
reparamelerization. The
function =
\316\275 describes
\320\224\320\274)
the precise way this interval is changed. For
example, reversing the direction of parameleriza lion is the simplestformof repa-
rameterization. To do this we use \316\275
= -\320\270,where is
\316\275 the new parametric
variable. This transformation does not changethe shape or position of the
curve, nor doesit changeany of the curve's analytic properties.
Figure 3.8 illustratesa Hermitecurve segment, showing its endpoinls and
tangent vectors for the two possible directions of parameterization. The
Truncating and Subdividing 55
\342\226\240

transformation from the condition illustrated in Figure 3.8ainto that in 3.8b

requires interchanging p] in
the position of po and
matrix of geometric the

coefficients and similarly interchanging the tangent vectors reversing and

their signs. So, given the geometry matrix =


p! pjj p\"]T before
\320\222
[p\342\200\236

reversing the direction of parameterization,after reversingit becomesB',


where
B'=[p, pn -p? -pg]r.
Figure 3.9shows a more generalform of reparameterization. Here we see
two possible parameterizationsfor a single curve, where the curve is initially
parameterized
from u, to uyTo change this so that the parametric variable
ranges from v, to v;, we let the geometric coefficientsin the first case be B, =

[p< P; p'i p\"]r, and in the second case B2 = [q, q, q', q)]T. The end-
point coordinates are related in a straightforward way They must be
invariant to any change of parameterization so that
q,
=
p, and q, py;= otherwise,

the reparameterized curve does not satisfy the constant position


requirement. The tangent vectors are another matter. Because they are defined by
the first derivative of the parametricfunctions, they are sensitive to the
function relating and
\320\270 =
v, that is, \316\275 A
\320\224\320\274).linear relationship is required to pre-

la) |b|

*7

q,

^>
x{-i| X(.1>

q'i

Figure 3.B Two possible directionsof parameterizationof a curve.


56 Hermite
\342\226\240 Curve

Figure 3.9 Reparameterization.

serve the cubic form of the parametric equations and the direction of the
tangent vector;so again we must insist that v = au + b. This means that dv =
adu. Because we know that vi
= au, + b and v}
=
au, + b, we can easily find a
and b and, subsequently, the Tela
tionship between the tangent vectors, which
is simply

=
4. (3.25)
^p\302\273

Now we can state the complete relationship between the two sets of
geometric coefficients as

* = P<

=
4/ P/

4 =
vj-v,

\321\207/=-^\321\200/ (3\302\26726>
Vj-V,

This tells us that the tangent vectormagnitudes


result must change to
accommodate in the range of the parametricvariable.
a change We see that these
magnitudes are simply scaled by the ratio of the ranges of the parametric
variables.This preserves the directions of the tangent vectors and the shape
of the curve.

pairs of integers, then \321\211 \321\211


successive = - the same
If and
\320\270,- u, are 1, and
holds true for v-, and v,. This is very useful when dealingwith segments of

composite curves, because individual segments originally parameterizedto


the interval u,
= 0 and
u, = 1 may be cardinally reparameterized to allow
relatively simple
curve segment identifying schemes. For example,the nth curve
Truncating and Subdividing \342\226\240
57

segment can be parameterized from =


\321\211 n-\\ to = with
\321\211 \316\267, the result that \321\211
- = 1. This means that the matrix
\320\222 for the segment is unchanged by this
\316\267,

form of re parameterization.In fact,there are many different parameteriza-


tions that describe the same curve.
These reparameterization formulas allow us to compute a new \320\222
matrix

a truncated
\316\257\316\277\317\204 or extended curve. Later sections that discuss composite
curves and solid-modeling techniques will demonstrate the need for these
capabilities as modeling elementsare intersected, trimmed, and joined
together to form more complex objects. Figure 3.10 illustrates a curve
truncated at \320\272,
and ur That is, the segments from tt0 to and
\321\211
from ut to u, are
eliminated. We can represent the remaining segment as a cubic Hermite
curve, parameterized from = 0 to \316\275
\316\275 =
1, by proceeding as follows: We
compute p, and p, using p(tt)
= UMPB,and p','and p'/ using p\"(tt) = UMfB. The
ratio of parametrie interval - -
lengths (\320\270, (t,)/(v, given
v,\302\267) by Equation (3.26)
reduces to u; - \320\270,-,
because v;
-
v, = 1. If q(v) representsthe truncatedcurve,
then

=
4d ft

4i=P/

= -
q,\" (uj u,)p'j
There is a generalizationof the precedingparametric transformation. It

applies to any polynomial or rational polynomialparametric curve. For this,


we again require a linear relationshipbetweeninitialandtransformed
parametric variables to preserve the degree of the polynomial, so that = au + b.
\316\275

=
Ifv, 0andv; = I attt, and
(irrespectively, then by solving for a and b we have
ii = ii;+ (ii,
-
U,)V
or
=
\320\270 + \316\221\316\271\316\271,\316\275
\320\270,

\342\200\236,0 \321\205- =0
\320\270,\342\200\224^\342\200\236 \316\271

? /' ^

Figure3.10 Reparameterization of a
truncated curve.
58 Hermite
\342\226\240 Curve

where = - If \316\275,
\317\210and/or
\316\237 then
\320\224\320\274;
\321\211 \321\206. \316\275-,\317\210\316\247,

\\ v,-v, I \\Vj-vJ
Applying the binomial theorem to =
\320\270 +
\321\211 Au,v, the transformation
equations are

-\320\272
=
\302\273\"
(3.28)
\316\243((^)\302\273*(\316\224^)\"

where

\316\267!

\\k} k\\{n-k)V
the binomial coefficient. We extract a transformation matrix from
\316\244

Equation (3.28) so that

U = VT
For a cubicHermitecurve, we have =
UMfB.
\321\200(\320\270) Applying the
transformation
parametric \316\244
produces the transformed geometric B', coefficients
corresponding to the curve segment between u, and \320\270,
in the initial
parameterization scheme and subsequently renormalized to the unit interval, so that
- VTMfB
\321\200(\320\270)

TMf =
\320\222 MFB'

=
\320\222' \320\234^\320\242\320\234^\320\222

where

\316\2673\320\2702 \320\270
U=[ 1]

V = [v3 \316\2752\316\275
1]

\316\224\316\2673 0 0 0
0
3\316\257\316\257,\316\224\316\257\316\257^
\316\221\316\271\316\256 0
1 = 0
3u2AUj 2iijAuj \316\224\316\267,

\316\271\316\256 \320\270] \320\270, 1

To subdivide a curve into n successive segmentsof arbitrary length and

generate n new curves, we assume that (t;,p(-, and p\" at the segment
boundaries are given or readily computed. Then, the geometric coefficientsof \320\222
ma trix elements of the ith segmen t are

B(=[p(_, p, (\321\211-\321\211.-faU (H,-\302\253,-i)p;']T (3-29)

This is clearly an application of Equation (3.27),where vy- vy_i


= 1.
Truncating and Subdividing \342\226\240
59

If a curve is divided into \316\267


equal segments (that is. segment boundaries
occur at equal intervals of the parametric variable), then (he \320\222
matrix of the
ttli segment is
1 !
B,-= Pii-\\V\" Pil\"
~
Pd'-l).'\"
\342\200\224
PiVn (3.30)

Of course, we must evaluate each

and \342\200\224p%\342\200\236

= UMFB and =
using p((i) pM(it) UM\302\243'B, respectively.
A quick subdivision is possible
by taking advantage of curve properties at
p(0.5). We recursively subdivide in order to generate a set of points on the
curve at 2\" equal parametric intervals, each of length 1/2\".Given \317\2010,
\317\201\316\271,\317\201\316\257\316\

and pf, we proceed as follows;


for = 1
\316\267

= + p(i)] +
p(|) {fp(\302\260) {fp,'(0)-p\"(i)]

for = 2
\316\267

J_
P(0) + p(i + p\"(0)-p\"
16

+ + J_
Pl}) P(l)
16 P\"(^)-P\"(T)
for = 3
\316\267

+ +
\317\201
\317\201(\317\213)
16 p\"(0)-p1t

+
J_
p\"Ui-p\\2
\320\242\320\261

l)+p(i
+ J_
pi'Tp(i 16 \"2\"'U
7 1
p|^)+p(i) p\"(7)-p\"(1)
.. .and so on. We |ctm = l,nandi = 1,2\"-1 (incrementing by 2), and compute

=
'i-\\ i+1
Ph^r +
P + \"\316\241\" (3.31)
16 \316\241\316\212-^\316\223
60 Hermite
\342\226\240 Curve

If m *\302\253,then we must compute tangent vectors at u = i/2m, so thai

i+1 /-1 1 i-1 ill


+ \342\200\224 + p' (3.32)
4

+
We renormalize the intervals of length i/2w i, which requires the
replacement:

Reparameterization back to Ihe unit interval introduces the factor of 1/2


applied to the tangent vectors, so that

It is this quick and easy renormalizingof the new intervals after each
subdivision that makes this work.
Ball (1984), Farin (1993a),and many others offer additional discussion on
the effects of parameterizationand reparameterization on curve shape.

3.6 THREE-POINT INTERPOLATION

There is a three-point interpolation methodfor defining a cubic Hermite


curve given the following conditions:the two endpoints po and pi, an
intermediate
point p, and its corresponding but unspecified parametric variable
and
\320\272,-, the unit tangent vectors i0 and \\. The unspecified parametric variable

\321\211
prevents the problem from being over-constrained. To determine the
tangent
vectors
pjj and p\", we let pjj
=
/cot0 and p\" = /c^i and attempt to find kn and

/c, such that the curve passes throughp,. have,We from our earlier work,

p((f,) = Z7] (\302\253,)pu + F2(Ui)pi + koFi(u,)% + \320\272^\321\200^%

Because F\\ = 1 - F2, we obtain

-
P(\"i)
\"
Po
=
F2(u,)(p, po) + koF^u^ia + \320\272^\320\273(\320\270,%

Expanding this equation in terms of each of the coordinates


yields

-
X;-Xo
=
F2(u,)(Xi x0) + \320\272^3(\320\270,)\320\270
+ k^FA(u,)ftJ

-
y0) +
~ = +
F2(u,)(yi
\320\243,\320\243\320\276 k,FA(u,)Tyl
\320\2720\320\2403(\321\202)\320\223^ (3.33)

z,
- Zo
= -
Zo) + k0F3(Uiya+ kf F4{4,)h\\
F2(ui)(zi
Four-Point Interpolation 61
\342\226\240

Solving the first two of these equationsin terms of fo/i(\";) and k\\Fj(u,) and
using matrixnotation produces
-
\320\233\320\270
\316\212\316\271 (\317\207, \317\207\302\273)(JT, -JTo)
- /:(\302\253,)
ktF4(u,) '\", 0 0'\316\271 \320\243\320\276)
'\">\342\226\240!.(\320\243.-\320\243\320\276)_

From the third equation, we have

[z,-Za\\ = [zl-Za]F1(ui)+[i:f)
t^koF^Uj) *1^(\320\270,)]7

Substituting appropriately produces


- Xo \342\200\224

[z, - - -ti
\316\212\316\271
\316\212\316\277 X\\ Xo
Zo]
=
[Z\\ Zo]F3(u,) + [K(l i;t] - \" F2(u,)
\320\243;)>('
'\",\316\277\316\212\316\271 \320\243 \320\243\320\276
\316\271

as an unknown.
leaving only \320\274,-

After working through some rather tedious, though straightforward,


matrix algebra, we finally obtain

(xi-x0) CVi-\320\243\320\270) (zi-zo) (-r,-.v0) (z,-Zo)


(\321\203.^\320\243\320\276)
\316\212\316\270
= \316\212\316\277
\316\212\316\270 '\316\271\316\237
/\320\2232(\302\253() \316\212\316\277 \316\212\316\277

\316\212\316\271 \316\212

where
F2(ii,-)
= -2\320\274?+ \320\227\320\274?
[from Equation (3.4)] and the initial constraints are
expressed in determinant arrays. This is a key equation in the development.
When we determine the value of \321\211
by solving the indicated cubic
equation, we can compute the values of and
k\342\200\236 \320\272\320\273
using
two equations from, say,
Equations (3.33).Then we readily determine and Note
\317\201\".
\317\201\317\214'
that an
acceptable solution of the cubic equation must satisfy these constraints:
0< < I
\320\270,-

k0>0

k,>0

We can relax the conditions on /c0and if we


/\321\201, don't care which direction the
tangent vectorspoint along their
respective lines of action.

FOUR-POINT INTERPOLATION

A cubic Hermite curve that


passes through four given points is a derivative
of the geometricform, and under certain conditions it is comparable to it in
usefulness. Figure Jl illustratesthis situation.
3.
We begin by specifying four distinct points in space [p, p2 pi pj].
assigning to each a successive \320\270
value, so that u, < u2 < <
\321\211 u4.Then, we find
62 Hermite
\342\226\240 Curve

Figure 3.11 Four-point form of a


curve.

a 4 \317\207
4 matrix of constants that, when it premultiplies the matrixof
coordinates of the four points, produces the \320\222
matrix of geometric coefficients:

B =
K[Pl p2 p3 p\342\200\236]T

\320\276\321\202

B = KP

where P= [pi p2 \321\200\320\264


p^]Tand
\320\232
is a 4 x4matTix of constants, depending
solely on the values
\320\270
assigned to the four points. (For the moment, we will

treat all four as having arbitrary values.)It then follows that

Pi u,
P2 u2 M,B (3.34)
\320\240\320\267 u3
Pj u\342\200\236

where U, = [u\\ u\\ u, 1] and similarly fot U2,Uj,U^,so that


u{ u] u, 1
u2 ul u2 1
u\\ \"3 1

ui UA 1
FouT-Point Interpolation 63
\342\226\240

We solve this equation directly to obtain


u,
-1 Pi
- \316\234,' u2 P2
\320\222
u, \320\240\321\215

u4 p4

and then extract the matrix


\320\232

-I
U,
- U2
\320\232 Mf\"'
u3 (3.35)
u4

Conversely, given the \320\222


matrix, the equivalent four-point form is
= \320\232
\316\241 *\320\222
(3.36)

Taking a standard approach and choosingequally distributedvalues of the

parametric variable, that is, for \320\275, 0, u2= 1/3, \321\211 2/3, \302\2534 1, then f\320\276\321\202
= = = and
\320\232

we
\320\232\"1 find

1 0 0 0
0 0 0 1
K = .11 9 -4
2 (3.37)

-1
9
-r -9 11
~2 2

\"
\"1 0 0 0
20 7 _4_ J_
27 27 27 \"27
K~l = (3.38)
1_
20 2
_4_
27 27 27 27
0 1 0 0

We can compose a slightly different expression as follows:Given =


\317\201(\316\272)

UMjrB and =
\320\222 KP, by substitution we obtain

p(ii) = UMf-KP
64 Hermite
\342\226\240 Curve

IfMFK = N,then

P(\302\273)
= UNfP (3.39)
where
~_9
27 _27
9
2 2 2 2

= 9
_45 18
NF
2 2
_11 9 _9 1
2 2

_ 1 0 0 0
Expanding Equation (3.39) produces
- + 9h2
- 5.5\320\270+
(-4.5\321\2133
\321\200(\320\270) l)pu

+(13.5\320\270\321\215-22.5\320\2702
+ 9\320\270)\321\2002

+ 18\316\257\316\2572-4.5(\316\257)\317\2013
+(-\316\2203.5\316\257\316\2573

- 4.5u2 + u)p4
+(4.5u3

Notice that we have created new basis functions, say G;(k),so that
- + + +
\321\200(\320\270) G,((i)pi G2(\302\253)p2 Gj(ii)p3 \320\2414(\320\270)\321\2004

These basis functions possess the equal partition of unity characteristic

because = l-
\302\243G,-(it)

3.8 CONIC HERMITE CURVES

Constructing a coniccurve the traditional way is worth reviewing to better


understand how to use Hermite curves to represent them. To beginwe state

the problem as: Given two endpoints A and S, corresponding tangent lines,
and an intermediatepoint C, all in a common plane, find a set of
intermediate
points sufficient to plot a segment of a conic curve (seeFigure3.12). The
tangent at is
\320\233
represented by line AD and at \320\222
by BD, where D is the point
of intersectionof the tangent lines. must
\320\241 lie within the triangle ABC. We

construct a set of points on the conic curve as follows:

1. Draw lines AC and SC, extending both lines past \320\241


2. Draw any line through D that intersects both lines AC and a and
\320\222\320\241; b
are such intersection points.
ConicHermite Curves 65
\342\226\240

Figure 3.12 Construction technique for a


conic curve.

3. Draw a line through points A and b.


4. Draw a line through points a and B, extending it until it intersects line Ab.
The point of intersection\316\241
is a point on the conic curve.

We
repeat these four steps as many times as necessary,eachtime starting
with a different line through D. If we constructa line through D intersecting
line AB at its midpoint E, then that the tangent to the
we can demonstrate
conicat point parallel F isFurthermore, we can
to AB. determinethe type of
conic by computing the ratio of the length line segmentEF to the length
of
of line segment DE. We call this ratio rho (p). If \317\201 is less than 0.5, then the
curve is a segmentof an ellipse. -
If \317\2010.5, the curve is a parabolic segment.If
0.5< p< l,the curve is a segment of a hyperbola.
Alternatively, we can constructline DE (see Figure 3.13) so that it
intersects AB at its midpoint, and locate point \320\241
to yield \317\201
appropriate
to the type
of conic required. For example,ifthe segment of a parabola has endpoints at
A and and
\320\222 end slopesto lines AD and BD, then
corresponding we locate
tomake
\320\241 that is, at
- the midpoint
\317\2010.5,
of DE. Next,we proceed with the
steps previously outlined in order to generate additional points on the curve.

Notice that if the perpendicular distance from point D to line AB is denoted


as H, then the perpendicular distancefrom point to this
\320\241 line is pH.
We can definea Hermitecurve whose endpoints and slopes correspond
to A and B, and AD and BD, respectively, and that passes through the
66 Hermite
\342\226\240 Curve

Figure 3.13 More on the construction


technique for a conic curve.

intermediate point C. We derive only the case where point lies


\320\241 on the
line passing through D and the midpoint\316\225 of line AB; Figure 3.14
illustrates this. Keep in mind that all these elements are coplanar.
can
(Mathematicians show that a polynomial of degree \316\267
is always contained in an
\316\267-dimensional
space.) In Figure 3.14a, we see a relationship derived earlier,
namely,

- -
poj 0.5(p0 + + 0.125(\317\201\317\212 \317\201\302\273)
\317\201,)

Poinl \320\241
is located on DE, pDE from point E. In Figure3.14b,
a distance
lines EG and GC are
parallel to AD and SD, respectively Triangle BEF is
similar to BAD; because BE AB/2, = therefore EF = AD/2 and BF = BDI2.
Triangle EG
\320\241 is similar to DEF; because CE= pDE, therefore CG =
pDFf2
and EG= pEF/2. Furthermore,because pDF= f>(BD ~BF)
= pBD/2, we find
that
0.125Ipj}l =
0.5p/1D

From Figure 3.14c, we obtain


AD = lp2 -
pol
Conic Hermite Curves \342\226\240
67

=
p5 <p(p, -\321\2000\320\223
o^i

Figure 3.14 Hermite approximation of the construction


of a conic curve.
68 Hermite
\342\226\240 Curve

Therefore,

lpSI=4plp2-pol
Similarly.
0.125lp','l = 0.5pSD
where BD- Ip,
-
p?l and lp',1
=
4plp,
-
p2l. But po is in Ihe directionof \321\200\320\267
-
p0,
and pi' is in the directionof p, - p2, so that

- po)
Po and
= 4p(p2
p'{= 4\321\200(\321\200\320\263
-
p2)

Therefore, the Hermite equation for a conicis

pO) =
UMF[p0 Pl 4p(p2-p0) 4p(p,-p2)]r (3.40)
Figure 3.15 illustratesthis that p\"(0.5) is parallel top, -p0.
and also shows
The accuracy of
Equation (3.40) as il applies to varioustypes of conies is
an important modeling consideration. When \317\201
= 0.5 a
parabola is generated,
and this equationbecomes
p =
UMF[pu p, 2(p2-p0) 2(Pl~p2)]T
A Hermite curve definedby these boundary conditions is a conic, and,
moreover, it is exactly a segment of a parabola. Figure3.16 illustrates the
general
conditions necessary to generate this type of curve. Figures 3.17 and 3.18 are

Figure3.1S Moreon the Hermite approximation of the


construction of a conic curve.
Conic Hermite Curves \342\226\240
69

Figure 3.16 A Hermite curve exactly matchinga segmentof a


parabola.

examples of Hermitecurves that demonstrate the exact matchbetweenthis


segment, in particular the parabola \321\205\320\263
- -
formulation and a parabolic \321\203 0.

Although we have been working in the x, \321\203


plane, we can readily create or
transform the curve into any plane.
If 0.5 < < 1,
\317\201 (3.40) generates a Hermite curve
then Equation
approximating a segment of a
hyperbola.The approximation improves as the
hyperbolic segment becomes smaller, that is, as the difference between the slopes
at each end decreases. In another sense, the more Hermite curves strung
end-to-end to approximate a given hyperbolic segment, the better the
match\342\200\224the smaller the error or deviation of the curvefrom the true
hyperbola. Figures 3.19 and 3.20 demonstrate this for different segmentsof the
hyperbola given
-
by the equation x1 y1 + 1 - 0.
In Figure 3.19,a Hermite curve
approximates the segment of the
hyperbola from p0= [-10 10.05 0] to pj = [10 10.05 0]. This segment is
symmetrical around the axis.
\321\203
The point on this curve corresponding to \320\270
- 0.5

isp(0.5) = [0 1 0].Thepoint0.5(p0 + p1)= [0 10 0].We


the
findp2bydetermining point of intersection of the slopes or tangents
at p0 and pj.
Because we know these points,we next calculate =
\317\2010.91. Substituting these
values into Equation (3.40)produces

\"-10. 10.05 0

10. 10.05 0
B
36.4 -36.22 0
_ 36.4 36.22 0
70 a Hermite Curve

Parabola: =
\342\200\224
\321\203\320\236
\317\207\316\212
=
\317\2010.5

\302\261\317\207
\320\243 dy/dx

0 0 0
1 1 2
2 4 4
\316\257 9 6
4 16 8

=
Pi 2(p;
\316\241\320\237\321\200\320\276
- p0)
2(p, - Pl)]<

u x(u) >'<u) True


\321\203 Error

0 -4.0 16.00 16.00 0


0.2 -2.4 5.76 5.76 0
0.4 -0.8 0.64 0.64 0
0.5 0 0 0 0
0.6 as O.M O.M 0
0.8 2.4 5.76 5.76 0
1.0 4.0 16.00 16.00 0

\"
\320\276
- 16
0

Figure 3.17 An example of a Hermite curve representing a


segment of a parabola.

We compute and plot the coordinates of pointson the curve for a set of \320\270
values and substitute the values cf x(u) into the classical equation for the

hyperbola, computing the corresponding true values of j\302\273.Then, we compare


these to the y(u) values and find a deviation or approximation error and
tabulate it. The tabulated error is simply the differencebetween values.
\321\203 This is
greater than the perpendicular distance betweenthe two curves, which is a
more appropriate measure of the error.
Figure 3.20 shows a similar approach. Here we represent the right side of
the hyperbola by two Hermite curves,computing the values
\317\201 and geometric
coefficients as before. The error or deviation of this curve from the true
hyperbola is much less than that of the model in Figure 3.19.
Finally, we investigatea Hermitecurve approximation of a circular arc.
The match is not exact,but the smaller the angle subtended by the circular
ConicHermiteCurves 71
\342\226\240

Parabola, x1 =
\342\200\224
\321\2030

/5
= 0,5

dy
X >'
dx

-1.5 2.25 -}
-1 1 -2
0 0 0
1 1 2
2 4 4
2.5 6.25 5

P == F[Po P, 2(P2 - Po) 2(p,


- \320\240\320\263)\320\242

u x(u) :v<\302\273) )' True Error

0 -1.5 2.25 2.25 0


0.2 -0.7 0.49 0.49 0
0.4 0.1 0.01 0.01 0
0.5 0.5 0.25 0.25 0
0.6 0.9 0.81 0.81 0
0.8 1.7 2.89 2.89 0
1 25 6.25 6.25 0

Figure 3.1B Another example of a Hermite curve representing a segment of


a parabola.

arc,the betterthe approximation.


Figure
3.21 shows that for angles less than
45\302\260,bRIR is less than 5 \317\207
10\"6, more than adequate for mosl applications.
There are two different approaches to this problem, both of which are based
on the
relationship expressed in Equation (3.40). Figure 3.22shows the first
approach; il puts p(0.5) exactly on the true circle.The geometry of this
situation is very simple, and we can easily compute the value of p:

R(l
- cos 1 - cos \316\270
\316\230)
~ ~
P
R tan sin
\316\270 \316\270 tan sin
\316\270 \316\270

A few trigonometric substitutions quickly reduce this to

=
cos \316\270

P (3.41)
1 + cos \316\270

This allows us to write directly the Hermiteequation approximating a


circular arc:

4 cos \316\270 4 cos \316\270


=
P(H) UMfp\302\253 p, (p2~Po) (Pi\" P2)
1+ 1 + cos \316\270
72 Hermite
\342\226\240 Curve

Hyperbola:

x2 - / + I=0
=
\317\2010.91

\302\261x .V

\320\255.95
0 1 0
2 1.24 0.89
4 4.12 0.97
6 6.08 0.99
8 8.06 0.99

10 10.05 0.99

P
==
FU>o P, 4p(Pi - Po) 4P(P,
- \316\241\316\271)\316\223

\320\270 x(u) \320\257\302\273) j True Error

0 -10 10.05 10.05 0


0.2 -4.43 4.26 4.54 0,28
0.4 -1.21 1.86 1.57 0,21
0.5 0 1 1.00 0
0.6 1.21 1.36 1.57 0,21
0.8 4.43 4.26 4.54 0,28
1 10 10.05 1005 0

Figure 3.19 An example of a Hermite curve approximating a segment of a


hyperboJa.

The alternativeapproachis also shown in Figure 3.22. It uses the familiar


relationship p(0.5)= 0.5(p0 pi) + +
-
0.125(\321\200\320\271 pi)- Again, the geometry of the
elementsis simple, and we find
very

R(l~cos6)( p2-p
0.125pS = 2 sin \316\270 \\Jp2~Po'

= 4^(1-cose)/p2-p0
PS
sin \316\270 \\lp2-po1

The same reasoning yields


4R(l-ca&Q)( p! - \317\201
\342\200\224
siuG V 'pi \321\200\320\263\"

We then assemble all the elements into the completeHermiteequation:


'
4ft(l-cos8)/ 4^(1
\321\200\320\264-\321\200\320\270
\\ -cose)/ p,-p2
p(w)=UMr po \317\201 - \"
sin \316\270 Pol
\342\226\240p2
sin \316\270 >pi p2
Conic Hermite Curves 73
\342\226\240

0 0000)
0 0199)

Hyperbola: x1 - y1 + I = 0

\302\261x )'
dx

0 1 0
2 1.24 0.89
4 4.12 0.97
6 6.08 0.99
\316\270 8.06 0.99
10 10.05 0.99

Segmenl 1. = 0.5601
(\302\267

'2.0000' 0.6180
Po' 2.2361
Pi
.0009

Segmenl 2, = 0.5679
\317\201

/2.0000\\ 10.0000' 3.4560'


Po' Pi
= Pi =
U.2J6lJ 10.0499 3.5384.

\320\270 *.\302\253) \316\234 True


\321\203 Error

0 0 1 1 0
0.2 0.2861 1.0400 1.0401 0.0001
\316\225
0.4 0.6062 1.1692 1.1694 0.0002
I 0.5 0.7861 1.2719 1.2719 0

VI
\320\257
0.6 0.9831 1.4022 1.4023 0.0001
0.8 1.4400 1.7530 1.7532 0.0002
1 20000 2.2361 2.2361 0

0 2.0000 2.2361 2.2361 0


0.2 2.7796 2.9541 2.9540 0.0001
\316\225
0.4 3.9926
3.\316\2226\316\2522 3.9924 0.0002
\316\231
0.5 4.5552 4.6637 4.6637 0
0.6 5.3609 \316\257.4534 4.4534 0
in
\320\273
0.8 7.3710 7.43\316\2326 7.4385 0.0001
1 10.0000 10.0499 10.0499 0.0001

Figure 3.20 Another example of a Hermitecurve approximatinga


segment of a hyperbola.
74 Hermite
\342\226\240 Curve

180
L -hR/R
\316\235
\316\233

150
\\\\
\316\263
/ *tf
\\\\
\\\\
N \321\203

V
120 SR \316\227
-6R/R

\317\20690 \316\275
/ V
^t
60 4

30 4-
^^~ =L~~~
0
10\"1 \320\256\"1 10\"3 10\"' 1(TS 10\"6 10\"1 10\"a 10-9 \316\231\316\237\"10

5\320\231/\320\232

Figure 3.21 Another Hermite curve approximation of a


circulararc.

The maximum deviation Hermite curvefromthe true circleoccurs


of the
at two places (see Figure 3-22). Adjusting the magnitudesofthe tangent
vectors so that p(0.5) falls slightly inside the circulararc reduces the deviation

somewhat.This is equivalent to reducing the \317\201


value.Therefore, from Figure
3.23. we obtain
- cos -
\316\270 \316\270
=
(1 5RIR)cos
P (3.42)
sin2 \316\270

The magnitude of the deviation depends on \316\270


(see Figure 3.21).
For any specific angle an
\316\230, increase of 5RIR at p(0.5) causes a decreasein
the maximum in the interval \320\270
deviation = 0.5 and in the interval \320\270
= 0 to \320\270 -

0.5 to = 1.
\320\270 a
is value
There of 5RIR that makes the three maximum

deviations equal. This value is different for every value of \316\230.


The smaller the angle
an arc subtends, the smallerthe deviation of the curve from the true circular
arc. This relationship is also plotted in Figure 3.21. If 5R/R ~ 0,then Equation
(3.42) reduces to
Equation (3.41).

3.9 COMPOSITE HERMITE CURVES

Joining two or more curve segments together forms a continuous composite


curve. We start the discussion of composite curves and their continuity by
Composite Hermite Curves 75
\342\226\240

4 cos \316\270
4R(l-coSfl)(p2-p0)
Po = (Pi
- or
1 + cos \316\270 Po)
Sin 0 | P; - Pol

4 cos \316\270 4R(I -costfjip,


- p:)
p\302\267; (p,
'\"
- \"'
p;) or
I + cos \316\270 sin \316\270 |p, -
p2|

Figure 3.22 Deviation of a Hermite curve from a true circular arc.

investigating how to blenda new curve between two existing curves, forming a

composite curve consisting of three segments (see Figure3.24). Given the

geometric coefficients of two disjoint curves B, and B3, we must find the
coefficients
geometric B2 of a curve joining them so that the two curve segments
meeting at each of the joints are tangent to the same line. We let B] - [pi(0)
PiC1) p\"(l)]r
\316\241\317\212(\302\260)
and B3 = [p3(0) p,(l) p5(0) modifying
\321\200\321\215\320\270(1)]',
the
notation scheme to permit the use of a subscript to identify a specific curve
segment.Later, we modify this further point is uniquely
so that each identified.

First, the appropriate endpoints must coincide; this means that \321\200\320\263(0)
=

pi(l) and p2(l) - p3(0).Furthermore,although the tangent line at each end of


the new curve must match the tangent line of the adjoiningcurve, the

magnitudes of
adjoining tangent vectors can be different. In fact,an infinite num-
76 Hermite
\342\226\240 Curve

R(t - cos\320\262)
- SR [(I - -
cos \320\262 (SR/R\\]
' \342\226\240\342\200\224
= \342\200\224-
\317\201
'- s \342\226\240
4\342\200\224 \321\201\320\276\320\265
\316\262
R Lan \320\261
sin \320\261 sin2 \316\270

Figure 3.23 A Hermite curve approximation of a circular arc.

ber of segments satisfies the tangency conditions. However, the unit tangent
vectors must be equal. This means that

=
\320\264\320\260*^\320\246
and
\320\246(1)-\320\254*\320\251

The B2 matrix, in terms of the adjacentcurves, is

B2 =
*\302\267>*->\302\260m *s
where a and b are positive scale factors. We are free to vary them to change
the internal shape of the new curve.
The following expressiondescribesany cubic Hermite curve smoothly
and continuously blended with preceding
and succeeding curves:
'

= m nP,-+.(0)
\321\202\320\273
p--l(1)
\320\273 h
p:'-l(0)
\320\222
P,--.(l)
a.,-^-^ b(^-^
Composite Hermite Curves 77
\342\226\240

\316\275,\317\200\316\271

\316\271\316\277\316\257
\317\201;

Figure 3.24 Blending a curve between two


existing curves.

With this small exercise complete, we can now elaborate on the general
conditions of continuity at a joint betweentwo cubic Hermite curves and the
conditions arising when two or morecurves are joined end-to-end forming a
string of a
curves, called compositecurve. Joining two curve segments at a
common point so that their first \316\267 parametric derivatives are equal at that
point creates a condition of continuity called nth-order parametric
denoted
continuity,
as C\". A less restrictive form of nth-ordercontinuity is nth-order

geometric continuity, denoted as G'.The curve definedpreviously has or


\320\241

first-order geometric continuity, because corresponding tangent vectors


must be in the same direction but not of the samemagnitude.If p?>(0) = p\"(l)
and pi'il) = p\"(0), then the continuity at both joints would be C1, or first-
order parametric continuity. Clearly, only one Hermite curve joiningcurves
1 and 3 satisfies \320\241continuity, whereas infinitely many satisfy G1.
Geometric continuity is defined in terms of the intrinsic differential
properties of a curve or surface, such as the unit tangent vector and curvature.
These properties are independentof the parameterization, parametric

continuity
absorbs more degrees of freedom lhan geometric continuity. If the

conditions producing parametric continuity are relaxed while maintaining

geometric continuity, then additional degrees of freedom becomeavailable


to controlthe curve's shape. For example, Barsky's Beta-Splines offer extra
shape controlparameters by taking advantage of this distinction. Similar
methods apply as well to surfaces.
In general, a curve is either continuousat all points,or it has one or more
points of discontinuity.The simplestkind of continuity a curve can have is C\302\260
continuity, which ensures that there are no gaps or breaks between its begin-
78 Hermfte
\342\226\240 Curve

ning and ending points. If what is to be a single curve doesnot have


alleged
C\302\260
continuity, then it must really be two or morecurves, depending on the
number of gaps.
Two cubic Hermite curves common endpoint have at least C'1
joined
at a

continuity
at that joint. They comprise the simplest kind of compositecurve.
We note that the term curve alone will often mean a curve segment or
composite
curve. The meaning should be clear from the context. Figure 3.25
shows
examples of composite curves and C\302\260
continuity. Figure 3.25a
obviously
consists of two distinct and separate curves, whereasin Figure 3.25b,

they are joined and form a compound curve with C\" continuity at the joint.
Figure 3.25c is a compound curve consisting of three segments,againwith C\302\260

0)

Figure 3.25 Composite curves and


geometric continuity.
Composite Hermite Curves 79
\342\226\240

= =
P,l1l P2IOl [Pj{0)
^\320\222\320\263 pJfO) \317\201'|\316\231)\316\231\316\223
\320\240\320\263\320\237|

T0
P,|0)

\316\222, \317\201\302\273(\316\237\316\271
\316\222\",\\\\)\316\231\316\244
\316\231\317\201,\316\231\316\277\316\271
\317\201,{II

Figure 3.26 Conditions required for G\302\260.

continuity at the joints. Figure 3.25d is an arbitrary shape defined with an


arbitrary set of segments to form the closed composite curve in Figure 3.25e.
When two curves join end-lo-endat a common point,as in Figure 3.26, the
coordinates of that point are a commonsubsetof the geometric coefficients
of both curve segments. We observe that the C\302\260
continuity thus obtained
does not affect the shape of either curve
segment.
\320\241
continuity between two curve segments requires a common tangent
line at their joiningpoint. Figure 3.27 is an example of \320\241continuity and
indicates the mathematical conditions that must be met.Themagnitudes of

the tangent vectors at p,(l) = p2(0)donot have to be equal, but the ratios of
their componentsmust be equal.

=
\320\240,\320\237)
\320\240\320\263<0|

\317\201,\316\271\316\220)

Bi -\316\231\316\241\317\212(0)\317\201\317\212{1)\317\201*{0)\316\2743\316\2311)\316\231\316\223
P,(0|

P,I1) p*(0)
\320\240\320\240,(\320\250 pj(1)]r = kp5(0)
P;

Figure 3.27 Conditions required for G' continuity.


80 Hermite
\342\226\240 Curve

It is apparent that we can join any two curves and then rotate them about
their common point until they are tangent to each other while preservingthe
internal shape of each. Whereas \320\241
continuity implies sharing a common
point and tangent line at the junction of two curves, G2 continuity also
requires that the two curves possess equal curvature at their joint.To ensure
this, the following conditions must exist:

P,{1) = P~.(0)
p?(l) =
/r,p?+1(0)

=
pr(D *2P?U0)
The relationship between the parametricsecondderivatives ensures that yf
~ y1\\ at their
\316\271 common
point. One more condition must be met for G2

continuity:
The osculating planes of the two curves must coincide,or their binor-

mals must be collinear. However, the usefulness of G2 continuity is limited.


For example,most mechanical parts do not requireit,since fillets or rounded

edges usually blend directly into plane faces.


BEZIER CURVES

Some curve-defining techniques, such as those using the Hermite basis


functions, interpolate a given sel of points. This means that the curve produced
passes exactly through those points. Other techniques define a curve that

only passes near or approximates the given points.Interpolationtechniques


like the Hermite basis have certain disadvantages when incorporatedinto an
interactive geometric-modeling system. They usually do not give the user an
intuitive sense of how to changeor controlthe shape of a curve. For

example, changing
the shape of a spline-interpolated curve by moving one or
more of the interpolating points may produce unexpected, if not
undesirable,penurbalions and inflections, both locally and globally.Tocontrolcurve
shape in a predictable way by changing only a few simple parameters is more
desirable. The Bezier curve
partially satisfies this need.
P. Bezier, who was familiarwith the work of Ferguson and Coons and their
parametriccubiccurve and bicubic surface interpolating techniques, set out
in the early 1960sto find what he hoped would be a mathematical formal
moreamenable to the designer and the design process.The resultof his work
was the UNISURF system, used by the Renault companyin the 1970s to
design the sculptured surfaces of \321\202\320\260\320\273\321\203
of its automobile bodies. At the heart
of the UNISURFsystem were the curves and surfaces that bear his name.
Bezier started with the principle that any point on a curve segment must

be given by a parametric function of the followingform:

p(\") =
2>A\") ^iwl (4\320\233>
1= 0

B1
82 Bezier
\342\226\240 Curves

Figure 4.1 Cubic Beziercurves.

where the vectorsp, represent the + 1


\316\267 characteristic polygon
vertices of a
(see Figure4.1).These vertices are control
the points. He then set forth the
properties the f:{u) that basis functions must have and lookedfor specific
functions to meet these requirements. Here is a review of these properties
and the reasons for them.

1. The functions must interpolate the first and last vertex points; that is, the
curve segment must start on p0 and end on p\342\200\236.
It is up to us to eontrol the
startingand ending points of a Bezier curve.
2. The tangent at po must be given
- p0, and the tangent at p\342\200\236
by pi
-
by p\342\200\236

This,
p\342\200\236_i. of course, gives us direct control of the tangent to the curve at
each end.
3. Requirement 2 is generalizedfor higher derivatives at the curve's end-
points. Thus, the secondderivative at \317\201\317\205
must be determined by pn, p{,
and p2. In general, the i'th derivative at an endpoinl must be determined

by its r neighboring vertices. This allowsus virtually unlimited control


of the continuity at the joints between curve segments of a composite
Bezier curve.
BezierBasisFunctions \342\226\240
83

be symmetricwith - u).
4. The functions f,(u) must respect to and
\320\270
(1 This
means that we can reverse the sequence of the vertexpoints defining the

curve without changing the shape of the curve.In effect,this reverses the
direction of parameterization.

4.1 BEZIERBASISFUNCTIONS

Bezier chose a family called Bernstein polynomialsto satisfy


of functions
these properties. He originally chose a form of vector representation that
used the sides of the characteristic polygon. However, we will use the notation
introduced by Forrest (1971), which uses the vectors defining the polygon
vertices. It is a more compactscheme, with greater intuitive appeal. It turns
out that the functions Bezierselecteddependon the number of vertices used
to specify a particular curve.To indicatethis,Equation(4.1)becomes

=
\321\200(\320\270) \320\270\320\265[0,1]
2\321\200\320\225-\320\224,.\342\200\236(\320\270) (4.2)

where the basis functions are

(4.3)
BiB(u)=Qu1(l-u)-i
and where

denotes the familiar binomial coefficient function, or binomialdistribution


from probability and statistics:

n\\

\342\200\236if
i\\{n-i)\\

The following conventions apply: If/ and \320\270


equal zero, then \302\253'=l,and 0! = 1.
If there are (n + 1) vertices, then the function B,\342\200\236
(u) yields an nth-degree
polynomial.
Expanding Equation (4.2) for curves defined by three, four, and five

points produces the following polynomial forms:


For three points, =
\316\2672, and

BQ2 = {\\-uf
S,,2 = 2\302\253(l-\302\253)
84 Bezier
\342\226\240 Curves

so that

= - -
p(\302\253) (1 uf +
2u(l
p\342\200\236 \302\253)p,
+ \302\2532p2 (4.4)

-
For four points, \316\267 3, and

\320\224\320\274=(1-\320\270)3

=
S,.3 3\302\253(l-\302\253)2

=
B2i3 3u2(l-u)

so that

= - + - + - +
p(\302\253) (1 \302\253)3
po 3\302\253(1 u)2 p, 3\302\2532
(1 \302\253)p2 w3p3 (4-5)

Using this cubic Bezier curve, a segment of a parabola with endpoints


at p(,
and p3 can be modeled exactly,if the end tangents intersect at pi so that p, =
(p3 + 2p,)/3.Theseconditionsproduce
+ and p2 = = -
(po 2pp)/3 p(\302\253) (1 w)2
+ - +
po 2(\302\253 \302\2532)pi \302\2532p3,
which is exactly the form of Equation (4.4).
For five points,
= 4,
\316\267 and

p(u) = (1
- po
\302\253)4 + 4u(l - \302\253)3
p,
+ 6\302\2532(1
-
w)2 p2 + (1
- + \302\2534p4
4\302\253\321\217 \320\270)\321\200\321\212 (4.6)

Matrix Form

For the cubic Bezier curve,\316\267


=
3, we write Equation (4.5) in matrix form as
follows:
po
= Pi
p(\302\253) [(l-3\302\253 + 3\302\2532-\302\2533) (3\302\253-6\302\2532+ 3\302\2533) (3u2-3u3) u3]
P2
\316\241'

or as

-1 3 -3 1 po

w2 w
3 -6 3 0 P.
p(\302\253)= [w3 1] -3 3 0 0 P2
1 0 0 0 \320\240\320\267

Letting

U=[\"3 \320\2702\320\270
1]

P=[po p, p2 \321\200\320\267]7\"
Bezier Basis Functions 85
\342\226\240

-1 3-3 1
=
3-630
M\342\200\236
-3300
10 0 0

we can write this equation even more compactly as


p(ii)= UMBP (4.7)

The subscript on the cubic Bezier basis transformationmatrixMB


distinguishes it from the Hermite basis transformation matrix MF. The inverse of
MB for the cubic Beziercurve is

0 0 0 1

1
0 0 1
3
Mi' =
1 \342\226\240>
0 1
\320\267\"\320\267\"

.1 1 1 1

Obviously, the compositionof thesematrices varies with the number of


+ 1. So, for example, for \316\267
vertices, \316\267 = 4 we have

\320\270\320\263
\320\270
U=[\302\2534 1]

1 -4 6 4 1
-4 -12 -12 4 0
=
\320\234\321\217 6 -12 6 0 0
-4 4 0 0 0
1 0 0 0 0
po

Pi
P =
P2
\320\240\320\267

LP4J

Bezier-Hermite Conversion

Equation (4.7) is similar to Equation (3.20)for Hermite curves, and at this


point it may occur to you that we can also represent a cubic Hermitecurve
with a sequence of four control points. Figure4.2presents the details. These

points are denoted as p0, pi, p2, and p3, where p0 and p3
are the curve end-
86 \342\226\240
Bezier Curves

P0u=3(Pl-^,)

Figure 4.2 The Hermite equivalentof a cubic


Bezier curve.

points.
The two interior points contribute to the required tangent vectors in
the following way:

Po=*o(pi-po) Pi=Mp3-p2) and


where and ki are arbitrary
\320\272\320\276 scale factors introduced to controlthe scaleof
the polygon and, thus, the magnitude of the tangent vectors, are not which

drawn to scale in the figure.The matrixof coefficients is geometric

\320\263
B=[p0 p3 Mpi-P\") ^\321\200(\321\200\320\267-\321\200\320\263)]

For kO = k, = 3, the curve is identicalto the cubic B6zier curve defined by p0,
pi, p2i and We see
\321\200\320\267\302\267
that this is true from the following: The general
polynomial expression for the tangent vector at any point on the cubic Bezier curve
is

p\" (u)
=
(-3\302\2532
+ 6u -
3)p0 + (9u2
- 12u +
3)p,
+ (-9\321\2132
+
+ \320\262\320\270)^
3\302\2532p3

At =
\320\270 0, p\"(\302\253) at \320\270
= =
3(p,
-
1, p\"(l) = 3(pj
pu), and
- p2).Thus, if a cubic

Bezier curve is given by the four control points [p0 p, pj p3], then the
equivalent Hermite basis curve has geometric coefficients [p0 p3 3(p|
-
- curve is given by the geometric
po) 3(p3 p2)]. Similarly, if a cubic Hermite
coefficients[p0 p, pg p'/], then the equivalent Bezier curve control
points are
Bezjer Basis Functions 87
\342\226\240

Po iPo
+ Pi P\" Pi
ypo 3
We can express this conversion between the Hermite and Bezierformsusing
rather simple matrix algebra:
B = M?'M\342\200\236P (4.8)
or
P = M^MfB
(4.9)
where
1 0 \317\213

1 \317\213 0 1
0 \317\213 \317\213 1
=
\320\234,\320\263'\320\234\320\273 and =
\320\234\320\2711\320\234/\320\263
-3 3 0 \317\213
1
\317\213 \320\236
0 0-33
1
\320\236 \317\213 \320\236

Invariance under Affine Transformations

A Bezier curve is invariant under an affine transformation (translation,


rotation, scaling, or shear). This means that the following two methods must
produce the same point:

1. Compute the point

=
\316\241(\";) \316\247\317\201151.4\",)
, ^(1

=
and then apply an affine transformation A such that p'(t*,) \316\221\317\201(\316\257\316\257;).

2.
Apply
an affine transformation A lo the control points such that
p'= Ap(,
and then evaluate the curve represented by these transformedcontrol
points at\302\253,, where

=
p'(\302\253i) v'.BU\".)
\316\243

Therefore

It
=
\320\230\321\200(\320\275;)
\302\243\320\270\321\200\320\224.\342\200\236(\320\275;)
1=0
88 Bezier
\342\226\240 Curves

This allows us to translate,rotate,and scale


property a Bezier curve while
preserving the relationshipbetweenevaluated points
and the corresponding
value of the parameter.
A Bezier curve is also invariant under an affine reparameterization, or

parameter transformation. The transformation from the unit interval [0,1]lo


the
arbitrary interval [a,b] is an affine transformation. If \320\270 \320\265
[0,1] and \316\275

e then the transformation is \320\270


= -
(\316\275 a)l(b
- a). We this
[a,b], express

algebraically
as

Bezier Curve by Geometric Construction


We can curve as the locus of points producedby a simple
create a Bezier
recursive geometric construction derived from work by de Casteljau. Bezier
generalized this method and developed the explicitnonrecursive expression
of Equation (4.2). We begin with the constructionof a seconddegreeBezier
curve (see Figure 4.3).
Given any three points A,B,C, we draw the sides of the open polygon AB
and \320\222\320\241
(see Figure 4.3a). For successive in the
\320\270 values of
closed interval
[0,1] we construct points D and = BEIBC - u.
so
\316\225 that ADIABFinally,
on

D\302\243we construct F so that DFIDE = u. F is a point on the curve. Repeating


this process for other values of \320\270
generates a sequence of points that defines
the curve(in this case, a parabola). Notice that we must be directionally
consistent in the way we subdivide the polygon edges.
The vector description of this process is (see Figure 4.3b):
=
p(\302\253) pc +
-
\302\253(pi Pi)
-
Pu) + \"[pi + \320\270(\321\200\320\267
- -
po \"(pi - po)]
Rearranging terms yields

po + 2h(1- \320\275)\321\200]
=
(1
\321\200(\320\275)
- uf
+ \302\2532p2

Here we begin to see evidence of the Bernstein polynomials.


A similar construction applies to Bezier curves of any degree, and the
control points are not constrained to a plane. Figure4.4illustrates the process as
it applies to the construction of a cubicBeziercurve. Here wc are given any
four points A,B,C,D and draw the three sidesof the open polygon
AB,BC,CD (see Figure 4.4a). For successivevalues of the
parameter, we
construct points E,F,G so ih&i A El \320\220 = BF/BC
\320\222 = CGI CD - u. Next, we
construct points \320\224/so that EH/EF= FUFG-u. Finally, we construct point /so
Control Points 89
\342\226\240

<a)

Figure 4.3 Geometric construction of a Bezier


curve: = 2.
\316\267

that HJIHI= u. Point/ is on the curve.Continuing this process produces a


sequence of points whose locusdefines the curve. Figure 4.4b shows how
this, too,can bedescribedwith vectors, from which the Bernstein
polynomials
emerge; thus, we find the folio-wing unwieldy expression
=
p(u) po + \302\253(pi-po)+\"[pi +\"(p2-pi)-po-\"(Pi~Po)]
+ + -
Pi) +
\302\253{pi \320\270(\321\200\320\263 \"[P2 + -
pi)
\320\247\321\200\320\267
~
Pi
- \"(pi- Po)]
-
po
- -
po)
\302\253(\317\201,
- +
u(p2
\302\253[\317\201,
-
pi)
- po
-
\"(pi
-
Po)]l
which reducesto
- -
w)3 po +
- +
p(\302\253)
=
(1 3\302\253(1 w)2 pi 3\302\2532
(1 u)p2 + w3
p3

4.2 CONTROL POINTS

The control points are the coefficientsof the Bernstein polynomial basis
functions (see Equation [4.2]).When we connect these points in the order of
90 Bezier
\342\226\240 Curves

Figure 4.4 Geometric construction of a Beziercurve: = 3.


\320\273

their numbering with straight lines, we form the Bezier control polygon.All
points on a Bezier curve lie within the convexhull of the control polygon.
The partition of unity property of the Bernstein basis functions, that is

gives to the convex hull property In moreformal


rise mathematical terms, a
convexhull is the smallest convexset that contains a given set. A straight line
connectingany two points in a convex set lies entirely within that set.
The polygon formed by the control points servestwo functions: It
establishes the initial shape of the curve and then furnishes a framework for
altering the curve. Figure 4.5 shows two examples of cubic Beziercurves. In

Figure 4.5a, the disposition of points generatesa smooth,uninflected curve,


while in Figure 4.5b, the disposition of pointsgenerates an inflected curve. In
both cases, the curves are tangent to the lines defined by p,
- and
\317\201\317\203
-
\321\200\321\215
\321\200\320\263.
Control Points \342\226\240
91

Figure 4.5 Cubic Bezier curves.


92 Bezier
\342\226\240 Curves

(a) (0

(b) id)

Figure 4.6 Bezierbasis functions;(a) Three points,


=
\316\2672; (b) Four points, = 3;
\320\277 Five
(\321\201) points, n= 4;
(d) Six points, \317\200
= 5.

As is the case for Hermite curves,the basis functions are the key to the
behavior of Beziercurves.Figure4.6shows basis-function curves Bln for \316\267
=

2,3,4, and 5. For the examples in Figure4.5,the first control point p0, whose
contribution to the curve'sshape is propagatedby B05 (\302\253),is the most
influential when = 0. The
\320\270 other control points do not contributeto p(\302\253)for \320\270 =

0, since iheir associated basis functions are eachequal to zero. A


symmetrical
situation occurs for p., when\302\273 = 1. Control points pi and p2 are most
influential when = 1/3
\320\270 and 2/3, respectively.
For any Bezier curve,eachcontrolpointp,is weighted by its associated
basis function. As we have seen, when\302\273 0,p0 is given a weight of 1.0, and \317\201,
=

through a weight
p\342\200\236 of zero. Less weight given to p0 and more to each
is
succeeding p, as \320\270
increases, reaching a maximum weight for each p, when \320\270
becomes i/n. Then all other weights decay gradually to 0 as the weight of p\342\200\236

reaches 1 when =
\320\2701. We observe a shift in the influence of each point (each
polygon vertex) as the parametric variable moves through its rangefrom 0to
Control Points 93
\342\226\240

1. This means that changing the posi lion of controlpointp, has the greatest
influence on the curve's shape at and near the parameter value i/n.
ability to modify a Bezier curve is demonstratedin Figure
The 4.7- In

Figure 4.7a, moving point p, to p5 pulls the curve toward that vertex. The
effect canbe weaker or stronger depending on the distance (or direction)
the point is moved.In Figure 4.7b, we see evidence of an interesting
degree of freedom. By specifying multiply coincident control points at a
vertex, we pull the curve in closer -and closer to that vertex. To do this, a
curve-generating might simply
programrequire us to specify a positive
integer for each The integer indicates
vertex. the number of coincident
points at a vertex. adding points coincident
By with existing vertex points,
we increasethe degreeof polynomial representing the the curve, in this
case without changingthe number of sjdes and shape of the characteristic
polygon.
If first the and last points of the characteristic polygon coincide, the

arrangement produces a closed curve. The closed curvein Figure 4.8a has C1
continuity where the endsof the curve join together at p0 and p5.This
continuity is produced by making points \317\201,,p0, ps and p4 collinear. A similar
condition exists in Figure 4.8c. However, the curve in Figure4.8bexhibits only
C\302\260
continuity.
The shape of a Bezier curve is unaffectedby the direction in which we
traverse the control points. We are free to order them in two ways: p0, p,,..., p\342\200\236

or _ i,...,
p,\342\200\236
p\342\200\236
The curve
\317\201\316\261.
looks the same either way; only the direction of
parameterization is reversed. We express this property as

= -
J]= (u)
p,-S;,\342\200\236 X u)
\321\200\342\200\236_|\320\224;.\342\200\236(1
1 0 1= 0

The proof of this followsfrom the basis function identity^,,


=
(1 -\302\253).
(\302\253) #\342\200\236-,.\342\200\236

Fowler Barlels
and (1993) describe a curve-shaping method that permits
direct manipulation of certain geometric properties at any selection of points
on a curve of arbitrary degree and basis. The method affects the shape of a
curve at one or more points by establishing and solving an underdetermined
system of constraint equations. The constraints correspond to position,tan-
gency, or curvature conditions at the points.
The convexhull property expedites determination of the intersection of
two Beziercurves.It is a simple matter to find the min-max box enclosing
eachcontrolpolygon and then to check for an intersection betweenthe two
boxes. If the boxes do not intersect,then neitherdothe curves. This

preliminary test significantly increases the speed and of


efficiency computing
intersections.
94 Bezier
\342\226\240 Curves

Figure 4.7 Cubic Bezier curvesand


their modification.
Control Points 95
\342\226\240

0,0 \342\226\240
\342\200\224

e,q-

<a) <c)

Figure 4.B Closed Bezier curves.

Degree Elevation

Adding another controlpointto the definition of a Bezier curve raises its


degree by
one. We are motivated to do this if wc are not satisfied with the

original curve more freedom to achievean acceptable


and need shape. It is
best to add this point in a way that leaves the shape of the curve unchanged
(see Figure 4.9). After adding the point, we may move any of the points,
including the new addition, to alter the
shape. Because the new set of control
points'p, must initially generate the same curve as the original set,it must be
true that

=
+ 1(\320\270)
\320\245'\321\200^\321\217 \320\245\321\200,\320\224/.\321\217(\320\270)

or

\" +1 / \316\271

^-\"r'-^Ip^V'a-\\"

Multiplying the right side of this equation by


+
\320\270
(1-\320\271) produces
96 \342\226\240
Bezier Curves

Figure 4.9 Degree elevation: = 3


\317\200 to = 4.
\316\267

=
-\302\253)-']
\316\247^\316\267)1)\302\2534\316\220-\302\253)\"+,\", \316\243\317\201.(\[\302\253,(1-\")\"'\316\271\",+\302\253,\"+\316\271(\316\220")

The summation on the right side of this equation produces2(n + 1) terms


and on the left \316\267
+ 2 terms. We rearrange and group terms on the right side
so that we can compare and equate the coefficients ofu' (1-u)\"f,~' on both

sides. Doing this, we find

Expanding the binomialcoefficients


and
simplifying the results yields

,=o n+i (4jo)


><=\320\250\321\200-|+(1^)\321\200'
This tells lis that we
compute a new set of controlpoints'p, using
can the

original control
points and piecewise linear interpolation at the
parameter
values il(n + 1). Figure 4.9 shows Che results of raising the degree of a cubic
Bezjercurve while maintaining the original shape. Clearly, after raising the
degreeand before moving any control points to adjust its shape,the curve is
defined by more information than necessary.
It may be necessary to repeat this process several times to establish
sufficient modeling flexibility The general formula for producing a new set of
controlpoints for r degree elevations follows directly from the previous
discussion:
Truncating and Subdividing 97
\342\226\240

n + r
i

Kocic (1991) a degree elevation technique


presents that is a generalized
form of this method. Thetechni que is iterative can be and
applied to tensor
products and triangular Bezier patches, a s as to curves. well

Degree reduction usually is Jiot a good idea. However, approximations


based upon a reversal of the processabovearepossible under
special
circumstances. Watkjns and Worsey (1988) have developed a method that combines

subdivision with degree reduction. An


important
use of such a procedure isin
intersectioncomputations and in computer graphics for use in rendering.

4.3 TRUNCATING AND SUBDIVIDING

Truncating a Beziercurve is necessary when the modeling process itself


eliminates parts of a curve that no longer belong to the active model.
Subdividing techniques are used to expedite the computation of points on a curve
or to increase the number of control points by creating small curve segments
without initially changing the shape.We will look at a recursive subdivision
method and a subdivision by geometric construction.

Truncating a 5econd-Degree Curve


The truncation and subsequent reparameterizatjon transformation for a
second-degree Bezier curve proceedsas follows: Given the three control

points defining the curve,we can find three new control points defining a
segmentof this curve in the parametric interval \320\270
\320\265 where
[u\342\200\236u,].
the
interval is normalized to a new parameter so
\316\275 that e [0,1]
\316\275
(see Figure 4.1\317\213).
In

matrix form we write

p(H)=UM*P
where
U= [w2 \320\2701]

1 -2 1
MB= -2 2 0
1 0 0
98 Bezier
\342\226\240 Curves

Figure 4.10 Truncating a


second-degree Bezier curve.

P = Pi
P2

Let U = VT,whereV = [\316\2752 \316\2751]. so that

p(v)
= VTMflP

= VM\342\200\236P'
This means that

TMSP=MBP' and \320\240'-\320\234\321\200'\320\242\320\234\320\262

where

\316\224\316\267,20 0
T = 2\316\274;\316\224\316\274 \320\236
\316\224\316\274;

\320\275? \320\270, 1

(see the development of Equation (3.28],et seq.)and where

0 0 1

M^ =

Li \316\271lJ

so that
Truncating and Subdividing \342\226\240
99

-
uf 2iij + 1
=
\320\234\321\217'\320\242\320\234\320\264
\320\274,2-2\302\253(-+1 +\320\224\321\213((\320\274;-1)

-
. \320\270) 2u, + 1 + \316\224\302\2532 -
+ 2\320\224\302\253,(\320\274(-
1)

+ 2\320\274,-
\342\200\2242wf

-2uf + + \316\224\302\253;(-2\316\274,
2\316\271\317\212; + 1) uf + \320\270,-\320\224\320\274,

- -
-2\302\253,?+ + 2\321\213(-\320\224\321\213(-
+ \320\233\320\2702
2\320\274, 2\316\224\316\274,2 -\320\275
4\320\270;\320\233\320\270,
2\316\224\302\253,
\320\270? _ (4.12)

The control points for the truncated segment are

p;
\317\201'=[\317\201\316\214 \321\200\321\203\320\263

where

p'o = (1
- u,)2Po + 2u,
(L
-
w,)p, + \302\253,2p2
= - w,)(l - + + + + \"i\"/p2
pi (1 Uy)po (-2u,-h; \302\273,-u,)Pi

p2 = (1
- po
\302\253,)2
+ 2\302\253/l
-
u;)p, + \302\2532p2

For the special case of dividing this second-degreecurve into two


-
segments at 0.5,
\320\270 we have for iy, = 0, =
\321\211 0.5

1 \320\236 \320\236

= 0
0.5 0.5
\320\274-\320\231]\321\202\320\274\320\260 (4.13)
0.25 0.5 0.25
and foru, = 0.5,u;= l

0.25 0.5 0.25


0 0.5 0.5 (4.14)
0 0 1
Thus, the control-point transformations are
1 0 0 Po Pa 0.0 -s 0.5
\316\241

Po-s 0.5
= 0.5 0.5 0
Pi + \317\201,)
0.5(\317\201\317\205 Pl.O -! 0.5
0.25 0.5 0.25 p2 +
0.25(\317\201\317\2052\317\201,+\317\2012) P2.0-SO5

and

0.25 0.5 0.25 Po 0.25(pll + 2p,+p2) Po.0.5->1


P^0.5->1 0
\342\200\224 0.5 0.5 Pi 0-5(p0 + p,) =
Pl,0.5->1
0 0 1 P2 P2 . p2,f!5->1_

As expected, we see that _,,


=
\321\2001,\320\2645 pji0 _, a, and that = and
_, \320\276.\320\267
\317\201\317\214,0 \317\201\317\214 _,,
p'2 \316\2615
=
p'2.
100 Bezier
\342\226\240 Curves

Truncating a Cubic Curve

Truncating and reparameterizinga cubic Bezier curve proceeds in the same


way as outlinedabove for the second-degree curve. Given the four control
points defining the curve, we find four new control points defining a

segment of this curve in the parametric interval \320\270


e where
[u\342\200\236u,],
the interval is
normalized to the new parameter \316\275
such that \316\275
e[0,l] (see Figure 4.11).
Again, working in matrix form, we have the general expression p(w) =
UMsP,but now
u1 \320\270
1]

3 -3
-6 3
3 \317\213

0 \317\213

Po

Pi

P2
Lp3J

If we let U = VT, where


V = [v3 \316\2752\316\275
1]

then,again,

p(if)
= VTMsP = VMflP'

Figure4.11 Truncating a cubic Bezier


curve.
Truncating and Subdividing \342\226\240
101

This means that

TM = \316\234
\342\200\236P SF and F = \316\234
~i TM \342\200\236P

where

Auf 0 0 0

3u,Auf 0 0
T= Au]

3uf\\Uj 2utAu; All; 0


. u? u) II; 1

of
(see the development Equation [3.28] et seq.) and where

\"\317\2130 0 \316\223

0 0 \317\204- \316\231

=
Mfl'

\"Hi 3 3

so that

(1-\320\271,-)3

(l-u,f-(l-u,fAUl
\316\234\316\262'\316\244\316\234\316\262- - -
(1 2(1-\316\234/)2\316\224\302\253(-+(1-11;^
\316\227,-\320\243

- - -
(1 u;f -3(1- if,)2
+ 3(1
\316\224\316\267,- Au]
\302\253,)\316\224\302\2532

3u,(l-u,f

3i(,(l
- if,)2
+
(1
-
3u,)(l
- \321\211)\320\220\320\270,

3u,(\\
-
u,f + 2(1 - 3U/)(I- -
\302\253,)\316\224\302\253, (2
- 3u)

3u,(l - u,)2
+ 3(1\" 3u.)0
^
\302\253\316\266)4\";
-
3(2
-
3\316\271/,-)\316\224

-
3u?(l \320\270,) \320\270]

+ \320\270, +
\320\227\320\270)
(I -\320\270,) (2- 3\302\253,)\316\224\302\253, \302\2532(\302\253,
\316\224\302\253,)

- + 2f(, - + (1 - +
3u? (1 \320\270,) (2 \320\227\320\270;)\320\220\320\270, Au,)1
3\302\253,)\320\224\320\2752 \302\273,(\302\253,

3u? (1
- +
\302\253,) 3u, (2
-
3u,)Au, + 3(1 - 3u,)Au2
-
(u, + \316\224\316\271\316\271,)3
3\316\224\302\253\316\257 (4.15)

The control points for the truncated segment are

P'=[PO Pi Pi P'AT
102 Bezier
\342\226\240 Curves

where

pS = 0 - u,f po
+ 3u,(l -
u,)2 pL
-
+ 3\316\271\316\256(1
u,)p2 + \302\253fr3

pi
=
(1
-
u,f (I
- + (1
-
\320\270\321\203)\321\200\320\277 h,-)(2u, + u,
- \320\227\320\270^^\321\200!

+
ul(2ul + \302\253,-3u,-ti/-)p2
+
u^u;p_i

pi=
-
(I u,)(l
- u;)!po +
(I
-
\"y)(2u/+ \302\253,-3u,u,)pi

+ + - +
u;
\302\253\321\203(2\320\270,\320\227\321\213^^\321\200\320\263
\320\270(-\302\2537\321\200\320\267

= - - p, +
-
p; (1 u,-)3 p,j + 3uy (1 \320\270
If 3u7(l u,)p2+ ujpi

Recursive Subdivision

Recursively subdividing a Bezier curve s times producesa set of points on


the curve at Is intervals. The parameter length of each is approximately1/2S.
For computer-graphics applications subdivision continues until the segments
are small enough to plot as straight line segments or to display as a single
pixel. We
begin by finding p(0.5) on the initial curve, dividing it into two
smaller curves. Figure 4.12shows the resultsofthe first subdivision of a cubic
curve. This gives us only the end control points. To find all the controlpoin ts

for each of these two smaller curves,we perform the necessary parameter
transformations, repeating the subdivisionas often as necessary. Here is an
algebraic description of this process:
StepI. First, computewep(0.5)
= po/8 + 3pL/8+ 3p;/8 + p3/8.

Step 2. Then we use the general parametertransformation for segment \320\270

e [0,0.5] to compute P^. We have

Pi = Ms]T\342\200\236MBP

where, from Equation (4.15),

10 0 0

=
2 2
M\302\253'TeMH
\316\271 \316\271 \316\271
\320\276
4 2 4

A A A A
L8 8 8 8
Truncating and Subdividing 103
\342\226\240

Figure 4.12 Recursive subdivision of a


cubic Beziercurve.

so that

\"l 0 0 0 Po Po
I I
\317\205\317\205Pi 1
~2 ~2
(Po + Pi)
1 1 1
\317\205\316\2412
4 2 4 (p,, + 2p, + p2)
1 3 3
1 \320\240\320\267
8 8 8

Step 3. Finally, we use the general parametertransformation again, this


time for segment e
\320\270
[0.5,1], to compute its Pi,. We have

=
\321\200; \320\274\320\271%\320\274\321\217\321\200

and

111!
8 8 8 8
\320\276
1 I I
=
\320\234^\320\242\320\254\320\234\320\222
4 2 4

ooii
2 2
.0 0 0 1.
Therefore,
104 Bezier
\342\226\240 Curves

3 3 1
Po -(p0 + 3Pl + 3p2 + p3)

\320\276
1 A I + p3)
Pi
P> = 4 2 4 ^(Pi+2p2
(4.16)

\302\273 \316\277 P2 + \320\240\320\267)


\316\227
2 2 ^(P2
0 0 0 1 LPa. pi

All that really interests us computationallyin Steps the


2 and 3 are
intermediate control points, because we already know the endpoints of each
segment. Now we can find the midpoints of each of these two curve segments by
repeating this process.

Subdivision by Geometric Construction

Bezier devised a subdivision technique by geometric construction to find a


point on a curve corresponding to a given value of the parameter \320\270,
(see
Figure 4.13). First, we find the point on each edge of the controlpolygon that

subdivides it proportionally according the value of and


\321\211 connect these
points to form a set of line segments. We subdivide each of these new line
segments proportionallyaccording to u, and repeat the subdivision and line
segment construction until we can construct only one line segment. The
point that proportionally subdivides this line is the point on the curve
corresponding to iij. The curve in Figure 4.13 constructs the point at = 0.25.
\320\270

Points labeled 0 are the initial controlpoints.Those labeled1,2,3,4are


subsequent sequential subdivisions. In general there are \316\267
cycles of subdivision,
and the number of line segmentsdecreasesby one each cycle. Figure 4.14

Figure 4.13 Subdivision by geometric construction.


Composite Bezier Curves 105
\342\226\240

0 1

Figure 4.14 Construction of the point


-0.5.
\320\270

shows the construction of = 0.5


\320\270 a cubic Bezier curve.This construction
for
is described by some vector algebra and a simple recursion algorithm.The
first
cycle of recursion operates on the initial control points, as shown in
Figure 4.15.

4.4 COMPOSITE BEZIER CURVES

Bezier curves may


be joined end-to-end to form a composite curve.This
allows us to create a more complex curvewithout having to raise the degree
of an equivalent single curve.The geometric relationship of control
the
points adjacent to the jointsdetermines the continuity conditions at those

K-P, + u*>l+1-Pj

i
-
0, - 1
\316\267

Figure 4.1S A recursion algorithm.


106 Bezier
\342\226\240 Curves

joints.To explore these ideas, we again focus on the cubic Bezier curve and
extend the continuity criteria discussed earlier (see Figure 4.16).
First, we differentiateEquation(4.5)and rearrange terms to obtain

p\302\253(u)
= -
3u2)p0 + (3
(-3 + \320\262\320\270
- 12u+ 9uz)pi + (6u - 9u2)p2+ 3u2p3

Next,we evaluate this function at = 0and


\302\253 =
\320\270
I,producing

P8 = 3(p1-po) and p? = 3(p3-p2)


These expressions
demonstrate at \320\270
= 0 is determined
that by the
the tangent
line between \317\201,)
and by the line
pb and between at p2 and p3.Theyalso
= 1
\320\270

reveal that certain continuity conditions between adjacent Bezier segments


of a compositecurve are relatively simple to Specify. Thus, if we define one
segment by control points po, pi,. .. ,pm-i,pm and the adjacent segment by
control points qo.qi, \342\226\240
\342\226\240
\342\226\240
,qn-i,qn, then G1 continuity is established at =
q,
p\342\200\236

by making upm,
p,\342\200\236_ q0, and q, collinear.
Figure 4.17 shows two cubicBeziercurves joined with Gl continuity (we
do not address parametriccontinuity here). We are free to move point D so
long as we also move and
\320\241 in
\302\243 a way that preserves the collinearity of C,

P2 P3 % 4,

p0

Ibl

Figure 4.16 Composite Bezier curves.


Composite BezierCurves 107
\342\226\240

Figure 4.17 Two cubic Bezier curvesjoined with G1

continuity.

D, and E. Within this constraint,lengths of C,D,and E.


we may change the
The effects do not
propagate beyond points the event that other and
\316\233 G in
curve segmentsare present or are added to this string.
A condition for G1 continuity at a joint between curvesis that the five
vertices _ 2,
p\342\200\236, -1, p4,
p,\342\200\236
=
qoi a\302\260d
\320\247\321\214 must
\320\246\320\263 be coplanar. To achieve this might
require increasingthe number of control points in one or more segments.
The equations the curvature for and
\320\2720 at
\320\272, each end of a cubic Bezier curve
follow without derivation.

_ Zlfo-ptQxQpa-pi)!
Kn =
3ipi- po

_ 3(\317\201\316\257-\317\2011)\317\207(\317\2013-|>\316\257)|
\342\200\236.

3lp3- \321\200\320\267\320\240

We can easily generalize these equations for Bezier curveswith \316\267 > 3.

The advantage of higher-order Bezier curvesis that they provide


correspondingly higher orders of continuity between segments of composite
curves.Forexample, a fifth-order, or quintic, Bezier curve permits us to
specify endpoints, end tangents, and curvature at each end. However,we must
consider how higher-degree polynomial functions affect the computation of
geometric properties and relationships. If we have quintic curves and the
108 \342\226\240
Bezier Curves

related biquintic surfaces, for example, the intersectioncomputationsfor

these are more complex than for cubic curvesand bicubic surfaces.

4.S RATIONAL BEZIER CURVES

Equation (4.2)definesa Bezier curve using an integral or nonrational


polynomial. We now discuss a Bezier curve defined by a rational polynomial. We
can best study this curve thinking of it as a projection of a four-
by

dimensionalnonrational onto three-dimensional curve space.To understand


the underlying geometry representational and
power of this formulation, we
must reviewsome properties
of homogeneous
elementary
coordinates and
projective geometry. Riesenfeld(1981)discusses use of homogeneous the

coordinates and projective pJanes in computergraphics. (1965)


was Roberts

one of the first to observe that homogeneous coordinates are a useful way to
represent geometrictransformations and
projections.

Every point x,y,z in three-dimensional Cartesian space hasa corresponding


set of homogeneous coordinates hx,hy,hz,h in four-dimensional projective
space. There are an infinite number of points in this four-dimensional space
corresponding to each point inordinary space, because x^hxlh, y-hyih, and
= hzlh
\316\266 for all real h except h = 0. All the points on a line through the origin
in this four-dimensional homogeneous space have identical ordinary 3D
spacecoordinates. Thus, the
point x,y,z is the projection of the point hx,hyhz,h
onto the hyperplane h~l, where the originisthe centerofprojection and the

hyperplane is ordinary three-dimensional space. Figures 4.18a 4.18b and

illustrate homogeneous coordinate dimensions.


geometry in one and two
We define a Bezier curve in the homogeneous coordinate space of four
dimensions and find its projection onto the h ~ 1 hyperplane, that is, onto

ordinary three-dimensional space. The equation of this curve is

\316\241(\302\253)=\316\243\316\241^\302\273 (4.17)
1= 0

where p(u) is the four-component vectorof a point on the curve, and the p;
are the control points, also given in four-dimensional homogeneous
coordinates. We know that

x(u) h(u)x(u)
\320\243(\320\270) h(u)y(u)
\320\260\320\264 h(u)z(u)
Jr(u)] . h(u) J
Rational Bezier Curves 109
\342\226\240

h-1--

hxa,hya,h

h = 1 plane

Figure 4.1B Homogeneous coordinate geometry in

one and two dimensions.

so that now we can write, for the homogeneouscoordinatesof any point on


the curve,
x{u)~ V \320\263\320\224,\342\200\236(\302\253)

2(\=\316\2432\316\221\302\253(\302\253)

%)^\320\233\320\224\320\233(\") (4.19)
110 Bezier
\342\226\240 Curves

For the projection of this point onto x,y,z space


we write

CO
= x(u)
h(u)

(4-20)
\320\201\320\234~\320\231

But = so that
\320\226, \316\233\316\274:\342\200\236

\316\243
hiX;Bitn{U)

(421)
W'ThAM

Because analogous expressionsapply to y(u) and


z(u), we represent the
rational Bezier curvein vector form as

\320\245/\320\263,\321\200\320\224,\342\200\236(\320\270)

where the p, are the control points in three-dimensional spaceand the h, are
the corresponding t he
projective space coordinates; h, are also known as the
weights. Equation (4.22)reduces an integral or nonrational Bezier to curve
when all/z,= 1,which follows from: If all ft;= l.then \316\243
h,Blin (\302\253)= 1,
because
\320\243 land
\302\243,,\342\200\236(\302\253)=

\316\243^,\317\201,\316\222,.,,

(423)
YJ^--lP,B,Au)

We immediately see that for a rational Bezier curve the same set of control
points can produce many different shapes, interpolating endpoints the same
and with the same end tangents-. Changing one or more of the weights
changes the shape of the curve. This means,for example,
that a rational cubic
Bezier curve has four more degrees of freedomthan the nonrational cubic.
Let us see how this works for a second-degree rational Bezier curve in the
plane with control points po>pi,pz and weights hlth2,h3. In Figure4.19,we see

plotted in the h = 1 plane the rationalBezier curve for all h,= 1. It is


identicalto the nonrational Bezier curve points. All the
with the same control
points on the line OA have the
x,y coordinates
same in the h = 1 plane,as do
the
points on OB and \320\236\320\241.
This is because of the relationship we established
earlier between x,y and h. When we change a weight, the corresponding
control
point slides along its projection line in homogeneous space to a position
whose h coordinate matches the new weightedvalue. For the case of hi,
shown in the figure, the control point moves along line OB to the position
Rational Bezier Curves 111
\342\226\240

h0, h, > 1, h2
= 1 curve 1n homogeneous space

\320\222

\316\212-|\316\247\316\220\302\267\316\267\316\220\316\245\316\220.\316\212\316\220

\342\200\224_ ,C

=
= l,
hy>l, h2 0
h\342\200\236
curve projected onto h = 1 plane

\\ h = 1 plane
0IC^__^

' 1\\
= 1 curve

Figure 4.19 Rational Bezier curve in the plane.

htX\\,h}yuh. We can think of this control point in its new position together
with the two unchanged end control points as defininga new Bezier curve in
the homogeneous or projective space.It is the projection
of this curve onto
the h = 1 planethat in turn produces a new curve in that plane. This is the
curve interest.
of It has, of course, the same controlpointsas the h-,~ 1 curve
and the same end slopes.Only one weight has been changed, and the effect
of this is to pull the curve toward the control point p\342\200\236
whose weight we
changed. All of this applies equally to three-dimensional rational Bezier

curves of any degree.


A rational Bezier curveis invariant under a perspective transformation. If
its control points are subjectedtothistransformation, then all other points
are produced as usual from the transformedcontrol points. The resulting
curve is the accurate perspectivetransformation of the original. This is not
true for the perspectivetransformation ofa nonrational curve, where every
point on the curve must be subjected to the transformation in order to
produce an accurate perspective image.
Using the rational Bezier formulation,
we can accurately represent conic
curves. The Hermite basis and nonrationalBezierforms cannot do this.
112 Bezier
\342\226\240 Curves

Because conies are second-degree curves,only three control points and their
associated weights are requiredto represent them. Thus, from

, + + h2p2B22(u)
l ' '
\317\207\320\2540\321\200\320\276\320\222\320\274(\320\270)
/11\321\200|\320\224,\320\264(\321\206)
=
1 '
h0B,li2(u) + hlBi2(u) + h2B22(u)
we can segments
generate of circles, ellipses, hyperbolas, and parabolas.If
the h, 1, =
then segments of parabolas are produced.Other weight values

produce the other conies. Space does not permit a full discussion of this
topic. However,theserepresentationsare also discussed in the section on
rational B-Splines(seeSection5.7).
Let us review the properties of a Bezier curve that make it an unusually
effective modeling tool. First,the curve has endpoints in common with the
polygon (the other vertices are usually not on the curve). Second, the slope
of the tangent vectors at the endpoints equals the slope of the first and last
segments of the polygon.Third,the curve lies entirely within the convex hull
defined by the extremepointsof Che polygon and generally mimics the gross
features of the polygon.Fourth,Beziercurves are variation-diminishing.This
means that they never oscillate wildly away from their defining control
points (they are smoother than the data on which they are based). Fifth,
compared to conventional polynomials or splines, Bezier curves do not
require us to input slopes, just daita points. Finally, the parametric
formulationallows a curve to represent multiple-valued shapes. In fact, as we have
seen, if the first and last points coincide(that is, if p0
= p\342\200\236),
then the curve is
closed. Bezier curves are specialcasesofthe more general B-Spline curves
that we consider next.
B-SPLINE CURVES

A B-Spline curve from a Hermite or Beziercurve


differs in that it usually
consists of more than one curve segment. Each segmentis definedand influenced
by only a few control points, which are the coefficients of the B-Spline basis
function polynomials. The degree of the curve is independent of the total
number of control
points.These characteristics allow changes in shape that do not
propagate beyond one or only
a few local segments. Most curve-defining
techniques do not provide for local control of shape. Consequently, localchanges
(for example, a small change in the position of a point on aspline curve or of a
vertex of a characteristic polygon of a Bezier curve)tend to bestrongly
propagated throughout the entire curve. This is sometimes describedas
aglobalpropagationof local change. The B-Spline curve avoids this problem by using a

special set of basis functions that has only local influence and depends on only a
few neighboring control points. Connecting the controlpoints p, (see Equation
[5.1]) in the order of their numberingwith straight lines produces the B-Spline
control polygon.The B-Spline curve is contained within the convex hull of its

control polygon. In general, B-Splines do not


necessarily interpolate their end-
points. However, the nonuniform B-Spline basisfunctions allow this. We

consider here both nonrational and rational forms of the B-Spline basis functions.

5.1 NONUNIFORM B-SPLINE BASIS FUNCTIONS

We begin with the most general nonrational B-Spline curves,thosedefined


by nonuniform basis functions. That is, the basis function definingone seg-
113
114
\342\226\240
B-Spline Curves

ment may differ from those defining another.Thisallows us to interpolate one


or more of the controlpoints, depending
on the modeling situation. We do this
by specifyinga nondecreasingsetof knot values (explained in the following).
A B-Spline curve is similarto a Bezier curve a set of basis functions
in that
combines the effects of + 1
\316\267 control points p,.The nonrational form is given by

=
p(u) Xp,AU\302\253) (5-1)

Compare Equation (5.1) to Equation (4.2).For a Bezier curve, the


number of control points determines the degree of the basisfunction polynomial.
For a B-Spline curve, a parameter /i controlsthe degree (K- 1) of the basis
polynomials, and it is
usually independent of the number of control points,
exceptas it is limited by Equation (5.6), following.
The nonuniform B-Spline basis functions are defined recursively by the
following expressions:
Nil(u)=\\ if (,<\302\253<(, + ,
(5.2)
= 0 otherwise
and

= (u-t,)N,.t-,(u) +
ft- + t-w)JVl + U-i(K)
53
~~
i; + * -1 t, tl + k~ti + i

for integer values of \320\272: =


\320\2722,. . . where
, \316\232 the
\320\232. order of the B-Spline,
-
controls the degree (K 1) of the resultingpolynomial in and
\320\272 also the
continuity
of the curve. The t)
are called knot values, and a set of knot values

comprises a knot vector. They relate the parametricvariable to


\320\270 the p,
control
points where =
\316\257
0,. . . , \320\277.
For an open nonuniform curve that
interpolates the
endpoints. the tt are calculated once using K:
= 0 if
tj j<K
tj=j-K +l if K<j<n (5.4)
tj
= n-K + 2 if i> \316\267
for integer values of/: j = Q,...,n + K.
Note that once the i(
are calculated for K, they are used to computeN,-pt for
all =
\320\272 1,. . . , \316\232.
The index / on knot values t, ranges from 0 to (n + K).The
knot values ^themselvestakeon values from Oto (n
- /i +
2).The indexion
blending function N,,k ranges from 0 to n. There are always
+ 1
\316\267 blending
functions for each k.
The parameters determining the number of control points, knots, and the
degreeof polynomial the are related by
K+l = T
n + (5.5)
Nonuniform B-SplineBasis Functions\342\226\240
115

where 7\" is the number of knots. For nonuniform and open B-Spline
curves,

the knot vector is


\316\244 characterized by

-.. \342\226\240
\316\244=[\316\261,\316\261, ,\316\261,\316\257*,..,\316\257\317\204\302\267-*-\316\271,\316\262,\316\262.
\316\262)

where end knots and


\316\261
repeat
\316\262 with multiplicity K.
If the entire curveis parameterized over the unit interval, then, for most
situations, =
\316\261 0 and =
\316\262 1. However, if we assign nondecreasing integer
values of the
parameter to the knots, then \316\261 = 0 and = - + 2.
\316\262\316\267\320\232

Spacing the knots at equal intervalsof the parameter describes a uniform


nonrational B-Spline curve; otherwise it is nonuniform. Usually we assign
integer values to the parametric variable at the knots, although this is by no
means a requirement.However, it greatly simplifies the discussion of this
subject.So,we will define the range of the parametric variable\320\270 to be

0<\320\270<\320\273-\320\232+2
(5.6)

Because the denominators in Equation (5.3) ean be zero,we must define


0/0 - 0.
Multipleor repeated values, or multiply
knot-vector coincident control
points, induce discontinuities. For cubic curve, a double knot defines a join
a

point curvature
with
discontinuity. A triple knot produces a corner point in
the curve.
The basis functions
NlA(u),Nii2{u), and N^(u) corresponding to =
\\,K
= \320\232

2, and K-3, given six controlpoints =


5), we compute as follows. For the
(n

basis functions
\316\235\316\257\316\233(\316\272) with = 5
\302\253 and/C= l,we find that 0<\302\253<6 and the knot
vector is [0,1,2,3,4,5,6], or

fo
= 0
u--4
=
\316\212 1 h= 5

(5.7)
f2
= 2 h-= 6

i3-3

spacing. From Equation (5,2), w

=
\320\273\342\204\226)1 if 0<\302\253<1

-0 otherwise

= \316\271
\316\234.\316\271(<\302\2670 if 1 < \320\270
< 2

-0 otherwise

^(10=1 if 2 <n <3


=0 otherwise
116 \342\226\240
\316\222\302\267
Spline Curves

Nu(u) = 1 if 3 < \320\270


< 4

=0 otherwise

W4.i(\")
= 1 if 4 < \320\270
< 5

= 0 otherwise

if 5 < < 6
\320\270

= 0 otherwise

These six basis functions are plottedin Figure 5.1. They are obviously
identicalin form and limited to a different successive unit interval of the
variable.
parametric
Applying these basis functions to any set of six controlpoints
using Equation (5.2), we see that p(u) is given by a different equation for
each unit interval, so that

p(u) =p0 for 0 <u <1

.\316\275,
,\316\271.\316\271

1 1 1 1

\\ i\
\342\226\240

vs>>

Figure S.I B-Spline basis functions for =


\316\2675, = 1.
/\320\241
Nonuniform B-Spline Basis Functions 117
\342\226\240

p('0
= Pi for 1 <u<2

p(\") = p2 for 2<u<3


=
p3
\321\200(\320\270) for 3<u<4
=
\321\200(\320\270)
\317\201-,
for 4<u<5
\321\200(\320\274)=p5 for 5<\321\213<6

The resulting curve is clearly not a curve in the ordinary sense of the word,
but merely the initial set of control points.(We could also interpret this to
represent six disjointcurve segments of zero length, each segment
concentrated at a control point.)
Next,for theNi2(u) basis functions with n~Sand \320\232~2,we find that 0 <\320\270

< 5 and the knot vector is [0,0,1,2,3,4,5,5),or

i0
= 0 i4 = 3
= 4
4=0 i5

(5.8)
h = \\ f6
= 5

l3 = 2 t7 = 5

This is a nonuniform knot spacing.


Equation (5.3) indicates that the on the N,A(u), so before
N^u) depend
we can compute N,2{u), we the first compute
must another set of NiA(u)
corresponding
to the knot values in Equation (5.8). This computationproduces

= 1 f
\316\271 u = 0
\316\233\316\214,(\302\273
= 0 otherwise
= 1 0<\321\213<1
\316\233\316\212.\316\271(\302\253
=0 otherwise

NXi(u
=1 1 < < 2
\320\270

=0 otherwise

= 1
\316\2353\316\233(\317\205
2 < u < 3

= 0 otherwise

= 1 3<\321\213<4
\320\233\320\2234\320\273(\320\270
=0 otherwise
=1
\316\2355\316\233(\317\205 4 <w < 5

=0 otherwise

Substituting this set as appropriateinto Equation(5.3)produces


118 \342\226\240
B-Spline Curves

A\\,z(\302\253)
=
uNu(u) + (2 - u)Nv{u)
= - 1)N2! + (3 -
NX2{u) (u (\320\270) \320\270)\320\233\320\223\320\267\320\224(\320\270)

= - + -
\320\233^\302\273 (\320\270 2)\320\233\320\2233.!
(\321\213) (4 \321\213)\320\233\320\2234.,(\320\274)

= - + (5 -
Nu(u) (\302\253 3)\320\233\320\2234\320\233
(\320\270) \302\253)\320\234,(\302\253)

=
^(\320\270) (\320\270-4)\320\233\320\2235,1(\320\270)

The N;j(u) functions switches, taking on a value


act like of 1 or 0.

on
depending
the value
They define
of u. the region over which the complete basis
function is nonzero, or the interval ofsupport for a curve's expression. These
basis functions are plottedin Figure 5.2; they are identical in size and shape,

except at the end segments spanning 0 < \320\270


< 1 and 4 < \302\253
< 5.
Applying these
basis functions to any set ofsixcontrolpointsby means of Equation (5.2), we
find that p(u) is given by a different equation for each unit interval in u,
through the actionof the N,A{u) switches, so that

= - + \302\253Pi for 0 < < 1


\320\270
p(\302\253) (1 \302\253)po

=
\321\200(\302\253)
(2-\320\270)\321\200]
+ (\321\213-l)p2 for l<u<2
=
(3
\321\200(\320\274)
-
\302\253)p2+ (u
-
2)p3 for 2 < \320\270
< 3

=
p(\302\253) (4
- + (u -
\302\253)\321\200\320\267 3)p4 for 3 < \302\253
< 4

p(u)
= (5 - u)p4
+ (u
-
4)p5 for 4 < \320\270
< 5

Here the resulting curve is a sequence of straight line segments connecting


the control points.
Finally, for the Ni3 basis
(\320\270) functions with ~ 5
\316\267 and /i = 3,we find that 0
< < 4
\320\270 and the knot or
vector is [0,0,0,1,2,3,4,4,4),
/\302\253-\320\236 /5 = 3

= 0
f \316\271 fft = 4

=
\316\25720 = 4
\316\2577 (5.9)
=
f\320\267 1 is = 4

i4
= 2

This is a nonuniform knot spacing,and the knot values correspond to the


joints between the curve segments.
Again, because of the recursive nature of the basisfunction equations,
we must first compute the NiA{u) and then the N,i2{u), strictly in that order,
Nonuniform B-Spline Basis Functions 119
\342\226\240

*\302\253,\320\260<\">

Figure S.2 B-Spline basis functions for = S.


\316\267

K=2.

before computing the N0(u). For the Nltl(u) we obtain

/Vai(w)
= l for = 0
\320\270

= 0 otherwise

Nu(u)=l for = 0
\320\270

= 0 otherwise
=1
\320\233^\320\270) for 0 < < 1
\320\270

= 0 otherwise
120 \342\226\240
B-Spline Curves

Nu(u)=l for 1<\321\213<2

= 0 otherwise

N^{u)~l for 2<u<3


= \317\213 otherwise

for
\320\233\320\223\320\267\320\273(\320\270)=1
3 < < 4
\320\270

= 0 otherwise

Substituting these equationsas required into


Equation (5.3) produces

AW(\=0
Nu{u) = {l-u)Nv{u)

N32(u)
=
(\320\270
- 1 )N3A(u) + (3 - \302\253)*\302\267.\302\273

M,(ti)
= (u - 2)Nu(u) + (4
-
w)ATs,,(w)

Notice how the new knot values affect the Now we


\316\235\316\2572{\316\271\316\271).
substitute as
appropriate into Equation (5.3)to obtain the \320\233^\320\224\321\213):

=
\320\233\320\223\320\260\320\264(\320\270)
(1-\320\270)2\320\233\320\2232.|(\320\270)

= - -
NU\") \320\227^\320\233\320\252\320\224\320\270)
\320\274^\320\224\321\213)
J\"(4 +|<2

= + +6u~ -
\320\233\320\254\320\224\320\270) 3)\320\234\320\273(\321\213) \321\213^\320\224\321\213)
^^\320\224\") ^(~2u2 +1(3

= - + - -
\320\220^\320\224\302\273)
\\{\320\272
+
1)2\316\2353\316\233(\317\205)
|(-2\321\2132
10\320\270 +
11)\316\233^4,\316\271(\302\253)
|(4
u)2N5il(u)

NA3{u)
=
]-{u -2fNiA(u) + + 20\321\213-
U-\320\252\320\2701
32)\320\234\320\224\321\213)

=
\320\233\320\2233\320\224\320\230)
(\320\270-3)3\320\233\320\2235\320\224\320\270)

Here, NlA{u) functions act like switches,turning


again, the on and off the
terms lhat they control. These basis functions are
plotted in Figure 5.3.
Notice the symmetries and congruences of the shapes of these functions; we
will
explore this phenomenon in more detail a little later. Applying these

basis functions to a set of six control pointsusing Equation (5-1), we find that

p(\302\253)
is given by a different equation for each unit interval in \320\270
through the
action of the NiA(u) switches, so that
Nonuniform B-Spline Basis Functions 121
\342\226\240

pi(\")
=
(1
- \2po")+ x\"(4 - 3w)p!
+ ~u2p2 for 0<\321\213<1

= - + + 6w
- + -(\320\270 - 1 )2p, for I <u<2
\321\200\320\263(\320\274) pi
\302\253)2 3)\321\200\320\263
^\"(2 ^(-2\"2

- - 11
=
\320\240\321\215(\320\270)
|(3
\320\270)^
+ +
\321\203(-2\321\2132
1 Ou
)p3 + |(\321\213
-
2)^4 for 2<u<3

P4(\") = |(4
- uf& + + 20w -
32)p4 + l(u
- 3)^ for 3<u < 4
^(-\320\227\321\213\320\263

The resulting curve is a composite sequenceof four curve segments


connected with \320\241
continuity; an example is shown in Figure 5.4.We notice that
the curve passes through only the first and last points, p(, and ps, and it is
-
p0 and these same this curve
-
tangent
to
pj p5 p4 at points. We also notice that
is langent to each successive sideof the eharacterislie polygon (only for K
=
3 curves).This tangencyoccursat the joinls between curve segments (that is,
at integralvalues of u). These joints are indicated by tick marks.In the figure,
point p] is moved to p',, and the effect on the curve is plotted. This local

\320\233\320\270\"\"

Figure S.3 Nonuniform B-Spline basis functions for


122 \342\226\240
B-Spline Curves

Figure S.4 Nonuniform B-Spline


curves: n= S, /C = 3.

change affects only two segmentsof the curve; it isalso evident in the
preceding set of equations, because occurs
\317\201,
in only the first and second
equations.

From these
equations, we infer that only three controlpoints
same
influence each curve
segment. Conversely, a control point can influence the shape
of at most only three curve segments.Similar observations apply to K= 1 and
= 2 curves.
\320\232 In fact, we can generalizethis observation: Each segment of a
B-Spline curve is influencedby only control
\320\232
points, and, conversely, each
control point influencesonly \320\232
curve segments. A nonuniform cubic B-Spline
requires at least four control points,
>
\316\267 3, and at least eight nondecreasing
knot values.
What
happens if we the number of control points?Toanswer
increase this,
we must review Figures 5.1 to 5.3.In Figure5.1,w e see no evidence whatso-
Nonuniform B-Spline Basis Functions\302\253123

ever to indicate on the shape of the basis-functioncurves


an influence that

we can number of controlpoints.


attribute lo the In both Figures 5.2 and 5.3,
we also correctly infer that, except for the basisfunctions influenced by the
endpoints or those very near them (dependingon K), the interior basis
functions are
independent
of n. For example, if = 7
\316\267 and ~
\320\232 3, we would find
that = = =
\320\233\320\223\342\200\236(\320\270) Ni3{u)
\320\233\320\223\321\215\320\267(\320\270) Ni3{u).
Let us pursue this idea of basis-function independence of \316\267
and al the
same time Iry to develop a more convenient m atrix notation. We will do
this for K= 3. First,we compute Na(u), Nl+ L3(\302\253).and iV( + 2 3(w).The reason
for selecting these three will become clear asour investigation progresses.
We choose an interval in i so that \320\232
< i < n. This
anticipates the uniform
B-Splineand,for now, simplifies the calculation of the t, knot values so that

tl~j~K+ 1 =/-2. Using the recursive formulas of Equations (5.2) and


(5.3), we then compute
- 2 < u < - 1
Nju) = 1 for (' /
-o otherwise

w,tl,M=i for -
\316\271 1< < i
\320\270

=0 otherwise

JV,.,.i(\302\253)-l
for ('<\302\253<('+ 1

^0 otherwise

for
\316\273\316\263(+3.\316\27100=-\316\271 r + 1 < u< f + 2
= 0 otherwise

W, + 4.i(\-l for + 2
\316\271 < < i
\320\270 + 3
= 0 otherwise

Next we compute

= - i + + -
N,,i(u) (\320\270 2)NU (\320\270) (i \320\270)*;+ i.i(\

- - 1 - u)Nl+ 2.i{tt)
A^iX\302\273) (\" f + 1)\316\233\316\223,+!,, +
(\320\270) (/ +

Nl + 22(\") = (\" - '\320\226.2.1 (U) + (/ +2 - + 3,,(\320\230)


\320\230)\320\233\320\223;

- ('- + 3 -
=
+ 3\320\224\320\270)
\320\233\320\223( (\320\270 lW + + (('
3.i (\320\270) u)N, + ij{u)
And, finally, we compute

+ 2)1N,.]{u) + {u-i + 2){i-u)Ni,u{u)


Nii(u)-^[(u-i
+ 1 - U)(U - ,\342\226\240
+ (,\342\226\240 + 1)\320\233\320\223,+,.,(\302\253)
+ ((+!- + \316\271.,(\316\274)]
\316\274)\316\266\316\233\316\223,
124 * B-Spline Curves

+ 1)!^+\320\270(\320\270) + (\"-'\320\2471)(/\320\247\320\254#,\320\273(\320\274)
^*|\302\273^[(\"-|
+ 2
+ (\317\212 -
u){u - i)Nl+ 2,(u) + (r +2 - + \321\212\320\273{\302\253)}
\320\270)\320\251

= - + - + 2 -
NtM\302\273) */
\320\2362 + 2.i00 (\320\270 <){< u)N,M\
|[(\302\253

+ {i + 3~ u){u
- i - 1)\320\233^3,,(\320\270)
+ (/ + 3 - + 4.,(\316\274)]
\316\274)2\316\233\316\223,

Now we are ready to find an expression for over


\321\200(\321\213)
an arbitrary segment
of the curve, say, for the interval i < <
\320\270 i + 1. We again use the NlA(u)
as

switches. Only the functions \316\233^


=
1
+ 2>\316\271(\302\253) in ihis interval. Collecting those
terms from the set of equations above that Ni + 2i{u) switches on, we obtain
from Equation (5.1)

=
-(('
\321\200(\320\270) + 1- ufp,

+ + (i + 2-u)(u-i)]pl + l (5.\320\250)
^[(u-i+l)(i+l-u)

+ +2
2-(\"-')\316\212\316\241'

There are computational advantages to reparameterizing the interval so

that 0 < < 1


\320\270 and identifying the interval in some useful way; for example, by
subscripting as p,(\302\253) for
\321\200(\321\213)
the r'th interval. To reparameterize Equation
(5.10), we
replace \320\270
by + l,so
\320\270 that

+ + 2\321\213
+ 1)\321\200,\321\2021
+ \321\2132\321\200(
+ 2)
(-2\321\2132 (5.11)
\321\200;(\302\253)=^[(1-\302\253)2\321\200,

where 0 < \302\253


< 1. Note that as long as we maintain the function notation,we
will not confuse the function \321\200;(\321\213)
with the control point p,.

Matrix Form
We now rewrite Equation (5.11) using matrix notation, replacingi by r
\342\200\224
1 (i

now denotes the curve segment number).So, for a B-Spline with =


\320\232 3, we
obtain

1 -2 \320\223
pi-i
=
\320\240,{\320\270)
\320\270 1)
\\[\320\270\320\263
-2 2 0 \316\241; for ie[l :n-l] (5.12)
1 1 0 p, \316\271.

The analogousform for cubic B-Splines. K= 4, is


Nonuniform B-SplineBasis Functions\342\226\240
125

-1 3-3 1 pi-i

=
3-630 P' for
p,H JK \320\2702\320\270
1]
-3030 Pi + 1
re[l:n-2] (5.13)
1 4 \316\271
oJLPi+2J

Simplifying these equationsfor a second-degree


curve, where =
\320\232 3, U =
[\320\2702 \320\270 l),and

1 -2 1
M< = -2 2 0
1 1 0
we have

Pi
= \320\270\320\274.
\320\240.\320\230 P: ie[l:\302\253-l] for open curves (5.14)
P/-M

For the cubiccurve, where K=-4,XJ = \320\2702\320\270


[\321\213\321\212 1], and

-1 3 -3 1
3 6 3 0
*-i -3 0 3 0
1 4 1 0
we have

\316\241-\316\271

P<\"
= UM,
\321\200,(\320\270) ie[\\:n-2] for open curves (5.15)
p; + i

_p; + 2_

The number of segments is determined


\320\263 in Equations (5.14) and (5.15) for
open curves. We investigate closed B-Spline curves later.The sizesof U and
Ms depend on the degree of the curve.
Equations(5.14) and
(5.15) are for specific values.
\320\232 However, the general
formulation is

p,(w)
= UM5Px
ie[l:n + 2-K) (5.16)

where
U =[\302\253*\"* uK~2 - \320\270
1) (5.17)
and
PK = [p ] je[i-l:i +
K-2) for open curves (5.18)
126 \342\226\240
B-Spline Curves

We have now defined the basis-functiontransformationmatricesfor the


Hermite, Bezier, and B-Spline curves. They are MF, M\342\200\236,
and Ms, respectively.

5.2 UNIFORM B-SPLINE BASIS FUNCTIONS

Many geometric-modeling situations do notrequire the curve to pass


through the endpoints. In those cases, we apply formulationsuch as that in
a
Equation (5.13) to the set of
(5.12) or control points. For example, given the
set of controlpoints in Figure 5.4 and a uniform knot vector, we find for =
\316\267

5andX=3,('e [1:4]

po
=
pi(\302\2530 UM5 Pi

Pi
=
Pz(\302\253) UM5 p2
\320\240\320\267

(5.19)
\"p2
:=
UMS
\320\240\320\267(\302\253) \320\240\320\267

pj

\320\240\320\267
: = UMs
Pj(\302\253) p4

Ps

and for = 5
\316\267 and =
\320\232 4, ie [1 : 3)

Pl(u) = UM,

=
p2(u) UM, (5.20)

P2

p3(u) = UM,
P^

Pj
P^
Uniform B-Spline Basis Functions \302\253127

The B-Spline curves in Figure 5.5 result when we completethe remaining


computations. Notice that neither the \320\232
= 3 curve nor the \320\232
= 4 curve
passes
through any of the control points. This method produces a uniform or
periodic
B-Spline curve. It is periodic because the basis function repeats itself
identically over successive intervals of Ihe parametric variable.On the olher
hand, the curves in Figure 5.4 are nonperiodic or nonuniform B-Spline
curves, and the basis functions differ from one segment to the next. Again, in
both cases, of course, the knot values correspondto the joints between the
curve segments. We make use of the nonuniform B-Spline characteristic that
allows us to have multiple knot values byinserting knots at selected locations,
a convenient way to reduce the continuity at a segment joint without creating

straight line segments (as in the case of the Bezier or uniform B-Spline

FigureS.S Uniform B-Spline


curves: = S,
\316\267 = 3
\320\232 and = S, \320\232
\316\267 = 4.
128 \342\226\240
B-Spline Curves

curves). See Farin (1993a) for


descriptions
of the effects of knot insertion on
the
shape of a B-Spline curve. In fact, we can forcethe nonuniform \320\222-Spline

curve to interpolate a control point, includingthe first and last control points.
Equations (5-19) and (5.20)show which control points influence a particular
curve segment, and iheyshowthe influence of a single control point.
Figure 5.6 presents
- 4
the basis functions for ~
\320\232 2, =
\320\232 3, and \320\232 uniform
B-Spline curves. These basisfunctions span two-, three\302\267, and four-unit
intervals on the parametric line, respectively. Comparing these functions to those
in Figures 5.2 and 5.3, we see that they are invariant from span to span.

S.3 QUADRATIC AND CUBICB-SPLINE


BASIS FUNCTIONS

To compare the uniform B-Spline basis functions to the Hermiteand Bezier


basis functions, we now look at the second-degreeand cubic basis functions

ir-

a*\342\200\224J\\r
|-e-.Iw =!-*\342\226\240]

cl\342\200\224-\317\210

1i\342\200\224

\320\233\320\223=4

o1
V

Figure S.6 Uniform B-Spline basis functions: Nu(u). Nii3(u).


and Wi4(u).
Quadratic and Cubic B-Spline BasisFunctions \302\253129

in more detail. We define N3= U3M3and N4 = UjMj, where N, and N4 are the
basis-function matrices for \320\232= 3 and =
\320\232 4, respectively. Performing the
matrix multiplications for \320\232
= 3
produces

N3 =[*!>) \320\233^(\320\270) \320\233^\320\230]

where

\320\234\320\224\320\270)=|(\320\2702-2\320\270+1)

+ 2^+1)
\320\233\320\223\320\260.\320\267(\321\213) (5.21)
=-^(-2^

and for =
\320\232 4,

\316\2354=[\316\233\316\2634(\302\253)
\320\233\320\223\320\274(\320\270) \320\233\320\2234.4(\320\270)]
\320\233'\320\267\320\224\321\213)

where

= + \320\227\321\2132-\320\227\320\274+1)
\320\233\320\223]4(\320\270)
^(-\320\270\321\215
\320\276

= +
^2.4(\320\274) 4)
-^<\320\227\320\2743-6\320\274\320\263

(5.22)
N\\*(u)
= + 3i/2 + 3w + 1)
\320\245(~3\"3

In both cases, we see that = 1. Figure


\320\245\320\220^\320\224\320\272)
these basis functions.
5.7 plots
Rewriting Equations (5.14) and(5.15) for K~3 yields

p,(w)= \316\233\316\212.3(\\317\201(-\316\271")
+ Ww(w)pi + N^{u)p, + 1

(5.23)
i e[l : -
\316\267 1] for open curves
and for =
\320\232 4 yields

= + N1A{u)p,+ + NiA(u)pl
p,-(\302\253) Nl_A(u)pi.l NJA(u)p, + l +1

- 2] (5.24)
i e [1 : r for open curves
130 \342\226\240
B-Spline Curves

1 l\302\267\342\200\224I\342\200\224

-\316\233
^^\342\200\224\342\200\224

-
-4
\320\272

'
;,'
3 4
1
^I..

'
\317\206
\316\263^

<. F f >
^ ,\342\200\224 4.4- ._***

Figure S.7 Uniform B-Spljne basis


functions on the unit interval for
K= 3andK = 4.

S.4 CLOSEDB-SPLINE CURVES

The uniform B-Spline curves are particularly well suited to produceclosed


curves. Equations (5.14) and (5.15) are easily adapted for this by simple
modifications of the segment number range and the subscriptson the control points.
For uniform closed curves, we rewrite theseequationsas follows for = 3:
\320\232

P(i- l)mo(i(n + l)
=
U3M-
\321\200,(\320\270) p/mod (n + 1) i e [1 : \316\267
+ 1] for closed curves (5.25)
.P(i + l)mod(.i + l)_
Closed B-SplineCurves \342\226\240
131

Figure S.B Closed B-Spline curve


withn = S. \320\232
= 4.

The subscripts on the of reference.


matrices are for convenience For =
\320\232 4,

P{i-l)mod(.i + l)

= p/mod 11)
[\320\270
for closed curves
\320\2704\320\234^
\321\200,(\320\270)
+ + l)
i e[l:\302\253+l] (5-26)
P(i l)mod(n

.p{i + 2)mod(n + l)_

where mod(n+ I) is the remaindering operator (that is, for example, 5mod4
= l,8mod3 = 2,4mod4= 0, and so on). The curve in Figure 5.8isa good
example
to work through. Here, = 5
\316\267 and =
\320\232 4; using these values in Equation
(5.26), we obtain
P(i\"-I)mwl6
Pjmud 6
re[l:6] (5.27)
P(i + l)mod6

.p(; + 2)mod6_

Expanding this equation produces


132 \342\226\240
B-Spline Curves

=
UjMj[P(J
\321\200,(\320\274) Pi P2 \320\240\320\267]'

=
UjMjfp,
\321\2002(\320\274) P2 \320\240\320\267
\320\240\302\253\320\223

=
p3(\302\253) UjMj[p2 Pj
\320\240\320\267 psf

= Pi
pJ(\302\253) UJM4[p3 Pj PoF

=
ps(\302\253) UiM^pj Ps Po Pi]''

pft(w)
= UjMj[ps po Pi ft]7
We evaluate each of thesecurve segments for some sequence of \320\270
values

and, of course, specific control-point coordinates to produce plol


of the the

resulting B-Spline curve. Notice the subscript sequences. 5.9 is Figure

another example of a closed curve where same conditions hold.the It is


clearly possible to generate a self-intersecting curve.

In Figure 5.10, moving p; to p'2 producesa moreelongated closed curve.

Since only four control points define this curve, the perturbation of affects p2

the entire curve, although ihe most drasticchangeoccurs p';, while the near

original curve is only slightly disturbed nearp0.


Defining B-Spline curves with one or more multiply coincident control

points produces an effect similar to that for Bezier without increasing


curves
the degree of ihe polynomials. Each group of multiple control points pulls
the curve closerloitself.Theexample in Figure 5.11 shows the effect of one,
two, and three control points atp4. (that is, at locationp4,we have p4 alone, pj
and p5; or p.,,p5, and p6, where p.,, p5, and \321\200\320\271
have identical coordinate values).

Figure S.9 Closed,self-intersecting


curve with - 5,
\320\273 = 4.
\320\232
B-5plfne
Closed B-Spline Curves 133
\342\226\240

Figure S.10 Closed B-Spline curve with = 3.


\316\267 = \316\221.
\316\232

\317\201, \321\200\321\201

Figure S.11 Closed B-Spline curves


with multiply coincident control
points. = 4.
\320\232
134 \342\226\240
B-Spline Curves

This makes it possible to define B-Spline curves with sharp corners, an


advantage in many geometric-mode ling situations.

S.S CONTINUITY

To demonstrate the continuity of a B-Splinecurve, we will


between segments
use the example in Figure 5.12.Because the curve is a cubic B-Spline,
= 4,
\320\232

and we can expect second-order parametric continuity throughout the curve.


To examinethe first- and second-derivative parametric continuity of this
curveat point \320\270
= 1 of
segment i corresponding to point =
\320\2720 of segment (7 +
1), first we compute NJ and N\"4U:

=
\316\235\316\252
[AT?\302\273 NUu) N$A(u) N'Uu)} (5-29)
where

(5.30)
6

FigureS.12 Four segments of a cubic B-Spline


curve, /C = 4.
Continuity 135
\342\226\240

and

=
\342\204\2264\320\270 N%(u)
[\320\233\320\223\320\230(\320\270) N%(u) Nfi(u)] (5.31)
where

Nft(u) = -u+l
V
(5.32)
Njft(u)
= ~3u + 1

Nft(u) = u
Now we can write

PK\302\273)-Mu.4(\302\273)p(-i + ^,J(w)p, + A'l4(w)p,,i+A\"1i,4(w)p;,2 (5.33)


and
=
\317\201\316\223{\316\272)
+ (\\321\200.")+
\320\233\320\251
\316\233^\316\227\317\201,-\316\271 +, + \320\233\320\223\320\231(\320\270)\321\200,+2
\320\233\320\223\302\243(\320\270)\321\200( (5.34)

Next, we evaluate Equation (5.24) for p,(l) and p, + 1(0) to obtain

p,(l)
= + 4p, + )+Pl+3) (5.35)
-|(p,
and

pi + i(0)
= + 4p, +, + p, +2) (5.36)
-^(p,

Equation (5.36) shows that p((l) = \317\201;,^0), as we would expect. We examine

first-derivative continuity by evaluating Equation (5.33) for p\"(l) and


pf+)(0).This yields

=
\316\241\317\212(1) \320\240-\320\263) (5-37)
\342\226\240\302\243<-*+

and

p?+,(0)
= + pf+2) (5.38)
-|-(-p,
We see lhat p\"(0) = p','+)(l), demonstratingfirst-derivative continuity at the

joint. Finally, we examine second-derivativecontinuity by evaluating


Equation (5.34)
for py\"(l) and p\302\243,(0). This yields
136 \342\226\240
B-Spline Curves

pT(l)
= p(-2p, + i +
pit2 (5.39)
and

= pi-2pi , + (5.40)
pr?i(0) + p,-i:

We see that p'\"'(l) =


demonstrating
\317\201\316\220'\"\316\271(0), second-derivative continuity at
the joint. Of course,we can easily extend this analysis for higher-degree B-
Spline curves.

The effects of multiply coincident control points and multipleknot values

on the continuity at segment joints are worth some further discussion. Here
is a summary of the continuity conditions:

Control point multiplicity = 1 C^andG2


Control point multiplicity^ 2 C1 and G1, with knots restricted to a

reduced convex hull.


Control point mulliplicily = 3 C2 and Gn. The curve interpolatesthe
triple control point, and the segments
at each side of the
joint are straight
lines.
Control point multiplicity = 4 G2 and C'.The curvesegmentson both
sides of the joint are straight lines and
interpolate the control points on both
sides.
Knot multiplicity
= 1 C2andG2
Knot multiplicity^ 2 C1 and G\\ with knots restricted to a
reduced convex hull.
Knot multiplicity=3 and
C\302\260 The
G\302\260. curve interpolates the
control point. Curve segmentshapesat
the joint are free and not constrained to
straight lines.

Knot
multiplicity
=4 The curve is discontinuous, ending on
one controlpoint and resuming at the
next. The shapes of the curve segments
adjacentto the discontinuity are
unconstrained.

Veltkamp (1992) the various kinds of continuity


surveys and discusses
conditions of curves and surfaces, including parametric, geometric,Frenel
frame, and tangent surface continuity. Pegna and Wolter (1992) present
resultsof work on the control of curvature continuity in the design of blend
Conversion Between Basis Functions 137
\342\226\240

surfaces, and Barsky and DeRose (1989) discuss the geometric continuity of

parametric curves. These reports also reference other literature on the

subject of continuity.

5.6 CONVERSION BETWEEN BASIS FUNCTIONS

The conversionbetweenBezier B-Spline


and basis functions proceeds by
equating appropriate matrix forms.For the cubic Bezier curve and the
uniform cubic B-Spline, we have UMaPs = UM^Pj, or MBPfl = MSPS, so that to
convert from B-Spline to Beziercontrolpoints,we have
ps = m-jm5ps (5.41)

which expands to
\317\213 \317\213 \317\213 1 -1 3 -3 1
1

1
0 0 1 3 -6 3 0
= \302\261
P\302\273
6 1 2
\317\213
3 3
1 -3 0 3 0
1 1 1 1 1 4 1 0
or
\316\2314 1 \320\236

0 4 2 0
\316\262-
0 2 4 0 (5.42)

0 14 1
convert
\320\242\320\276 from Bezier to B-Spline control points, we use

p^ = \320\2741\320\274\320\264\321\200\321\217 (5.43)

which expands to

\316\277 -\316\271 \316\271 -1 3-3 1


\317\204

0 --
3
0 1 3-630
\342\200\224
s
-3300
11
2 1 10 0 0
138 \342\226\240
B-Spline Curves

or

6 -7 2 \317\213

\317\213 2 -1 0
s~ 2 (5.44)
\317\213 -1 \317\213

\317\213 2 -7 6

A nonuniform B-Spline equivalent of a cubicBeziercurve is


produced by
=4
\320\232 and the knot vector [0,0,0,0,1,1,1,1].
Of course, we can also convert between the Hermite and B-Splinebasis
curves.For the cubic Hermite and uniform cubic B-Spline curves,we have

= \316\234
\320\222 >' M5P5 (5-45)

which expands to

0 0 0 1 -1 3-3 1
b,1 1 1 1 1 3-630
6 0 0 1 0 -3030 Ps

3 2 1 0 14 10
or

14 10
0 14 1
It
-3030 p, (5.46)

0-303
Similarly, to go the other way, we have

P5 = M5MFB (5.47)

which expands to

0 - -! , 2-211
-3 3 -2 -1
.! =
\302\260101 \320\222
2
0 1 1 0 0 10
?
11
2 1 10 0 0

or
Nonuniform Rational B-SplineCurves 139
\342\226\240

7 2
3 3
2 1
3 3 \320\222
1 2 (5.48)

3 3
22 17
3 3

5.7 NONUNIFORM RATIONAL B-SPLINE CURVES

One of the most versatiletoolsfor modeling curves is the nonuniform rational


B-Spline, or NURBS curve, as it is popularly called. It has become so widely
used that it is almost an industry standard.Its basisis the ratio of two nonra-
tional B-Spline basis functions,making it a vector-valued piecewise rational

polynomial. As a rational form, it exhibits the same invariance properties as


the rational Bezier basis,makinguse of homogeneous coordinates and

characteristics of projective geometry. This means that the NURBS curves are
invariant under translation, rotation, scaling, shear, and parallel and
perspective
projection. Like the rational Bezier curve, we can usea nonuniform
rational
B-Spline curve to represent exactly the conic curves,with the added

advantages of local control. Nonrational B-Splinecurves and rational and


nonrational Bezier curves are Specialinstances ofthe rational B-Splines.
Points on a NURBS curve are given by

\316\243\316\233,\317\201,\316\233',\316\272
(\320\270)

= ^
\321\200(\320\270) (5.49)
wm
\316\243
= 0
\316\271

where the h, are the weights.


Ifweights/z,=1 forall i, then the basis function of Equation (5.49) reduces
to the nonrational B-Spline form N,k. However, if the weightsh, = 1 for all i

and if the has the form T= (0,0,


knot vector 0,1,1 1), where 0 and 1
each have multiplicity K, then the basisfunction of this equation reduces to
the nonrational Bernsteinpolynomialbasisof degree - \\ for the Bezier
\320\232

curve #,>_,(\302\253). If a weight /z; = 0, then controlpointp, doesnot contribute to

the curve shape.


140 \342\226\240
B-Spline Curves

There are three ways to modify the shape of a NURBS curve; Change the
knot vector, move control points, and change the weights. Because it is

relatively difficult to determine how a curve will respond


to changes in the knot
vector, this is not the best way to change curve shape.On the other hand, the
effect of changing a controlpoint is predictable and intuitive. If a weight h, is
increased or decreasedin value, then the curve is pulled toward or pushed
away from, respectively, the control point p,. Weight changes will move any
point on the curve along a straight line through its corresponding control
point. See Piegland Tiller (1987) for on curve and surface
more
constructionsusing rational B-Splines, Piegl (1989c) for a discussion of shape
modification, and Laurent-Gengoux and Mekhilef (1993) for a study of the
optimizationofa NURBSrepresentation.
Choi, Yoo, and Lee (1990) present for obtaining the coefficient
a method
matrixof a NURBS eurve of arbitrary degree and the matrix representation
of NURBS
a surface as a tensor product of NURBScurves. Joe, Wang, and
Cheng (1994) discuss reduced knot NURBSrepresentations ofrational
composite Bezier curves with G1 continuity Piegl (1991) and Farin (1992)survey
the NURBS characteristics that led to the wide acceptanceof this form.

5.8 REPRESENTING CONIC5 WITH NURBS CURVES

The NURBS curve is often the first choice of designers becausethey can use
it to represent a conic curve exactly. For example,seeQin, Sun, and Wang
(1992). A conic is a second-degree, or quadratic, curve, so we begin with the

second-degree NURBS curve:

X *,P,AU\
V(\=4\342\200\224") (5.50)

\316\243*\316\233*(\

where K = 3 and the knot vectoris (0,0,0,1,1,1).This


actually produces a
rational Bezier curve. When expanded, the equation becomes
- - +
_ ^(1 '
\320\246); + 2\321\213(1-\320\270;\302\2731\321\200|-\320\263\302\273
\316\234\316\271\316\241\316\277u^iipi
\"\"\320\223\320\276-\320\263^\320\2771 u2h2p2
,\316\267\316\275\316\271
p(o)-
uf h0 + 2u(l - u)hi + u2h2
-
(1

We assert without proof that this is indeed the equation of a conic curve.
Moreover, the ratio

s-mT
(5'52)
Representing Conies with NURBS Curves 141
\342\226\240

is a constant, depending on the specie of conicrepresented.


The
following
ratios determine a Speeific type of conic:
p<l for an
ellipse

p
= l for a parabola (5.53)
p>1 for a
hyperbola

where \317\201 sometimes


is ealled the conic shape factor.
Fora circular arc the following conditions must prevail:

1. The controlpoints\321\200\320\276,\321\200\321\214\321\2002
must define an isosceles triangle, where Z.p0=
^pz
2. h0
= h2 = l

'p^p\302\260'
xh^ -
2lp, pol

We a sel of four 90\302\260curve


can join segments to define a full circle, where
each isosceles
triangle has vertex of
angles 45\302\260,90\302\260,
and 45\302\260.
Also, a seven-

point square-based NURBS exists (see Figure5.13),where

Of course, one way to obtain any ellipse is by applying an appropriate affine


transformation to the circle's eontrol points.

Figure S.I3 A seven-point


square-based NURBS circle.
142 \342\226\240
B-Spline Curves

5-9 CUBIC BETA SPLINES

An
interesting variation on the B-Spline basis function is the Beta-Spline,
defined over a uniform knot sequence, it adds two more parameters,$} and

p2, which provide of eurve


for global control over certain characteristics
shape. These two extra degrees o-f freedom are createdwhen we relax the
requirement of parametric continui ly while preserving geometric continuity.
Following the formulation of Equation (5.15),we have for the cubic beta-
spline
P.-1
= P<
p,0) UME ie[l :n-2] (5.54)
Pi + l

Lpi+J

where

-2$ 2(\316\2622+\316\262?+\316\262\316\220+\316\2621)
+ 1) 2
-2(\316\262\317\212+\316\262\317\212+\316\262\316\271

6\316\262? + 2\316\262?
+ 2$) + 0
= \302\267 -3(\316\2622 3(\316\2622 2\316\262?)
M\342\200\236
0
(5.55)
-6\316\262\316\257 6(\316\262?-\316\262\317\201) 6\316\262\316\271

L 2\316\262? + 4(\316\262?+\316\262,)
\316\2622 2 0

and =
\316\264 + 2\316\262\316\257
\316\2622 + 4\316\262?
+ 4fr + 2.
and
\316\262,
are
\316\2622 the so-called tension parameters, respectively.
bias and Both
affect the flatness of the curve. Manipulation of \316\262,
affects the tangent vector
on the parameter-increasing side of each control point, and increasing \316\2622

pulls curve
the closer to the sides of the control polygon.
As we increase $}
the curve asymmetrically shifts to one side of the control polygon. When we

increase the
\316\2622 curve uniformly flattens and more elosely approachesand
approximates the control polygon. A thorough diseussion of this interesting
curve (and surfaee) is found in Barsky (1988).
SURFACES

Our intuitive surface is a continuous sel of points approximating


notion of a
a
plane in of each of the points.Mathematically
the neighborhood more

succinct, we also may think of a surface as a two-parameter family


of points. Yet
another conception, analogous to our notion ofa curve, is that of a surface as
the locus of a point moving with two degrees of freedom. In addition, we can
describe surfaces with special properties; for example, as the locusof points
of a moving line or curve. These notions become useful to geometric
modelingwhen we express them analytically. The intrinsic equations and
characteristics of a surface arc a subject of differential geometryand are far more
subtle and complex than those of a curve. Where the theory of curvescenters
oncurvature and torsion as functions of arc length,nothing quite so
straightforward applies to surfaces. Al though we will diseuss many properties of
surfaces that arise from their differential geometry in the chapters that follow,

we will not pursue the fundamental forms or more rigorous derivations. In


this chapter we review the explicitand implicit equations of surfaces and
introduce the bivariate parametric equations.Thesetopicsarc the basis for
later discussions of quadric surfacesexpressedimplicitly, and the Hermite,

Bezier, and B-Spline surfaces expressed parametrically. The


implieit
and

parametric surfaces are the most commonlyusedsurfaces in geometric

modeling,
and most of our studies here are particularly about the tensor product
parametric surfaces.
We construct, evaluate, and analyze points and curves on a surface to
display it, to reveal special properties, or to demonstrate its relationship to
other geometric objects, which may then become the basis for subsequent

143
144 Surfaces
\342\226\240

modeling processes or definitions. So this chapter also discusses evaluating

points
on a surface, curve nets, and embeddedeurves on surfaces.

6.1 EXPLICIT AND IMPLICIT EQUATIONS OF SURFACES

An equation of the form

Aw)-o (6.1)
is the implicit equationofa surface,where f(x,y,z) is a polynomial in*, y,and
such
\316\266 that

i.j.k

From elementary algebra, we know that the degree of any term in this
equation is simply the sum of the exponents appearingin it. In other words, the
degree of term a,jkx'y'zk is + j + k. The degree of the polynomial expression
\320\263

itselfis the maximum degree of its individual terms. If this equation is linear

in all variables, then the surfaceis an unbounded plane. If it is a second-


degree equation, then the surface is a quadric, of which the sphere is a

special case. Finally, if one of the variables is absent from the equation,the
surface must be a cylinder whose generators are parallelto the axis of the
absent variable.
When we solvethe implieit equation for one of the variables as a function
of the other two, say, for as
\320\263 a function of and
\317\207 y, we obtain

z=/(xoO (6-2)
This representsthe same surface as Equation (6.1). However, this form is the
explicit equation of the surface.
It is also possible to express every rational and nonrational parametric
surface with an implicit equation.The processofconverting from a
t
parametric o implicit form is called implicitization. Although the implicitand
explicit
forms are useful, in representing surfaces they suffer from an
inherent weakness: their inability to represent an easily transformedand bounded
surface.However, we can either direetly adapt or closely approximatemost,
if not all, of these implicit and explieit forms by parametric equations. On the
other hand, they do have interesting strengths associated with intersection
compulations, point classification, and the inverse point computation.
Here is a relatively simplesurface-fitting procedure, based on an explicit

equation (see Figure6.1)


Quadric Surfaces 145
\342\226\240

Figure 6.1 An explicit surface.

where we determinethe a,7coefficients from a specified sel of dala points.We


must specify 16 points for a bicubic polynomial (that is, m = \316\267
=
3). If m and
are
\316\267
large, then it becomes increasingly possible to inadvertently generate
surfaces with undesirable oscillations.
This surface, as well as the nonralionalHermite.Bezier, B-Spline, and

similar surfaces, are mathematically expressed as tensor product(a


a
of the
generalization scalar product for vectors). A tensor is a multiply subscripted
array that transforms in a certain way. For a variety of practical reasons, the
indexing schemeused here and in most of the modeling literature does not
follow strictly the more rigorous conventions of mathematical physics.

QUADRIC SURFACES

A quadric surface is one whoseimplicit representation


is given by f(x,y,z)
-
0 where f(x,y,z) is a quadraticpolynomial. The algebraic form of a quadric
surface is given by |he equation
Ax1 + By1 + Cz1+ 2Dxy + 2Eyz + 2Fxz + 2Gx + 2Hy + 2Jz + K =0 (6.4)
For example,
if \320\233
=\320\224=\320\241=-\320\245=1 and D = \302\243=F= G- \320\257- J = 0, then the
equation producesa unit
sphere at the origin.
146 Surfaces
\342\226\240

In matrix form, we may write Equation (6.4)as


PQPr=0 (6.5)

where P-[x \321\203\316\266I] and

A D F G
\316\214 \316\222 \316\225 \316\227
Q- F \316\225 \320\241 J
(6.6)

C> \316\227 J \320\232

The ten coefficients of Q have no direel geometricor physical meaning.

Therefore, a geometric form of representation js often more practical. We

convert to the algebraic form only when computationallyneeessary.


However, computational problems may arise when using either form.The source
of these problems js the very naiure of floating-point data representation
and
computation, including imperfect aecuracy and lack of robustnessof
intrinsic surface characteristics subjectedtransformations. This
to repeated
may slowly degrade the defining small changes in the coefficients
da|a.These
may eause a radical change in computed surface lype.
We can represent every quadric surface by a data set consistingof vectors,
scalars, and some kind of type identifier. For example,two vectors and a
sealar represent a right circular cylinder, where one vector defines an
arbitrary point on its axis, another vecior defines the direciionof the axis, and a
scalar gives the radius (seeFigure6.2).
A
rigid-body motion is produced simply by pre-andpostmuiiipiying Q by
a 4 \317\207
4 Iransformation matrix T:

'-\320\246\320\242
Q'=T Q[T ] (6.7)
Certain properiies of Ihe matrixof quadrie equation coefficients Q are
invariant under rigid-body transformations,including the determinants IQI
and IQJ. This allows computation of surface type, cenjer, vertex, and axes
(see Table 6.1).The jeststo determine surface type are critically dependent
on computing whether certaininvariants are positive, negative, or zero.
Again, this is often computationallyimpractical or unrealizable with

floating-point arithmetic.

Using the following definitions and tests, we easily determine the type of

quadrie surface:

A D F
= \316\214 \316\222 \316\225
Q\302\253

F \316\225 \320\241
Quadric Surfaces 147
\342\226\240

Figure 6.2 A right circular


cylinder.

- rank
rx Q

r2 - rank Q,(

s = signalure of Q\342\200\236,
where the signalure s of a quadratic form is defined

as Ihe difference beiween the number of posiliveand negative


characteristic rools.

+
\317\204^\316\221 B+C

z1 = AB + AC+BC~D2-E2-F2
=
bl z2 + z1K-G2-H2-J2

&2
= ABC + ACK + ABK+BCK+ 2(DEF+ FCJ + DGH + EHJ)
- D\\C+ K) - + F2(B + K)- G\\B + C) - + C)
E2(A K)- H\\A

-J\\A + B)

a:Ti>0;IQ\342\200\236ki<0 or \317\2042<0

\316\262:\317\204\317\212>0;\316\231\316\237.\316\231\317\2041>0

A
quadric surface of revolution is produced by Totaling a conic curve
aboul its axis. This surfaceis in its canonical position if and only if its center
Table 6.1 Classificationof quadnc surfaces
\320\2231 \316\223\316\271 s Other Condi lions Surface Type

1 0 0 Invalid
I 1 1 Coincident planes
2 0 0 Single plane
2 1 1 >0
\316\264, Invalid

2 1 1 u<0 Two parallel planes


2 2 \317\213 \317\204:<0 Two intersecting planes
2 2 2 \317\204,>0 Line
3 ] 1 Parabolic cylinder
3 2 0 \317\2043<:0 Hyperbolic cylinder
3 2 2 < 0
> 0; \320\263\320\224
\317\2042 Elliptic cylinder
3 2 2 \317\204,>0;\317\204,62>0 Invalid
3 3 1 \316\261 Cone
3 3 3 \316\262 Point

IQ\342\200\236I \320\2561 s Other Conditions Surface Type

0 + 0 \316\244;<0 Hyperbolic paraboloid


0 - 2 t;>U Elliptic paraboloid
\302\261 + 1 \316\261 Hyperboloid of one sheet
+ - 1 \316\261 Hyperboloid of two sheets
+ + 3 Invalid
\316\262

\302\261 - 3 \316\262 Ellipsoid

or vertexis at the origin and its axes of symmetry coincide with the
coordinateIn this position
axes. there are no crosstermsin the equation.Thus, D -
\302\243=F-0,sothat
Ax2 + By1 + 2C>x + 2Hy + 2Jz + K=0 (6.8)

where AG- BH=CJ- f), since there is only one term in each variableif the
eenter or vertex is at the origin.An additionalconditionisnecessary. The axis

of rotation must be along the \316\266


axis. This means that the intersection of the x,
plane
\321\203 (z
=
0) and a quadric surface of revolution in canonical position is a
circle whosecenteris at the origin; thus.

Ax2 + Bf + 2Gx+ 2Hy + K=0 (6.9)

Foracircle,./! = Bx0andG-//=0. Applying


these conditions to the
general quadratic equation and dividing by A, we obtainthe canonical
equation

of a quadric surfaee of revolution:


Parametric Equations of Surfaces \342\226\240
149

x1 + y2 +Lz2 + Mz + N=Q (6.10)


where LM = 0. There are eight familiesin this general class (see Table 6.2).

6.3 PARAMETRICEQUATIONSOF SURFACES

The simplest and most common mathematical element we use to modela


surface is a patch. It is a convenient way |o break down a complex surface
into manageable units. In this way the patch is analogous \316\257\316\277
a segment of a
spline curve. A palch is a curve-boundedeolleetionof pointswhose
coordinates are given by continuous, two-parameter (bivariate), single-valued
polynomialsof the form
x =
x(u,w) y
=
y(u,w) z = z(u,w) (6-11)
where the
parametric variables and
\320\270 w are consirained to the intervals u,w
e [0,1]. This, of course, generates a rec|angu|ar patch. There are other
formulations that produce triangular or other on
\316\267
rectangular patches.
Fixing the value of one of the parametric variables results in a curve on
the patch in terms of the other variable, which remains free. By continuing
|his process one variable and then the other for any number
first for of
arbitrary values in the allowed interval, wc form a paramelric net of two one-
parameter families of curves on |he palch so that just one curve of each
family passes through each pointp(u,w). Again, the positive sense on any
curve is the sensein which the parameter increases.
Associated with every patch is a set of boundary conditions (see Figure
6.3).The most obvious of theseare the four comer points and the four curves
definingits edges.Othersof importance arc the tangent vectors, norma!
vectors, and twist vectors (for the cubic Hermite patch), which we will discuss
later. For an ordinary rectangularpatch,there are always four and only four

Table 6.2 Quadric surfacesof revolution


Surface CanonicalEquation
- N
x2 + v1 + \320\223 =0
Sphere
Cylinder + f - ,V
x \342\226\240 = 0

Cone x2 + f-Lz1 = to
Paraboloid x2 + y2 + Mz = f)
Prolaieellipsoid xl + f + Li2-N = Q,L<\\
Oblaie ellipsoid j-!+ / + /,;2-(V-0,7,> 1

Hyperboloid of one she ei x1+y--Lz1 -N = 0

Hyperboloidof iwo sheels x2+y2-Lz7 + N = 0


150 Surfaces
\342\226\240

\\ X

Figure 6.3 A parametric surface patch.

eorner points and edge eurves. This follows from the possible combinations
of |he two limits of |he two parametrie variables. We find the corner poinls
by subs|i|uting these four combinationsof 0 and 1 into p(u,w) to obtain
p(0,0),p(0,l),p(l,0), and p(l,l)- On the other hand, the edge or boundary
eurves are functions of one of the two parametrie variables. We obtain Ihese
by allowing one of the variables remain to free while fixing the other to its
limiiingvalues. This procedure results in four and only four possible
combinations
yielding the functions of the four parametric boundary curves

p(u,0),P(u,l),p(0,w), and p(i,H>).


some examplesof generalparametric
Here are surface patches and their
defining equations. The simplest oneis a
plane. The following parametric
equations represent a rectangular segmentof the x,y plane.
x={c-a)u+a y = (d-b)w +b z^O (6.12)
where u,w e [0,1]. Figure 6.4 illustrates this patch, showing both the

parametric coordinates and the x,y coordinates of each comer point.Thecurves


of constant w are straight lines running parallelto the \320\264\"
axis. The curves are
functions of u. An analogous situation exists for the lines of constantu, which
Parametric Equations of Surfaces 151
\342\226\240

\321\203

Ml Ml
\320\256.1) u,, 1 (1,11

a-0 \316\267-
1

10 = IW-

(e,6)
la.W vi = 0
(1,0|
(0,01

Figure 6.4 Parametric and x, \321\203


coordinates of a
plane.

are straight lines parallelto the \321\203 axis. The boundaries of Ihis plane are \317\207
= a,

x = c,y = b,and \321\203


= d.
The next simplest surface is the sphere(seeFigure 6.5), the locus of poinls
at a eonstant distance from a given point. The parametrie equations \316\277\316\271 a

sphere of radius r, centered at point (\317\2070>)>\316\277.\316\226\316\277\316\247


are

Parallel ol latitude
= curve o( consiani \320\270

-Meridian = curve ofconsiani w

Figure 6.S A parametric sphere.


152 \342\226\240
Surfaces

=
\316\233\" + f COS U COS W
\320\224\"\320\276
- + \320\263
cosu sin w w
\320\243\320\243\320\276 [0,2\317\200] (6.13)
2'2~
Z-Za + r sin \320\270

where is
\321\213
analogous lo latitude and w to longitude, both angles in
with
radians.
Obviously, curves of constant are
\320\270
parallels of latitude, so lhal a circle is

generated in a plane parallel lo the x,y plane as w varies. Curves of constant


w are meridians of longitude, generating semicircles as \320\270
varies.

An ellipsoid centered at has the following


(\317\207\316\277\316\233'\316\277,\316\226\316\267) parametric equations:
.v -xtl + a cos cos
\320\270 w
-
\321\203y0 + b cos \320\270
sin w w 6 [0,2\317\200] (6.14)
2'2
- Zo +
\316\266 \321\201
sin \320\270

Equations (6.14) are illuslraledin Figure 6.6.


Figure6.7 shows a parametric surface ofrevolu Hon. For clarity, only pari of
the surface is .shown. Notice (hat it is the curve defined by the function

x(u),z(u) that is revolved around |he \316\266


axis. The equations are

\317\207
-x(u) cos w
-
\321\203 x(u) sin w ue[0.1J, we[0,2Tc] (6.15)
z= z(u)
The
parameter space of a patch differs from that of a eurve, because we
must account for two
parametric
variables. Thus, we have a set of hybrid
three-dimensionalparamelerspaces defined
by (u,wr*c), (u,w,y), and (u,w,z)

b com sinui

\320\260
\320\24105\320\246
COSIil

Figure 6.6 A parametric ellipsoid.


Parametric Equations of Surfaces \342\226\240
153

Figure 6.7 A parametric surface of


revolution.

eoordinales.As with eubicHermite curves, decomposing a bieubiepateh in|o


iIs parameter-spaee components oflen helps to elaboraleits behavior in

model spaee.
The surfaee in Figure 6.8 has the following properties: poo
and p01 lie in |he
y,z plane; p|0 and
pn He in |he x,y plane; eaeh boundary curveis planar. The

graphs
on the left show the paleh's componenls parameier in
space. Shown
at the lop
left in the u,wrx syslem is a componenl
coordinate patch given by
the equation \317\207 =
x(u,w); the u,w,y and u,w,z patches are given by similar

equalions. Again, nolice jhat the parametric variablesareconstrained |o the


unit square u,w e[0,l]. Holdingone of the parametric variables constanl
defines a specific paramelric curve on Ihe patch.Thefigure shows the curve

p(ii\342\200\236iv).Every poinl on this curve has the same value,


\320\270 and in parameter
space we see Ihis curve decomposedin|oits componenls. These
parametric
curves are revealed by passing the plane \320\270
=
u,- Ihrough the component
patches.
154 > Surfaces

Figure 6.B The parameter space of a surface.

As with curves, we can observe many characlerislics of a patch by a


careful
inspeclion of the parameter-space componenl patches. Figure 6.9 shows
Ihree special cases. We call Figures 6.9a and 6.9bdegenerate
patches. In

Figure 6.9a, a point result in model space;in Figure


is the 6.9b, a straight line;
and in Figure 6.9c,a plane. Figure 6.10 shows all three results in modelspace.
In addition to their inherent boundedness and ease of transformation,
another advantage of the parametric representation of a surface is the
complete control we have of the domain of a surface-modeling operationsimply
by the choosing an appropriate parameterization scheme. By carefully
specifying subsets of a particular domain [umo,umux]
\317\207
[H'min,wmflX], we can readily
define certain sections of a surface. This is useful whenever a surface is
composed
of several patches. We will frequently use this freedom of
parameterization to choose [0.1] x [0,1] as the domain of a surface-interpolating
Parametric Equations of Surfaces 155
\342\226\240

Figure 6.9 The parametric component surfacesof three specialsurfaces.


Nine plane faces are shown in three groups of three.

operation. Any other domain can be normalized as necessary to this unit


square in parameter space.
Two observations are necessary. First, we will often use the termspatch
and surface interchangeably. Although, strictly speaking, a patch is a limited

region of a larger surface, in the contextof composite


surfaces or patches the
term patch has more significanceand helps us distinguish these limited
regions. Second, many classes of parametric surfaces have been developed.
156 Surfaces
\342\226\240

\316\234

Figure 6.10 Three special surfaces.

Most are interconvertable,their differences being primarily in the way each


class defines and modifiesits underlying piecewise parametric surface.

6.4 HERMITE, BEZIER,ANO B-SPLINE SURFACES: AN OVERVIEW

In the next three chapterswe consider the Hermite. Bezier, and B-Spline
parametric surfaces,including rational Bezier and nonuniform rational B-
Spline representations.As with curves, of course, the nonrational forms are
specialcasesof the rational forms. The hierarchical relationship between the
Hermite, Bezier,and B-Spline Surfaces: An Overview 157
\320\266

curves applies equally to these surfaces, with the rational B-Spline surface
being the most general. We will consider only the tensor product, or
rectangular, forms of these surfaces. There are, however, well-knowntriangular
or othermultjsided varieties of each of them. See for example, Farin (1993a),
GreinerandSeidel (1994), Kato (1991), and Warren (1992).
The bicubic Hermite patch is defined by its four corner points, tangent
vectors of the four boundary curves,and the so-calledtwist vectors at the
corner points. Composite arrays of these patches may be assembledto represent
complex surfaces. This surface representation scheme exhibits advantages
and disadvantagessimilarto those for the Hermite curves.
The Bezier patch is definedby a rectangular array of control points, whose
dimensionsdetermine the degrees of the curves comprising the
curve
isoparametric net. curves interpolate the corner points
Its boundary of the array
and are tangent to the plane defined by the two edges of the control
polyhedron at each corner point. It has the convex hull property, and like Bezicr
curvesit is the easiest surface to subdivide. Local controlis not a
characteristic,because the effect of moving any control point is propagated globally

throughout the patch.


The B-Spline surface is also definedby a rectangular array of control
points.This fofm permits local control of curve shape.The degrees of its basis
functions are defined independently of the control points. Although our
focus in the following three chapters on surfaces is on the effectof control
points and weights on surface shape, there are other importantapproaches
beyond the scope of this text. For example,see and Grecnberg Georgiades
(1992) and Fowler (1992). who discuss geometricmanipulationof the shape
of these and other tensor product surfaces.Also see Fowler and Bartels

(1993) for similar work on curves.


Comparative and
disadvantages
advantages of these forms, including
implicit and others, well-known. For are
example, see Farin (1989b, 1993a).
Piegl (1989b), Letcher and Shook and
(1995a, 1995b). Letcher and Shook
summarize deficiencies of the NURBS
the surface form as applied to
volume gridding for computational fluid dynamic analysis, but their comments
are also relevant to the entire group of parametric forms. Six categoriesof
concern are the following:

1. Division by zero (for the rationalforms)


2. Nonuniform parameterization
of arcs (particularly important in CAD/
CAM)
3. Surfaces cannot which be accurately represented efficiently (for example,
surfaces
helicoidal are mentioned as common engineering and
manufacturing surfaces having no exact NURBS representation)
158 Surfaces
\342\226\240

4. Irregular isoparametric surface meshes resulting from the use of


nonuniform weights (for the rational forms)
5. Ill-conditioned basisfor surface fitting
6. Lack of closure under commongeometricoperalions(for example,

composition, projection, and intersection)

Other descriptive deficiencies have been pointed out by Requicha and

Rossignac (1992): Fixed degree NURBS cannot describe offset surfaces

exactly, and NURBS representation for quadrics or othercanonical forms

hide the nature of these surfaces. For example, it may be useful to know that
the surface of a hole is a circular cylinder; the test to determineif a NURBS
surface is indeed a cylinder is a numerically unstable computation. Of
course, sophisticated modeling systems work around these problems, but

their existence is a stimulus to search for alternative forms.

6.5 POINTS ON A SURFACE

We discussed different approaches to direct- and inverse-point evaluation


on curves in Section evaluation on a surface
2.6. Point is an extension of
those techniques,plus some additionalstep?.Toevaluate directly a more or
less regular distribution of points on a surface corresponding to a similarly
of
regular distribution parametervalues, we first isolate a sequence of curves
of constantparametervalue on the surface and then evaluate points along
eachof these curves.
Changing the parametric net by reparameterization
often results in moreefficient point evaluation (for example, increasing the
density of points to be evaluated where curvature is greater). The inverse-
point solutionfor surfacesis somewhat more subtle.
Because the inverse-point solution is one of the most important analytic
operations, let us explore a somewhat more general strategy for surfaces
than that used for curves.If we talk about iV-dimensional space, then vectors
constructed in it will have N components. To define a surface (or hypersur-
these \342\200\224
face) in spaces requires (N 1) parametric variables.
In the direct-solution mode, the parametricequationsyield the N
coordinate
components
of p, as well as their various derivatives with respect to the
(N- 1) parametric variables uh
all at some point on the surface located by

specifying a value for each of the parametric variables.However,in many


problems
of practical interest, a point is locatedby specifying values for J of
the N coordinatesof p. For most problems -
\316\235 1, so that
J \317\210 the inverse may
not be unique.In fact, when/<iV- 1, the inverse degenerates to a surface of
(N-J -1) dimensions. When/ = N, the
problem is somewhatoverconstrained,
sowe simply ignore one of the coordinates to obtaina determinatesystem.
Curve Nets 159
\342\226\240

We let p' denote a specificpoint on the surface (or hypersurface) on which


we must compute the first derivatives We know
\320\255\321\200/\320\255\320\274;.
the N coordinates or
components of this point, but we do not know the values of the parametric
variablesuf at the point; therefare, we cannot evaluate \320\255\321\200/\320\255\320\274,- directly. A
related inversion problem develops if we are given only (N
-
1) components
of p' and must find the Nth component.The resulting matrix algebra required
to invert and solve the system of equations defining these problems defies

solution, and we are forced to use an iterative procedure. To illustrate the

problem of finding the tangent vectors at a point p' ona surface


p, we
the vector =
\320\263 If Irl is then a vector
consider
p'-p. small, \320\263
approximates tangent
to the surface.A good guess is to start the
iterationatp(l/2,l/2,1/2,... ,1/2),
the
parametric center of the hypersurface. Now, we definea unit vector f =

r/lrlso that

\320\255\321\200/\320\255\320\271,
_\316\233^
(6.16)
fti dujds

or in matrix form

\320\263
[*] =
\320\223 dlt;
\320\255\321\200] =
(6.17)
ds Irl

or

-1
duf\" \320\263
\320\223\320\255\321\200\"
\342\226\240
=
ds (6.18)
dll, :r:

If As= Irl, then the incremental changes in the


\316\224\316\257\316\257, parametric variables are
-1
\320\255\321\200
=
[Ali,} \316\234 (6.19)
\320\255\320\270,-

Again, we compute the elements of at the


[\320\255\321\200/\320\255\320\270;]
initial guess p(l/2,1/2,1/2,
... ,1/2), and from
\320\263 r =Next, we appropriatelyincrementeach
p'-p. of the

parametric variables by \316\224\316\257\316\257,


to determine a new p, and continue the
procedure until we satisfy some convergence criterion Irl <\316\265.

CURVE NETS

Two related subjects are of interest here: Ihe general formulation of curves
embedded in a surface, and netw orks of curveson surfaces. The curve nets
of interest are the parametric, orthogonal,and conjugate nets, all of which
have special properties. Olher types of curves on surfaces include lines of
constant or equalcurvature and geodesies. Our goal is to become aware of
certain systems
of curves on surfaces we can use when applying surfaces to

modeling problems.
Of course, the simplestand most obvious curve net on a patch consistsof
the
defining isoparametric curves; those curves on a patch where one
that is,
of the
parameters varies while the otheris constant. If the parameter w is
fixed while \320\270varies, the locus of the is a w = constant
point \321\200(\320\275,\320\275>) curve on
the patch.By continuing this process, we can define a one-parameter family
of curves that completely covers the patch. Next,we interchange the roles of
u and w and define a one-parameter family of \302\253= conslant curves. Thus,
these two families of curvestogetherconstitute the parametric curve net. A
curve net a
on patch p(\302\253,w) is two one-parameter families of curves
constructed so that through each point there passes just oneofeach family.
Furthermore, the two tangents of the curves at the point must be distinct.
A net may be covariam to its sustaining patch;|ha| is,it can be defined in
a way that is invariant under rigid motionin space. However, this is not
necessarily always the case. With a suitably chosen transformationof

parameters,the parametric net can be made to coincide with any specified net on the
surface. Although we will not develop the proofs here, we can transform any
covariani net to a parameiric net-This allows us to concludethat |he
geometryof a surface is independent of the analytical representtion usedand is,
|herefore,independen| of the choice of parameiric nels,If the parametric nel
is a covariant net, then we find that properlies of the net are also properties
of |he surface itself.

We assert without proof that the only iransformations of parameterslhat


leave the parametric nel invarian-l are

r = r(u) s =
s(w) (6.20)

and

r = r(w) s = s(u) (6.21)

from u,wto rj, or from u,w |o s,r. Finally, we see that the normal vectorat a

point on a surfaceis invariant,exceptperhaps for its sense.


Next, we consider the more specializedorthogonalnet ofcurves on a
surface. An orthogonal net is a ne| such that at every point of |he surface, the
two curves of the net iniersecj at right angles. We immediaiely conclude that
a necessary and sufficient conditionfor the parameiric net on a patch \321\200(\320\275,\320\270>)
|o be orthogonal is

p*pH=0 (6.22)
An orlhogonalnet is useful in many analytical engineering applications of
geometric modeling; example,in structural
for analysis, fluid flow, and ther-
Embedded Curves 161
\342\226\240

modynamics. Here of the parametricfield of an object's or


|he orihogonality
phenomenon's geometric characters tics can often be made compatible with
the orthogonality of the driving and response functions, and thus facilitate
analysis.
A net of curves on a surfaceis a conjugatenet when |he tangents of the
curves of one family of |he net at points along each fixedcurve of |he olher
family form a developable surface (seeFigure 6.11). The two families of the
net do not play symmetrical roles in this definition, bu| |he |wo familiesare
interchangeable. A necessary condition for the parametric net on a pa|ch|o
be a conjugaie ne| is

p\"\".ft = 0 (6.23)

6.7 EMBEOOEO CURVES

A surface provides a two-dimensional space suitable for supportingthe


vector analytic representtion of curves. The two parametric variablesdefining
the surface serve to supply |he coordinale grid on which we may define
embedded curves. This inherent characleristicof |he paramclric represenia-
lion is an invaluable assel to many aspecls of geometric modeling, including
surfaces wilh irregular boundaries and the interseciion and union of

primitive
shapes.
The curve on the surface in Figure 6.12is definedin the u,w parameter
space of |he patch. Here we introduce a new parameiric |o
variable
distinguish
the curve formula|ion,and wc denolc the curve as c(/).Notethai in |he
u,w parameiric curve is necessarilya planecurve.
plane, |hc Also no|c |ha|
poin|s on the curve have vector componentsin the \320\270
and w direc|ions.Thus,

c(l)
= u(l) + w(l) (6.24)

Figure6.11 Conjugate net.


162 Surfaces
\342\226\240

we can define this curve in many ways in the u,w plane: explicitly, implicitly,
with Bezier or B-Splineforms,with the parametriccubicform, and so on. We
define c(/) in Hermite form as
c(/)=TM,Bc (6.25)
where

T=[P l2 t 1]

and MFis the Hermite basistransformationmatrix.Theparametric


component curves are sketched in their respective u,t and w,t parameter spaces.

Figure 6.12 Curves on surfaces.


Embedded Curves > 163

To determine the coordinates of points on this curve in model space, wc


first compute pairs of u,w values for successive values of /. We substitute
u,w values into the surface equation, say,
\342\200\224
these p(u,w) UMBsM'W, to
obtain a sequence oix,y,z coordinatesof points object space.
in These points
arc necessarily on the patch.Thisprocess selectsonly those points on the
patch that satisfy the curve equation.Wc can stalethis as
=
points
\317\201[\302\253(/),\320\270>(/)]
on the curve, embedded in the patch (6.26)
We find a model-space tangent vector p/ to the curve at any point / on it

by first computing c,', the tangentvectorto the curve at u(t),w(i) in the u.w
plane. We determine the direction cosines of this vector (that is, with respect
to the u,w coordinate system) and denote them k\342\200\236
and Next
k\342\200\236. we compute
and at the
p;;\342\200\236, p;;\342\200\236 u,w point determined by c(/) at / and find that

I 'Piiii'1
'Pun1

It is the direction of p; that interests us; the magnitude has no particular


meaning.
A different approach requires only the control poinls of a Bezier or B-
be embedded a surface.
Splinc curve to Wc compute the corresponding
in

model-space coordinates of control points and then construct


the the curve
itself usual.However,
as |he will lie only approximately in
curve the surface.
The advantageof approach is thai poini evaluations
this do not require trans-
formalionfrom parameterspacetomodelspace the surface equation. via

We can decompose the total surface of a physical object into a collection


of smaller surface regions(seeFigure 6.13). Each of these regions is
characterized by well-behaved reaching praclical limits at abrupt or
conlours.
discontinuous changes shape. We in establish the boundaries of a region at
thesediscontinuities. In general, the curves where regions join do not
coincide with the isoparametric curves of the individual patchescomprising the

surface. We may segment the total surface ofa modelin this way so that each
region is itself then
mathematically tractable, where often the total surface is
not. We map each region and its boundary curves onto a unit square or m x
\316\267
rectangle in parameter space.
Earlier wcdefined a surfacein parametric form by specifying analytical
relationships between the model-Space coordinates and two parameters, and
\320\272

w : p(u,w) \342\200\224
[x(u,w) y(u,w) z(u,w)]. We can think of these parametric
variables as surface coordinates. Every point on a surface has not only the familiar

triplet of Cartesian coordinates x,y,z, but also a unique pair of parametric


coordinates u,w.Wc have interpreted this as a mapping of the surface onto a
164 Surfaces
\342\226\240

T/ansii ion geomeuy

Cylinder

> Tiansiiion geomerry

Disk
\320\241 J^)

Figure 6.13 Decomposition of a complex shape.

uni| square in the u,w coordinate plane, where we derived the parametric
equaiionsof the surface from certain boundary conditions or control points.
As mentioned above, the boundary curves of a surface are frequently
irregular. For real objects, they may not correspond to the limits of |he
parametric surface established by the domain of |he parametric variables.
Usually by intcni. the underlying parametric surface always equalsor exceeds in

cxteni |he objeci's surface region that we are modeling. Thus, boundary
curves may be necessaryto delimit a subset of poinis on |he patch. The
points in this subset are in a one-to-one correspondence wilh points on the
real object's surface.

In Figure 6.14, we sec that two of |he boundariesof a surface R are


established by intersections with surfaces may or may nol
and
5\316\212 S2, which
themselves contain model surface
regions. ihese boundary curvesas b]
We denole
and b2. and map tbem onto the unit square of R in parameter space,where
we express ihem as parametric equations of the form

b, = k(0 w,(0] /e[0,l] (6.28)


After we computethe interseclions as sets of u,w points, we apply curve-
filling techniques to define these curves . To obtain the boundary curve in
model space,we compute points on the \320\270
,w coordinale plane from u,(t) and
We
\342\204\226,(/).
then substilute the values otu.w into the approprialesurface equa-
tion to obtain x,y,z points on the curve . The resuliing surface wilh these
irregular boundaries is called a trimmed patch. The curves themselves are
called inmmed-paich boundary elements. For an elegant entry into |his sub-
Embedded Curves 165
\342\226\240

ject see Casale (1987), and Casale, Bobrow,and Underwood (1992). Other
references include Miller (1986). Farin (1993a).Shantz and Chang (1988),
and Farouki and Hinds (1985).
We may need to decide if a given poini on |he unii square lies wilhin a
bounded region. This is called point classification. A somewhat bruie-force
way to do this is to a point q thai we know to lie in
specify |his bounded

region. Then, given any other point p, we caneasily test whether or not it lies

in the region as follows. We construct the straight line -q


\317\201 in the u,w plane.
We then compute the numberof intersectionsthis line makes with each of
the boundary curvesb(. If it does not intersect any of these curves,then is
\317\201

in an active region. If the line intersectsany boundary an odd number of

Figure 6.14 Surfacewith irregular boundary.


166 Surfaces
\342\226\240

times, then lies


\317\201 ouiside the regi on. All even intersections bring Ihe back
\317\201

inlo the region; Figure 6.14 shows severalexamples of |his.


One
way to symbolically represeni a region R is as a function of Ihe
parametric surface S onlo which il is mapped, the boundary curves b,. and a
known interior point q.

R = \320\244(5,\320\254\342\200\236\320\247) (6.29)

Here, S is an m \317\207
\316\267
rectangular array of parametric patches normalized on a
unit square in the paramelric pJane u,w. b; is a set of paramelric curves
mapped on|o the same planeand expressed as functions of a parameier t;
that is,
=
\320\270
u(t) and w - w(i). q is a point on the parametricplane inside the
active region.
An allernative, and perhaps more elegant, way to indicate the active
region is to specify the intersection of an appropriate set of two-dimensional
half-spaces. Using this approach, we merely test each candidate point against
the implicit defining the
functions half-spaces (see Figure 6.15). More
sophisticatedpoint-classification methods are found in the references listed
previously.
We slated earlier that we can decompose the total surfaceof any physical
object inlo a collection of smaller surface regions.In Figure6.16we see an

Figure 6.1S jrreguJar surface defined by the


intersection of half-spaces.
Embedded Curves > 167

Figure 6.16 Surfaceof an objectdefined by a collection of smaller


regions.
extrusion that has been slotted and truncated in a variety of ways, yet we

easily decompose it into six regions, modelingeachwith a trimmed


parametric surface.

There are six parametric surfaces. Sj wraps around the entire cross section
and defines the extrusion'slongitudinal surface (before cuts and slots are
168 Surfaces
\342\226\240

made). S2 is a plane surface normal to 5\316\212 that completely defines one end
plane of the extrusion. 53 is a closed cylindrical surface intersecting S, to form
a slot in the extrusion. 54 is an open cylindrical surface that takes a nick out of
the bottom flange.5, is a plane normal to 5, that establishes one facet of the
near-endplane.S6 is also a plane, but it takes an angular cut through S^.
Each surfaceis a unique in \317\207
\316\267
array of parametric surface patches. We
establish each region onR a surface by intersecting the surface with adjacent
surfaces. We define the interiors by six points qi- q6. (Alternatively,
\342\226\240 we
could use an expression defining the intersectingtwo-dimensional half-

spaces, or we could use the right-left re/ationshipto Ihedirection of traversal


of the bounding curve.) Figure 6.16 shows these points and region
boundaries
mapped onto their respective parametric surfaces in the unit square on
the u,w plane.
To complete the definition of Ihe object's total surface, we define a point
q,, which we know to be inside the enclosed volumeof the object.This point
allows us to test (or classify) any other poim pv. for the condition of being
outside,on, or inside the volume. We do this by connecting and
p\342\200\236 with
q\342\200\236 a

straight line. By counting intersections that occur between this line and each
of the surfaceregions,
we can determine the test results. If there are no
intersections, then p,. is obviously inside the object. If the line intersectsthe
bounding surface an odd number of times, thenit liesoutsidethe object. All
even intersections bring the point backinto the interiorof the object. It is
easy to determine if a
point lies exactly on the surface of the objectby
testing the distance of pv from each region.
THE BICUBIC HERMITE
SURFACE

Two families of cubic Hermite curves forming a parametric net are the basis

of the bicubic Hermite surface. A simple tensor productproducesthe 16-

term polynomial, to which boundary conditions are applied,generating the

geometric form. Four coiner points, together wilh two tangent vectors and a
twist vector at each of these points, are the necessaryand sufficient

conditions defining the bicubic Hermite patch. Sixteen points, four of which are

interior, are also sufficient. Reparamctcrizing, truncating, and subdividing a


patch proceedin much the same way as for curves.A large complex surface
can be defined by a composite collectionofsimpler patches, while preserving
certain levels of continuity.

7.1 ALGEBRAIC AND GEOMETRIC FORMS

The algebraic form of a bicubicHermite patchis given by the tensor product


3 3
=
\317\201(\".\302\273) \316\243 \316\243\342\226\240</\"'\302\273' (7\320\233)
= () j = U
\316\271

where

\302\273,\302\273\316\265[0.1] (7.2)

The a(J vectors are the algebraic coefficients of the patch.Thereasonfor the

term bicubic is obvious, because both parametricvariablesare cubic terms if

169
170 The
\342\226\240 Bicubic Hermite Surface

that as with Hermite curves, Ihe parametricvariables\320\270


0. Notice
a53 \316\246 and w

are usuallyrestricted lo values in the interval 0 to I inclusive.This makes the

patch bounded in a regular way. We wi II discuss this restriction and the use of
irregular boundarieslater.Thetensorproduct method allows us to describe
a rectangular patchas a product of the curve-defining polynomials.
Expanding Equation (7.1)and arranging the
a,y
terms in descending order
produces a result similarto Equation (3.2)
for curves:

p(u,w)
- + a^w2
\320\260\320\267\320\267^\320\275\"3 + a^icV + \320\2603\320\276\320\2702
+ a^irw3 + a^ii2iv2 + a2\\U2w + a^u2

(7.3)
+ a]3i(w3 + anuw2 + atiuw + a]0i(

+ + a02w* +
\320\260\320\276\320\267\320\270^ + \320\260\342\204\226
\320\257\321\211\321\213

This 16-term in \320\270


and
polynomialw defines the set of all points lying on the

patch, the
and it is
expanded algebraic form of the bicubic Hermitepatch.

Because each of the 16 vector coefficients \320\260,\321\203


has 3 independent components,
there is a total of 48 algebraiccoefficients, or 48 degreesof freedom. Thus,

each vector component is

x(u,w) = <733lu3w3 + uvxifw2 + a3Uu3w + - + \321\217\320\250\320\264. (7.4)

with similar expressions for_y(u,>v) and z(u,w).


In matrix notation the algebraic form is

p(u,w)
= UAWT (7.5)

where

\320\2702\320\2701]
U=[i?

W=[h\"3 w2 w 1]

a33 a32
a23 a22 a2i a2J
a13 a12 all a10

\320\260\320\264\320\260
\320\260<\320\270 \320\260\320\271
\320\260\320\256_

Because of Ihe elements in U and W, the subscripts


order of the of the
vector elements in the to
A matrix
correspond those in
Equation (7.3). They do
not, in this instance, correspond to the normalindexingconvention for

matrices. Since the a elements are three-component vectors, Ihe A matrix is

actually
a4x4x 3 array
As we found with the Hermite curves, the algebraic coefficients of a
Hermite patch determine its shape and position in space. Patchesof the same
Algebraic and Geometric Forms \342\226\240
171

size and have a different set of coefficients


shape if they occupy different
positions in space. Change any one of the 48 coefficients, and the result is a
different patch.We generate a point on the patch each time we insert a
specific
pair
of u,w values into Equation (7.5). Although the u,w values are
restricted by Equation (7.2), the range of the variablesx, y, and \316\266 is not

restricted, because the range of the algebraic coefficientsis not restricted.


A patch consists of an infinite number of points given by their x,y,z
coordinates. An infinite number of pairs of u,w values also occurs in the

corresponding parameter space. pair of u,w valuesis associatedwith


A unique
each point. Figure a bicubic
7.1 shows patch mappedintomodel space from
its components in parameter space.

Parametric spaces

Figure 7.1 A bicubic Hermite patch mapped into model space from its
componenls in parameter space.
172 The
\342\226\240 Bicubic Hermite Surface

A bicubic patch is bounded by four curves, and each boundary curve is a


cubicHermile curve. These curves are denoied as: p(i(,0), p(u, 1),p(0,w),and
because
\321\200(1.\320\2700. Ihey arise a| |he limit values of |he parametric variables.
Another way of denoting the boundary curves is by appropriately
Ihe
vector
subscripting p. Thus, we may use \321\200\320\262\320\270., their interpretation
pi \342\200\236,\317\201,,\316\277,\317\201,,\316\271; should
be obvious. There are also four unique corner points p(0,0), p(l,0), p(O.I),
andp(l,l).orpoo,pio.poi,pii-
Reversing sequence the of the u,w parameterization does not change the
shape of a surface. And, aside from any external modeling constraints (for
example, direction the of surface normals), we have almost complete
freedom to assign the parameterization scheme defining Ihe boundary curves. Of

course, p(0,w) must be opposite p(l,w) on the patch,and p(u,0) must be

opposite 1). Figure


\321\200(\302\253,
7.2 shows a useful convention for the elementsof a
bicubic Hermile patch.
It is a simple exerc/seto show that a boundary curve is indeed a cubic
Hermile curve. Let us investigate the curve p(u,0). The subscriptindicatesw =
0,
so all terms containing w vanish, and Equation (7.3) becomes

p(ii,0) = a,0\302\2533+ + ai0u +


\321\217\320\266\320\2702 a\342\204\226 (7.6)

This, is the expression for a cubicHermile


of course, curve.

As we sawfor curves, algebraic coefficientsare not the most convenient


way to define and controlthe shape of a patch, and they do not contributeto
our understanding of surface behavior. Therefore, we must turn to the geo-

Figure 7.2 Elements of a bicubic Hermite patch.


Algebraicand Geometric
Forms 173
\342\226\240

metric form. We derive the geomeiric form from a relationshipbetweencer-


lain boundary conditions and |he algebraic form, in keeping with the

approach used for the cubic Hermile curves.We will use |he four paich
corner
pointspoo,pio,poi,pn and the e'ghl tangenl vectors\321\200\320\271\320\276,\321\200\320\271\320\276,\321\200\302\245\320\276,\321\20
They,
\317\201\316\212\316\212,
\317\201\317\200.
of course, define the boundary curves
=
\317\20110 \317\201\317\213\316\277\316\277
\321\200(\320\270,0)\320\240[\321\200\320\276\320\276 \321\200\320\223\320\276\320\223 (7.7)

=
p(\302\253,l) F[poi pn Pm \317\201\317\212\316\271\316\223 (7-8)

=
p(0,w) F[pfl0 p&
\321\200\320\270 \316\241\316\260.\316\223 (7-9)

=
\321\200(1,\320\270\320\236
\320\240[\321\20010 pTb
p\342\200\236 \316\241\316\271',\316\223 (7.10)

These curves provide 12 of the 16 vectorsneededto specify the 48


geometric coefficients. Four additional vectors are needed,and for these we will
use the so-called twist vectors, one at each of the four comer points.
Mathematically, we express the twist vectors-as follows:

,\342\200\236, w)
\320\2552\321\200(\321\206,
poo
- ^ ^ at \320\270
-U,w -u
\342\200\236-\320\277\321\213-\320\277
an aw

-=^ul
\320\2401'*\320\243
at u = l,w =0
aw
\316\261\316\271\316\271

%
01
-= -, -,
?pb^
\320\240\320\232\320\237 at a=0,w = l
an aw

-i^uiaa aw
Pl1~ aI u =
1>w = 1

Calculating the mixedpartial derivative of the function p(u,w) and


the
evaluating result at the indicated u,w values, from Equation (7.3)we obtain

W)
\320\2552\321\200(\302\273, lit: 1 1 1
Sit aw

+ 4\320\26022\320\274\320\270>
+6\320\2602\320\267\302\253\320\275'2 + 2a2iii

+3a13w2 + 2a12w + an
When we evaluate this equation at the comer points,we obtain

pBo=\"u

=3\320\26031+2\320\26021
\316\241\317\212\316\277 + \320\260\320\270

= + 2\321\21712+ \320\257\321\206
\320\227\321\2171\321\217
\317\201\316\232\317\212'

= 9\320\260 + 6\320\26032
\320\270 + \320\227\320\260-,
+ 6\320\26073 + 2\320\260\320\263,
+ 4\320\26022 + \320\227\320\260,3
+ 2\320\260,\320\263
+ \320\260,,
\317\201\316\220\317\212\"
174 > The Bicubic Her mite Surface

Having gone this Ear wi|h |he jwist vectors, we now do the samefor the

oiher 12 veciors.Thus, when we evaluaie Equaiion(7-3).we obtain


= aoo
poo

plO
= a30 + a2() + aI0 + a00

p01 = + a02
\320\260\320\250 + a01 + aM

pi \316\271 + \320\26032
=\320\260\320\2643 + \320\260,1
+ aM + an + a12+ a21 + aw

+ aLi + an + a,, + a,,, + am + + aM


\316\206\316\262 + aWl

= a io
poo

poo = %
= + 2\320\2602\342\200\236+\320\26010
\320\227\320\260\320\266
\321\200\"\320\276

pU)
= aS] + a21 + + \320\257(|]
\320\260\320\230

poi =ai3+ + \320\260\320\270


\320\260,2 + \320\260]\320\241

poi =3803 + 28(2 + aoi

+ 3\320\260\320\271+
=3\320\260\320\267\321\215
\321\200\320\275 + \320\260\321\215\320\270
\320\227\320\26031 +2a2J +2a22 + 2a21 + 2a2(l +au + a]2 + +\320\260\321\210
\320\260,,

=
3aH
\321\200\320\271 + 2a3: + as1+ 3a\342\200\236
+ 2a22 + a21 + 3a13+ 2aJ2 + \320\260\320\270
+ 3ao3 + + %
2\320\260\320\264\320\260

A geometric iriterpre|a|ion of |he Iwisl veciors is shown in Figure 7.3. Wc


use |he faci jhaj a bicubic paich consisisof |wo mutually orthogonal sets of
curves\342\200\224orthogonal parameterin space. cubic curves defined They are the
by constant values of the parametric variables u, and w,.Oneset containsthe
p(0,iv) and p(l,w) and an infinite number of intermediate \317\201(\316\257\316\257,,\316\227')
curves,

sweeping across a surface from one boundary


to the other. A similar set of
p(w,)v;)curvesoverlays these, forming an orthogonal net. Equations (7.7) to
(7.10) are sufficient to define the boundary curves, but how do we define
these intermediate curves, such as \321\200(\302\253,\320\275\",)?
We proceed as follows. First, we find the endpointsof p(i(,w,) by

computing
and
p(l,w,-)
\317\201(\316\237,\316\271\316\275,)
at w = w, from Equations (7.9) and (7.10). Next, we
must find the tangent vectors pu(u,)V;) and To
\321\200\"(1,\320\270>,-).
do this, we observe
that, for the generalcase,poo and are not
\321\200\320\271] pu(0,>v) must change
equal.Thus,
as w changes from w \342\226\240=.
0 through w, w = same
lo thing happens to
w = 1. The
the tangent vectors
p\"(l,w) along curve p(l,w). Mathematically, we express
this change in the tangent vectors as (3/3w)(pjj\342\200\236,)
and (dldw)(puln), but

\320\255\321\200\321\206(0>)
\320\2552\321\200(0,\342\204\226)

3iv dw
\320\264\320\270
(71\316\240

=
\317\201\317\213\316\231\"(0,<*0
Algebraic and Geometric Forms \342\226\240
175

I 1 \302\273J
0 \302\253', 1

Figure 7.3 Geometric interpretation of Iwist vectors.

and similarly

\320\255\321\200\320\274(1,\342\204\226)
\320\2552\321\200(1,\342\204\226)

dw dw
\320\264\320\270
12\\
/\316\267

At the patch corners, these terms are p^, \317\201'^\",


\317\201',',1;, the twist
\317\201'\316\257\"',
vectors of the
set of boundary conditionswe saw earlier.
There is an analogy between the way we handle a curve and the way we
usethe twist vectors to find the intermediate tangent vectors.Just as we
specifypoints
on a cubic Hermite curve by twoendpoints and tangentvectors, we

can specify intermediate tangent vectors along a boundary curve by the two
end tangent vector values and correspondingtwist vectors. We find points

along a boundary curve p(0,w), example,


for by using Equation (7.9)
p(0,vv) = WMi-[p,)U p,, p& \321\200\320\271\320\223 (7.13)

We use an identical form to determine an intermediate tangent vector at


a point on and orthogonally crossinga curve boundary:

=
p\"(0,w) WMji[p\"w p'd, pSl' pKT (7.14)
Equation(7.14)describescurve a that we might visualize as being formed
by
the arrowhead endpoints of the intermediate tangent vectorsas w varies
176 The
\342\226\240 Bicubic Hermite Surface

along the unit interval. Meriwelher,


proposed Ihis interpretation, calls
who
this an
auxiliary curve. are
Note four auxiliary curves:p\"(0,w),
that there
pu(l,w), p\"'(0,u), and These curves
\317\201'\317\207\316\220,\316\257\316\257).
are an abstract property of the
generalmathematical form of the bicubic Hermite patch. We cannot point |o
themon any physical model of a surface. The parametric componentsof the
boundary curve w = 1 and iis associaied auxiliary curve are shown in Figure

7.3. Note that theordinates are labeled p(l,w) and \321\200'\320\246 expediently denoting
the x, y, or \316\266
components of these veclors.
interesting mathematical property of twist
Anolher vectors is lhal at any
point on the bicubicpatch,p\"\" = \321\200\320\270\".
That is, the order in which we take the
mixedpartial derivalive is not important. This properly means that and
\320\270 w
are completely interchangeable and no experimenton a physical manifesta-

lion of a bicubic patch can dislinguishthe u,w order.

Because boundary conditions permil a complele and unambiguous


|he
definition a bicubic patch as an orthogonal net of cubicHermite
of curves,
we can investigate any interior point or geometricproperty of a patch by
selecting and analyzing an appropriate setofcurves.N ow we begin to see the
patch in terms of Hermite curves in their geometric form. They, in turn,
define the
necessary patch boundary conditions.
these patch-definingcurvesby
We summarize assembling them in a 4x 4
matrix.We begin by filling the first two rows with the geometric coefficients
of curves p(0,w) and p(l,w)

Row 1: p(0,w) -> poo poi \321\200\320\274


\321\200\321\202\320\276

Row 2: p(l ,tv)-\302\273 \317\2011\316\271\316\274


\321\200?0 \321\200\320\270
\321\200\320\270

Next, we fill the first two columns with the geometric coefficients of curves
p(u,0) and p(w,l),noting that some of these coefficients are already entered.
Column I: p(w,0)

J- Column 2: p(i(,l)

4, I

poi poo
\316\241\316\277\317\205 poi

pin \321\200\320\270
\321\200\320\242\320\276
\321\200\320\270

poo poi

\316\241\317\212\316\271
\316\241\316\257\316\277

We have 12 of the 16 vectors enteredinto the matrix. Now, we must use the
auxiliary curvesto finish filling the matrix.
Algebraic and Geometric Forms \342\226\240
177

p(u,0) p(u,l) ! \321\200>,0) p'\"(\302\273-l)

4^ 4- J-
\316\271 J^
I

-> p\342\204\226 poi : pft, poi


p(0,w)

\342\200\224>
P_(_l_.w). __Pi\302\253l Pii_ Pw______P_n____

p\"(0>) -> pSo pfi, \321\200\320\271\320\223


jpSS'
-> \317\201\317\212\316\271
\320\240\"(1\320\273\302\2730 \317\201\317\212\316\277 jpft p',7

Conversely, from this complcled malrix, we can easilyexlracithe geometric

coefficients of the four boundary curves and the four auxiliary curves.
When we partition the malrix into quadrants, we observe thai the four
vectors in the upper left define the four corner points. The upper righi
quadrant contains the langenl veciors with respeel tow at the corner points,while
those with respeel to \320\270
are in the lower left. Finally, the lower right quadrant
contains the twist vector or cross-derivatives at the corner points.The
pattern of these vector subscripts repeals in a regular way.
Using this matrix of geometric coefficients,we can evaluate a point on the
patch at a specificpair of u,w values, say, w, and w,. Figure 7.4 illustrates
the geometryof situation. this Here we see that the point of interest liesat
the intersection of the curves p(w,,ii') and \317\201(\316\271\316\271,\\\316\275}).
This problem
is easily
reduced to finding a point on a curve at a given value of a parametric
variable. We can work with either curve, so we arbitrarily choose to begin with
p(u,,w). First, we determine the geometric coefficients of this curve, \321\200(\320\270,,0),

p(Ui,l),p\"'(\"\342\200\2360),
and p'Vj.lJ.With the.se coefficients, we can then determine
the coordinates of the point p(u\342\200\236wj).

Figure 7.4 Determining the coordinates of a

point on a bicubic Hermite patch.


178 The
\342\226\240 Bicubic Hermite Surface

We compute p(\",,0)using curve \317\201(\316\272,\316\237):


p(w;,0)
-
F,(udpw + ^(\"Opi\" + \320\240\321\212\320\253\321\200\320\252\320\260
+ (7.15)
\316\233(<\316\233)\317\201\317\212\302\273

We compute p(\",,l) using p(w,l):

p(w\342\200\236l)
=
Fi(\302\253,)pM
+ F2(ut)pu + F3(w,-)pSi + Fa(ut)pb (7.16)
We
compute p\"(uh0) using an auxiliary
\317\201'\316\247\316\257\316\257,\316\237),
curve:

= + + + ^(\"\316\237\316\241'\316\257\316\277
\317\201\"\302\267(\"\342\200\2360) F2(\302\253,-)pii>
^(\320\270;)\321\200\"\302\253 ft(\"i)pi\302\273 (7\302\2671?)

Finally, we compute p\"(w\342\200\236l)using p\"'(u,l),another auxiliary curve:

= + +
pu'(ii\342\200\236l) /\316\257\316\234\316\241\316\277\316\212+ /\320\234'\320\236\320\240\320\231'
^(\"\316\237\317\201\317\212\316\212 (7.18)
^(\"\316\237\317\201\317\212\317\212'

Now that we have the geometric coefficientsof the curve we


\321\200(\302\253;,\320\270>),

evaluate it at W/, substituting from Equations (7.15) to (7.18)as follows:

p(u/,Wj)
=
Fiiw^F^ypa, + /s(^)p,o + /^(\"Opoo + Ft(u,)p40]

+ /^HfiOOPoi + /M'OpH + F3(u,)p\302\25301 + F4(\302\253,)pnJ

+
ftW^uJpui
+ b(u,)V% + ^(\"iJpBo+ /\320\247\320\270,)\321\200\320\255\320\224

+ /^^(\"^pKi + +
^(w/Jpff
/\320\234\"0\320\240\320\270 + ^(wOP'aJ (7.19)
We could obtain the sameresultby using curve p(u,>Vj) as the initial
working curve. Equation (7.19) can certainly be reduced to matrixform.We will

do this and at the same time generalize


the
parametric variables by dropping
the subscripts. We cannot yet drop the function notation, but we can
abbreviate the equation to read

poo poi P& \316\277\316\271


\316\241

pio \320\240\320\270
\316\241\316\252\316\212.
\316\241\316\252\316\271
F2(u)
\321\200(\302\253,*\320\253\320\257(\302\253) Fi(u) Fa(u)]
P&i
\321\200\320\223\302\273 \321\200\320\271\321\201\320\242
\316\241\316\277\316\220
(7.20)
Pfo \316\272 Pffi'
\316\241 \317\201\316\220\316\257

\321\205^\320\230 F2(w) F3(w) F4(w)]T

Denoting the 4x4 matrix of geometriccoefficients as B, and simplifying the


Fi{u) and F,(w) arrays to F(u) and F(w) [notice that F(w) and F(w) are row

vectors] produces

=
p(u,w) F(u)BF(\302\273>)T (7-21)

Now we eliminate the function notation and use the Hermite basis-function
transformation Because it is also true that \320\251\320\270)
matrix. = UMF, and because
w and w are symmetrical and interchangeable parametric variables,it is also
Hermite Patch Basis Functions \342\226\240
179

true that = WMf, From matrix algebra,we have F(w)T =


F(w) MfW. With
appropriate substitution into Equation(7.21),we derive the conventional
geometric form of a bicubic patch using matrix notation

= UMfBM/.'W'''
p(H,\302\273v) (7.22)

By comparing Equation (7.22)to Equation (3.12), we see the relationship


between the algebraic and geometricformsand see that we can convert from
one form to the other with the following formulas:

A = M,-BM\302\243 (7.23)

and

=
\320\222 AM/
M^ (7.24)

7.2 HERMITE PATCH BASIS FUNCTIONS

The basis functions for the bicubic Hermite patch have the same form and
serve same
the
purpose as the basis functions for the cubic Hermitecurve.
Because the
patch has two independent parametric variables, we use the
basis functions twice. We see this in Equation (7.21) and, of course,in the

development preceding it.


We apply the same tangent-vectorbasis functions of Equation (3.7) to
patches and obtain the two principal tangent vectors and the twist vector:
p\"(u,w)= F,'(u)BF(w)T

=
pw(u,w) F(u)BFw(w)T

puw(u,w) = Fu(u)BF\302\273'(w)T

or

= VMfBMf\\VT
p\"(u,w)

= VMPBM\302\243TXVT
p\302\273(u,w) (7.25)

p\"\"(u,w) = UM\302\243BM\302\243rWr

Remember that Mj? (and MJ?')is the Hermitebasistransformation matrix for


the tangent vector at a point on a cubic Hermite curve.
We can use a tensor product to express the geometric form as
in n

\320\240(\320\270^)
=\316\243 \320\245\320\254.\320\233\342\204\242(\/>(\")") (7\302\26726)
/=0 / =0
180 The
\342\226\240 Bicubic Hermite Surface

This is analogous to the algebraicform expressed in Equation (7.1). Again,


we must take care in how wc interpret the subscripts on Ftn,(u),
\320\252\321\206,
and
because
F/t\342\200\236(w),
we have shifted their limits. The consequences of m are
\316\267
\317\210-

not explained here.

7.3 TANGENT AND TWISTVECTORS

Computing
and understanding the significance of the parametric derivatives
of the bicubic Hermite patch basis functions are similar to these same
processes in the cubic Hermite curve. The difference is that the bicubic
functions are expressed in two independent variables instead of just the one for
curves. This means that we must deal with partial derivatives. Earlier, wc
developed expressions for the tangent and twist vectors and extended the
notation system we used for curves. Let us briefly review these procedures.
The
tangent vectors are the partial derivatives

p\"(H,w)=
\320\255\321\200(\302\273,\320\270\321\200
and r = dp(M,w) (7.27)

The twist vector is the mixed partial derivative

r v
dudw
(7.28)

We can use these vectorsto changethe taking the same


shape of a patch,
approachhere that we did with curves. of the patch as being
We can think
defined a curve by net. Changing the curves in the net changes the patch.To
investigate the effect of manipulating the tangent and twist vectors, we

recompose the matrix


\320\222
by expressing these vectors in terms of unit vectors

and scalar magnitudes:

piw Pll] &ii]ifii


&1\320\256\320\234\320\256

p](i Pn ^loi'ii) Ajtfi


\320\222
'oot'ii ^01*0] \321\202\321\202\321\207\321\216
\"\316\220\316\261,\317\212\316\277\316\244

'JO1]!) m.olff
/\342\226\240\320\233 >\"jji',T

Notice that we must now add a superscript u, w, or uw to the unit tangent


vector i, because there are two independent variablesand two distinct
directions on the patch.
We change one or more of the boundary curves by changing the
appropriate set of scalars. However, we notice that a change to any of the scalar
multipliersof the twist vectors does not change any of the four boundary
Tangent and Twist Vectors 181
\342\226\240

curves. This is interesting. We can fix the four comer points and boundary
curves and still change the interior shape of a operations on
patch through
the twist vector magnitudes (see Figure 7.5).The figure indicatesthe result of
a
change in the twist vector at \321\200\321\206,
where \317\201','5''-\302\273
The
(\317\201\317\2127)'.
dashed curve net
on the patch highlightsthe effectof this change on the interior. Wc note that

the boundary curves are unaffected.


A patch with all twist vectors equal to zeroiscalledan /-\"-patch, after
Ferguson, its developer. Here, only C1 continuity is possibleacrossthe
boundaries of adjacent /-\"-patches, because these patches are constrainedto have
zero cross-derivatives at their corners. This can lead to surfaces that arc not
smooth enough for some applications. However, it is easy to construct and
modify F-patches, and they are adequate for many geometric-modeling
situations. The matrix of geometric coefficients then becomes

Figure7.S The effect of twist vectors on the interior of a bicubic


Hermitepatch. The dashed curves on the patch show how it
changes when boundary conditions change.
182 The
\342\226\240 Bicubic Hermlte Surface

poci pui PO!


\321\200\321\202\320\276

pio Pu p'io PTi


0 0 (7.29)
pSo pSi
Pto \317\213
\316\241\317\212\316\271
0

7.4 NORMALS

The unit normal is almost in geometric modeling, and in most


indispensable
applications normal
a consistent direction is required.Forexample,it is
common
practice for the normal to point outward from the surface of a solid
model. Computing silhouette curves, hidden surfaces, shadows,and shading
effects requires information about surface normals.At any point p(u,w) on a
bicubic Hermite patch,we can construct a vector that is perpendicular to it.
This is the unit normal vector ii(u,w), which is a function of the tangent
vectors
p\"
and p\" at the point p(u,w). The unit normalis given by

(730)
\342\200\242(\"\342\226\240\"^fcti

it is often convenient to express this as k\342\200\236n(u,w) = \317\201\" \317\207 where


\317\201\"',
=
k\342\200\236 \317\207
\316\231\317\201\"

pH1. The order in which the vector productis taken determines the direction

It turns out that


\316\277\316\257\316\256(\316\257\316\257,\316\227'). we can interpretn((i,w) itselfas a patch,the
normals patch, and we will see later that this proves to be a very useful

interpretation.

A convention for assigning identifying numbers to the corner points and


boundary curves is the subject of Figure 7.6. Here we see that if the fingers
of the right hand curlaround the patch in the direction of ascending curve or
corner-point numbering, then the thumb points in the direction of the
positive or outward surface normal as defined by Equation (7.30). This

convention gives a consistent algebraic sign when summing the area of several
surface patches.
A more convenient way to write Equation (7-30),one that takes

advantage of existing algorithms for the bicubic form, is

=
[x\"
k\342\200\236n \321\203 Z\"]x[*\"' \320\243\" zw]

=
[(y\"zw
- -
x\"z\")
-
y\"z\") {z\"xw (x\"yv y\"x\]

The \317\207
component offi is
Normals 183
\342\226\240

Ip\" x \317\201\"\";

Figure 7.6 Normal vector to a patch.

To rewriteeachof the terms y\", z\"', y\"\\ and their matrix form, we make
z\" in
use of p\"(u,w)
= UM?BM?Wr and p\"(u,w) = UMfBMfWr of Equations
(7.26), and find that

fis - \342\200\224[(UM\302\243B..Mf Wr)(UMf B.M'fW')

(7.31)
-
(UM/B>.M^Wr)(UM^B,MiWr)]
and similarly fori),, and \302\253,.This is a biquintic polynomial in w and and
\320\270> is

relatively expensive to compute. However, if the surface is well behaved(not


self-intersecting, without undulations, and so on), we can instead
approximate the normal at any point on the surfacewith a bicubic
expression, so that
n(u,w) becomes
= UMfBnMjW7'
A(Mlw) (7.32)

where

B\342\200\236 B\342\200\236 \320\273\342\200\236


\320\270; \320\237
\320\262\342\200\236 : \320\237

Nil
ft?\"
\320\257; \316\256'\316\257\\\316\256

We have already derived f\\x, ny, and three remaining


ht. We find the
components of B\342\200\236,
by appropriate matrix algebra is
differentiation of nx. The
straightforward but tedious, producing rather lengthy expressions. Nothing is
gained by presenting them here. Nonetheless, evaluating each of the
resulting expressions at u,w e :
[0 1], that is, at (0,0), (1,0), (0,1), (1,1), determines
184 The
\342\226\240 Bicubic Hermite Surface

the 16 elements of B\342\200\236x.


Similar matrices for and
B\342\200\236, will determine
B\342\200\236\342\200\236 the
remaining elements of B\342\200\236.

7.S SIXTEEN-POINT FORM

It is not always easy, practical, possible to provide the tangent and


or even
twist vector values
required a bicubic
to define Hermitepatch.Therefore, we

now develop another way of representing this patch. Remember, we must

specify 48 degrees of freedom or algebraiccoefficients. A 4 \317\207


4 grid of 16

points supplies and satisfies the 48 conditions (see Figure 7-7). However, we
must also choosevalues for w and w at these points. There are severalways
to do this: by estimating the u,w values for points other than the corner
points using a ratio of line segment lengths to get values between 0 and l,or
by assuming u,w values at the one-third points.
Expandingthe algebraic form of the patch p(u,w) = UAWr produces

=
aHii3w3 + + \342\226\240-
+ aM
\320\260\320\267\320\263\320\2703\320\270>2
\321\200(\320\270,\320\270>)

This is, of course, Equation (7.3).We can generate 16 of these equations, one
for each of the 16 points. Let us use the u:,w,values in Figure 7-7. Thus,

p(0,U) = a33(0)3(O)3 + a3:(0)3(0): + - + a^

+ \"J - +
p(~A =
*J\\](PY
+
\\)\\\316\270\316\263 aOT

Figure 7.7 Sixteen-point form of a bicubic


Hermitepatch.
Sixteen-Point Form * 185

(7.33)

\321\200|\320\235)=\320\247\320\267)\320\250+'\320\271(1)(\321\202|+-+\"\321\216

= + \320\260\320\267:(1)3(1)2+- + \320\260
\321\200(1,1) \320\26033(1)3(1)5 (\302\253\316\271

In matrix form, this set of equations becomes

p(lt;,Wy)=E>

or

\320\225_1\321\200(\320\270(-,\320\270',)=\321\217 (7.34)

The is a system of simultaneouslinear equationswhose


result unknowns

are the elements is a 16 x 16 matrix of uw


of a. Furthermore, \316\225 products, a is
a 16 x 1 vector of the unknown algebraic coefficients of the A matrix, and
is a 16 x 1 vector of the given data
p(w,,w;) points.Notice that the solution to
this equation involves three A matrices\342\200\224one for each of the coordinates x,
y, and z.
Next, we investigate the 16-point solutionfor the geometric form,
= UMFBMiWr as
rewritingp(u,w)

p((i,w)=UNFPNiWr (7.35)
We replace the \320\222
matrix by a matrix P, where

\317\201(\317\213,\316\237) \320\240(0,1)
\321\200(\321\207) P(o,f)

>(H p(if) W
P= \321\200\320\271)
(7.36)

4\302\273) \317\201(\316\2314) p(ll) HI\302\2671)

\317\201\316\237,\316\277) \320\240\320\236\320\224)
>\320\232) >(\302\267!)

Performing the indicated algebra, we find Nf to be


186 The
\342\226\240 Bicubic Hermite Surface

9 27 27 9
2 2 2 2
45 9
9 18
N,- = 2 2 (7.37)

11 9
9 1
2 2
1 0 0 0

This is, of course, the same matrixwe encountered earlier while investigating
the four-point form for curves. With the 16-point form, ihc input data \316\241
are,

parametrically speaking, uniformly distributed over the patch.


The and
\320\222 matrices
\316\241 are related as follows:

= LPL7
\320\222
(7.38)

where

1 \317\213 0 0
0 0 0 1
11 9
L = M^NF = Q
2
1 (7.39)
2
9 U
-I -9
2 2

which we also encounteredearlier.


This
approach, requiring only point data for input, is better for the surface-
fitting problem, but certain characteristics remain that make its use somewhat
tedious. For example, wben using this approach in representing analytically
known surfaces (spherical,parabolicsheets, so on),a significant
and deviation
arises because of nonuniformspacingof the input points. Also, deciding on a
patch distribution over a compositesurface requires considerable care.
Finally, si nee each patch is fit
independently, continuity across the boundaries
is neither guaranteednor likely For many modeling applications, these ilaws
are unimportant;still,they motivate us to make further improvements.

7.6 REPARAMETERIZATION OF A PATCH

The reparameterization of a patch proceedsin much the same way as for a


curve. The simplestform of repaTameterization is a reversal of the direction
Reparameterizationofa Patch 187
\342\226\240

of one or both of the parametric variablesw and w. Again as with curves, wc


can do this easily, and it docs not change the shape of the patch. Figure 7-8
shows the initial parameterization of a patch and the three possible
reversals. We will confine our attention to the \320\222
matrix, because this is the only
matrix whose elementschange.
The matrix of geometric coefficients for the initial reversals will be B,,
where

PlX) pin Pill


\321\200\320\270\320\263,

pin
\342\200\224 Pll Ph. PTi
\320\222
\316\271 (740)
pSo Pci
\317\201\317\213\316\277
\320\240\320\2311

Pi'c Pn
\316\241\316\257\316\277\"
\316\241\317\212\316\271

First, we reversethe parametricvariable u, as in Figure 7.8b. This means


that all curves of constant w will change their direction of parameterization.
To do this, we first simply interchange rows matrix. Next, we
I and 2 of the B|
interchange rows 3 and 4 and multiply each coefficient in these rows by -1.

Figure 7.B The effect of reparameterizationon the patch


normal.
188 The
\342\226\240 Bicubic Hermfte Surface

\342\200\224
qoi =Pn 4oi \316\24111
II\302\267\342\200\236
\320\273 W
qiu-pix) qn =Poi qi(i -\317\201\342\204\242qi'i =\321\200\320\271
\342\200\224
\320\222 (741)
483- =
'2
= =
q5i
\320\247\320\262\320\276\320\276
-\321\200?\320\271 -p?i -\317\201\317\212\317\212
4\302\267\316\2574=-\317\201\317\212\316\223

Lq'm\342\200\224Pi', 4\316\2231 PSi qKT


=
-p3Sr qu' = -pil!'J

We notice two things: First, the coefficients of the auxiliary curvesare


interchanged
and multiplied by -1; second, the directions of the patch normals
are reversed.
Next, starting with Bj, we reverse the parametric variable w, as in Figure
7.8c. This operation will change the directionof parameterization
of curves
of constant w. This time, we interchange columns 1 and 2 of Bj and also

interchange columns 3 and 4, multiplying each coefficient in these rows by -1;


thus, we obtain B3:
=
\320\263<\321\216 Jm
- Poo ~
'i\302\273 _\320\240\320\276)
-
~pw
\317\204\316\277\316\271
\316\241\316\277\316\271
=
\342\200\242\316\212)) r \316\267
\302\267\316\212\316\271=\316\241\316\271\316\277
B, -II =
\317\201\316\271\316\271
_ \342\200\236u\342\200\236u
_ nll
\342\200\224
\320\263\320\223\320\270^-\321\200\320\277
\320\263'\"1'\342\200\224
=\342\200\224pi'o
rllw \342\200\224
\342\226\240\302\273\"\"' n\"u (7.42)
\320\263\320\264\320\260\320\263
\320\270 prx)
\321\200\320\276\320\267 riw ptu \316\223\316\277\316\271
poo

rio = pn fn-pio \320\263\321\216\342\200\224pn


'n\342\200\224pio

Again, we notice of the patch normalsare reversed.


that the directions
Finally, we reverse of both parametricvariables(seeFigure
the direction
7-8d), starting with B,. We can reverse either \320\270
or w first. Let us choose u,

resulting Equation (7-41), B2.Next,


in or we reverse w by operating on B2,
interchangingcolumns1 and 2. and 3 and 4. multiplying each coefficientin 3
and 4 by-1.Thus, we obtain B4:

Soi =
\342\200\224
sm-pn Pm \320\276\320\264\320\260--\321\200]| \316\257\316\277
\321\214\320\2761\342\200\224
\316\241

sic>J=r poi Su -
pi\302\273 \320\254\321\216-
\342\200\224poi\320\254\320\270-
\321\200\320\276\320\276
B<
=
II
\321\201 \342\200\224
U (7.43)
\342\200\224pnsSi 11 01 \342\200\224
\321\214
=-\321\200?\321\217 \320\254\320\276\320\276\342\200\224
\320\254\320\276\320\276\342\200\224 \321\200 10
\321\200
_
c\302\253 \342\200\22411
S 11 \342\200\224
pOl
_\320\254\321\216 sHi=-p\"\302\253. p 01
\302\273\316\271\316\277\342\200\224 \321\20000
_

In this case, the directions of the patch normalsare not reversed.


For a more generalized reparairieterization, we considerthe bicubicHer-
mite
patch in Figure 7.9a. Here, the patch is parameterizedfrom \321\211 and
to \321\211

from Wi to w/. Figure 7.9b shows the same patch,except that the parametric
variables range from r, to \320\246
and from vk to 1^.We let Bj denote the matrix of

geometric coefficients in the first case and B2 the matrix in the second:

P,A P.i p;\302\253 \320\240\320\271

P;* Pi' Pj* P\"i


B, (7.44)
Pf* v;> pi* rT
Pi*
\316\241\316\252
\321\200\320\263* vT
Reparameterization of a Patch 189
\342\226\240

\302\273.i
ty

Figure 7.9 General


of a
reparameterization patch.

q* qc 4. q;;

4i*
\342\200\224 q* qi* q>
\320\222
,2 (7.45)
qi* q!v q?
u* q;; q;j
<\317\212\316\257

The relationships betweenthe elements of Bj and B2 are the same as those


for curves, and the same reasoning applies. For patches,as for curves, the
corner
points are related directly.

=
py*
\320\247\321\203*

(7.46)
=
q/; p/i

q,i=py

The tangent vectors area different matter.To preservethe bicubic form of

equations, we assumea linear relationshipbetween


the patch and
\320\270 t and

between and v. When


w we do this, we obtain results similar to those
expressedby the tangent vectors in Equations (3.29). In particular,we find
190 The
\342\226\240 Bicubic Hermite Surface

that

\316\257\316\257,-\316\257\316\257,
and =
4' (747)
^VP'
For the cross-derivatives,we obtain

_ {u,-u,)(w,- wk) \342\200\236\342\200\236


4 P (748)
ft-\316\237\316\270\316\212-\316\275*)

Here is ail example. IE we reparameterize a patch from u,w e [0,1] to u\\w'


we
\320\265[0,/\320\267], obtain

poo Poi 3\317\201\316\257\302\273


\320\227\321\200\321\216

B' pio 3\317\201\316\220\316\231,


\321\200\320\270 3\317\201\316\257\316\220

3p\302\243o 3pSi 9\321\200\320\271\320\223


9\317\2018\316\277

3plV 3\317\201\317\212\316\271 yp'iT


\320\243\321\200\320\232\320\227\"

If Wj
and are
\316\267, successive pairs of integers, then \320\270,-\320\270,-\320\223,
similarly for f(-
i;, W]
-
Wk, and v, - vh. As we noted for curves, is useful when
this relationship
dealing with
arrays of contiguous patches. In Figure 7.10,individual patches
in the array are readily identified by the array indexingschemeof successive
integers.

Figure 7.10 Parameterization of a


rectangular array of patches.
Truncating and Subdividing a patch 191
\342\226\240

7.7 TRUNCATING AND SUBDIVIDING A PATCH

We can now apply reparameterizing techniques to create a new patch from


an existingone, stating
the as follows: Given
\321\200\320\263\320\276\320\254\320\227\321\201\321\202
a patch whose
geometric coefficients are Bbfind the matrix B;of a new patch that is a subpatch
of the given patch and bounded by curves of constant wb
w\342\200\236
\320\270;-,
and \320\270>;.\320\240\320\263\320\2

Figure 7.11, we find the corner points of the new patch

Qoo = \321\200(\320\270/,\320\270>/)

=
qio p(\",.w*)
(7.49)
qoi =p(\"\342\200\236Wi)

qn =p(uj,w,)

where the vectors


\317\201
and q vectors; are elements of Bj and B2,respectively.
Using Equations (747), the tangent vectors are
= - = -
qoo (\302\253, W/)p\"(M;.\302\273'*) quo (w/ wk)pw{uhwk)

=
qfo=(\302\253j-\"i)p\"(li;.M'*) qw (wi-wk)p\"(uk,wk)
=
(7.50)
qoi (^-\302\253i)p\"(\302\253i.H'i) qoi =(w,-wk)p\"'(Uj,w,)
=
qIi (H/-\302\253,)p\"(\"/.\302\273'/)

Remember that t\\-to


= l and v, \342\200\224
v0 = 1.

New parch

Figure 7.11 Subdividing a patch.


192 The
\342\226\240 Bicubic Hermite Surface

We obtain Ihe cross-derivativesor twisl vectors by evaluating p'm(u\342\200\236Wk),

and and
p\"w(u\342\200\236wk),p\"K(uhwi), using Equalion
\317\201'\342\204\242'(\316\257\316\257(,\316\271\316\275,) (748):
- - -
quo (\302\253y \320\270,)(\320\251 wk)p\"\"(u;,wk)

qio =
- -
(\"/ \302\253i)(wi Wk)9m(uhwk)
(7.51)
qSi = (jj; - h,)(>v/
-
w^p'M(uhw/)

qi'i - (Mj
-
u,)(wi- Wi)p>\342\200\236i*i)

7.B COMPOSITE HERMITE SURFACES

A composite surface is a collectionof individual patches joined to form a


continuous, more extensive,and more complex Figure 7-12 shows a
surface.

composite surfacedefinedby a 4 \317\207


3 array of 12 patches. There are two basic
questionsto consider. First, whal factors control the shape and, particularly,
the continuity
of the composite surface? Second, how do we construct such
surfaces? patch is the basisfor the investigation
The bicubic that follows.
We are interested in the continuity of two
patches p(u,w) and q(\302\253,iv)
having 3 common boundary such thai the curves p(l,w) and q(0,w) are identical

(see Figure 7-13),and in the effeclof the twist vectors on the continuity along
this shared patch boundary.ToensureG1continuity across this boundary, the
coefficients of the respective auxiliary curves must be scalar multiples of

Figure 7.12 A composite surface.


Composite Hermite Surfaces \302\253193

Curve \317\201

=
\320\240|\302\253.\320\270>) %\316\223 \"\316\241,

Curve \317\201

Curve q

Figure 7.13 The effect of the twist vector on continuity.

each olher. Given Ihe coefficientsof the auxiliary curve of patch p(u,w)
along p(l.w) (namelyp'fo. and
\317\201\317\212\316\271,
\317\201\316\212\342\204\242,
then
\317\201\316\220\,")
Ihe corresponding
coefficients of
q(u,w) are related as follows: q'oo = <?\317\201\317\212\\>,
q'6o'
=
qi'u
=
\320\264\321\200\"\320\276. 4$'
=
\302\253\317\201\317\212\316\271.

When Ihese
\316\257\316\220\317\201',\342\204\242.
conditions prevail, we find lhal q\"(0,w)= iip\"(l,tv) al any

point along p(l,iv); that is. along q(0,tv).


The geometric coefficients required
to produce G1 continuity across a
common boundary between two patches are shown in Figure 7.14.This for-

1,1 0,1 I,1

\320\232

-+- .1.

\"\321\207
1 \316\274\316\271\316\277

\342\226\240
4

\"\316\241\". \"p;;

--1 1

-11IU

0.0 1,0 0,0

Figure 7.14 The geometric coefficientsaffectedby


the requirement for G' continuity across a common
boundary betweentwo patches.
194 The
\342\226\240 Bicubic Hermite Surface

mal was introduced by Pelers (1974). We conclude thai adjacent patches


have Gl continuity only if common position-determining rows (or columns)
of their matrices
\320\222 are identical and if common auxiliary curve-determining
rows (or columns) are multiples of each other. Thus, two patches joined to
exhibit \320\241
continuity a total of
have 73 degrees of freedom, whereas two

disjoint patches
have a total of 96.
At a corner of any patch, four -vectors contribute to its shape throughthe
operation of the basis functions on them. Because the basis functions are
invariant, all the shape-determining powerlies in these four vectors, p(u,w),
p\"(if,iv),p\"'((i,>v), and p\"w(u,w).Four patchessurround and share an interior
corner point of a compositesurface.In many modeling situations, it will help
us to consider thesemeshpointsor corner points as the centers or foci of the
shapingparameters.
Figure 7.15 shows conditions at an arbitrary internal point p,( of a
composite surface where four patches meet. Each quadrant surrounding this
point contains a list of the vectors applied to the patch in that quadrant.
Clearly,all four patches share the commonpointpy. Consider next the
common
boundary curve between patch I and patch II. The tangent vectors in
the w direction must be identical to ensure that the respective boundary
curves do match. The tangentvectorsin the \320\270 direction must only be in the
same direction, differing only by a scalar multiple to
\320\272 ensure Gl continuity

Patch 1/ Patch 1

\302\273\316\256
\302\267*? \342\200\242V

kK \"K\" \"3

*v w \"\320\246

!\320\260\320\270.\320\232
*.*:\342\226\240V/C \"3 \320\223\320\247

Patch 111 Parch IV

Figure 7.15 Continuity characteristics of a


composite surface.
Composite Hermite Surfaces > 195

along the curve through the point.And since the cross-derivatives affect the
slope along this boundary, as we have seen, they, too, must differ only by a
scalar multiple.
By continuing this analysis for the other patch boundary combinations we
generate the relationships between vectors, as the figure shows.We conclude
that at an arbitrary point pl7, only 14 degrees of freedom are available to
control the local shape of the composite surface (that is, four vectors and two

scalars) if we are to preserveGlcontinuity.


Notice that the \320\272
and / scale factors are not strictly unique to eachpoint.
They
do not change along aline of constant ('or/ (seeFigure 7-16), thus

preserving
a constant scalar-multiple relationship between adjacent auxiliary

1 1 \"i/.i \302\253\316\223,.\316\271

*, k: K,, \320\276

1 i
'm ',-=
i
*f Vm w

1 i 1 1 \317\201\"
\316\275. \317\201,',.. Pi.r.;,

*, *( '\320\223\",,
\316\241\317\213\342\200\236, *... *,., \317\201?..,-., \320\263
\320\240\320\223\320\274.,

1 i \320\263 1
';\302\273 '/\342\226\240\342\226\240 '/- '/\302\267.

*r 1 *!.. 1
\316\275 *\342\200\236\316\233\316\271 '/..

1 \316\234\316\271
\"if \317\201? 1 1 \317\201,\302\267,., 1 1
\321\200\320\223,.,\302\267 \302\253\\.l., \320\252.,

*, \302\253. p; Pf *.. *,., <*,., *7j *,.j *,-! \317\201\316\223,\316\244,


\342\226\240*,\342\200\236

1 1 1 ' 1 I 1 1
r \316\212 '; \320\263 '/ '/

1 1 \316\271
*l V/ ', *,-, *\342\200\236,', '/ *i.j *\302\273'', '/

Figure 7.16 Continuity-driven propagation of scalefactors.


196 The
\342\226\240 Bicubic Hermite Surface

curves along a curve of constant u-, or wt. Also notice that when \320\270and w take
on integer values at intervals correspondingto the i,j indexing scheme, repa-
rameterization is not necessary,because,for example,ui+i- \321\211~1. In the
figure, only the \320\272
and /scale factors are shown in three of the four quadrantsat
each (,/' node. They multiply the corresponding vectors in the first quadrant
of the node.
The distributionof scalefactors for a 4 5
\317\207
array of patches with seven

distinct scale factors in Figure 7.17-Although the arrows at eachend of


is shown
the band of constant scale factor are bidirectional, we must select a single
consistentdirection for each band to which the scalar relationshipapplies.
Once we select a convention for associating the data at the points with the
adjacent patches, we can then easily develop a scheme to fill in the matrix
\320\222

for any specific patch. If we identify a


patch by the lowest pair of indices of
the four sets defining the patch corners, then we readily fill the \320\222 matrix of

patch (,/'as follows:

p.) p<,/+f pi //+\316\257\316\241\317\212.;+\316\257

- Pi + 1,/' Pi + l.Z + 1 \317\201\316\223\316\271-1./ '/ + 1\321\200\"+1,;


+ 1
[B]\342\200\236 (7.52)
\320\240<; \316\241\316\271,/+\316\271 \320\240>; '/+ip,., +i

+ lpi+f./
\"\316\271 + lpr
\"\316\271 + l./ +1 \"i + lPi+l./ fti + i'; + lPi+(.; + !

Here the indices outside the brackets on \320\222


identify the patch itself and not
an element of the matrix.
Now let us consider how to construct a composite surface.Applying
parametric cubic forms to modeling problems once required the userto supply
tangent and twist vectors as well as point coordinatesat the patch corner

points. Soon, there were schemes to definepatcheswithout having to specify

tangent vectors. Some schemes replaced the required input vectors


tangent
with extra point coordinates other than the corner points. This approach was
useful for
creating individual patches, but most surfaces are sufficiently

complex to require a number of patches joined together.Composite surfaces

created this way usually lacked G' continuity, unsatisfactory for most
applications.

Parametric spline interpolation came generate a rectangular


into vogue to
network of patches from a corresponding network of points, usingnumerical
differentiation of the spline interpolation to calculate the derivatives
required for the complete set of patch coefficients. Cardinal splines,a more
elegant approach, were introduced by Gordon (1969).
Here is a summary of Timmeris (1976) application of Gordon's approach
to defininga rectangularnetwork, of bicubic Hermite patches. We consider
two families of intersectingcurves q, and r, with \316\271
efl: m] and /' e[l : \320\270],
Composite Hermite Surfaces 197
\342\226\240

1,5 6.5
\316\271
iyii'ii'

*\302\267[,,\302\267,,,,\302\267,,t\\>t\\.\\\\\\,\\ N\342\226\240\342\226\2401
\342\226\240\342\226\240-\321\207\321\211\321\200\32
\342\226\240I

\316\223\316\271,\316\271|\316\220\316\220\316\271\316\271\316\271\316\231'\316\234
\342\226\240!\320\242/\320\226
jfe^

\316\246

1,1 6.1

Figure 7.17 Distribution of scale factors.

which combine to form the wireframe surface shown in Figure7-18.Note


thai there are mxn intersection points.
We
express the q, family of m curves in terms of the parameter 4-, and the

17 family of curves
\316\267 in terms of the parameter t. Then, for a typical curve,

p(5) = 4f(5) Je[0,5,] and p(t)=r,(t) te[0,T,] (7.53)


where \317\201
is the position vector to a point on the indicatedcurve.
The range of the parameter is not necessarily identicalfor all of the qf or

17; therefore, we define a second set of parameters u,w such that

1 f- S, 1 V ',
and (7.54)
m \" = I '11
\316\271

The double subscript on s and t denotes their value at the intersection node
indicated.The parameters and
\320\270 w are normalized to map the entire surface
198 The
\342\226\240 Bicubic Hermite Surface

Figure 7.1B Rectangular networkof intersecting


curves.

into the unit square in u,w parameter Space. Each s curve corresponds to a

single value of w and each t curve corresponds to a single value of u. This


procedure has the effect of defining functions
\316\267 I = Tj(w),j e [I : n] and m
functions s = S,(u), ie[l: m]. In practice, we express these as parametric
spline-interpolating functions. As a result, we reparamelerize the two
families of curves to map them into the unit square,
so that

=
\321\200(\320\270)
\320\247\320\224-(\320\270)] \320\240\320\230=\320\223,[7\302\273]

ie[l:m] and /e[l:n] (7.55)


\320\275\320\265 we [0,1]
[0,1]

Next we consider the actualinterpolationproblem. We can treat this


network interpolation as a combination of two problems, interpolatingthe q,
and tj separately. For example, consider the m curvesof q,(i/).Eachof these
curves corresponds to a distinct value of the parameter w; therefore,it is
natural to interpolate these curves separately.

p(u,w) = \302\243
=
F,(w) q,(ii) (7-56)
i l

The Fj(w) are basis or interpolatingfunctions. These have the obvious


properties:

= s0
f,<w,)

-0 if i*j (7.57)

- 1 if '=/
Composite Hermite Surfaces 199
\342\226\240

We are free lo choose any


functions lhal satisfy Equation (7.57) lo act as
basis functions for the indicated interpolation.
Let us consider the classof cubic spline-interpolating functions tor the F-\342\200\236

often referred lo as cardinal splines. Figure 7.19shows several of the F


functions. Notice lhal the maxima damp rapidly as the curvemoves away
from

the defining node. This is significant, becauseil is often possible lo truncate


Equation (7.56) using the F, in only the immediate neighborhood of wt.
Specifying values for the dependent variable at each of the interpolating
mesh points results in two unspecified conditions. Usually these conditions
are first- or second-derivative constraints applied at each end of the mesh.
For the splines defining the q,(s), the constraints reflect the obvious slope
and curvature considerations for a space curve. Selectingendpoinl
constraints for the other two spline fits is not so obvious.In the absence of any
other constraints, we assume lhala constant secondderivative in each of the
two end segments will be imposed on both S,(u) and Fj(w).Clearly,we could
have
performed the interpolation

p(u,w) = (7-58)
XW',(\302\273>)

The functions F;-(\302\253)assume


the same role as the F,{w)in Equation(7.56). For
our
example, where we specify both q,((i) and ij(>v), we achieve the optimum
interpolation by using

p(\302\253,w)
=
J F{u) r,(w) + \302\243/\302\267\302\273 -
\321\206,(\320\270)
\302\243 F{w)
\302\243 F;(u) (7.59)
p\342\200\236
/- I 1=1 i=1j=l

where are
p\342\200\236
the values of at
\317\201
the i,j mesh points.

Figure 7.19 Cardinal


spline-inierpolati\316\267gfunction.
200 > The Bicubic Hermite Surface

II turns oul lhal Equation (7-59) is an elegant but computationally


inefficient way to interpolate two families of curves forming a rectangularmesh.
However, we can use the equation to determine the geometriccoefficients
for a network of bicubic Hermite patches. Once we selectthe patch corner

points, we can use the equation to determinevalues of p'('ni,, p\"u.,and p\342\204\242.

Finally, if q, and r, have G\\


G\302\260, and G2 continuity, then Equation (7.59)
guarantees this same continuity throughout the unit square, u,w e[0,l]. If the
unit square is subdivided into a
rectangular array of bicubic Hermite
patches, continuity is preserved, provided the patches are not arbitrarily
reparamelerized.For if we
reparamelerize example,
each patch to the unit
square, we createa discontinuous relationship between the original
parametersand the new parameters, and we lose the G2 continuity of Equation
(7.59).
What are the practical implicationsof this surface-generating
scheme?
interpolation First, it is unlikely lhal the two families of curveswill be

completely
defined at the outset of the modeling problem.It is likely lhal the
initial data will be in the form of discrete points distributedin some semi-

regular way over the prospective surface,perhapsincluding slope and


curvature data. If this then the parametricrepresentations
is the case, of q,((i) and
tf(w) remain to be defined. There are different approaches we can lake, and
the nature of the input data will determine the strategy
Let us consider the case where the point data are in the form of an m \317\207
\316\267

array uniformly distributed over the surface, without slope or curvature


preconditions. We may now decide to represent q,-(\302\253)and r^(w) as follows:

4;00 = \316\243\320\222\320\224\320\240\320\260
and
\316\234\")
-
Wv\302\253
\316\243 (7-6\302\260)
- \316\241
\320\243 i = 1

Substituting these equations into Equation (7.59) producesa simpler


expression:

\"I /I

f- l/ = \316\271

If we include slope or curvature constraints, this expression


becomes more
complex.
Equation (7.59) or (7.61)can be interpolated over the entire surface and
mapped into the unit square u,w parameter space, similar to the process
in
we usedfor the bicubic Hermite patch.The obvious difference is lhal, for the
immediateexample, a
single equation does not cover the entire unit square.

However, each patch element formed by the two families of curves is the
equivalent of a bicubic patch in the sense lhal, within any quadrilateral patch
element,the interpolation may
be expressed as the familiar
Composite Hermite Surfaces \342\226\240
201

(7.62)

Any subelemenl can be parameterized lo the unit square without danger


of altering the compositesurface.
This means that interpolation by Equation
(7.59) or (7.61)is equivalent lo,and may be replaced by,
a network of {m- 1)
\317\207
(n
-
1) bicubic Hermite patches without affecting the guaranteed
A disadvantage
continuity of this approach is that it can lead to a large number of

patches.A practical alternative would allow us lo model the samesurface


using fewer patches and without changing the original input point data.
Figure 7.20 illustrates a scheme to selectively reduce the number of patches
used in a composite surface model. What was potentially an 11 \317\207 15 array of

patches is replaced by a 3 x 3 array.


Reducing the number of patches, however, could causea lossof G2
continuity
This loss becomes apparent when we consider a singlecurve;for
example,
the upper boundary curve in the figure. In the secondsegment, we use a

single cubic Hermite curve lo approximateseven curves.The single segment


will match the original endpoinlsand tangents; however, the curvature may
deviate somewhat. Freeing the curvature at the endpoinls leads lo the
discontinuity Because the original composite curve had continuous curvature,

\316\223

_+_._ \342\226\240\320\247--1
I
f
-1\342\200\224r-
I
\342\200\224 __L
--v\342\200\224t\342\200\224! I\342\200\224
L_J
\316\267\342\200\224\320\263 \"T
\316\271

\316\271

.\316\247.
4-4--I--. -J\342\200\224r- i\342\200\224
I
I
\342\200\224
__L\302\267- \316\271
1- +--|-\321\207
\316\271 I

+ \342\226\240
-r -+\342\200\224!
\342\226\240T-t \316\223\"

J__ \342\200\224
-r \\\342\200\224
1\342\200\224I\342\200\224 r

\320\223--\320\223--\320\223- r\342\200\224\317\204
|_4
I
-i 4--f - -I
--1--+-
-r\342\200\224\316\271

-15 Parches reduced io 3-

Figure 7.20 Patch array on a compositesurface.


202 The
\342\226\240 Bicubic Hermite Surface

the new single-curve approximationshould be close and the resulting


discontinuities barely discernible. Note that in the course of this reduction in
the numberof patches,the final network is slill rectangular.
A final simplification is possible.In the preceding example, input data
has the same number of points in
points form a rectangular mesh\342\200\224each row

it. Now consider the problem of a surface with transitions from a complex
crosssectionto a simple one (see Figure 7.21).The number of pointswe need
to define the simple section is less than for the
complex one. To preserve a
rectangular meshof initial data points, we would have to specify moredata

points for the simple sections than these shapes would otherwisewarrant.
We conclude that the rectangularity constraint requires us to supply \320\256\320\276

much data, and thus it is inefficient. To avoid this, we can use the following
strategy.
We assume thai in most cases we prefer to supply data for a series of cross-
section curves rather than for a rectangular grid on a surface. We let nQ
denote the number of data points required define to the most complex cross-
section curve and m the number of crosssections. A
rectangular mesh

requires m \317\207
nQ mesh points; however, instead of a rectangular mesh formal,
we now allow the model input to consist of the exact number of points

necessary for each cross section individually Thus, we could describea linear
cross-section curve using only two points. Using this approach, the total
number of points required to describe the surface is

Figure 7.21 Transition from a complex to a simple


crosssection.
Special Hermite Patches 203
\342\226\240

\316\235=\316\243\316\267' (7-63)

Obviously, N<mntl. Using this reduced input data, we interpolateeachcross-


section curve, using a conventional spline or other form of representation.
Next, compute wc a set of n0 points
for each curve, and we continue as for a

rectangularmesh.
Insofar as composite surfaces are concerned, we have barely scratchedthe
surface (pardon the pun). The literature abounds with a great variety of
representational mathematics and construction techniques for most modeling
situations.

7.9 SPECIAL HERMITE PATCHES

There are several ways to construct a plane patch, and we will investigate
three of them here. Figure7-22shows the simplest construction, which we
interpret as
= +
\321\200(\321\213,\320\270>)
\321\20000
ur + ws u,w e[0,l] (7-64)
This equationdefinesa plane patch through the point pTO
and parallel to the
vectors rands. It is a specialcaseofthe bicubic Hermite patch. We set all the

1.1

Figure 7.22 Vettor equation of a plane.


204 The
\342\226\240 Bicubic Hermite Surface

algebraic coefficients in
Equation (73) equal to zero except a^, and
\320\260\320\260\320\264, a0i,
resulting in
= + \320\275\320\260\321\210+
wa0
\320\260\320\276\320\270
\321\200(\320\275,\320\275>) (7.65)

- r, and av, =
identical to (7.64), and we find am - \321\200\321\210,
Equation (7.65) is a]0
s. We can determine the geometric coefficients for this constructionas well:

Poo -
= + s
pixi poi \317\201*

+ \320\263
\321\200\321\216=\321\200(\320\256 pn-poo + r+S

\320\263 = \320\263
\316\241'\317\214\316\277= \316\241\316\277\316\271

(7.66)
= \320\263 - \320\263
\316\241\317\212\316\262 \317\201\317\212\316\271

Pot=s =S
\316\241\316\277\316\271

= s
\316\241\316\252\316\277 pn=s

where the twist vectors > are


are

= \317\213 = 0
\321\200\320\271\320\276 \316\241\316\277?

(7.67)
= \317\213
\317\201\316\257\316\277 \316\241',\316\244'=\316\277

We assemble the matrix


\316\222 directly from these equations:

+ s
\321\200\320\274 \321\200\320\276\321\202
s s
+r poo + r +s s s
B = poo (7.68)
r r 0 0
r r 0 0
Figure 7.23 illustrates method of construction. Here we start with
a second
three points, poo, pm, poi- From elementary geometrywe know that three
points define a plane. We construct all the other geometric coefficients from
these points in such a way as to guarantee that the patch lies in this plane.
Using the elementsfrom the figures, we easily assemble the \320\222
matrix:

~~ ~~
poo poi poi poo poi poo
+ Poi \"poo
- -
poo
B = pin
\316\241\316\257\316\277 pm poo poi
(7.69)
-poo
\316\241\316\272\316\271-\316\241\316\277\316\277
\321\200\321\210
0 \317\213

_pio~Poo pio-poo 0 \317\213

The final plane patch construction is considerablymoregeneralized than

the first two. It permits us to construct planefigures with curved boundaries.


As we see in Figure 7-24,we do not restrict the boundary curves to being
straight lines. We start with the point poo and the two tangent vectors piio,poo-
Special HermitePatches\342\226\240
205

Figure 7.23 Special bicubic Hermite patch form of a


plane.

=
l'oi Pm
\"\316\277\316\212
' /oiP\302\253!
\316\232
'\",\316\271^+\316\233\316\271\316\237\316\261.

\316\232
-'\342\200\236\316\241^+\316\257|,\317\201\302\243

+ *,, PS
, =Pqd+ \302\260..pSo

= +
\316\241|\316\270
\316\241\316\277\316\277-,\"',\316\277\316\241\342\204\226
\316\257\316\212\316\257\316\241\316\252\316\271

PTo^mPSn+^olu

Figure 7.24 General bicubic Hermite patch form of


a plane.
206 The
\342\226\240 Bicubic Hermite Surface

We use these tangent vectors as a basisin the planeof the patch and define
the other geometric coefficients as linear combinations of them. We can
define the cross-derivatives or twist vectorsto bezero,or we can define them
by some relationship, such as pig' = (vti
- + - Once
\321\201,(,)\321\200\320\276\321\201
{d-\321\206 <^)\321\200\321\210- again.
we can assemble the elements of-\320\260\320\222
matrix from the figure:

poo poo
+ <Woo + \320\254\320\276
[PS) pr\302\253 eoipoo + /[iip\302\253)
+ flfopoo + Npoo poo + onp&i+bnp;;)
B= pm eiipoo+/np!xi
\320\265\321\216\321\200(\321\216+/\321\216\321\200!\321\216
(7.70)
pHoo + ^\316\262\316\257\317\201\316\264\317\214
\320\24101\320\240\320\2310 0 0

cmp!io
+ f'loprSj + ^npiio 0 0
cnpoo

Cylindrical Surface
A cylinder is a surfacegenerated by
a straight line as it moves parallel to
itself along a curve. Here, we will construct a cylindrical bicubicHermite
patch.
In Figure 7.25, we see a curve whosegeometric coefficients are fpo pj
Po\" Pi\"]''> an^ a straight line defined from pr) to p2. The geometric
of the line in the cubic Hermile format are [p0 -
coefficients straight p2 (p2 pa)
(p2 - po)]7- Using these elements, we readily find the matrix
\320\222 for a patch
defined by the given curve and line:

Line

Figure 7.25 Cylindrical surface.


Special Hermite Patches 207
\342\226\240

po P: P: - po p2
-
po
-
pi + P2
- -
B =
Pi po p2 po p2 po
(7.71)
\320\240\320\231 PS oo
LP\" Pi' 0 0 _

A more general expression is

p(ti,w) = p(u) + wr (7.72)

where p(u) is any space curveand r is the direction vector of the straight-line
rulings (see Figure7.26).We do not restrict the function p(u) to the cubic
polynomial form. A cylindrical surface is a special caseof a ruled surface.
Ruled 5urface

We now the locusof a movingpoint


know that with one degree of freedom is
a curve. We also know that the locus of a straight linemoving with one degree
of freedom is a surface. This is a specialtype of surface, called a ruled surface,
defined such that through each point of it passes
at least one straight line
lying entirely in the surface. The simplest of all ruled surfaces are the plane,
the cone,and the cylinder, all special cases because each js governedby a set
of constraints that make \320\232
unique.
The hyperbolic paraboloid and the hyper-
boloidof onesheet are also special ruled surfaces. Each of these surfaceshas
two mathematically distinct families of straight lines,calledrulings.

Figure 7.26 An other cylindrical surface.


208 The
\342\226\240 Bicubic Hermite Surface

Every developable surface is ruled, but every ruled surface is not


developable.
A developable surface is one that can be unrolledontoa plane
without stretching or distorting it; cones and cylinders are good examples.
However, the hyperbolic paraboloid is not developable. Later,we will
examine the special testable characteristics of developable surfaces. Figure7.27
shows the geometry of a bicubic ruled surface. Given two cubic Hermite
curves p(\302\253)
and
q(w), we construct a ruled surface by joining with a straight
line each point on to a
\321\200(\321\213) point
on q(u) having an equivalent \320\270
value. We
fill in the B-matrix elements accordingly:

Qo Qd
-
po 9i)
- Po
po
\342\200\224
B= pi Qi Qi-pi Qi pi
(7.73)
PS q& 0 0
LP? 41 0 0 .
Each parametric curve of constant is
\320\270 a straight line. Thus, a general ruled
surfaceis a linear interpolation between two curves.
The hyperbolic paraboloidis a specialcase,because both families of
parametric curves p(t(,wf) and p(ujtw) are straight lines. Given the four corner

points, we define the eight tangent vectors as straight lines and the four twist
vectors as equal to zero (seeFigure 7.28). From this, the \320\222
matrix follows

directly:

Figure 7.27 Ruled surface.


SpecialHermite Patches 209
\342\226\240

Figure 7.2B Hyperbolic paraboloid.

Pi \320\240\320\267
\320\240\320\267
-\321\200\321\200
\321\200\320\267-\321\200\321\200

B= P2 p4 p4-p2 p4-p2
(7.74)
P2P1 p4p! 0 0
.p2-pi 0
\321\2004-\321\200\320\267 0

Can we improve the representationif we use nonzero twist vectors? How


and why? (Hint:Try p'ffi = (pj - p3) - (p2 - pi), and so on.)
Here are two more ways of representing a ruled surface with a parametric

equation. The first is

= + wd(u)
g(u)
\320\240(\302\273,\320\2700 (7.75)
where g(u) is a curve and d(u) is the direction straight line at
vector of a
point on
\320\270 the The parameter
curve. w
gives the distance ratio of the point
p(ti,w)fromg(u) (see Figure 7.29). If u,w e [0,1], then ld(u)l equalsthe length
of the straight line when w = 1. The vector functions g(t() and a(u) in this
form are not necessarily restricted to the cubicpolynomialform.
An alternative expression based on the straight-line rulings joining
corresponding points on two space curves d(t() and h(u) is
210 The
\342\226\240 Bicubic Hermite Surface

p(u,w) - (1 - w)g(u)
+
wh(u)
(7.76)
w[h(u) - g(u)]
=
g(t() +
where u,w e [0,1]. Again, in this form the vector functionsg(u) and
h(u) are
not necessarily restricted to cubic polynomials. Figure 730 illustrates the
vector construction of a ruledsurfacevia Equation (7.76).

Degenerate Patches

Degenerate patches immediately attract our attention to their unusual

shapes. Almost invariably, these strange shapes are the result of an array of

geometric coefficients with equally unusual characteristics, which may


include coincident control points or other unconventional values and

relationships. Degenerate patches are possible through intention or accident.


For now, the best source of these patches is our imagination. Any bizarre

form we can conjure up is certain to appear unbidden and at an awkward


moment in any sophisticated modelingsystem. The conditions we are about
to explore can be createdwith any of the forms we have discussed thus far,
as wellas those yet to be discussed, including the Bezjer and B-Spline
surfaces. Some of these forms have obvious idiosyncrasies\342\200\224superimposed

vertices or, perhaps, jumbled vertices of their characteristic polyhedra.

Figure 7.29 Ruled surface.


Special Hermite Patches 211
\342\226\240

P|'\"f- Pat4)

Figure 7.30 Another ruled surface.

There are several ways to


degenerate patches; for example,
categorize
those exhibiting degenerate boundary curves, those exhibitingsuperimposed
corners, and those with strictly internal degeneracies. We can demonstrate
them all using a single bicubicHermitepatch. The simplest such patch is a

point wherepm-pio-poi-pn ar,d all other coefficients are identically equal


to zero.A patch degenerates to a straight line when \317\201'\317\214\316\277
= - and
\316\241\316\271\316\277-
\321\200\320\270>
\317\201\316\257\316\214

all other coefficients are zero.


The degeneratepatchesin Figure 7.31 have easily identifiable
in
characteristics their matrices.
\320\222 For the three-sided patch in Figure 7.31 a, if we
assume that pm
=
pw, then the \320\222
matrix is

poo Pm pop
\320\240\321\210

poo Pli Pm Pi'.


B(n)- 0
(7.77)
pBi \320\240\320\227\320\223
\316\241\316\257\316\223

0 Pi'o \316\241\316\257\316\257
\316\241\317\212\316\271

A different kind of three-sided patch is shown in Figure 731b. Instead of a


zero-length fourth side, one of the sides does double duty. Its matrix
\320\222 might
be as follows:
212 The
\342\226\240 Bicubic Hermite Surface

poo poo
\321\200\321\210 \320\240\321\210

poo poi Poi


\321\200\320\271\320\276
\320\257\320\274- (7.78)
Pm Poi
\316\241&\316\244
\320\240\320\2311

pio
\316\241\316\257\316\277 \316\241\316\252\316\252
\316\241\317\212\316\271

When points diagonally opposite each other are coincident,


the result may
be as shown in Figure 7.31c, and the matrix
\320\222 would be as follows:

P<M! Pio \316\241 poi


\320\264\320\260

pio Pn \316\241\316\257\316\220
\317\201\317\212\316\277
B<d- (7.79)
pSo poo pi',:
\317\201\316\257\316\257\316\271

.\316\241\316\220\316\277pio
\316\241\317\212\316\271
\316\241\316\212\316\244

*Vio

\320\240\320\276.\320\257\321\200\320\256

{0

Figure 7.31 Degenerate patches.


Blend Surfaces 213
\342\226\240

Finally, jn Figure 7.31d, an interesting shape arisesby using the results


from Figure 731c and by joining the remaining diagonally opposing pair of
points, with the following matrix:
\320\222

pio
\316\241\317\211 poo \316\277\316\271
\316\241

pio poo pi'o Pn


B\302\253i)- (7.80)
pSj
\320\240'\321\210 piio \320\240\320\231\320\223

Lpio Pii pvr


\316\241\317\212\316\277

Perhaps degenerate and pathologicalare toopejorative,


the terms at least
for the examples we have just explored.Although some may have little
practical value, they clearly have a certain aesthetic appeal.

7.10 BLEND SURFACES

Blend secondary surfaces forming a locally smoothGl (at least)


surfaces are
transition two or more primary surfaces,which
between may or may not
intersect. In the most generalcase, t he curves of tangency between the blend
and primary surfaces do not correspond to isoparametric curves or patch
boundaries. A more rigorous definition seems to be lackingin the literature,
in part because of widely different approaches to this subject. However,
Rossignac and Requicha (1984) do identify four major categories of blends:
blending surfaces generated by strong functional constraints, aesthetic
blends, fairings, and rounds and fillets. Vjda, Martin, and Varady (1994) take
a somewhatdifferent approach and classify methods of constructing
parametric blends as rolling-ball based, spine based, trimline based,or
polyhedral, among others.
The first example we will consider is a simple blend between two disjoint
bicubic Hermite patches, where curves of tangency correspond to patch
boundaries. Then we study a way to blend an arbitrary patch to the
boundaries of another patch, where the first patch is interior to the second patch.
Finally, we look at more general blendproblems.

Blendbetween Two Disjoint Patches

Given two disjoint bicubic Hermite patchesp(u,w) and q(ii,w),we can find a
third patch r(u,w) that blends smoothly them, creating a G1
between
continuous
composite surface. We assume the common boundaries are such that

r(0,w)
= and
\321\200(1,\320\270>) r(l,w)
= q(0.w) (see Figure 7.32). The modeling
conditions are a direct extension of those shown in Figure 7.16 for continuity
requirements across a common boundary between two patches. The blend
214 The
\342\226\240 Bicubic Hermite Surface

0, I I. I 0, I I., 0, I I.I

Pdo ! Po, PED pe, PTd


P|\302\260P\342\200\236 P7,

! P,,
Pi\302\273 \"\316\257\316\277 %a I ioi ! iSd 43,
; PEl

pSd PS, \321\200\320\270\320\267


ps; k,p;, '. \316\271,\316\241\317\212\317\213
\316\232,\316\241\316\220\316\261
*,\320\240\320\237

\316\241\317\212\316\271
\317\201\317\212\302\260 pt; MlBo i VSi ' \320\272\320\260\320\2478\320\276
\302\253
\320\247\320\225;

Figure 7.32 A patch blended between two disjoint patches.

patch has
\320\263(\320\275,\320\234')
two degrees of freedom, kt and that
\320\272\321\212 allow us to vary its
shape somewhat.Thereareno restrictions on
p(u,w) and q(u,w).

Blend to the Boundaries of Another Patch

If we are given a bicubic Hermite patch q(w,w)? a portion of whose interior


we wish to modify, then we might begin by letting p(u,w) describe the shape
of the modified section.We assume that q(u,w) itselfis part of a G1
compositesurface and is surrounded by other patches. No generalityis lost by
proceeding this way. We -'remove\" q(ti,w) from the larger compositesurface;
\"insert\" p(u,w) and create eight new subpatches that blend it with \320\241
continuity
to the patches surrounding the \"hole\" left by the removal of q(u,w).
This is an extensionofthe procedure illustrated in Figure 7.32. The influence
of p(u,w) on the geometric coefficients of the surrounding eight blend
patches is shown in Figure 7.33. We assume that p(u,w) is blendedto the

boundaries of q(u,w) such that the bounding curves p(u,w) of correspond to


the constant-parameter values ulf u2, wu and w2 on q(u,w), as shown in the
figure. The blank elements in the \320\222 matrices are determined by the
surrounding patches, and the constant coefficients k, are
Blend Surfaces 215
\342\226\240

\320\230
1

-
w2- W|

1- w2
w2- wl
(7.81)
11

lli- \302\253[

1- \302\2532
=
\320\272\320\273
UZ- t(]

General Blend Surfaces


The constructionof constant-radiusblendsbetween two intersecting
parametric surfaces are studied by Choi and Ju (1989) and others.Theirmethod
allows the construction of constant-radius blends for any type of rectangular
parametric surfaces as long as their offset surfaces are smooth, without
singularities
and self-intersections. (The offset distance is equal to the blend
radius.)Edgeblends are created by sweeping rational quadratic curves.
Corner blends are created by a convex combination of Taylor jnterpolants.

0,'
! ! ^Pdi
\316\241\316\277\316\271 \316\271 P\342\200\236 ^p?d

P\302\260i pn
\316\234>\317\212\316\271 \342\226\240
W,

PS, W Mt, j^pff!

VB, ! I^PET \317\201\317\212\316\271


! ^\317\201\317\212\317\204
!
1 1
*? Wj
Pod Po, ! PSd ! ! Pn ! P1d
\316\241\316\257\316\277
\316\241\316\252\316\231 ! Pdi
i i ,' 1 1

Pod \316\271
Pd, \316\271
Pdo \342\226\240
Pqi p,o Pn PTo \320\230

PS.
\316\2418\316\257 PES PET k'P% *<\316\241\316\252,
*,PI\"a \316\272<\316\241\316\220\316\220

: vs<:
k3ps\302\253 ^m \302\253\320\266
\316\241\316\257\316\277
! \316\241\316\252\316\252
i \320\240\320\247\320\223
\316\241\317\212\316\271
1 1
1 1
\316\241<\317\207>
! ! K|PfjD ! \320\240\321\216
! ! Wo
1 1 \342\226\240
\320\223 -\316\271 h h -r h \317\204 \"I
Pud k,Pui p1D ! ! M?d
1 1

wa *,\317\2015\317\212 k<p;d \\\320\272*,\320\240\320\237

! \320\272\320\267\320\240\320\225\320\276
! P%
\316\247,\316\232\317\205\316\241\316\222\316\252
\"\316\212\316\241\316\252\316\252
I I
'.0

Figure 7.33 Blending a patch to the boundaries


of another patch.
216 The
\342\226\240 Bicubic Hermite Surface

Representing blend surfaces as solutionstopartial differential equations is


proposed by Bloor and Wilson (1989). They demonstrate that this approach
easily achieves the requireddegreeofcontinuity between the blend and
primary surfaces. More work in blen d surfaces and related topicsis reportedby
Chiyokura (1987); Choi and Lee (1990); Hoffmann and Hopcroft (1987);
Holmstrom (1987), who djscusse-s piecewjse quadric blending of implicitly
defined surfaces; Middlcdjtch and Sears (1985);Rockwood and Owen (1987),
who discuss blend surfaces in solid modeling; and Woodward (1987), among
many others.
BEZIER SURFACES

The Bezier surface is a direct extension of the Bezier curve.Many topics

applicable to these surfaces, but discussed under Bezier curves, are not

repeated here.This chapter does discussthe bicubicBezierpatch, conversion

between bicubic Bezier and Hermite forms, degreeelevation, the


composite
Bezier surface, and, briefly, the rational Beziersurface.

8.1 THE TENSOR PRODUCT BEZIER PATCH

Points on a Bezier patch are given hy the following tensor product, a simple
extensionof the general equation for points on a Bezier curve:

= e [0,1]
p(u,w) \316\243 Bhi(w)
\316\243\317\201,\316\221\302\273
u,w (8.1)
= (\316\231
\316\271 = II
\316\271

The
comprise
\321\200\321\206
an (m + 1) \317\207 +
(\316\267 1) rectangular array of control points
definingthe verticesof the characteristic polyhedron of the Bezier patch,
which lies entirely within its eonvex hull. B,Ju) and are
5;\342\200\236(w)
the basis
functions, defined in the same way as for Bezier curves.
The general matrix equationfor a Bezier patch is
=
UM\342\200\236PM\302\243Wr
\321\200(\320\270,\320\270>) (8.2)

or

=
p(\302\253,w) U1Xi,lMamxi,lPMX\342\200\236M\302\243(IX(IWiX|

217
218 Bezier
\342\226\240 Surfaces

where the dimensions of the matricesdependon the dimensions of the


control
point array.The subscripts indicating the matrix sizes are not repeatedin
later expressions, and they are used here merely to illustrate their

relationship
to the control points. The Bezier patch need not be describedby a
square array of control points, although we will begin by exploring a 4 x 4
array
of points, which defines the bicubic Bezier patch.

8.2 THE BICUBIC BEZIER PATCH

We can express a bicubic Bezierpatch in a form similar to the bicubic Her-


mite patch. Using the binomial representation of the cubic Bezier curve,the
matrix equation for a patch defined by a 4 x 4 array of control points is

p(U,W)= 4^4*1
\320\2701\321\2074\320\234\321\207\320\264>,\320\264\320\2404.^\320\234^4\302\253 (8.3)

again, where the subscripts on the matrices indicatetheir dimensions.

Expanded, this equation becomes


'
(1- wf

3w(l - wf
P(\".w)=[(l-\3") 3ti(l-ii): 3u2(\\-u) u3]P - (8.4)
3w2(l w)
wJ

where

pn pi; pis Pi4

P= p21 p22 p23 p24


(8.5)
p31 p32 p33 p34

p41 p42 p43 p44

The matrix contains


\316\241 the points that define the characteristic polyhedron
and, thereby,
the Bezier patch.
Figure 8.1 illustrates the control points,the polyhedron, and the resulting
patch. In the bicubic Bezier formulation, only the four corner points pn, p41,
and
\321\200]\320\224,p44 actually lie on the patch. The pointsp21, p31, plz, p13, \321\200\320\2642, and
\321\200\320\264\320\267,\321\20024\32

control
\321\200\321\2154
the end slopes of the boundary curves.Thefour interior points \321\200\320\270,

and
\321\20023\321\202 pjj
\321\20032\321\202
control the cross slopes along the boundary curves in the
same way as do the twist vectors of the bicubic Hermite patch. As this figure

shows, the Bezier patch is completely defined by a net of control points


describing two families of Beziercurveson the patch.Each boundary curve
is defined by a polygon of four points
or vertices\342\200\224the greater the number of
points used, the the
higher degree of the
polynomial.
The Bicubic Bezier Patch 219
\342\226\240

p{0.w), u=0 curve


\"13 p\342\204\242 \321\200\321\213
f23

--- w-1
Piu.1)\302\267 curve

P\302\253=Pf1.1)

\320\240\321\206=\320\240(0.0)
- u-1 curve
p{1.w).

p{u,0), w^O curve

\320\240\342\200\2361-\320\240(1.0)

Figure B.1 Cubic Bezier patch.

Consider the generationof an isoparametric curve on the bicuhic Bezier


patch for iv = w\342\200\236
a constant. The following matrix product yields four points

defining the Bezier curve along the at


patch w,:
Pi (1-\320\271-,)3

P2 = P 3wX\\-Wi)2

\320\240\321\215 3w,2(\\
-
w,)
(8.6)
Lpi [ \302\273'?

on pb
wherethe singlesubscripts p2,
and so on indicate that these points are
curve-defining.
The
point pj lies on the patch boundary curve puiv, and the
point lies on
\321\200\320\264 curve Points
pi,\342\200\236. p2 and p, control the slopes at either end of
the curve and do not lie on it. Now we canwrite an
expression for a point on
the patchalong the curve \321\200(\321\213,\320\270>,):

Pi

- P2
=
p(u,w,) [(1 u)3 3u(\\-uf 3u2(\\-u) \316\2673] (8.7)

Lp4

Here each value of \320\270


yields
a point on the patch. We use a similar procedure
to define the boundary curves.For example,
the curve -
\320\2700 is

(\\-wy

p(0,w) = [pn pi2 3w(| -iv)2


pla p,j] - (8.8)
3w2(\\ w)
w
220 Bezier
\342\226\240 Surfaces

or

Pii

Pl2
p(0,w)=[(l -w)3 3w(\\-w)2 3w2(l-w) w3]
Pi3 (8.9)
.Pk

The curve for w - 0 is


boundary

Pl4
p24
p(u,0)=[(l-u)3 3h(1-u)2 3u2(1-u) u3]
P34
(8.IU)

.P\302\253.

We define the other two boundary curvessimilarly.


Appropriately differentiating Equation (8-4) produces the equation for
the twist vector at any poinJ on the bicubic Bezierpatch;

p\"*(u,w)
=
[(-3u2 + 6u~3) (9u2 - 12u + 3)

(~3w2 + 6w - 3)
(9w2
- 12w+
3)
(-9u2 + 6u) (3u2)]P (8.11)
(-9w7 + 6w)
(3^)
For the twist vectors at the patch corner points we have
= + p2z)
Poo 9(pii-p2j-p^

Pl0 = 9(p31-P41-P32 + P\302\253)

(8.12)
+ \316\24124)
\316\241'\317\214\317\212'-9(\317\20115-\317\20123-\317\201,4

= - - +
\316\241\316\212\316\244
9(\317\2013\316\257 p44)
P\302\253 \320\240\320\274

This that only the four control points at and adjacent


tells us to the corner

point in question affect the twist vector at that corner (see Figure8.2).

8.3 A 3 \317\207
5 RECTANGULAR ARRAY OF CONTROL POINTS

Occasionally we want a patch that is described by an array


to create of
control points that square. This
is not allows a relatively complex surface to be
bounded by simple curves, or vice versa. For example, the patch shown in

Figure 8.3 has a three-point Bezier curve along boundaries - 0 and \320\270
\320\270 - I
A3 5 Rectangular
\317\207
Array of Control Points 221
\342\226\240

\320\240\320\263\321\215

\320\240\320\263\320\263

\320\240\320\263.

+ \320\240\320\263\320\263)
\342\226\240\321\200\320\2325-9(\320\240\321\206-\320\240\320\263'-\320\24015

Figure B.2 Control points influencing the


twist vectorat a patch corner.

Figure B.3 S 3 Bezier


\317\207 patch.
222 Bezier
\342\226\240 Surfaces

and a five-point curve along boundariesw = 0 and w= 1. The equation for the
= 0
\320\270 is
boundary along

Pi \316\271
=
p(0,\342\204\226) [(l-\302\273')2 2w(\\-w) w1] piz (8.13)
pis

Along w = 0we obtain


Pn
p:i
p(ti,0)= [(l-(()J 4u(\\-uf 6u2(\\-u)2 4u\\\\-u) t(4] p3i (8.14)
Pji

Psi

For the patch itself,


p(u,w)=[(\\-u)4 4u(\\-uf 6u\\\\-u)2 4ti'7(l-t() u\"]

Pll Pl2 Pl3


p:2
\320\240\320\273 23
\316\241 (1-w)2
P31 P32 2w(l -
\316\241\316\2573 w) (8.15)
pJ3 w2
P41 PJ2
p5l p52 p5:i

The advantage of a five-point boundary curve over a four-point curve is


that a change in the third or middlepoint of the curve does not affect the
slope at eitherend. Thus, patch shape can be changed without changing the
end slopes, hence
maintaining continuity with adjacent patches.

8.4 CONVERTING BETWEEN BICUBIC BEZIER AND HERMITE FORMS

To convert the bicubic Bezier to the bicubicHermiteform,


from or vice

versa, we begin with the mathematical statementof this equivalence.

UMpBM/'W^ UM^PM^W7 (8.16)


or more simply,
MfBMi=M\302\253PM|\" (8.17)

where the basis function transformation matrices MF and Mg are the


Hermite and Bezier, respectively. To convert from Bezier to Hermite we solve

for B, obtaining

B=Mf-1MflPMBr[M/]-1
Degree Elevation in a Bezier Surface 223
\342\226\240

After performing the required matrix algebra, we find that

Pn Pi4 3(pi:-pn) 3(\321\200|4-\321\200]\320\267)


- -
B =
P41 p4J 3(p4i p41) 3(p44 p4j)
3(p2|-p]]) 3(p24-p|4) +
9(\321\200\320\277-\321\2002|-\321\2001\320\263 9(pii-p23-pl4
\321\200\320\263\320\263)
+ p24)

3(p4i~p3i) 3(p\302\253-p34) 9(Pii-p4i-p32 + p4;) 9(p3i


- p43
-
pi4 + p44>

(8.18)
Here we see that the tangent vectors and are equivalently
twist vectors
expressed in terms of points defining the vertices of the characteristic
polyhedron. The tangent vectors are given solely in terms of pointson the
boundary
of the polyhedron, while the interior points contributeonly to the twist
vectors.
A similar process appliesto convert from Hermite to Bezier. Thus,
P = Mi'MfBM/[Mj]-1 (8.19)

8.S DEGREE ELEVATION IN A BEZIER SURFACE

A way to extend our ability


to
manipulate the shape of a Bezier surface
requires adding more controlpoints. This, of course, raises the degreeof the
polynomial defining increase the numberof controlpoints
the patch. We can
defining the \320\270
curves, both. The processis analogousto that
the w curves, or

applied
to Bezier curves (see Section 4.2). We begin hy adding control points
in a way that does not change the shape of the patch.To elevate the degree
of the Bezier patch in the \320\270 direction, we begin by equating the two shapes
+ i I,
\316\240, ,\342\200\236
\342\200\236

\316\243 flii\302\273(\",)=XZpA\"-(u)^(w)
\316\243^\316\233-^\316\271\316\257\")
= 111=0
\316\271 =
\320\263-();()

Solving for produces


\316\247\316\206\317\206\316\256

= 1- (' = 0,. . . jn +I
1\320\233\320\240*
+ 1
\342\226\240P-i,+
1 = 0,. . . ,/? (8.20)
m m+ j

(see Equation [4.10]).The douhleindex on the upper left superscript


the
indicates number of times the degree-elevation procedure has been applied
to each
parametric direction, respectively.
To elevate the degree in the w direction:

+
i = 0,... ,m
1 (8.21)
\"*-ui*- '-^r j = 0 + I
\316\267
224 Bezier
\342\226\240 Surfaces

Doing both at once produces a patch of degree(m + 1) \317\207 +


(\316\267 1). Thus

Pi - U - \316\271
Pi-
+ 1
\321\217 i = 0,.. ,m +1
1 -
\320\270
=
\316\234\316\241\342\200\236
m+ 1 m+ 1 Pij-i P'j 1~-
. ,\302\253+1

n + 1
(8.22)

8.6 COMPOSITE BEZIER SURFACES

A simple geometricconstraint allowsus to assemble Bezier patches into


more complex compositesurfaces with at least \320\241
continuity. Consider the 4
x 7 rectangular array of control points defining a
two-patch composite
surface. The array is idealized as a rectangular grid in Figure 8.4- The common

boundary curve is defined by


control
points \317\201,4, p34,and
\317\201;4, pw.To ensure at
least G1 continuity across this boundary, all four sets of three points
(' e[l :
4]
[\321\200;,\320\267,\321\200,,4,\321\200,,5],
must be collinear. We easily generalize this to other

arrangements of Bezier patches.


Consider a compositesurfaceconstructed by a 3 3
\317\207
array of bicubic
Bezier patches (see Figure 8.5).For G\302\260
continuity, adjacent patches must
share control points along theirjoiningboundary, shown as solid circles in

Palch 1 Patch 2

\316\241
13 \316\241>4 \316\241
Pll \316\241
2
\317\204--
\316\241
6 \317\201
7
-\316\271
I. . 1 - -
\316\223_-
\316\271
\316\271

\320\240\320\263\321\215
\320\240\320\2634|
\320\240\320\263>
\320\240\320\263\320\263 1 \320\240\320\263\320\265
\320\240\320\2637
\316\271 ,
\316\271 1 \342\226\240\316\271
\316\231

pj
\320\240\321\215\321\215
-
Pi \316\271 \320\240\320\267\320\263 Li*
-\342\200\2241- ,
\320\24035 \320\240\320\2557
\316\271. 1
_--_\317\204
1
\316\231
\316\241\302\253
| \316\241\302\253\316\271
! \316\2414\316\257
P41 P\302\253 j \316\24146 \316\24147
.,
\316\223

points /
'\"
Set of collinear Points defining the
boundary curve

Figure B.4 G1 continuity across two Bezierpatches.


Rational Bezier Patch 225
\342\226\240

1 \316\2311
' \342\200\224\"Tt
H^ u

\320\223 \316\267 \316\223


J L

\316\212 - hU \320\263
L \316\267
'

,
\316\271 1 \342\226\240
1 1 j \316\271 \321\201
j
1

r-i \320\263
\316\212 I \317\200 n
\316\223
1

1
1
LJ L 1 J L J

J L J

\320\263 \316\271\316\271
II \342\226\240 1

Figure B.5 Composite G1 continuous 3x3 array.

the figure.For at least G1 continuity throughout the surface, the control


points defining tangents across boundaries must be collinear. The
corresponding tangent vectors thus have the same direction, but not necessarily
the same magnitude.

8.7 RATIONAL BEZIERPATCH

The rational Bezier patch is expressed as


J'J I,

\316\243 Bj\342\200\236(w)
\316\243\316\233</\316\241\316\206\"'(\")
' ~
\"
n(u,w)= ji, (8.23)

This is the central projection of a four-dimensionaltensorproduct hyper-

patch,
but it isnot itself a tensor product.The properties and effects of the
weights h4
on patch shape are direct analogs of those for the rational Bezier
curve.
226 Bezier
\342\226\240 Surfaces

One way to evaluate curves and points on this patch proceeds as follows.
For a curve of constantparametervalue, say, w = w,\342\200\236we
treat each column of
control points (or each row, if -
\320\270 the characteristic
\316\271\316\267
\320\270\321\214) polyhedron as
control
points defining the characteristic polygon of a rational Bezier curve.
We evaluate each of these curves at w
- the
including
w\342\200\236, computing
corresponding weight. Thus,

2XpA\302\253K)

p, =
= 0,... ,m
^r ,\342\226\240 (8.24)

and the weight /\320\263,


corresponding
to each p, is simply

h, - j>>AK) (8.25)
We
interpret the p, and h, as the control points and weights describing the w
= wa curve on the surface. In general, h{\\jim \317\210
l,so that we may need to repa-
rameterize.
B-SPLINE SURFACES

The
equation
of a B-Spline surface follows directly from the equationof a B-

Spline This
curve. relationship is analogous to that between Beziercurves
and surfaces. Furthermore, we define the B-Spline surface,like the Bezier
surface, in terms of a characteristic polyhedron.The shapeof the surface

approximates the polyhedron. The approximation is weakerthe higher the


degree.

9.1 THE TENSOR PRODUCT B-SPLINE SURFACE

The tensor product equationof the B-Splinesurface is

= 0/
\316\257 =0

The p,, are control points and are the vertices of the characteristic
polyhedron. The
N;,K(u) and NhL(w) are the basis functions,and they are the same
as those for B-Spline curves.The degreeof each of the basis-function
polynomials is controlled by and
\320\232 L, respectively.
For a nonperiodjc B-Spline surface,we select the values of K, L, m, n, and
compute the t, and tj
knot values just as for curves. We compute NiK(ii) and

Nh,{w) recursively, using Equations (5.2) and


(5.3). Notice that two sets of
knot values are requiredand that the control points form an (m + 1) \317\207 +
(\320\273 1)

array.
228 \342\226\240
B-Spline Surfaces

9.2 MATRIX FORM

The matrix form for the B-Spline


surface is similar to the form that we
developed
for the B-Spline curve. Recall that the B-Spline curveis computedin
segments of interval on
a unit the parametric variable \320\270
(see Equations
[5.14], [5-15], and [5.23]). A unit square on the parametric variables u and w
is used to compute patcheson the B-Spline surface. The general matrix
equation of an open, periodic B-Spline surface that approximates an (m + 1) \317\207
(\316\267

+
1) rectangular array of points is

se[\\:m+2-K\\
=
UMsP^M^W 1e + 2 - L]
[1 : \316\267
pD(u,w)

\320\275,\320\270>\320\265[0,1] (9-2)

where and
\320\232 L denote that control the continuity
the parameters of the

surface, the degree of the basis-function polynomials, and, consequently,the


dimensions of the matrices, s and t identify a particular patch in the surface.
Therange on s and r is a function of the parameters \320\232and L and the
dimensions of the rectangular array of control points. The matrixU is
=
\320\270 -
\320\270\320\272~\320\263
\320\2701]
[\320\272*-' (9.3)

and W is
- w
wL~2
\\\316\275-[\316\271\316\275\302\243-] I] (9.4)
Elements of the full \316\232 L
\317\207 matrix of control points necessary to fill PKL

depend on the particular patch to be evaluated.Let p,( denote these matrix


elements; then

/e[i-l :s + K-2]
Pkl = pj
je[t-\\ :t+L-2] (9.5)
The matrix Ms is identical to the transformation matrix for the B-Spline
curve.

9.3 OPEN AND CLOSED B-SPLINE SURFACES

If the B-Spline surfaceis partially closed\342\200\224that is, rolled into an open-ended


tube\342\200\224then the ranges on s,t and i,j must reflect this closure. For example, if
the w - constant curvesare closed,
then

,ve[l :m+l]
Open and Closed B-SplineSurfaces\342\226\240
229

ie [I :n+2-L]
i e [(s -
1) +\\):(x mod (m + K-2) mod (m + 1)]

je[r-l :T+L-2] (9.6)


Similar expressions apply when the -
\320\270 constant curves are closed.
In the following figures wc idealize an array of control points and the

patches they produce with a two-dimensional diagram, arrangingthe points


on a rectangular grid. Solid lines represent the edges of the facesof the
characteristic polyhedron. Dashed lines represent the patch boundaries. For
some idealizations, these lines overlap; when this happens, the dashed lines
' \342\226\240\342\200\224
--* | ,

1 1 in ^ jj = 2
1 1
I
( 1
) 1
1 __ \316\271

. .^-\342\200\224.\342\200\224.
\321\214 -j

(a)

Po.6 \316\2414.\316\225.
\317\201\342\200\224 \342\200\224\320\276

\"\316\244
1,1 2.1 3,1

\316\241\"\342\200\224*\342\226\240\316\223

\342\200\224J
1 \316\244\"
P. 1.3 2,3
\320\223 3,3
i L^i
\316\241
\316\241 1 K = L=3
\316\274- m = 4
-\316\227* .i = 5
1,2 \316\2522.2 3.2
\316\241

1 'J 2.1 3,1


\320\263

\316\257
.L\302\267. .J

0>)

Figure 9.1 Open quadric B-Spline surface


idealizations.
230 \342\226\240
B-Spljne Surfaces

are shown.The patches are lightly shaded to highlightthem;this technique is

useful for exploring the effects of parameterson the relationship between

the control points and patches. Let us look at some examples. All of the
following examples
are periodic B-Spline surfaces generated by specific
instancesof Equation (9.2).

\",'

m,s \302\267

<\320\254)

Figure 9.2 Open cubic B-Spline surface


idealizations.
Open and Closed B-Spline Surfaces \342\226\240
231

When -
\320\232 L quadric B-Splinesurfaceis produced.
- 3, a This surface

exhibits C1 continuily throughout and requires a minimum 3x3 array of

If m - 4 and \316\267= a 3 x 4
control points (see Figure 9.1a). 5, then array of

patches results (see Figure 9.1 b).


When = L = 4, a bicubic
\320\232 B-Spline surface is produced.C2continuity
exisls at all points on this surface and requires a minimum 4x4 array of
control poinls (see Figure 9.2a);compare this to the bicubic Hermite and
Bezier surfaces.If in = 4 and \316\267 =
5, then a 2 \317\207
3 array of patches is produced
(see Figure9.2b);compare this to the result obtained for the quadricsurface
in Figure 9.1b.

m = it = A
\320\226

m
\321\210\302\260\320\230
i

(a)

Po,f 9* \320\233
\320\255 \342\200\224\342\200\2240

\342\200\224 u . \321\203 1
K = l.= 5
m = A
\320\23131 = 5
\302\253
1

\342\226\240
\321\202*\320\240\321\207

4,1
\342\226\240
\342\226\240\342\226\240
\342\226\240
\342\200\224-< -i I \302\267

> _
\302\267 1 ^. \342\200\224i
Po.0 Pj.o

(b)

Figure 9.3 Open quartic B-Spline


surface idealizations.
232 \342\226\240
B-Sp|jne Surfaces

Quartic surfaces are shown in Figure 9.3and quintic surfaces in Figure 94.
Notice that as the degree of the basis-function polynomials increases,more
controlpoints define each
patch. This is particularly evident along the patch
and control-point array boundary regions.
It is often more efficient to definea B-Spline
surface with K = L. For

example, a ruled surface may require second-derivative continuity in one para-


\342\226\240, ' f \342\226\240
-* \342\226\2401

. \342\200\224\342\200\224,

;\302\267> -J
\342\226\240
\342\200\224*
:
..-\342\226\240:\342\226\240
\316\275 \342\226\2401

\342\226\240

1 \342\200\224
\342\226\240. \302\273\342\200\224\342\226\240\342\200\224
\316\227 <' (

(a)

'.6 Pe.6
0 1 1 1I <
\342\200\224\"\342\200\224p

.--\342\226\240-.----Ml
\316\275\302\267\"-;
'\316\271.

L..\342\200\224
-___J

t\342\200\224-

\320\236 \342\226\240
1 - . >\342\200\224 .
\302\273_\342\200\224. \342\200\224\320\276

(\320\254)

Figure 9.4 Open quintic B-Spline surface


idealizations.
Openand Closed B-Spline Surfaces 233
\342\226\240

metric direction, while first-derivative continuity suffices for the other. A


cubic-quadricB-Spline surface is shown in Figure9.5.With m -n -4,a2x3
patch array is produced.
A
partially closed B-Spline surface results when we imposethe conditions
in Equation (9.6) (see Figure 9.6). Here, = 4
\320\232 and L = 3, with m = 3 and \317\200
=
4,
to produce a4 x 3 patch array The w - constant curves are closed; the \320\270=

constant curves are open. A two-dimensional idealization is shownin Figure


9.6a and a three-dimensional one in Figure 9.6b.Only 20 control points
produce the complex surface in Figure 9.6c. Notice the characteristic
polyhedron whose edges and vertices (control points) are superimposed.
-
An
open, periodic bicubic B-Spline surface (K L = 4) definedover a 2 \317\207

2
array of patches requires 25 control points. A 3 \317\207 3 array of patches
requires 36 control poinls, and a 4 x 4 array requires 49 control points.We
find that np
- +
(na 3)2, where np
is the number of control points defining an
\317\207
\317\2000 na array of patches. As na increases, (n\342\200\2363)2 approaches
+ n\\. If the

patches are biquintic, then we need 49 conlrolpoinls for a 2 \317\207


2 array of
patches; 64 for a 3 \317\207 3 array; and 81 for a 4 \317\207 4 array, where =
np (na 5)2.+ The
numberof controlpointsisrelatedto the
degree of the basis-function
polynomials by

np^{nu + K-\\f (9.7)


where K = L.

\342\200\224Q

1.3 2,3

I K-4
(\342\200\224-. J t- 3
11,2 m - \317\200
- 1

| -\320\254\342\200\224\320\247
\342\226\240
, r
B,(

\342\200\224\320\271
\320\240\320\276\320\273 Pi.\320\236

Figure 9.S Open cubic-quadric B-Spline surface


idealizations.
234 \342\226\240
B-Spllne Surfaces

\320\240\320\276.\320\273
\342\200\224\320\276\342\200\224 \342\200\224a-

'
.1-:\302\267 I f 1
\342\226\240'\342\226\240
4,3.Iv\" 1,3 . 2.3 \302\243\342\226\240::\342\226\240
3,3.
[-\342\226\240'.\342\226\240 4.3

' ' \342\226\240:


\316\244~vl..:--\342\226\240 ;t.T
\\: \316\223\316\216.
. \316\223
* \"\316\244 \317\204\"?
\316\244
\316\252\"4: \"
,\316\244\302\273\"\"\302\267-'
\302\267\317\210 L=3
= 3
\321\210
4.2 |; ...i,2\302\267'-}.\342\226\240 j 4,2 \342\204\242=~4\"
[\302\267\321\215.\320\263
\342\226\240\320\263.\320\263;\302\267..

-:-. = \320\273\321\202.
- 1. 1
t'-ij:.\",' \".V;\" :,!\342\226\240.\342\226\240;\342\226\240-
\316\271,\316\271r-.;.; 2,\316\271 j.4,1
.:;\\\316\220:\302\267..\302\267\302\267.;\302\2673.\316\271.,\302\267
\316\212,\316\271'\302\267;\317\206..;\302\267,

\320\240\320\276\320\264

Figure 9.6 Partially closed B-Spline surface.

If the surfaceis partially closed, then

np-na(na + K-l) (9.8)


One advantage of the B-Spline formulation is its ability to preserve
arbitrarily high degrees of continuity over complex surfaces.This follows directly
from the properties of the B-Spline curves. Also, any change in the local

shape of a B-Spline surface is not propagated throughout the entire surface.


These characteristicsmakethe B-Spline surface suitable for use in an
interactive modeling environment.
Nonuniform Rational B-Spline Surfaces 235
\342\226\240

9.4 NONUNIFORM RATIONAL B-SPLINE SURFACES

The NURBSsurfaceis,like the rational Bezier surface, the central


projection into three-dimensional model space of a four-dimensional tensor
product hypersurface. The underlying geometric characteristics of the NURBS
curve generally apply to the surface, which is expressedas
Ml rl

- \320\251\320\234
P(m,w) (9.9)

where the hif


are weights. As with the rational curves, increasingthe weight
values increases the fullness of the surface,pulling it toward the
control
corresponding points.
Curve and surface constructions using rational B-Splines, including the

circular cylinder, general ruled surface, sphere, and torus, are discussed in

detail by Piegl and Tiller (1987). Piegl (1989d) discussest he problem of

modifying
the shape of a rational B-Spline surface directly from its definition,
using
the weights and control points.
This
page intentionally left blank
SOLIDS

Many techniques modeling iorsolids are limited because they do not


represent interior
the of the solid. They cannot represent internal propertiesor
offer ways of representing internal behavior. The techniques assume total
internal homogeneity of the model. For many purposes they are adequate.
However, in this chapter, we investigate the mathematics and geometry

supporting
a more
complete solid-representation scheme.
There are severalwell-known methods for creating simple solid shapes,
simple in the sensethat the solids are not Boolean constructions or
otherwise complex assemblies simpler solids. The discussionhereincludes
of even
instances and
parameterized solids, sweeps, and solids generated by some
form of nonlinear transformation. Appendix \320\241
and Mortenson (1995)
provide valuable supporting discussions for solid shape transformations.

10.1 PARAMETRIC SOLIDS

Perhaps the simplest and most direct mathematicalapproachwe can use to


model a solid is by continuous, three-parameter, single-valued functions of
the form

x=x(u,v,w) y-y(u,v,w) z= z(u,v,w) (10.1)


where the
parametric variables u,v,w are constrained to the interval
M,v,we[0,l].These functions define the coordinates of the set of points
comprising
the solid, exterior as well as interior. The termshyperpatch and para-

237
Solids
23\320\222 \342\226\240

metric are often used interchangeably, although historically


solid the term

hyperpatch has a narrower meaning.


We will develop the mathematics of these solids as we did for curves and
surfaces. In doing this, we find that fixing the value of one of the parametric
variablesresults in a surface within or on the boundary of the solid in terms
of the other two variables, which remain free.We continue this process for
any number of arbitrary valuesin the allowedinterval, first for one variable
and then for each of the others in turn, forming a parametric network of cells
of three two-parameter families of surfaces throughout the solid.
Through
each point p(\302\253,v,w) there passes just one surface of each family. These

surfaces are sometimes called isoparametric surfaces, indicating a surface within


the solid on whichone of the three parametricvariablesis constant. As with
curves and surfaces, the positive sense on any surface is the sense in which
the free parametersincrease.
Associated with a parametric solid is a set of boundary elements (see
Figure 10.1). The set consists of the 8 corner points,the 12 curves defining the
edges, and the 6 patches definingthe faces.Others include the tangent
vectors and twist vectors of the edge curves and face patches.
For an ordinary parametric solid, there are always eight and only eight
corner points: p(0,0,0), p( 1,0,0),p{0,1.0),p(0,0,l),p(l,l,0),p(l,0,l), p(0,l,l),
andp(l,l,l).
The
edge curves are functions of one of the three parametricvariables. We

obtain them by allowing one of the variablesto remainfree while succes-

Face surlace

\316\241
100

Figure 10.1 Parametric solid boundary elements.


ParametricSolids \342\226\240
239

sively fixing combinations of the other two at their limiting values. This
results in the 12 possiblecombinations yielding the defining functions of the
12 parametric edge curves p(u,0,0), \321\200(\321\206.1,0),\321\200(\321\206,0,1), p(G>,0),
\321\200(\320\274,1,1),

\317\201(0,\316\275,1),\317\201(1,\316\275,1),
\316\241(1,\316\275,0), \317\201(1,0,w), p(0,l,w),
\317\201(\317\213,\317\213,\316\271\316\275), and \317\201(1,1,\316\271\316\275).

The bounding faces are functions of two of the three parametricvariables.


We obtain them by allowing two of the variables to remain free while
successively fixing the remaining variable to each of its two limiting values. This
results in the six possible permutationsyielding \317\201(\316\272,\316\275,\316\231),
\317\201(\316\272,\316\275,\317\213), \317\201(\316\272,\316\237,\316\275\316\275)

p(u,l,w), p(0,v,w), and p(l ,v,w).


A rectangular solid is the simplestexample(seeFigure ]0.2).The
followingparametric equations represent a rectangular solid in an x,y,z coordinate
system:
-
-
\317\207
(b a)u + a
y
=
(d-c)v + c w,v,we[0,l] (10.2)
z = (f-e)w + e

This example illustrates an important feature. These parametricequations


define not only the points comprising the boundingelements ofthe solid, but
also all the points interior to it.
Here we introduce the tricubic Hermite solid. It is a natural continuationof
the cubic and bicubic forms for curves and surfaces.The literature on

parametric solids in general, and the tricubic model in particular,is sparse,espe-

Figure 10.2 Rectangular parametric solid.


240 Solids
\342\226\240

cially when compared on the lower-dimension


to research formsof
multivariate
interpolation functions.
However, it is a fertile area for development,
where a greater analytic potential is requiredof solidmodel.This potential
a
has already been amply demonstrated by Stanton and Gain (1974) andTim-

mer, et al. (1970) in the areas of structural mechanicsand ablation thermo-


and aerodynamics. Also see Lasser's (1985)Bemstein-Bezier representation
of solids. Earlier limits on research and developmentof solid-modeling
techniques of this type were due to the thenseeminglymassivedata requirements.
However, current computing resources have nearly removed this constraint.

SOLID
10.2 THETR1CUB1C

The algebraic form of a tricubic solid is given by the following equation:


3 3 3
p(u,v,w) = J^ J \316\243a^ifVw* \320\270,v,we [0,1] (10.3)
= / () / = (>* = ()
The
a:jk vectors are the algebraic coefficients of the solid.Noticethe obvious

source of the term tricubic: Each of the three parametric variables can

appear cubic term. The parametricvariables


as a u,v,w are restricted by
definition to values in the interval 0 to 1, inclusive.This restriction makes the
solid bounded in a regular way by cubic patches. We will explore this
situation later in this section.
When we perform the indicatedsummationand expansion of the cubic
polynomials in u,v,w for x(u,v,w), we obtain
x(u,v,w)
=
iimiH W + flmri(Vw2 + \342\226\240
\342\226\240
+ amx
(\320\256.4)

There are similar expressions for y(u,v,w) and z(u,v,w).Each expression


consists of 64 terms, which means that the total number of algebraic
coefficients available is three times this, or 192 coefficients.
Next, we write these coefficients in a more compact form using vector
notation:
p(M,v.w)
- a^juW + a3i2iiVW + \342\226\240
\342\226\240
\342\226\240
+ a_130ii3v3

+a32iU3v2wi + \342\226\240
\342\226\240
\342\226\240

+\320\260(\320\250 (10.5)

This is an improvement, but perhaps we can do even belter if we use


matrix notation. We are now confronted with a modest complication, since
we have an extra parametric dimension. With
three-component vectors and
The Tricubic Solid 241
\342\226\240

three independent parametric variables, the matrices cumbersome. are more


We reduce the product of the first and second cubic polynomials in \320\270
and \316\275

lo matrix form as UA\342\200\236,


V, and reduce the third polynomial A\342\200\236Wr, lhal
so lo
p(M,v,w)
- 4JA\342\200\236,.VrA,,Wr (10.6)

where

U = [u3 \320\2702 it
1]

\\ = [v3 \316\2752\316\275
1] (10.7)

W-[w3 w2 w 1]

Equation (10.6) is considerably more complex than the analogousequation


for surfaces.
Here is another way to indexEquation(10.3):

=
P(\".v,h>) X \316\243 \316\243 V\302\2734\"'^\"^4\"* (\320\256.8)
/=1 ;= 1 \320\272=1

This equation is compatible with the one we will encounter for the
geometric and
form, more acceptable form of tensor
it is a notation. We can further
simplify this by dropping the summationsigns and adopting the convention
lhal for cubics the range of the indicesis from 1 to 4. so that

=
p1(lw a(,tu4-'v4-V-1 (10.9)

The same approach applies lo the geometric form

=
\342\226\240
\316\241 F,(u) \317\206) Fk(w)bllk (10.10)

where a repealed subscript implies summation.


The /-\"terms are the Hermile basis functions Fl; F2, F3, F4. as determined by
the subscripted index and in terms of the specified parametric variable. is
\320\252,)\320\272

the array of boundary conditions or geometricvectors. Notice that a,/lt and


are three-eomponent
\320\252\321\206\320\272
vectors. Again, there are 4 x 4 \317\2074 or 64 algebraic

vectors and 64 geometricveetors, sothat there are 192 algebraic coefficients


and, of course, 192geometric coefficients.
Considerthe b,y( terms. How do we interpret them? Although we will
investigate more formal procedures for doing this in the last section of this

chapter, for now we will apply empirical analysis lo their interpretation.


Because the indiceson the b array are coordinated with those indices on the
F terms, we can draw some conclusions from our knowledge of these basis
functions as they apply to curves and surfaces.
First we must have a frame of reference,so from the unit cube in
parameter
space we establish some nomenclature (see Figure 10.3). At each of the
242 Solids
\342\226\240

0O1

(a) (b)

Figure 10.3 Geometric coefficients on the unit cube.

eight corners, we find the following boundary conditions:the comerpoint


itself, three tangent vectors, three twist vectors, and a vector definedby the
third-order mixed partial derivative of the function. There are 8 vectors
defining boundary conditions at each of the 8 comers,resulting in a total of
64 vectors. Here is an example,arbitrarily choosing the comer defined by
and
\317\201(1,\317\213,1) listing the eight boundary condition vectors:
Pioi comer point
'
p',V

tangent
\316\241\317\212\316\277\316\271 vectors jLJLA.
du dv'dw

\316\241\317\212\317\214\316\271

\316\241\317\212\316\257\316\271

\320\240\320\270\320\273 twist vectors


dudv'dudw'dvdw

PlOl

triple mixedpa
-?\342\200\224
10]
\316\241 I
dudvdw

Now, we return to the problemof interpreting the elements of the b array


Similar representationand expansion for curves and surfaces offer more
clues. Thus, for curves we have

(10.11)

which we expand to
-
\317\201 F,(u)b[ + F2(u)b2 + fi(a)b3 +
FA(u)b4 (10.12)
The Tricubic Solid 243
\342\226\240

and interpret as
= + + +
\316\241 \320\222\320\224\321\200\320\276 /\320\255\320\224\320\240\302\273
\320\222\320\224\321\200! \320\227\320\224\321\200'/ (10-13)

Assigning curve boundary condition vectors to elements of the b, array is

obvious. Now look at this development for surfaces:

-
\317\201 F,(u) /vO)b,y (10.14)
which we expandto
-
\316\241 F(u) F,(w)bu + F(u) F2(w)bl2+ F,(u) F3(w)bn + F^u) F,(w)bu
+F2(u) F,(w)b2, + F2(u) F2(w)b22
+ F2(u) F^w)^ + F2{u)\320\240\320\273(\321\213)\320\25423

+F3(u) F^w)^ + F3(u) F2(w)b22+ F3(u)F^w)^ +


F3(u) F,(w)b^

+F,(u) F^w)^ + FA(u) F2(w)bi2


+ FA(u) ft(w)b\302\253
+ F,(u) F,(w)bAi
(10.15)
and interpret as
=
\316\241 F^u)
+
Ft(u) F2(w)Pl)l
\320\233(\342\204\226)\321\200\320\274
+ F^u) ft(w)pK, + Ft(u) Ft(w)p^
+F2(u) /?1(w)p10
+ F2(u) F2(w)pu + F2(u)F3(w)tf0+ F2(u) fi(w)p\302\267;,
+F,(u)
+
F3(u)
^\320\230\321\200\320\271\320\276 Fziwfth + F3(u) F3(w)v-%+ F3(u)FA(w)$Z
+F,(u) F,(w)P\"o
+ FA(u) /?2(w)pl1'1+ FA(u) ft(w)pff+ FA(u) F^W
(10.16)
Assigning boundary conditionvectorsto the elements of the b}, array is
obvious by simply comparing Equations (10.15) and (10.16) term for term.

Some generalizations based on these equations first lead us to observe


that when the indices of the basis functionsof a termare all less than 3, then
the associated b vectordenotesa point. Second, when one, and only one. of
the indicesof a term is 3 or 4, then the associatedb vectordenotesa tangent
vector.Third, when two, and only two, of the indices are 3 or 4, then the

associated b vector denotes a twist vector (second-order mixed partial


derivative). Fourth, when, in the case of a tricubic solid,threeindices of a term are
3 or 4, then the associated b vector denotes that vector defined by the third-
order mixedpartialderivative of the function p(w,v,w).
Next, we must find a rule to tell b vectoris applied.Our
us where the
current method of constructing the arrays of geometric coefficientssuggeststhe
following empirical interpretation: For each odd index on b, assign a zero,

and for each even index, assigna one.


Now we are
ready to test these observations on someexamples. For a

curve, given \320\254\320\263, because


then the index is less than 3, we find that it denotes a
244 - Solids

point. And because the index is even, we assign a one to the geometric
coefficient; the result is p,. For a sur face,given bAi, we obtain \317\201\317\2120.
For a tri cubic solid,

given bl3l,we find that it denotes \321\200'\321\210.

The transformation from geometric to algebraic coefficientsis given by


4 4 4

V-\316\243 \316\243 \316\243 \320\234\342\200\236\320\234;,\320\257\320\234,\320\220\320\250|(10.17)


- 1 \316\271\316\271
I = 1 \321\202 = l

or more compactly as
=
\320\260\321\206\320\272 (10.18)
\320\234\320\260\320\251\320\277\320\234\320\272\320\277\320\2521\321\202\320\260

is the
\320\234
\320\235\320\265\320\263\320\265 Hermite transformation
basis matrix, and the various
subscripted indices denote specific elements of the matrix.
Stanton and Crain (1974) developed a slightly different approach, treating
the 64 hyperpatch parameters as 4 sets of 16 parameters.This allows us to
understand more easily the basis-function properties and the relationship
between patches and hyperpatches. They beginby defining three distinct but
equivalent forms: the familiar algebraic and geometric forms, and a point
form where p(u,v.w) is given at tbe points of the parametric vari-
one-third
ables.The point form thus requires 64 points to be complete.Theseformsare
given as the following triple summations:

Algebraic form: p(w,v,w)


-
Ff(u) Ff(v) Fl(w)al}k (10.19)
Geometric form: p(w,v,w)
-
F?(u) Ff(v) Ft(w)bljk (10.20)
Point form: p(\302\253,v,w)
=
Ff(u) Fj^v) \320\257\320\230\321\200,,* (10.21)

F\",(u), F\"(v), F\302\243(w) are basis functions applied to the algebraic coefficients,
defined by

= \320\2703
Fi(u)

= u2
F$(u)

(10.22)

Fi(u) = 1
and similarly for and
\316\275 w.

Ff(u), Ff(v), F*(w) are basis functionsappliedto the geometric

coefficients, defined by

Fftu)
= -
2\302\253s 3u2 + 1

F%(u) = -2u2 + u2
The Tricubic Solid 245
\342\226\240

F%(u)
= ri3 - 2u2 + \320\270
(10.23)

= - \320\2702
\316\257\316\2573
F%(u)

and similarly for and


\316\275 w. Equations (10.23) are simply from F - UM.
Finally. /*?(\302\253), Ff(v), F((w) are basis functions applied to the point
coefficients, defined by

(10.24)

and similarly for and


\316\275 w>.
Equations (10.24) are from F - UN.
We are free to contract any of the three parametric If we
coordinates. do

thisfor w. then we write the geometriccoefficients in a


sequence of four 16-
element arrays.Wc denote these arrays as the matrices

-
\320\262. [\321\214,71]

-
\320\2622 [\320\260\320\264

-
(10.25)
\320\262, [\320\260\320\264

=
\320\262, [\320\260\320\264

We
expand them as follows:
\\fim

pooo \320\240\320\276\321\216
\321\200\320\276\321\216
\321\200'\320\276\321\216

Pioo \321\200\320\270\320\276
\320\240\320\272\321\216
\317\201\317\212\316\212\316\277
B,= \342\200\236III\302\267
\316\241 in
\302\253\317\207\316\271
\317\214
\316\241 \316\241\317\213\316\257\316\267
\321\200\320\276\321\216

pv> (\316\234 \316\241


\316\241'\316\257,\317\213
\316\241\316\231 \320\275\320\276

pooi Pom
\320\240\320\276\320\270 \321\200\320\276\320\270

pioi pin mi
\316\241 \317\201'\316\257\316\271\316\271
B,=
\321\200\320\270\320\273 Pitoi \316\241'\316\277\316\257\316\271
\321\200\320\263
\316\267\"1'
\316\241\316\252\316\277> Pioi plli
\317\201'\316\257\316\271\316\220
(10.26)

pom
\321\200\320\266\321\216 pom
\317\201\316\257\316\272\317\212\316\277

pioo
\316\241'\316\257\316\277\316\277
\320\240\320\277\320\276 Pun
\320\262,- \342\200\236III. nv
\342\200\236\320\270
Pnii)
\321\200(\320\232\320\256 p \302\253\316\272\316\271
\320\240\320\276\321\216
\342\200\236H1V\320\270\320\270- \342\200\224
II HI'
_ pino 1111
\316\241 Piwi \320\240\320\277\320\276

\320\271\320\277
\316\241
\317\201\317\214\316\277\316\271
\321\200\320\276\320\270 \316\241\316\271\316\220\316\271\316\271
111
KU
\316\241
\316\241\317\212\316\277\316\271
\321\200\320\242\320\275 III
\316\241
\320\222,- \342\200\224
\320\235\320\230'
(\302\253\320\270
\316\241 \316\241 pun
\320\274\320\270
\316\241\316\252)\316\212\316\212
\316\267\"\"\"'
. \316\241
\320\232\320\230 Pin
\316\241',\",\", \316\241\317\212\316\277\316\271

We can think of these equations as being organized in a three-dimensional

array of vectors, as in Figure 10.4. We must keep in mind, however, that


because the elementsof each array are vectors, the array is more correctly 4
x 4 x 4 x 3, a four-dimensional array.

We take a similar approach with the point form, contractingthe third


parametric variable w and expressing the point-form coefficientsas a
sequenceof four 16-element arrays. We denote these arrays as the matrices

= = =
V2-[Pifl],
\321\2001 [\321\200\320\224 \320\240\321\215
\320\253, (10.27)
\321\2004 [\321\200\342\200\236\321\207]

and expand as follows

\317\200\342\204\242
\321\200\320\254,
\316\241?\342\200\236 \316\241\316\277\316\271\316\271
\317\201\316\232

pS\302\273 &
\320\240\320\276\321\216 \317\201\342\204\242
\316\241\317\213\316\223\316\277

VW
Pcoi Pq\342\200\236Pool \320\240\320\276\320\270 \316\241\316\2777\316\223
\316\241|\316\271\316\237

\320\240\320\260\321\216
POIQ PSoo \316\241\316\277\316\212\316\277
\317\201;,. \317\201\316\220\316\223
\316\241\316\277\316\220\316\277\"'

Pioo \320\240\320\277\320\276 \316\241\316\252,\316\277


P\302\260,\302\253> \316\241^
\317\201\316\226
\316\2223

\"\316\277\316\257\316\277 \321\200\320\223\320\223,
Pa\302\273 \316\241\316\277,\316\214
\316\2222

\316\241\316\252* \316\241\316\271\316\231\316\237
\316\241\316\220\317\216
\320\262,

Figure 10.4 Three-dimensional array of


geometric coefficientsof a parametricsolid.
The Tricubic Solid 247
\342\226\240

\317\201(\317\213.\317\213,\317\213) \317\201(\316\237,\316\231,\317\213)
p(o,j,o) p(o,|,0J

p(J,lo
p(H \317\201(\316\257\316\2570Plj.fo)
Pi

p(\302\273 p(H\302\273) \317\201(!\302\267'\302\267\302\260


\317\201(\316\234\302\267\302\273)

P(i,o,0) p(LLO)
P(i,j,o) pfi,f.o)

I
PI \302\260
At Pi
o,f
\321\200(\302\260'\320\243\320\243
\316\277,\316\271,-
\316\241

,1\320\233 111 111 l'1 1


]

\320\227'\320\227'\320\227 \320\227'\320\227'\320\227
P2 =
\321\200(,\320\267\320\264\320\267 \321\200(,\320\243\320\273'\320\243

1 J
\316\271'2
\316\267 2\320\246 111 .
\316\271'2

\320\240(\320\243\320\233'\320\243
\320\227'\320\227'\320\227 \320\227'\320\227'\320\227

I 1 ,.21
\316\271.
\316\271,\316\277,-r\317\201
\316\241
'\320\227'\320\227
pi1 -\321\203
-\320\267
\317\201

,\342\200\23612
\321\200\320\276\320\264
'3 p(4i
\321\200(\302\260'\320\243'\320\243 \320\240(0,.|

111 111 ,1 . 2

\320\227'\320\227'\320\227 \320\227'\320\227'\320\227
\321\200(\321\203\320\273\321\203
-\320\270
LLPs'

'111 \320\250 ,'2 ,


2
\321\200'\320\267'\320\267'\320\267 \321\200(\321\203\320\273\321\203
\320\227'\320\227'\320\227

11 ,-, 2 2
\321\200\320\237
\320\240|..\320\276| '\320\227'\320\227 \321\200(]'\320\243'\320\243p(Ll|

\321\200(0\320\2241) P(0,1,1)
\321\200^\320\236.\321\203.1 Plafi
,12.
Pf
\316\211 >(11 \320\243'\320\243'1
\320\240\320\267
,22.
p( yy\302\2671

\317\201(\316\231,\316\237,\316\231) P| .1 P(LL1)
p(l,y,l i.f
248 \342\226\240
Solids

Figure 10.5 illustrates the point distribution within the unit cube in
parameter
space.
Because the algebraic coefficients a-llk
are too cumbersome to present this
way, we express them in an
unexpanded matrix format, determining them by
operating on the geometriccoefficients with the universal transformation
matrix M.Thus, we obtain
=
\316\234,,\316\234\316\222^-\316\227
a,\342\200\236 \320\234|2\320\234\320\2222\320\234\320\223+
\320\2341\320\255\320\234\320\222\320\255\320\234\320\223+
\320\234\320\230\320\234\320\222,\320\234\320\223

a,p= \320\2342|\320\234\320\222,\320\234\320\223+
\320\234,2\320\234\320\2222\320\234\320\223+ \320\234\342\200\236\320\234\320\222,\320\234\320\223
\320\2342\321\215\320\234\320\2223\320\234\320\263+
0.291
v\316\240 '
=
a,;1 M3|MB1Mr+Ms2MB2Mr+M1;iMB3M7+MMMBJMr

ailt
= + \316\234^\316\234\316\222,\316\2341
\316\234^\316\234\316\222,\316\234' + \320\234,3\320\234\320\2223\320\234\320\223+
\320\234,,\320\234\320\222,\320\234\320\223

where M/m is a single specific element ofthe universal transformation matrix


and BbB2,B3, Bj are given by Equations (10.26).If we let

A2 = =
\320\220^\320\263\320\260\320\224 [ail2], \320\220, [a;/J]
\320\2203=[\320\260,\321\203\320\267], (10.30)

or,in general,
=
\320\220* [\320\260(,\320\233 (10.31)

then we rewrite Equation (10.29) more compactlyas


=
A* M*,MB;Mr (10.32)
where we take the summationoverthe repealed subscript j'.

Figure 10.S Sixty-four-point form of a


tricubic solid,
The Tricubic Solid 249
\342\226\240

We would like to be able lo transformequations from point form to


geometric form. To do this, we introduce a patch function that we denote as
G(w)
and define as follows:

Giw) = F4(W)B, (10.33)

This defines a bicubic patch corresponding to a specificvalue of w, given the


hyperpatch array [b,ltI] from which we extract the B, arrays.Next,we evaluate

this function at the one-third points to obtain

G^M-'NPjN^M\302\2671]1 (10.34)

where is
\316\234 the basis matrix
transform\320\260\320\270'\321\215\320\277 and N is the array of basis-
function coefficients F/1 from Equation (10.24). Thus,
9 27
_27 9
2 2 2 2

9 _45_
18 _9
2 2
N= (10.35)
11 9 _9_
1
2 2

1 0 0 0

We now substitute theresults from Equation (10.34) into Equation


(10.33) and solve for B, to obtain the final transformation equation

B,-= [Fg]-1 \316\234-'\316\235\316\241,\316\235^\316\234-1]^ (10.36)

where matrix whose elements are the basis functions


[Fj] is a in Equation

(10.23) evaluated at the one-third points. The expanded form of this matrix
is

Ft(0) FS(0) F$(0) Fj(0)

\302\245\321\214
./1
Ft F\302\247
,3~
\321\200\321\202\320\260- (10.37)
'2 ,\320\2532
\316\220 \316\267\\\317\204\\ \321\211=\320\263 Fill

Ffd) Fb2(\\) FS(1) FJ(1)_

When this matrix is evaluated, it becomes


250 - Solids

1 0 0 0
\317\213 0 0 1
=
[\320\237] 11
\342\200\224
9
9
\342\200\224 1
1
(10.38)
2 2

9 11
-1 -9
2 2

and its inverse is

1 0 0 0
20 7 4 2

- 27 27 27 27
w 7 20 2 4 (10.39)
27 27 27 27
0 1 0 0
We recognize them as the arrays from Equations (3.37)and (3.38),
respectively.

There is no restriction on the basis used for a Iricubicsolidor any other


single or mixed-degree solid. We could create a Bezier parametricsolid,
using
a three-dimensional lattice of control points, or we could createa B-
Spline solid.

Tangent Vectors and Twist Vectors

Computing
the parametric derivatives of the tricubic solid involves

processes similar to those for the bicubic patch.In fact,as we


might suspect,
the parallels continue with higher-dimension elements.Wc express the
tricubic function as three independent variables, of course, and we must compute
partial derivatives of this function.
We encountered these vectors earlier, becausethey are important
constituents of the coefficients.
geometric Let us summarize them briefly here.

We now have three species of tangent vectors,

oil
(10.40)
\342\226\240=g^(\302\253,V,40

-
p;;;\302\267,, p(w,v,w)
dw
The Tricubic Solid 251
\342\226\240

three of twist vectors,

^\321\215^*\"^

(10.41)

and the singular triple-mixed partial,

\320\2553
lC\"= a a a p(\302\273,v,w) (10.42)

Just as these vectors change and control the shape of Hermitc curves and
surfaces, so do they also control the s-hape of a tricubic solid.Thesevectors
control not only the shape of the edges and faces, but also the interior
distribution of the parametric variables. Figure 10.6 illustrates someof the tangent
vectors in place on a solid. Noticethat the triple-mixed partial vectors p,,\342\204\242,\"\342\204\242

control the change of the twist vectors through the solid.

Second-level auxiliary crnve

\321\200\302\273\321\202
P;\302\253\321\200\320\223'1'
\321\200^-\320\270\320\274\320\262=\320\270\320\274[\321\200\302\253

Figure 10.6 Parametric solid tangent vectors.


252 . Solids

These vectors
provide a variety of ways lo control the exterior shape of a
solid. By fixing Ihe corner points of a solid,we can create concave and
convex faces at will by
manipulating the tangent and twist vectors. For simple

shapes and constrained demands on interiorbehavior, wc can set equal lo


zero some or allof Ihemixed vectors defined by mixed partial derivatives, in
the manner of the F-patch for surfaces.

The Parameter of a solid


\320\221\321\200\320\260\321\201\320\265

The parameter space of a solid differsfrom that of a curve or surface, of


course, becausewc must account for an additional parametric variable. We
now have a set of four-dimensional parameter spacesdefinedby (u.v.wjc),

(u,\\>,u>,y),and ([(,!', coordinates.


\320\234',\320\263) Contrary to curves and surfaces,
decomposing
a tricubic solid into its parameter-space components is much more
difficult to visualize and, therefore, less likely to help us understand its
behavior in model space.
We can. however, apply this technique to Ihe faces in exactly the same way
as we did for bicubic patches. In fact, we can take parametric slices
surfaces
generating On which one of the parametric variablesis constant and then

proceed with the familiar bicubic decomposition.


Figure 10.7shows an interesting approach. We start with the unit cube. At
some convenient distance d from each of the six faces,we construct a unit

square in a plane parallel to the face. This


plane is designated as the = 0
\317\207

plane (or \321\203


= 0 or \316\266
=
0). Now we proceed
with the bicubic decompositionof
each of the six faces. We might produce some interesting effects, if not

insights, from a dynamic computer-graphics display of Ihe resulting


phenomena.

Continuity and Composite Solids

We now consider the possible continuity requirements at the common

boundary surface of two joined solids. Figure 10.8 gives the details of the
conditions across Ihe interior of this face. We will have satisfied all required
continuity conditions acrossthe adjoining external bounding surfaces of the
two solids p([(,v,w)and q(u,v,w). Also, we will ignore curvature continuity
and focus on \320\241parametric continuity across this surface. To ensure C\"
continuity,
we must meet the following condition on Ihe commonsurface:
=
qo.,
Piv\342\200\236. (10-43)

For G1 continuity, we must investigate the curves of constant and


\316\275 w passing

through each of these points.The tangent vectors of the curves at these


points must be collinear; thus,
Curves and Surfaces Embedded In a Solid 253
\342\226\240

Figure 10.7 Parameter space of a parametric solid.


=
A:q'(W
P'i\342\200\236, (10.44)
The surface normals of the adjoiningsurfacesare in the same direction if
* = x
\317\201'\316\271\316\275.\316\274
\316\241\316\220..\342\200\236 qon,)
fl(qo,\302\267\302\273 (10.45)
If we modify this condition so that we now have

=
\321\200\320\270\321\205\321\200\320\270
\320\263>\321\200\320\263*, (\320\256.46)

then the tangent vectors indicated are also normalto the surface.

10.3 CURVES AND SURFACES EMBEDDED IN A SOLID

We found that a parametric surface supports a two-dimensional curvilinear


coordinate system on we can define curves. In a directly analogous
which

way,
a paramelric solid supports a Ihree-dimensional curvilinear coordinate
system on which we can define both curves and surfaces,the simplest being
the isoparametric curves and surfaces. An isoparametric curve, for example.
results when we hold two of the three tricubic parametric variables fixed al
someconstantvalues.The curve in Figure
p\342\200\236&11. 10.9 results when we assign \320\270
-
a and -
\316\275 b, where a and b are constants.
In the same figure, we find two
isoparametric surfaces p0V11, and p\342\200\236blr
254 - Solids

\317\201(\",\317\205\317\201\317\204\317\205)

Figure 10.8 Continuity conditions.

A parametric cell is a subelementof the solid bounded by six


surfaces.
isoparametric For example, in Figure 10.10, the six boundary surfacesare \321\200\320\2571.,\342\2
Pa\342\204\242, pnrfiv,
pnm\302\267.
ar|d
p\342\200\236ve> p,(1/. Such a cell is orthogonal if the curve nets of the
three families of isoparametricsurfacesare defined on orthogonal
curve
parametric nets.
We define a noniso parametric curve by introducing an additional para-
melric variable I.Thecurve c(f) is shown mapped tricubic solid in both
in a
modelspace parameter and space in Figure 10.11. The curvilinear vector
componentsof pointson the curve are

c(0
= u(0 + v(f) +
w(f) (10.47)
In model space, the curve is expressedas
=
c&,y,z) p[u(t),v(t)M0] (10-48)
Curves and Surfaces Embedded In a Solid 255
\342\226\240

Suifacei' = i\302\267,
p\342\200\236fc^

A distcwied cubical solid.

Figure 10.9 Isoparametric curves and surfaces


in a parametric solid.

Figure 10.10 Parametric and orthogonalcells.


256 Solids
\342\226\240

000 \"

Parameter space

Figure 10.11 General curve in a parametric solid.

The procedures are identical to those we use for curves embedded in


surfaces.

Because a parametricsolid offers a three-dimensional curvilinear


coordinate
system, we havethe additional option of defining nonisoparametric
surfaces within the solid. In Figure 10.12, a surface patch is mappedin both the
unit cube of parameter space and in a corresponding solid in model space.
The vector componentsof the patch
in parameter space are

t(s.i) = u(s,f) + v(s,t)


+
w(j,r) (10.49)
In model space, the patch is expressedas
-
r(*.y.z) p[u(s,t),v(s,t).w(sJ)] (10-5\302\260)

Again we proceed as wilh curves in solidsand We can choose a


on surfaces.

variety of surfacesto model in the parametric solid. What happens when a


Beziersurfacelies within a tricubic solid? How do we map sucha surfacein
model space?
A variety of complex solids is possibleif we permit them to have irregular
or nonisoparametricboundaries, often called trimmed boundaries. A specific
Elements\342\226\240
Generalized Notation Schemeand Higher-Dimension 257

000 \316\267
Parameter space

Figure 10.12 Nonisoparametric surfaces in a parametric solid.

example is shown in
Figure 10.13. The solid has one of its cornersclippedand
defined by a nonisoparametric surface. The surface is convenientlydefined
initially in either parameter space or model space, dependingon the
modelingsituation.

10.4 GENERALIZED NOTATION SCHEME


AND HIGHER-DIMENSION ELEMENTS

To introduce each subject, the preceding sections useda traditionalalgebraic


notation scheme. Incorporating vector and matrix notation significantly
reduces the
complexity and awkwardness of these formulations. The next
logicalstep is to introduce a more generalized summation scheme that
extends to the representation of not only curves and surfaces, but also to
solids and higher-ordergeometricforms. The notation convention we use
258 Solids
\342\226\240

Parameter space

Figure 10.13 A parametric solid with a trimmed boundary.

here (largelyattributablelo Timmer) has these characterislics II and others.


can extend to spacesof any dimension; it applies lo polycubic interpolation
involving
an
arbitrary number of independent paramelric variables and
suggests
a system lhalcan directly extend to any odd-ordered polynomial form.
We will apply the following general symbol definitions:

\316\206\316\231\\)2--\316\212\342\200\236
vectorelementsof the algebraic coefficient array A
~
aihl2--->n
ith component oialil2...la
\\h
=
-/\342\200\236 vector elementsof the geometric coefficient array \320\222

ith
component of bjl)2__ hi

p(X\\,Xl,. . . =
,*,\342\200\236) point vector in model space (dependent variables)
[(= parametricvariable(independent variable)

rrijk
= elements of the transformation matrix \316\234

The algebraic form is


Generalized Notation Scheme and Higher-Dimension Elements 259
\342\226\240

= - \342\226\240 \342\226\240
\342\226\240
\321\205,(\321\211,\320\2702...
.,\302\253\342\200\236)
\316\243 \316\243 \316\243^.^''1\"'\"''' \"\"\"'\342\226\240') (\316\214.51)
=
J, 4\\=l /\342\200\236=1

where i e[l : m\\ and p, is the ith component of a dependent-variable vector


of m components, each definedby this \317\200-cubic
polynomial parametric
function. Wc can omit the summation symbols.The geometric elementdescribed
isof ;rth order, component is of 3/rth degreeand has
and the equation of each
4/T terms. arem dependent variables and \316\267
There independent or parametric
variables. Using Chebicubic Hermile patchin Ihrec-space as an example, we
havem = 3 and;r= 2.and we rewrite Equation (10.51) as

=
*,(\302\253,.^) \316\243 \316\243\316\275'\"'1\"5''1 ief1:3i (10-52)
=1/2 = 1
/\316\271

The geometric form for arbitrary m and \316\267


is

4 4 4
\342\226\240
\342\226\240
\342\226\240
x&MuUi \302\253\342\200\236)=
\316\243 \316\243\"'\316\243 Fit(ui)Fb(ud FiSu\bm---i/ieV") :m]
= 1/2 = 1
/l 1,1=1

(10.53)

The F-terms are Hermtte basisfunctions.Forthe rth F-terra. Ff. we have

/,= l, F,(ur)= 2ii?-3u;+l


j, =
2, F2(\302\253f)
= -2u\\ + 3u;

/r =
-
3, = \320\270? 2u2r
\320\240\321\212{\320\270,)
+ \316\267,

Ft(ur) =
= 4, -
/', \320\270} uzr (10.54)

The multisubscripted \320\254


array requires care to interpret. If we use the
more
following rules correctly, we can a correct and unambiguousset of
construct
geometric coefficients. The subscript i identifies the specific boundary on
which the preceding product of basis functions is to operate.It alsoidentifies
a sequence of \316\267
operators applied to evaluated
p\342\200\236
at the previously
determined boundary. Table 10.1 is a summary of the information associatedwith
the four values of the/rth subscript.
The followingexamplesdemonstrate how to use this table:

Example I. n = 1,cubic Hermite curves

Z>,:=[1),y,(1)=,y,(I)
260 > Solids

Table 10.1 Subscriptinterpretation


J, Boinidarv Ope lor
\320\263\320\260

J>1 = 0
\320\270, 1
= 1
\320\270, 1

= 0
\320\274,
\320\255\320\271,

u, = l
\320\255\320\270,

Example 2. =
\317\2002, bicubic Hermite patches
\320\255
=
[1]
\320\254,\320\270
\320\255\302\2532 \317\203\316\257\316\2572

\320\255\316\257
\316\257 \321\215
6,4J =
\342\226\240*,(0,1)
\320\255\320\271
\316\271\320\255\320\271,

Example 3. = 3,
\320\273 tricubic Hermite solids
\320\260
\320\254\320\23724={1][1
,i(o,U),^ui
\320\255\320\270\320\260 \320\255\302\2533

\320\255 \320\255\320\247-0.1\320\224)
b,J44
^ =
*;0\320\224\320\224)
\320\255\320\271?
\320\255\302\2533 \320\255\302\2731\320\2551;2\320\255\302\253\320\267

\320\255
=
\320\231/413 [1 ,,(1\320\2200),^1\320\2501
\320\255\302\2531 \320\255\320\230; \321\215\302\253,\321\215\302\253\320\267

The braces [ ) indicate and separate the operators. The operations do not

imply multiplication except in the case of [1].


Finally, the equation for the Iransformation from geometric to algebraic
is
coefficients
4 4 4

<4\316\275-\316\233=\316\243 \316\243'\"\316\243 \342\226\240,,nUiV---4,


\321\202\320\243<\321\202*\320\271 ''e[l:m] (10.55)
/1 = 1/2=1 /n = ]

It is simple and quite straightforward to duplicate the aboveproceduresfor


Bezier and B-Spline basis geometry.

10.5 INSTANCESAND PARAMETERIZED SOLIDS

A direct way of defining a new shape is as a simplelinear iransformation of


an existing one. Let us considera unit cube. There are several ways of trans-
Instances and Parameterized Solids 261
\342\226\240

forming it into a new shape by using scaling operators. Equal scaling of all

three-dimensional components creates new different-size cubes. Differential


scalingcreates a variety of rectangular solids. Each new cube or rectangular
solidis a
particular instance of the initial cube.
Figure 10.14shows examples of how simple scaling transformations create
an unlimitedvariety of specific instances of an original shape. Notice that
such transformalions the geometry but not the topology of a
affect shape.
The shapes
in this figure happen to be regular convexshapes.The original, or

initial, shape is often called |he primitiveshape,and the result of its


transformation
produces an instance.

Unit sphere DilFerenLial scaling


Unilorm scaling

UniT cube
5

\320\222

C=^
UnlL cvlmdei

Figure10.14 Instances.
Instancing a primitive shape is not limited to such simpleprimitives; for

example, note the shape in Figure 10.15.We can transform this section
\316\226
by
equal or differential scaling into an infinite number of instances.Bui,as
specified here, there are certain built-in restrictions: The widths of the top
and bottom flanges will always be equal,and the thickness of the section
will always be one-tenth the height. And look at what happens
to the
circular arcs defined by the bend radii: They become elliptic arcs. This is not a
fatal flaw when instancing,but restricting shape change to three orthogonal
coordinate scale factorslimits the prospects of a modeling system based
solelyon these transformations. Using fully parameterized shapes removes
this limitation.
A few key dimensionsare usually sufficient to define the shapes of simple
objects.If each dimension is an independent variable, then we can producea
particular shape within by specifying the key dimensions
a class of objects or

parameters. Geometric-modeling algorithms then use these parametersto


compute
a more complete mathematical representation. In Figure 10.16,we
see the same basic shape as that in Figure 10.15but with much greater
representational
power.

Figure 10.1S instances of a Z section.


Solids
Instancesand Parameterized 263
\342\226\240

Figure 10.16 Parameterized shape.

It is not difficult to verify the validity of data specifyinga model.Forthe \316\226

section in Figure 10.16, for example, we can apply the following restrictions
and easily check them: \321\217,
fc, /z, /, / > 0, Z> < > 2r,
\321\217
\321\201/, and h > 4/.
We can develop parameterizedshapes with variable topologies, such as
(he \317\204\317\204-celled
structure in Figure 10.17, but most parameterized-shape
procedures are restricted to a single topology.
A related scheme,calledgroup technology, came into use in concert with
certain computer-aided manufacturing techniques to encourage
standardization in part design and production. The central thesis and main advantage
of group technologyis that many manufactured parts can be grouped into
classesor families of similar shapes, where individual members are distin-

= numbei of
\320\273 cells
i - wall [hickness
o,b = tell dimensions
f = length

Figure 10.17 Parameterized shape of variable topology.


264 - Solids

guished by a few parameters (key dimensions). A single family of shapes is a


generic primitive, and individual members are primitive instances. Figure
10.18 shows examplesof genericprimitives.
The instances are not usually combined to form more complexshapesas
they are in constructive solid geometry, although no theoretical
barriers

prevent it. For example, we could envision a modeling system that converts any
primitive instance into a boundary representation (probably
an envelope of
surfaces), evaluates it to Boolean combinations of instances, and forms more
complexshapes.
Parameterized-shape
or group-technology models are easy to validate and
use. They are unquestionably concise; however, the number of useful generic
primitives, though large, is limited. Modeling systems built only on this type of

representation are highly specialized; a large repertoire of genericprimitives


is required for them to have wide application.

10.6 SWEEP SOLIDS

Sweep representations are based on the notion of moving a curve,surface, or


solid along some path. The locus of points generated by this process defines
a new two- or three-dimensional object.Sweep representations for modeling
solids are simple to understand and execute, and they offer opportunities for
developing new methods. The relatively constrainedgeometry of a sweep

shape means that only a small data setisneeded specify the shape. to
Procedures defining a particular type of sweep flesh out and develop full
the
point-
wise shape representation. They are mathematicallyconciseand often form
the data and analytical framework for subsequentinterpretation as a variety

of analytical surfaces or solids, whieh,in turn, may be used in boundary or


CSG representations.For more advanced work in this area that includes
analysis and modeling of deformed swept volumes using sweep differential
equation techniques, see the work of Blackmore,Leu, and Shih (1994).
among others.

SSS/SA \320\243///\320\243/\320\233

ZZZZZ2

\320\243////\320\233 VmL\302\267

(a) (b) (c)

Figure 10.1B Typical generic primitives.


Sweep Solids \342\226\240
265

We define a translational sweep or extrusionby moving a planar curve or


planar shape alonga straight line normal to the plane of the curve, the former

generating a surface and the latter a solid. We define a rotational sweep by


rotating
a planar curve or shape with finite area about an axis. Although this is
a spatial rotation, the axis is usually in the
plane of the; figure\342\200\224at least for the
simplest and most common applicatio-ns. somcwh.it
A less-restrictive
definition of a translation surface is produced by sweeping one curve along another

curve, where the generating curve remains parallel to itself if it is a plane curve.
A general sweep is one whose generatingshape follows some arbitrary
curved path, and which itself may change size, shape, and orientation. Thus,
for solid modelingwe need two ingredients: an object to move and a path to
move it along. The sweeping object must be a curve, surface,or solid,and the
path must be analytically definable.'Hie term generatordenotesthe
sweepingobject,
and the term director denotes the path. Unfortunately, the word

sweep is used as a or
noun, verh, adjective. Fortunately, the meaning is
usually clear from the context.
When does a sweep become so generalized that it is no longer a useful,
intuitive
concept in application? This is a difficult question with no easy
answer. However, we cannot go wrong if we insist on the presence of a
generator shape, a director path, and rules controlling the orientationof the

generator
at each point on the director.
Sweep shapes arc in geometric
important modeling because they
accurately represent
of
a largeengineeringdass and manufacturingobjectsand
processes,
and in contemporary modeling systems they prove to be practical
and efficient for modeling cons tant-ciOss-scetion mechanical parts. We can
use them to detect potential interference betweenparts of mechanisms; for

example, a moving object A collides wi th a fixed object if the volume


\320\222 swept
by A intersects B. A related use is in simulating and analyzing material-
removal operations in manufacturing; for example, in studying the cylindrical
and spherical geometry of the volumes swept by a hall-shaped cutter moving
along apredefined path intersectingand machining the raw stock for a part,
where the intersectionvolume represents material removed from the part.
Figure 10.19shows examples of sweep representations. The two principal
types
of trajectories are depicted\342\200\224translation and rotation. Note that the
director curve is not necessarilyan element of the -swept object. Also note
that the director sweep amounts to an algorithmto moveeach
of a rotational
point in the generator along a circular arc in a plane perpendicular to the
axis of rotation and with a radius defined as the perpendicular distance from
the point to the axis.In all cases, the shape of the object, or generator,being
swept along does not change. Later we will investigate more general,
nonlinearsweep representations.
266 \342\226\240
Solids

Generator surface J Axis or levofurion

\316\234 id)

Figure 10,19 Examples of sweep shapes.

There are obvious and


several some not-so-obvious ways of creating
dimensionallynonhomogeneous In
objects. 10.20a, the translational
Figure

sweep of a curve creating a surface alsocreates dangling edges. In


two

Figure 10.20b, two two-dimensional regions are connected a one- by

dimensional structure. In Figures 10.20c and 10.20d,creatingsolids using

invalid or nonhomogeneous generators results in dimensionally


nonhomogeneous solids and ambiguities. The rotational sweep of a generator
passing through the axis of rotation, as in Figures 10.20eand 10.20f, produces a
surface or solid with a singularity. These conditionsproduce unacceptable

results for most applications, but sometimes the results are expected and
Sweep Solids 267
\342\226\240

\320\236

<\320\254)

\316\257\316\237

(\320\265) ff)

Figure \320\256.20 Djmensionally nonhomogeneous sweep


representations.

even desired. This is true for modelingsystems requiring greater degrees of


freedom\342\200\224computer art, for example. By following criteria suggested
in

this figure and incorporating them in the design of sweep-representation


generating algorithms, we can be sure to create dimensionally
homogeneous models.

Translation and Generalized Sweeps


Lossing and Eshleman (1974)developed
a
powerful technique for
representing constant-cross-section objects. Their approach emphasizes proce-
268 - Solids

dures that minimize data storage requirements. They use a six-component


trajectory and generatororientation curve called a position and direction
(PD) curve.A closed planar curve section of a mechanical
defining the cross
part is translated along an axis surface of a raw-stock
to form the outline
model.This model is then trimmed by limiting planes to produce the
boundingsurfaces
of the part. Figure 10.21 illustrates these features. If the finished
part followed a curved axis, a nonlinear transformationon the model would
describe this representation.
Lossing and Eshlemanare ableto define an almost unlimited variety of
swept solids using (heir technique.They define a PD curve as a general form
of a six-component curve,usually a cubic Hermile curve that continuously
Specifies position and an associateddirection.The first three components
define a continuous parametric cubic equation of positionin three-
dimensional Space. The second three components define a corresponding
continuous parametric cubic equation for an associated direction vector.A
common parametric variable associates the direction vector with a
specific
position on the curve. The pD curve in Figure 10.22 defines a curved and
twisting coordinate system.
We construct a local orthogonal system at pj as follows:Computep;',the
tangent vector. From p\"
and d, (remember, d, is given by another parametric
equation),we find the orthogonal unit vectors l,m, and n:

Limil Diane

Figure 10.21 Outline surface of a constant-cross-section solid.


SweepSolids 269
\342\226\240

d, Difeclion associated wild ^

PD curve

Trans rmed
\320\223\320\276

, \342\200\236
orlhogonal axis
m = !..___!_ aipoinlp,
ld' \" \316\241\"'
on curve

n= I x m

Figure 10.22 Characteristics of a PD curve.

I =
ip'/i

d, * Pi1 (10.56)
m =
Id, \317\207
p'/l

n = I xm

The axes I and define


\316\267 a direction plane in which d, is located.Thisreference
plane changes as the tan gent vector and d, changecontinuously along the PD
curve. A PD curve definescontinuoustransformationsfor pointson an

outline curve or generator.


We can use a PD curve to producegeneralized outline surfaces. Figure
10.23 illustrates a constant-cross-section part that is not only curved but also
twists. Figure 10.24illustrateshow to (he two curves comprising a
coordinate
PD curve through a common value of the parametric variable and how to
extract (he elements. Losing and Eshleman also point out that two or more
cross-section curves can be used with one PD curve (for example, a pipe or
tube with an inner outer cross-section curve). Multiple cross sections
and
with
multiple PD curves can be used to generate a morecomplex or variable

cross section. Positive and negative generator curves are used to create
complex cross sections with high variability in the axial direction.Multiple PD
270 - Solids

Swepi solid
Reference dneciion

Consiam
Cfoss-secriori
(genefarc-f curve

PD curve

Figure 10.23 A constant-cross-section part that


curves and twists.

curves and associatedgeneratorcurves create, in effect, half-spaces with

directed normals and can be used to add or subtract \"material'\" lo a raw-


stock model. Some of these modelingprocedures must depend on the user to

verify model validity.


A six-component curve trajectory for controlling the movement of a
generator curve has obvious najural extensions. For example, three more
components may be added to yield scale factors to apply to the generator curve,
differentially expanding or contracting it, and coordinating it with the
motions imposed by the PD curve. This introduces nonrigid sweep
representations, a field still in its formative stages, which we will not discuss here.
Choi and Lee (1990) describesweep-modeling schemes based on
conventional engineering drawing techniques. They address parallel and rotational
sweeping,spincdsweeping, and synchronized sweeping, and show that a

Parametric variable

Figure 10.24 Components of a PD curve.


Sweep Solids 271
\342\226\240

variety of surface shapes can be defined by specifying a sel of section and


control curves,with appropriate transformation and blending rules. Martin
and Stephenson(1990)show how envelope theory from differential
can
geometry
be used to find the volumes swept out by the surfaces of a solid body.

Rotational 5weeps
One way to generate a surface of revolution is by revolving a plane curve
around an axis line in its plane (see Figure 10.25). The plane curveis called
the profile curve, and. in its various positions around the axis,it creates
meridians.The circles created by each point on this curve are calledparallels.
For the simplest case, we let the axis
\316\266 be the axis of rotation and definethe
curve -
x(u) + z(r\316\271)in the \317\207,
\321\200(\320\274) \316\266
plane. Then Ihe surface of revolution has
the equation
=
x(u)
\317\201(\316\272,\316\270)
cos + x(u)
\316\270 sin +
\316\270z{u) (10.57)
Of course, the profile curve might be a general curve, elliptic segment,
circular arc,and soon.

Figure 10.2S Surface of revolution.


272 . Solids

For general surface of revolution, we considerthe situation


a more shown

in Figure 10.26. The given or initial elements are a cubic Hermite curve
defined by its geometric coefficients,a unit vector a defining the direction of
the axisof revolution, a vector b locating a point through which the axis
passes, and the angle through
\317\210 which the curve rotates to sweep out the
surface. We would like to find a bicubic Hermite patch that describes such a
surface in terms of these elements. First, we must determinethe scalars k0 and /\321\201,

and the vectors r(( and r,. We do this by solving the following sets of vector
equations:
+ kpa
\320\252
+To-p0 where a-r0-0 (10.58)
and
b +/c,a+11!
=
pi where a \302\267=
r, 0 (10.59)
The condition asserted by
a \302\267-
r0 0 makes a and r0 mutually perpendicular;
similarly for a and r^
From Equation (10.58), we obtain

\320\233\342\200\236=\320\260.(\321\2000-\320\254) (10.60)

= - - \320\254
r0 po \316\234 (10.61)

From Equation (10.59), we obtain


Ma-(pi-b) (10\302\26762)

= - - b
r, p! A:,a (10.63)

Figure 10.26 Another surfaceof revolution.


Sweep Solids 273
\342\226\240

Now we can proceed to find the other two corner points p'0 and p',.
Clearly,p'0= b + faa + r'0 and = b +
\317\201\316\212
+ r\\. Thus,
\320\272\320\263\320\260 we must determine r'0
and \320\263',
(see Figure 10.27).
The unit
tangents lo the circular arc al p0 and p'0 are denotedby to and t'0,
respectively We will have to determine thesevectorslo find the final tangent
vectors at these points.The unit vector in the direction of the vector product
of and a
\320\223\321\206 produces tu, so that

=
r(|Xa
t0 (10.64)
lr0 a I
\317\207

We can define the vector as the


\320\263\302\243 sum of two components, one in the
directionof r(, and one in the direction of t0. We begin by observing that the
magnitude of r0 equals the magnitude of r0. Applying elementary
and
trigonometry vector arithmetic, we obtain

\320\223(1
= I rn
\320\223\320\277 sin \317\210 (10.65)
lr0l lr0 al
\317\207

or, simplified,

. . r0 \317\207
a
r0= r0cos\\ii + lr0l -smf (10.66)
lr0x al

Figure 10.27 Circumferentialtangent


vectors of a surface of revolution.
274 . Solids

We find r, in a similar way:


\320\263,\320\260 \321\205
r, = r, cos \317\210+\316\231\317\204, sin \317\210 (10-67)
xal r,

We can also define (he unit tangent vector to as the sum of two
components in the directions of tfl and r0:

to = cos
t\342\200\236 \317\210-\316\263--sin \317\210 (10.68)
lr0l

or

a
\317\207 .
\316\223\316\267
= \342\200\224 \320\263
r\342\200\236 cos - ~r0 sm
\317\210 \317\210 (10.69)
lr(l al
\317\207 \342\226\240i\"oJ

We know that t, = t0 and t\\


= t',.
We must now find the tangent vectors. Recall how we
magnitudes of these
developed tangent the vectors arcs in Chapter 3 (Section 3.8).We
for circular
used a point p2 lying on the intersection of the tangent lines at the two end-

points of the arc. We will do the same now.We find p2 by computing the
intersection of the two straight lines p0 + /nto and po + iiit0. By symmetry, we see
that = -\321\202.
\316\267 Furthermore,

po + \342\204\242t0=pO-mto

and

Ipo-ppl
m =
itn + t;j

From these, we obtain

Ipo-pol
= +
p \320\273P\302\273
Ito + toi

Using equations from Section 3.8 with appropriate substitutions, we find

1 - cos p2-po
(\317\210/2)
pu=4lr0l sin - (10.70)
(\317\210/2) Ip2 Pol
and
1 - cos (\317\210/2) po-p;
41\320\2630
\321\200\320\276\",=
sin - (10.71)
(\317\210/2) lp \320\276 pz'
We use this same procedure to
and
\317\201',\316\214 pjl, at the other end of the
find

patch. Notice have changed


that the
we nomenclature: We now denote point
p'o as p01,and, of course,p0 of the initial curve is \317\201^on the patch. It should
help to keep in mind that we are creating a surface patch by sweeping a curve
through an arc around an axis.
Controlled Deformation Solids \342\226\240
275

Next, we compute (he tangent vector p^, which is, of course, the result of
rotating pi!through the angle around
\317\210 a. First we sec that lp;(il
=
Ip'ol (see
Figure 10.28). Also, vectors have identical projections on the unit vector
both a,
so pm =
\302\267
a \302\267
a.
\316\222
\317\201
We use the symmetry of the construction and realizethat the
projection of \321\200\321\210\"
onto the unit vector in the direction of r'0 has the same
magnitude as the projection of po onto the unit vector in the direction of r0. Now
we are ready to define p^ as the sum of its components along a and t'0

p;,= (pS.a)a + (10.72)


(pS.^)
We find the tangent vector at the other end \317\201
ft in the same way. All of the
required elementsof the patch matrix
\320\222 are determined except the twist
vectors. Hint'. What effect curves have on the interioT of the
do the \320\260\320\270\321\205\320\250\320\260\321\202\321\203
surfaces of revolution with = 0 or with * 0?
w)
\317\201\"\"'(\302\253, p\"\"' (u, w)

10.7 CONTROLLED DEFORMATION SOLIDS

We can use nonlinear to deform shapes in a controlledway,


transformations
thereby creating new shapes. To deform a curve \321\200(\320\274),
we define a
of
deformation the praxis by r(i) (see Figure 10.29),anddefinea relationship between

the parametric variables and


\320\270 t;

Figure 10.28 Axial tangent vectors of a surface of


revolution.
276 - Solids

Figure 10.29 Axis deformation.

t=t(u)
Then Ihe deformed curveis
p'= r[t(u)}+Pim (10.73)
where 1 = r1, m= 1. and
\317\207
\316\266 is (he
\316\266 unit vector in the direction.
\316\266

Another way lo deform a shape is by a simple basis deformation (sec


Figure
10.30).
We define the initial shape in the coordinate system with m and \316\267
unit
orthogonal hasis vectors. Wc map Ihe deformed shape wilh
respeel lo a
transformed basis m' and n', which is no longer orthogonal, and express il as

p', =
m(m' + nn'
(10.74)

Axial Deformations
of Ihe
Axial deformations are a generalization methods discussed in (he
preceding sections. This technique controls shaping operations, such as scaling,
bending, twisting, and stretching, hy reference lo some convenientaxisin
which wc induce the desired deformations subsequently lo be passedon lo
the model. Lazarus, Coquillarl, and Jancene (1994) have worked in this area,
drawing on earlier work by Borrel and Bechmann (1991),Welch and Wilkin

(1992), Barr (1984), and others. Their approach lo ihe axial-deformalion

technique makes use of an arbitrary, but convenient, Ihree-dimensional axis


(straight or curved) as Ihe basis for deforming existing models. If ihe model
itself is representedby a sel of control points, as is the casefor Bezierand B-
Controlled Deformation Solids 277
\342\226\240

n/
)p;
Pi

\316\271 m
\302\273. ^- *\342\226\240
\317\207

Inifial shape Deformed shape

Figure 10.30 Simple basis deformation.

Spline curves and surfaces, then axis deformations are simply passed on to
these points. Each control point is \"attached\" to a point on the axis and
located within a local coordinate system defined at that point. This may he
the Frenel frame,usedas in the work of Lossing and Eshlcman (1974),or a
frame such proposed by Bishop (1975)orKlok(1986).
as that Next, the axis
is deformed to achieve the desired resultsin the model. If the axis itself is
defined hy control points, then the points may he movedto producethe axis
deformation. Finally, transformed model control points are computedand
used to represent and compute the deformed model.

Bfvariate Deformation
We can create a deformed shape by defining it in an embeddingspace.
Deformations of this space are passed on to the object. For example,we
define a Hcrmite, Bezier. curve c(r)and emhedit
or B-Spline in a normalized
parametric plane defining the domain of the parametric variables ti,w (see
Figure 10.31). We define a bivariate surface, p(u. w) in the \320\273-,plane
\321\203 or in .\316\275,

\316\266
\321\203, space. Then we map the curve

=
V, p[u(t),w(t)] (\320\256.75)

TVivariate Deformation

Similarly, in three dimensions we can definea curve t(i) and embed it in a


normalized parametric space a, v, w (see Figure 10.32). We define a trivari-

alesolid p(u,v,w) and map the curve accordingto

=
p\302\243 p[\"(0. v(0\302\267w(0J (10.76)
278 - Solids

(a) in parameter space

p{u,w)

(b) in 2D

p{u,v,w)

in 3D
\320\230

Figure 1031 Shapes via


deformed bivariate
embedding spaces.
Controlled Deformation Solids 279
\342\226\240

Figure 10.32 Shapes via deformed univariate embedding spaces.

Using an analogous process we can embedand deform surfaces. This process


is sometimes called volumedeformation.

DeformableSurfaces
Celniker Welch and
(1992) describe a method for sculpting B-Splinesurfaces
that leaves a set of local geometric constraints invariant,such as interpolated
points and curves. Their method seeksto achievea fair shape by minimizing
a global energy function.They demonstrate how to constrain any parametric
point to a fixed location;a parametric curve embedded in the surface to
maintain fixed contours in the world coordinate system; and how to
constrain surface normals on the surface.
along a parametric curve
Relatedwork in this area includes and Battels (1993),whose
Fowler
method allows direct manipulation of geometric properties and
relationships
to control surface shape, rather than to control verticesor deformation
lattices. Also see Battels and Bcatty (1989), Clark (1976), Coquillart (1990),

Welch, Gleicher, and Witkin (1991), Kramer (1991),Light and Gossard

(1982), Serano and Gossard (1987), and Witkin, Fleischer and Barr (1987),
among others.
This page intentionally left blank
COMPLEX MODEL
CONSTRUCTION

In geometric modeling, we combine simple shapes to construct complex


models. The techniques we use must produce valid models. For example, a

completed model must be dimensiDnally homogeneous. If it is a three-


dimensional solid, it must have no dangling edges or surfaces. Model
connectivity
and homogeneity are topological properties, so consideration of
topologyis also important an part of the modeling process.
There are approaches two to representing complex models. One approach
uses aii implicitconstructiontechnique called constructive solid geometry

(CSG), and the other uses an explicitboundary-based technique called

boundaryrepresentation (b-rep).Tht CSG scheme defines complex solidsas Boolean


combinationsof solids. The
simpler complete representation is sometimes
referred to as a CSGtree,becauseil uses binary tree whose terminal nodes a

arc simple solids whose nonterminal


and nodes are so-called regularized
Boolean combiningoperations. da ta structure of a b-rep is a graph
The

the
associating curves and surfaces that comprise the boundary ofa solid.
In the
early chapters, we discussed the basic elements of a geometric
model: parametric The and implicit curves, surfaces, and solids.Appendix \320\241

and Mortenson (1995) discuss the geometric transformations of these


elements. In the previous chapter we discussed how to generate simplesolid
shapes using instances of sweeps, and deformations.
parameterized shapes,
All of these on which
form the foundation we build the complexmodelsthat
are the subject Here we will discuss
of this chapter. topology, graphs,
Boolean models, boundary representations, and space-partitioning schemes

of complex solid models.

281
282 \342\226\240
Complex Model Construction

11.1 TOPOLOGY OF MODELS

Complexmodels require
considerable attention to their topology. We must
understand how simpleelementsare connected lo form the complex model
and how its topology is preservedwhen subjected lo a variety of
transformations.
Topological properties are not metrical, but concern such things as
connectivity
and dimensional continuity. The properties of geometric shapes
that are invariant under transformations that stretch, bend, twist, or
compress a figure, without tearing, puncturing, or inducing self-intersection, arc
topological properties. The properly of being an open or closed curve or

surface is a topological invariant. One-side dness and two-sidedncssare lopo-


logically invariant properties of surfaces. Lines, parabolas, and the branches
of a hyperbolabelongto the class of topologically equivalent figures called
simple arcs. We will address these and other topics here, includingthe
topology of closed paths, piecewise flat surfaces, and closedcurved surfaces.
The topology of a closed path is relatedto problems in geometric

modeling,so we will develop the closed-path theorem, review the effect of


deformations on the topology of curves and planes, present the Jordan curve

theorem, and define the concept of total curvature. Hubert and Cohn-Vossen

(1952), Alexandrolf (1961), and Abclson and Disessa (1981) wrote


thoroughly
and imaginatively on this subject. These authors are the primary
sources for this discussion, and reference lo Iheir work is
highly
recommended. Abelson and Disessa, in particular, offer unique insightsinto
fundamental topological principles relevant lo geomelric modeling.

The Topologyof a ClosedPath


The closed-path theorem slates: The lolal turning along any closed palh is an
integer multiple of This
360\302\260. integer, denoted is
W\302\253, Ihe rotation number of the
palh. It is an intrinsic property of the palh and is independent of where the

palh starts or how it is oriented. Figure11.1 shows several examples, including


loops. For closed palhs on a plane surface, simple polygons always appear lo
have total turning equal lo \302\261360\302\260,
depending on Ihe direction in which Ihe path
is traversed.Self-intersectingpolygons and closed curved paths, however,
always have lolal turning different from \302\261360\302\260. There are two classes of paths:

simple and self-intersecting Sell-intersecting polygons


arc star polygons.
The simple-closed-path theorem stales that the total turning in a non-self-
intersecling closed path is \302\261360\302\260 (clockwise or counter clock wise). In olher
words, Ihe rotationnumber iVK of any simple closed path is \302\2611,Studying
some examples of simple closed palhs demonstratesthe validity of Ihis

theorem, which, as simple and obvious as it


appears, happens lo be difficult to
Topologyof Models \342\226\240
283

(b)

(d)

'
(e) (f)

Figure 11.1 Rotation number.

prove rigorously. The theorem implies that there is a relationship between


the two properties of a closed path\342\200\224the turning and the crossings or self-
intersection points.
Curves
defining closed paths that can be deformed into one another are

curves that arc topologically equivalent, Total turning is a topological


invariant for closed paths, and any two closed paths that arc topologically
equivalent must have the same total turning.The converse is also true:If two paths
have the same total turning, they can be deformed into one another. This was
first proved in 1936 by H. Whitney and W. \320\241
Graustein, who observed that
two closed coplanar paths can be deformed into one another if. and only il.
they have the same total turning.
2B4 \342\226\240
Complex Model Construction

The simple-closed-pa th theorem is more comprehensive than the closed-


path theorem,and its proofis more complicated. The simple-
considerably

closed-path theorem is a link between local global information. Since and

crossing points on a curve are nonlocal phenomena, is no direct way there

for a traversal algorithm is, an algorithm proceeding


(that stepwise around
the path) to detect crossing point. To do this requires looking at the entire
a

curve at once. it is possible


However,to determine total turning by local
computation, this theorem relates total turning to the existence of
and

a powerful
crossing points, capability
A simple exercise demonstratesthe link between local and global
information contained in the theorem. We can walk arounda closed path, perhaps
as defined set of written instructions,carefully
by a accumulating our total
turning (taking clockwise as positive).If we complete the circuit and find on
returning to the startingpoint that the total turning does not equal \302\261360\302\260,

then we can assert that somewhere the path must have at least one crossing
point. Although we do not know where the crossingpoi\302\273ts are and we were
observe them while
unable to the theorem
traversing the path, by applying
we can determinethat one crossing points must
or exist. Thus, the
more
simple-closed-path theorem is an example of powerful principle: It is often
a
possibleto determine global properties by accumulating local information.
This theoremis useful in determining the validity of a model.

Deformation of Curves and Planes

To develop proofs of the simple-closed-path theoremand related theorems


about the topology of simple closed curves, we turn our attention to the
consequences of deformations of curves and planes. We must show that, given a
simple closed path (a path with no crossing points), the total turning around
the path is equal to \302\261360\302\260.There are many paths for which this result is
obvious; the simplest is the square.This suggests a strategy for proving the
theorem by
showing that any simple closed path can be deformed into a square.
Since we already know that tolal turning is invariant under deformations, we
can show that simple closed
\320\260\321\203\320\273\321\203 path has the same total turning as a
square\342\200\224\302\261360\302\260\342\200\224depending on the direction around the square.This reduces
the problemof proving the simple-closed-path theorem to showing that any
simpleclosed curve can be deformed into a square. In fact, we can go a bit
further: Given closed
\320\260\321\203\320\273\321\203
simple path, not only can the path itself be
deformed into but the entire plane can be deformed,
a square, pulled, ayyd

stretched, so that the path becomes a square.We can even consider the playye

itself as being deformed into a curved surface.


Deformationsof paths
ayyd playyes are closely related. Imagiyye that the

playye is an arbitrarily stretchable rubber sheet.\320\220\321\203\320\273\321\203


kind of slretchiyyg or
Topology of Models \342\226\240
285

shrinking that does not result in cutting or tearing is a valid deformation. If


we draw a closed path on the rubber sheet plane, then any deformation of
the plane resultsin a deformation Figure 11.2).Next,
of the path (see
imagine that the flat rubber stretchedand distorted must
sheet is arbitrarily but

remain in the initial plane. Clearly, straight-linesegments curve under may

such a deformation. Many of the changes thai are legitimate (he for

deformation of curves, such as the overlap phenomenon, do and cannot not

happen with a deformation in the plane. We observe that crossing points are
neither created nor destroyedduring plane deformation.
Plane deformations are more conservative than path deformations. Every
plane deformation is a path deformation,but a path deformation that
introduces crossovers is loo violent to be a plane deformation.Themathematical
term for a path deformation is regular homotopy, while a rubber sheet
deformation is an ambient isotropy, An important observation to make here is that

any simple closed path can be deformedinto a square, and, moreover, this
can be done with a conservative deformation; that is, a plane deformation.
In summary, we ean stale the deformation theorem for simple closed
curvesasfollows:Forany simple closed eurve in Ihe plane, there is a rubber
sheetdeformation of the plane that reduces the curve to a square.

\\ V \316\224 \\- \\ 1

\\ \\V \\ !AXt
\\ \\ O^-ViVr^.

\320\233\320\224?\321\221^\321\206^\321\213-

=\320\250\320\266

\320\272.
^ v

^
j
-\342\226\240*
4-
0*\302\267
/\302\267 /
**
\317\207_

Figure 11.2 Rubber sheet deformation.


286 \342\226\240
Complex Model Construction

The Jordan Curve Theorem


Another resultof the topology of simple closed paths that also followsfrom
the deformation theorem is the Jordan curve theorem, which states: Any
simple
closed curve in the plane divides the plane into exactly two regions,an
inside and an outside. Such properties as dividing the plane into two regions
and having an inside and an outsidearc invariant under rubber sheet
deformations of the
plane. deformed curve has these properties,
If the then so loo
must the original nondeformed curve.
The Jordan curve theorem probably seems obvious, but simple closed
curves can be arbitrarily complex and convoluted. We note that the theorem
is not true if we consider curves on surfaces other than the plane.For
example,
a simple closed curve can be drawn on a torus, yet it may not divide the
torus into two distinct regions.
Not only docs a closed curve have an inside and outside, but the inside
itself is dcformable, in the rubber sheetsense,into the interior of a circle in
the plane. A region that can be deformed in this way is a topological disk.A

topological disk has no holes or isolated points in it. In general, deforming a


rubber sheet region does not require keeping the region a part of the flat

plane (that is, the region may be planar or nonplanar). Figure 11.3 shows a
curve deformed into a rectilinear polygon,wherewe see that the total turning
is reduced to summing clockwiseand counterclockwise turns
90\302\260 or angles.

Figure 11.3 Approximating


a curve by a rectilinear path
a grid.
\321\215\320\277
Topology of Models 287
\342\226\240

Angle Excess

The concept mathematicians call angleexcess, or simply excess, is by


definition the
turning that some reference pointer undergoes whencarriedaround
a closed path. Excess is a rather general concept;it is an angle associated
with a closed path on a curved surface. We can restate the closed-path
theorem so that it holds for simple closed paths on arbitrary surfaces:

74 \302\243=360\302\260
(11.1)

where T~- total turning along the path and \316\225


= excess
along the path.
Figure 11.4illustratesthe angle excess associated with a closed path on a
sphere. A
trip along this path might start at the equator, proceedlo the pole,
then equator along a
return to the different meridian and continue along the
equator to the starling point.Noiice that the reference pointer must always
be transported parallello itself relative lo the surface in which the path lies.
For a fixed path, the excess same no matterwhere
is the the trip begins.
Angle excess is additive,and we find that the following theorems apply.

1. If a triangle is subdivided into two sublriangles, then the excess of the


triangle is the sum of the excesses of the pieces.
2. The excessof any polygon is the sum of the areas of the pieces in any

polygonal subdivision.

Figure 11.4 Angle excessassociated


with a closed path on a sphere.
288 \342\226\240
Complex Model Construction

3. For any topological disk on an arbitrary surface, the angle excess around
the boundary is equal lo the total curvature of the interior.

Total Curvature and Curvature Density


We can show that the total curvature for a
sphere is and
4\317\200 the angle excess is
proportional lo the area,or E- kA. Thus, polygon on a sphere of radius
for any

i\\ E-K where k- 1/r2 (if \302\243ismeasured in radians). For a simple closed path
the surface
\320\276\320\275 of a sphere, total turning in radians is expressed as T-2n-A!r.
where A is the area enclosed by ibe path and r is the radius of the sphere.
In general, for an arbitrary surface, \320\272 is measurement taken at any point
on the surface.Thevalue of \320\272 at a
point is the excess per unit area of a small
patch of surface containing the point. We call the
\320\272 curvature density of the
surface at a point. We use the term density because \320\272 is \"something per unit
area\" and the term curvature density rather than excess density because,
although \320\272 is measured using excess, it tells us how curved the surface is at
the point. To approximate a small patch of an arbitrary surface by a small

patch of some surface we know very well, we observe that within a small
enougharea, almost any surface will appear planar.
We can make an even better approximation by using a small piece of a
sphere. We will choose the approximating sphere to have the same excessper
unit area as the patch of a surface. Therefore,if \320\272 does not change radically
in the small patch, then all of the geometry there\342\200\224angles, total turning, and
so on\342\200\224isvery close to the geometry on a sphere whoseradius is determined

by
-
\320\272 smaller the radius of the approximatingsphere(that
1/r2. The is. the

greater the curvature density), the more curvedis the surface. A football, for
example, is not very curved in the middle; is
\320\272 small there. But at the pointed
ends, the football is curved as much as a sphere of small radius. Fromthe
middle to the pointed ends, \320\272
gradually increases.
Curvature density is a local quantity that is measured in the vicinity of a
point on an arbitrary surface. A global version of curvature density is called

total curvature. We start with a region of an arbitrary surface and divide it

into polygonal pieces. For each polygon, we computethe excess and sum the
excesses for all the pieces.The resultisthe total curvature of the
\320\232 region. Of
course, in order for this definition to make sense, we must be sure that if we
subdivide a regioninto polygons in two different ways, the sum of the excess
of the pieces is the same in both cases.
If the initial region is itself a polygon,the additivity theorem implies that
is
\320\232
precisely equal to the excess around the boundary of the polygon.
Therefore./i kind of excessover the region, with the condition that
is a it is

true for any region on the surface, not just for polygons.
Topology of Models 289
\342\226\240

Spheres, Tori, and Handles


Let us compute\320\232 for a region that has no boundary at all\342\200\224the sphere. We
divide a sphere into two pieces; for example,the northern and southern
hemispheres. Each of them is hounded by the equator, which we know has
excess 2\317\200,yielding for
4\317\200 the total curvature of the spheres. Observethat the
curvature density A: of a sphere depends on the radius, but the total curvature
is the
\320\232 same for all Spheres.
It turns out that the total curvature is a topological
\320\232 invariant for closed
surfaces. For surfaceswith a boundary, the total curvature is unchanged by
deformations that do not affect the vicinity of the boundary of the surface.
Any torus has zero totalcurvature. We are not asserting that a torus is flat
like a cylinder or a plane, which would imply that the curvature density is
zero everywhere, instead,we observe that any torus has just as much
negative curvature as positive curvature.
We now know the totalcurvature of two kinds of closed surfaces, spheres
and tori.A sphere is not topologically the same as a torus, yet they
are related.
The torus can be describedasa spherewith a handle attached. The process of
handle attaching,though not is a practical way of making new
a deformation,
closedsurfacesfromold because ones
it is easy to keep track of how total

curvature
changes in the process. Let us explore this process a little more.
Wc start with a sphere and flatten out two regions on it. From each region
we cut out a flat disk and attach a handle in the holes left by the disks. The
handle is topologically cylinder, a but the edges of the cylinder must be

flared out to blend with the flat regions around the disks. The resultis
topologically
a torus
(see Figure 11.5). In other words.
sphere- 2disks + handle = torus
(11\302\2672)

Next, we compute the total curvature on each sideof the equation. The
has - 4\317\200;
\320\232 the disks were - 0. The torus, as we
flat and thus have \320\232
sphere

Figure11.S Sphere

with a handle.
290 \342\226\240
Complex Model Construction

just asserted, also has \320\232


- 0. Then, for the
equation lo be balanced, the

handle must curvature


have total= -4\317\200.
With this process of flattening, culling, and gluing,we can attach a handle
lo any surface.We now know the curvature in the handle, and we see that it
always decreases the total curvature by We
4\317\200. find that the total curvature
of a two-holed torus is the same as that of a torus with a handle attached or
a sphere with two handles attached.Thisis expressedas
= 4\317\200- 4\317\200
- 4\317\200
= -4\317\200
\342\200\242Ki-hoied
\321\216\342\204\242. (11.3)

In general, for a surface that is lopologically the same as a sphere with g

handles attached, total curvature is given by


-
^sphere wdhji handles = g)
4\320\242\320\223(1 (H-4)

The important fact about spheres with handles is: Any closed surface in
three-dimensionalspace is lopologically equivalent
to a sphere with some

number of handles attached. For example, the surface in Figure 11.6a is

equivalent to a sphere with six handles. What about the object in Figure
11.6b?(Hint:Topologically deform it as shown, then count handles.)
We see from Equation (11.4) thai the total curvature of any closed surface
in three-dimensional integer multipleof4\317\200.This topological
space is an
characteristic of closed surfaces applicable to the synthesis
is immediately of

solid models of complex objects, particularly boundary representations, and

also as an analytic characteristic \321\215\320\263


determinant of topological type.

<a| <b|

Figure 11.6 Topological equivalent of a sphere with: (a) six


handles; (b) five handles.
Topology of Models \302\253291

Remember that total turning for a closed curve path is always an integer

multiple of 2\317\200,and we now have discovered an analogous property for

closed surfaces in three-dimensional space\342\200\224all


that arbitrary denting and
bending and all those excessanglesmust somehow combine to give precisely
an integer multipleof 4\317\200.Remarkably, in changing the total curvature of an
ordinary closedsurface,we change must it by a multiple of 4\317\200
or not at all.
There are closed surfacesthat are too to fit into three-dimensional
twisted

space and, as a consequence, do not have


a total curvature that is a multiple
of 4\317\200.As it turns out, any closed surface, includingthesetwisted ones, must

a
have total curvature equal to multiple of This
2\317\200. class of surfaces is not
significant in geometric modeling.

Knots

Before ending this exploration of the topological properties of closed paths.


we will take a last look at the Jordan curve theorem and curves forming
knots.Consider circle in a \320\241 the plane. It is obvious that divides
\320\241 the plane
into two regions A and B, which are characterized by the property that any
two points within any one of the regions (such as a,b and c,d) can be
connected
by
a path that lies wholly within the region; whereasif we take a point
from each of the regions(such as a and c), then every path between them will

necessarily cut \320\241


(see Figure 11.7). The bounded region \320\220 be called
\321\201\320\260\320\275 the
inside of C, and \320\222 the outside. The first proof of the now-famous Jordan
curve theorem, that every simple closed curve in the plane divides
the plane
into two regions, appeared
in 1893 in the important book, Coursd'Analyse,

by Jordan
\320\241 (1838-1922), although Jordan did not solve the problem
completely.
Even though Jordan's original proof has by now been greatly simpli-

Fjgure11.7 Division of a plane


into two regionsby a closed curve.
292 \342\226\240
Complex Model Construction

fied. it is still not easy to prove this apparently obvious theorem.The well-
definednotionof inside and outside for simple closed curves has direct
bearing
on many geometric-modeling problems. Incidentally, it is also useful for
those who want to build or escapefrom mazes.
Jordan's theorem also applies to embedded circlesin three-dimensional

space. An embedded circle in three-dimensional space is a knot. The basic


problemof knot
theory is to determine when two knots are equivalent; that

is, when be transformed into each otherby twisting


they can and pulling.
Figure 11.8 shows example anof two nonequivalent knots. Try working out
these ideas with pieces of string. To distinguish between different knot types

in this context requires keeping the endpoints of the string fixed. Bringing
the ends together to form a circlecreatesanother familiar problem, but one
that is easier to handle mathematically
We call a knot trivial or unknotted if it can be deformed into a conventional
circle. special case of the general problem is to determinewhen a knot is
A

unknotted. For example, if we are given a pile of string, how can we tell if a
knot is present? We notice that we cannot distinguish between trivial knots

intrinsically because they are all the topological equivalent of circles. Our

problem
here is to distinguish between various possibleplacements of the
same circle in three-dimensional space, and thus this problem is different from

other topological problems where we want to distinguish between objects.


Gaussmade some brief remarks on knot theory at various timesbetween
1823and 1840. He attempted to classify singular curves in the plane,someof
which arose from the projection of a knot, and in 1833 he found a formula
connecting a certain double integral with the linking number of two knots,
which is intuitively the number of times two knots are intertwined(see
Figure 11.9).

However, the first mathematician to make a seriousstudy of knots was J. B.


Listing (1808-1882).Hisapproach was to project the knot onto the plane and

<a| (\320\253

Figure 11.B Jordan curve theorem and knots.


Topology of Models 293
\342\226\240

Figure 11.9 Linking numbers of knots.

analyze it by considering the intersections, keeping track of over- and under-


crossings. Such a method was also used later by P. G. T. P.
Tail
(1831-1901).
Kirkman, and N. \320\241Little to classify the more elementary knots.
The first invariant characteristics of knots that were effectively computed
were found in the 1920s by J. W. Alexander and K. Reidemeist.These
invariants were obtained by studying the complement of the knot in three-

dimensional Euclidean space and its associated knot group, which M. Dehn
had defined in 1910. Knot theory, however,is very difficult, and many
important unanswered questions remain. We have mentioned
this topic only
because it has another topological characteristic that might prove useful in
geometric modeling.

Piecewise Flat 5urfaces

Many of the existingand future representation


potential schemes for
modelingsolid objects polyhedra useand their supporting topology, so thereare
many opportunities for applying the material presented here.The classical
polyhedron is an excellent example with which to begin a discussion of
piecewise flat surfaces. By polyhedron we mean an arrangement of polygons
such thai two and only two polygons meetat an edge;and that it is possible
to traverse the surface of the polyhedron by crossing its edges and moving
from one polygonalfaceto anotheruntil all polygons have been traversed by
this continuous path.
The simple are polyhedra
the most important, since they are historically
the sourceof topology's contribution to geometric modeling. The term
simple polyhedra polyhedra that can be continuouslydeformedinto
refers to all
a
sphere. Regular are an example and subset of the simple
polyhedra
polyhedra.
Regular polyhedra have no reentrant edges; thus, they are convex.
Furthermore, we apply the term convex to every polyhedron that lies

entirely on one side of each of its polygonal faces. Although convexity is not
294 > ComplexModel Construction

a topological property,
it does imply one: Every convex polyhedron is a

simple polyhedron.
A toroidal polyhedron is a nonsimple polyhedron.
Euler's
Formula

A well-known relationship betweenthe number of vertices,edges,and faces

V, E, and F, respectively, of simple polyhedronis calledEuler's


a formula. It
states that

V-E + F=2 (11.5)


This formula provides a direct and simple proof that there arc only five

regular
polyhedra.
To prove us digress slightly and explore an application
this, let ofEuler's
theorem to
geometric modeling of a more classical vintage. W e will

determine all
possible regular polyhedra; that is, those polyhedrawith every face

having the same number of edges,say,/;;every vertex having the same


number of
edges emanating from it. say, k; and every edge having the same
length. Since every edge has two vertices and belongs to exactly two faces, it
follows that Fh- 2E- Vk. Substitute this into Euler's formula:
9F 9F
f-E+f-2 (11.6,
or

1 1 1 1 \342\200\236,
\342\200\236\320\2

For a polyhedron, we safely assume that h, \320\272


> 3. On the other hand, if

both h and were


\320\272 larger than 3. then the above equationwould imply that

= \316\231+'1<! \316\231_\316\231
= 0
\316\277<\316\247
\316\225 h \320\272 2 4
+
4 2
v/
(\316\227.8)

which is obviously impossible. Therefore, either/; or \320\272


equals
3. If h - 3, then

implies that 3 < \320\272


< 5.
By symmetry, if -
\320\272 3, then 3 <h < 5.Thus, (h,k,E)
-

(3,3,6), (4,3,12). (5.3,30), and (3,5,30) are the only possibilities. They are, in
fact, realized by the tetrahedron, the cube, the octahedron, the

dodecahedron,and the icosahedron. respectively Observe that we did not really use

the fact that the edges of the polyhedron all have the samelength. As long as
the numbers h and \320\272 are constant:, we still have only five
possibilities (up to
stretching or contracting).
Topologyof Models\342\226\240
295

Poincare generalized Euler's formula to n-dimenstonal space.Insteadof


points,edges, and faces, he defined 0-, 1-T2-, ...,/?- 1-dimensional elements.

He denoted the numbers of each of these elementspresent in a hypcrpoly-


hedron (or polytope) as Nt), N2, . . .
\316\233\316\212. , \316\235\342\200\236
\316\271,
respectively, and expressed
Euler's formula as
=
+ jV,
\316\234,-\316\233\316\212 l-(-l)\" (11.10)
For -
\316\267 3, this reduces to Euler's formula.
These regular polyhedra were known to Euclid, and he even claimedthat
there were no others. Euclid's definition of a regularpolyhedronwas.
however, rather imprecise by today's standards, and his claimis not quite
correct
in the general sense in which he statesit.
This is our cue to investigate nonsimple polyhedra. Nonsimplcpolyhedra
are topological equivalents with holes in it and are,
ofany solid object
therefore, of direct to
useus in geometric modeling. In Figure 11.10arc some

examples of nonsimple polyhedra. The simplest of theseis a rectangular


parallelepiped with a through hole, also in the shape of a parallelepiped whose

/\320\245\320\226\320\226\320\223\320\233

Figure 11.10 Examples of nonsimple


polyhedra.
296 \342\226\240
Complex Model Construction

sides are parallel to the other faces.The two end faces are beveled, or
faceted, merely to emphasizethe properly interconnected grid of edges,
vertices, and faces. The other faces are treated the same way but have more
holes. None of them can be deformed into a sphere.
A connectivity number N is associatedwith every polyhedron. If the
surface of a polyhedron is divided into two separate regionsby every closed path
(loop) defined by edges of the polygonsmaking up its faces, we say that the

polyhedron has connectivity N = 0. All simple polyhedra have N= 0, because


the surface of a sphereis divided into two parts by any closed curve lying on
it. Conversely, any polyhedron with N= (Jean be deformed into a sphere.
We can define any orientable unbounded surface, that is, any closed non-
self-intersecting surfaee,as a sphere with G handles.Thus, G = 0 for a sphere
or any simply connected surface,
-
\320\241 1 for a torus, and G = 2 for the surface
of a solid figure eight.The number G iscalledthe genus of the surface. As we
see in Figure 11.10, there arc closed loops of edgesthat do not divide the
surface of a
nonsimple polyhedron into two parts. We assign these polyhedra a
connectivity number greater than one. We define the connectivity number N
as the maximumnumber of distinctloopswith or without common points
(intersections) to be found on a polyhedron that do not divide its surface
into Iwo separaie regions. We define Jhe genus G of a polyhedronas Jhe
maximum number of nonintcrsecting loops to be found that do not divide its
surface into two regions. Furthermore, we can extend Euler's formula io
polyhedraof any genus and connectivity. Thus.

V-E+F-2(l-G) =0 (11.11)
where2G =
N, the connectivity number. This is the Euler-Poincareformula.
Conversely, by counting the vertices, edges, and faces, we can determine
the
connectivity and genus

N=-V+E-F+2
(11-12)
G= (-V+E-F+2)
2
Thus, we can deform simple polyhedra into a sphere and the rectangular
parallelepiped with a through hole into a torus. We can also replace more
complicated structures by topologically equivalentpolyhedra.

Topological Atlas and Orientation

We will now take a more general approachto developing additional

topological properties consider


and surfaces formed by taking a collection of
planar
pieces and gluing them together along their edges,creatingpiecewise flat

surfaces. Any surface formed in this way will obviously be flat everywhere
Topologyof Models \342\226\240
297

except possibly along the edges where the piecesare glued together. In fact,
if all the planar pieceshave straight edges, then the glued surface can have
curvatureonlyat the vertices.

The crucial step in designing a modeling algorithmto explorepiecewise flat

geometry is in deciding how to represent thesesurfaces. The most

straightforward
representation is simply to describe each face separately and keep track
of which edges are adjoining. This data structure is calledan atlas.Figure11.11
shows the atlas of a truncated pyramid. This topologicalatlasis similarto an

\302\251\342\200\224
-\320\232\320\255

Figure 11.11 Topological atlas of a truncated pyramid.


298 \342\226\240
Complex Model Construction

ordinary road atlas, which is a collectionof separatemaps that each contain


information directing the user to the next map.
Figure 11.12 illustrates two ways of joining a pair of edges. The first,shown

on the left, identifies an orientation-preserving construction,while the other

possibility, shown on the right, identifies an orientation-reversing


construction.In the figure we have numbered each edge,using an arrow to indicate
the ascending direction of the joined opposite edges so
numbers, and have
that the numbersmatchand the two arrows is the same. We
direction of the
can use either numbers or arrows alone to identify the way the two edges are
joined. Orientation-reversing constructions have both arrows pointing in the
same rotational sense\342\200\224either clockwise or counterclockwise\342\200\224around their

respective faces. However, if one arrow points clockwise and the other
counterclockwise, the construction is orientation-preserving. Including
orientation-reversing joints in an atlas enables us to construct new surfaces,
including some mathematical curiosities called nonorientable surfaces.
In Figure 11.13.
we take the collection of matched-edge pairs as the atlas
for a closed piecewise square surface. We label each edge with a pair of
numbers
specifying the face and edge of the face of interest.We number the faces
sequentially starting from 1, numberingthe four edges of each face clockwise
from 0 to 3. For the cube shown, the atlas is

[0,0) (2,0)] [(1,1) (5.0)][(1,2) (4.0)][(1,3) (3,0)]


[(2,1) (3.3)] [(2,2) (6,2)] [(2,3) (5,1)] [(3,1) (4,3)]
[(3,2) (6,3)][(4.1) (5,3)][(4,2) (6.0)] [(5.2) (6,1)]

We interpret this as edge 0 of face 1 with matched edge Oof face 2, and so on.

12 3 4 12 3 4
\316\227 \320\263-\342\200\224\316\271
\316\231
\316\271 \316\227 1\342\200\224l \316\227

3 4 4 3 2 1

<al (b|

Figure 11.12 Orientation.


Topology of Models 299
\342\226\240

0 0 0 0

3 2 1 3 3 1 3 4 1 3 5 1

2 2 2 2

\320\276

3 e \316\271

Figure 11.13 Atlas of a cube.

Next, we take a squareand identify a pair of opposite sides in an


orientation-preserving way to produce a cylinder or, instead, identify the edges with
the orientation reversed. Try this with of paper. This identification
a strip
amountsto making
a half-twist in the strip before gluing the edges together,
resulting in the Mobius strip.
As inhabitants of a Mobiusstrip we would observe a curious
If
phenomenon. we start out at some point and take a trip allthe way around the strip,
when we get back to our initial position, we find that left and right are
reversed.This happens because righl and left are not intrinsically defined.
Externally, whether a appears turn left or right depends on the side of the
surface we are looking from. It is an extrinsicpropertyof the surface and

depends on setting up an external reference. Thus, we must specify that the


observation is from the top sideor the bottom side.

Right and left are characteristics of the two-dimensionalMobius strip


inhabitant's motions, not characteristics of the surface. As inhabitantsof the
Mobiusstrip,we can define right and left on the surface,but the definition
works only locally. We cannot look at some point on the surface, then decide
a priori that one directionis either right or left. We must first move around
on the surface.Thereis nothing to ensure that, as we move around the sur-
300 \342\226\240
Complex Model Construction

face, the commands to go left or right will generate the same orientation
each time we return to a given point. This potential reversaland confusionis
exactly what happens
on the Mobius strip.
A surface on which left and right are never reversed is orientable, and wc
are able to establish a consistent left and right definitionon the surface.If we
find a path that confuses left and right,the surfaceisnonorientable. We can

easily demonstrate the orientability of a surface in termsof another


property,
too. For example, an orientable surface is one on which we can define
clockwise and counterclockwise rotations in a consistentway: We choose a

point \317\201on the surface S and imagine standing at that point.Next,we decide
which of the two possible rotations to call clockwise; this is called an
orientation at p. Now, we let q be another point on S. (Note: q may equal p.) As we
walk to cf along some path, we keep track of which rotation we defined as
clockwise. This induces an orientation at q; that is, a sense of clockwise or
counterclockwisefor rotationsat q.
There are obviously many paths from to
\317\201 Furthermore,
q. there is not
always a uniqueshortestpath.Different paths may induce different
orientations. If we obtain the same orientation no matter which path we take, then
the surface is orientable.However,if we of \320\260
walk around |he meridian
Mobius strip, we will end up with the opposite orientation from our
original
one. Therefore, we again conclude that the Mobius strip is nonorientable,
and our new definition agrees with the old. We conclude that orientability is
an intrinsicpropertyof surfaces.
Any closed surface that fits into three-dimensional space must be topo-

logically
the equivalent of a sphere with g handles, where g can equal zero.
Now we add another condition,namely, that the surface must be orientable.
A sphere is orientable.and it is not hard to show that adding a handle cannot
change that. Note that the Mobius strip does fit into three-dimensional

space, closed. To transform the Mobiusstrip into a closedsurface,


but it is not
we make an orientation-preserving identification of the top and bottom
edges o n the atlas exactly as we did when producing a torus froma cylinder
(see Figure 11.14). The resulting surf ace isa Kleinbottle, and. like the Mobius

strip, it is nonorientable.

Producing bottle involves sticking the bottle through


the Klein itself\342\200\224a

rather drastic
operation, but the best we can do in three dimensions.The Klein
bottle will not fit into a three-dimensional space without self-intersections.
If we start with a Mobius strip and close it up by making a second
orientation-reversing identification, we produce another type of surface, the
projective plane. The projective plane is nonorientable and topologicallydistinct
froma Klein bottle.
Topology
of Models 301
\342\226\240

<a| (\320\253

W (dl

Figure 11.14 Atlas of: (a) a cylinder; (b) a torus; (c) a Mobius
strip; and (d) a Klein bottle.

The atlas must specify not only which edges are identified, but also
whether the orientation is reversed. Wc denote this by including or-1, a +1
the transition parity. Figure 11.15 shows several examples of a notation
scheme, including
the transition parity number. It should now be obvious
that simple bookkeeping changes produce dramatic changes in the
topological
properties of a surface.

Curvature of Piecewise Flat Surfaces


We now turn our attention to a seemingly paradoxicalsubject:the curvature

of piecewise flat surfaces. It so happens that all of the curvature in a piece-


wise flat surface is concentratedat the vertices,
which makes total curvature
easy to compute. We need only sum up the angle excesses of small paths
around eachof the vertices; thus,
302 \342\226\240
Complex Model Construction

*\342\200\224\302\273
0

3 1 I'

2 2
\302\273\342\200\224\302\273

(1,01(1,3)
t 1],[11,11(1,2) +1] (1.0)0,2) + I]. 1(1,1)0,3)t 1]

10,01(1,2) til.[(1.11(1,3)-]] - 1]
[(1,01(1,21-1],[(1,11(1,3)
<d|

Figure 11.15 Atlas and transition parity of: (a) a sphere;


a torus;
(\302\243>) (c) a Klein bottle; and (d) a projectiveplane.

=
\316\232
\316\243\316\225, (11.13)
!=1

where excessofa
Ej is the around path
the vertex ;'.
this expressioninto
To transform the
simplest, most meaningful terms, we
recall that excess is equal to minus 2\317\200 the total tumijig, and we rewrite the
equationas

\316\232=\316\243(2*-\320\223() (11.14)
<= \316\271

where 7\", is the total turning of a path around the vertexi Factoring out the
terms
2\317\200
(one for each vertex) we obtain

= 2\317\200 -
\316\232 V
^ Ti (11.15)
= 1
\316\271
Topology of Models \342\226\240
303

where V is, of course, the numberof verticesin the surface. We further


\321\201\320\260\320\275

clarify this expression if we rewrite is using the fact that the total turning
around a vertexis equalto the sum of all the interior angles meeting at that
vertex. over all the vertices gives us all the interiorangles
Summing of all the
surface. Regrouping these anglesaccording
faces in the to the faces they lie
in, we compute total curvature as
F
K^lKV-^ft (11.16)
where/ isthe sum of the interior angles of the face i.
This is a surprising
result because we compute the second term without

knowing how the edges are joined together. Therefore, if we have all the
individual faces of a piecewise flat surface and we know V, we can compute
total curvature without knowing anything about the atlas.
For piecewise square surfaces, the formulais even simpler, since the sum
of interior angles of any face is 2\317\200. Therefore. \320\232 V - 2\317\200
- 2\317\200 F or \316\232= -
2\317\200(\316\275

f).This equation for total curvature does not depend angles on at all! And
we can do even better. Curiously enough, we can compute the total
curvature of
any closed piecewise flat surface without knowing any angles. We
need only know the total numberof faces and vertices and the number of
edges. For a closed piecewiseflat surface with V vertices, \316\225
edges, and F
faces, the total curvature is

K =
2n(V-E + F) (11.17)
Because we already know that = 2\317\200
\316\232 V \316\243\316\257=
-to
\\f\342\200\236prove Equation
(11.17) we must show that the sum be
Xf=]/can expressedindependently of
the particular values of the angles. We do not know much in general about
the sum of the interior anglesof a face, but we do know a closely related

quan ti ty\342\200\224the sum of the exterior angl es. The boundary of each faceisa
simple
dosed
path, so we know that the sum of the exterior anglesis 2\317\200.To
relate the exterior angles to the interior angles,we notice that each exterior
angle pairs off with an interior angle to sum to \317\200
= and
18\317\213\302\260, there are as
many of these pairs as there are edges to a face. Therefore,

= - exterior
f, [sum \316\277\316\257(\317\200 angles)]
= nxf,- (sum of exterior anglesof the face) (11.18)

= \317\207
\317\200 - 2n
e,

where e; is the numberof edgesof the face i. Summing this quantity over all
the facesgives
304 \342\226\240
Complex Model Construction

= (11.19)
Xf, Xe,-2nF
;^ = \316\271
\316\271 \316\271

Now we simplify Xf= \316\271


noting
e-\342\200\236 closed surface each edge is shared
lhal in a
by precisely two faces, and that summing the number of edgesin a face over
all the separate faces countseachedgeexactly twice.This means that
F
= 2E (11.20)
^e,
1=1
Combining Equation (11.20) with (11.19) yields

=
\316\243/, 2\317\200(\316\225-\316\267 (\316\2311.2\316\231)
1= 1

Substituting Equation (11.21) into (11.16) yields


F
K^2%V-^j] (11.22)
1=1
or
= + F)
K 2n(V-E (11.23)
The - +
\316\225 is the Euler characteristic of a surface and is
quantity (V F)
denoted by
the Greek letter (chi).
\317\207 Using this notation, we rewrite the
curvature formula as

\316\232=2\317\200\317\207 (11.24)

We can think of this equation as a convenientway to calculate the total


curvature of a piecewise flat surface. However, it also impliesmuch more. As we
have seen, has
\320\232 special properties. First, is
\320\232 defined for all surfaces, not
only piecewiseflat ones. Also, is
\320\232 a topological invariant. Therefore, this
equation leadsus to suspect that the Euler characteristic also has these
properties. This suggests the following questions: Can we show directly that (V
-
E + F) is a
topological invariant? we define (V - E + F) for all surfaces,
Can
not just piecewise flat ones? If we achieve these goals, we providepowerful
tools for geometric modeling.
Look at topological invariance. What to - +
\316\225 when we
happens (V F)
deform a piecewise flat surface? Absolutely nothing! After all, (V - E + F) is
just a counting algorithm, and unless we cut a face in two, remove an edge, or
perform some other nontopological transformation, none of the numbers
can change. This, then,is our introduction to the next topic.
Topology of Models 305
\342\226\240

The Topology of Closed Curved Surfaces


Lei us now see how Ihc sum V
- +
\316\225 F works arbitrary surface. The
for an
imageof a distorted piecewisc flat surface suggests a new definitionfor the
lerms vertices, edges, and faces on a general surface.Therefore,
we will define

faces on the surfaces not as flat polygons but as topological disks, and edges
not as straight lines but as simple arcs with a vertex at either end, We will

define a net on a general surfaceas an arbitrary collection of simple arcs


(terminated at each end by a vertex) that divide the surface everywhere into
topological disks.For convenience,
we will continue to call the elements of a
net edges, vertices, and faces. Given a net, we define the Eulercharacteristic
the same formula = V - + F
\316\225
by
\317\207 \317\207

The
definition Euler characteristicraisesa question:
of the If we can draw
an infinite number of different nets on a surface, how do we decide which net
to use in computingthe Euler characteristic? The answer is that it does not
matter which one we choose, because all valid nets on the same closed
surface have the same Euler characteristic.
To prove this, we couldimaginestarting with a particular net on a surface,
then transforming this net into a different one by adding or deletingvertices
or edges. We can do this in several ways.
We single out two elementary net
transformations:

1. Adding (or deleting) a face by drawing in (or erasing) an edge between


existing vertices.

2. Adding (or deleting) a vertex.

Let us see how these transformations affect the value of If


\317\207. we add an
increases -
edge, then increases
\316\225
by 1. But F also by 1; hence F is
\316\225

unchanged. And because V is unchanged. \317\207=V - E+ Fis unchanged by the


first
type of transform a (ton. If we insert a new vertex into an edge, we
produce not only a new vertex, but also a new edge.Thus, Vand each
\302\243 increase
F is unchanged;then - We conclude
hy 1, and V +
\316\225 F is again unchanged.
that is
\317\207 invariant under the two net transformations just defined.To
complete
the proof that any two nets on the samesurface will give the same value
of \317\207,we assert that, given any two nets, we can always gel from one to the
other by somesequenceofthese transformations.

Every surface has an Euler characteristic \317\207, and is a topological


\317\207

invariant. This means that now we have two topologicalinvariants for surfaces\342\200\224

the Euler characteristic and


\317\207 the total curvature K. Furthermore, we know
that they are related by \316\232 = for
2\317\200\317\207pieccwise flat surfaces. But does this hold
306 \342\226\240
Complex Model Construction

for any surface? It does,and we may now assert the following theorem: For
any closed surface, the total curvature and the Eulcr characteristic are

related by
=
\316\232 This
2\317\200\317\207. is the Ga ass-Bonnet theorem.
There are two proofs of this theorem. The first is based on the fact thai \320\232
and arc
\317\207 both topological invariants. We start with an arbitrary surface and
deform it into a piecewise flat surface. Since and
\320\232 are
\317\207 both topological
invariants, the deformation leaves them unchanged.Sincewe know that =
\320\232

for
2\317\200\317\207 the piecewise flat surface, then it is true for the original surface as
well. only caveat
The in this proof is that we must show that any surface can
be deformedinto a
piecewise Intuitively, this seems possible.The
flat surface.
approachis to flatten surface the
piece by piece, pushing all the curvature
into the edges between the pieces. Then we flatten and straighten the edges
piece by piece, pushing all the curvature into the vertices. The details of this
procedure are difficult \321\216
express more rigorously, and ihey are not
necessary here. A second proof that \316\232-2\317\200\317\207
is based on a direct computation of \320\232
for any surface and is similar to the way we proved the theorem for piece-
wise flat surfaces.

The Gauss-Bonnet in the geometry of surfaces


theorem is important
because it produces a relationship between quantities defined purely in
terms of topology(such as the Euler characteristic) and quantities defined
purely in termsof distances a nd a ngles (such as total curvature).

Euler Operators
Eulerobjects always satisfy Euler's formula. The processes that add or delete
faces,edges, and vertices to create a new Euler object are the Euler operators.
These operators provide a rationa I method for constructing solid, polyhedra-
like objects and ensure that they are topologically valid (that is, closed and
oriented).
The connectedness
of the
boundary surface of a solid is a property distinct
from, independent
andof, the enclosed interior points. Connectivity,
orientation, and the characteristic of being non-self-intersecting are global
properties of the surface and depend on all of its parts. Euler'sformula asserts a

quantitative relationship between these parts that allows us to assign certain


distinctive global characteristics:the number of handles or through holes,
total curvature, connectivity, and so on.
Sincewe have just seen that Euler's formula is not restrictedto plane-faced
polyhedra but also applies to any closed surfaceon which we can construct a
proper net, the formula becomes a useful check on the topological validity of

any solid whose surface we can expressas a net of patches, curve segments, and
vertices.To apply the formula, however, certain other conditions musl be met.
Topology of Models 307
\342\226\240

1. All faces must be simply connected(i.e.,they are topological disks), with


no holes in them, and boundedby a single ring of edges.
2. The solid objectmust be
simply connected (i.e., its complement is
connected) with no holes through it.
3. Each edgemust adjoin exactly two faces and terminate at a vertex at each
end.
4. At least three edges must meet at each vertex.

Let us look at someexamples of the formula in action in Figure 11.16.It is


easy to see that the objects in this figure satisfy Euler's formula and the nets
are proper, that is. a collection of simple arcs (edges), terminatedat eachend
by a vertex, that the surface into topologicaldisks.Distorting
divide these

shapes by making the straight edges curves and the faces nonplanar surfaces
does not change the applicability or validity of the formula. Figure 11.17
demonstratesthis with two examples of spherical nets.
Vertices,edges,and faces added to a model must produce a result that
satisfies both the Euler formula and the four conditions mentioned above.In
Figure 11.18a and 11.18b, a cubical polyhedron is legitimatelymodified. In

Figure 11.18c, the formula is certainly satisfied, but notice that edges (1,5)
and (2, 5) do not adjoin two faces. Furthermore, only two edges meetat
vertex 5, and edge (1,2) adjoins three faces.Therefore, as it stands, the ohject in
Figure 11.18c is not a valid solid. We can remedy this situation by adding
edges(3.5) and (4, 5), resulting in a net gain of two edges and two faces.
Edges (1, 2), (2, 3), (3, 4), and (4, 1) no longer define a face. Figure 11.19
shows valid modifications to the spherical nets.
An interesting modification of Euler's formula states that for a three-
dimensional space divided into \320\241
polyhedral cells, the vertices, edges, faces,

<a| (\320\253 <c|

Euler's formula: /;' t F


\342\200\224
\320\243 ' 2

Figure 11.16 Euler'sformulaand simplepolyhedra.


308 \342\226\240
Complex Model Construction

figure 11.17 Euler's formula applied to a


sphericalnet.

and cells are related by


V-E+F-C=\\ (11.25)
By addinga vertex,point 9, to the interior of a cube (seeFigure 11.20)and
joining it to each of the other eight verticeswith edges, we create a six-celled
polyhedron. It is easy to verify the vertex, edge, face, and cell count.
Lookat what happens to the polyhedral object with a hole through il in
Figure 11.21. Although the Euler formula is satisfiedin Figure 11.21a, two of
the faces are inadmissibleaccording to our convention. The faces containing
the entrance and exit to hole are notthe
topological disks, and therefore the
surface net is not proper. We correct this situation in Figure11.21b by adding
the edges shown as dashed lines, but look at what happens to the formula.
Modifying
the formula and deleting conditions 1 and 2 accommodates such
objects. Thus,

V- E+F-H + 2P = 2B (11.26)

5
A

/ \\
\\
\\
1

\320\243 \320\243
1
/
/\320\243 a
S
1
1
1
1 .

\320\270
'2
<a| (b| <c|

Figure 11.1B Euler operations on a cube.


Topology of Models \342\226\240
309

<a| <b|

Figure 11.19 Modification of an Euler net


on a sphere.

where V, E, and F retain their usual meaningand denote the number of


vertices, edges, and faces, //denotes the number of holes in
faces; the \316\241
denotes
number of passages (holes through the entireobject); denotes the and \320\222

number of separate, disjoint bodies (objects). acceptable variation


Another

is shown in Figure 11.21c; here, the passage in Figure


through 11.21a and
11.21bis now merelya If we add edges as in Figure 11.21d, then
concavity. we

satisfy the original Euler formula. (The individual faces,as as the well

are
interior, each simply connected entities.)
A polyhedron exhibits nine classesof topological relationships between

pairs of the three types of elements:vertices,


edges,and faces (see Figure
11.22). Thus, for example, a vertexis topologically
characterized by adjacent

figure 11.20 Euler's formula and


polyhedral cells.
310 \342\226\240
Complex Model Construction

S\320\243
/
/- \316\233

<a|
/1
/ \320\243
|b|

// /

f-E+F=2 V~E tF=2


16- 24*10 = 2 16 - 32 + 16 = 0*2
\320\243-F+ f -+ 2/\302\267
F = 2B V-E* F + 2P = 2B
16 - 24 + 10-2+2=2 16-32 + 16- 0 + 2 = 2

/
\\
/
> S

W <d|
? M\342\200\224 7
/
\316\223\316\221 ^ / 4N X
\321\203

V-E
V
\302\243
+ F-H + 21>\302\2612B
/ y-E+F=2
X

16-24 + 11-1 +0 = 2 16-28+14= 2

Figure 11.21 Multiply connected polyhedra and a modified


Euler formula.

vertices, edges, and faces. For certain graphicsapplications,


it is a good idea
to use one of the relationships
V :
[V),\302\243: [V],or F: [V] to know how vertices
are joined, whereas Boolean shape operations are facilitated by the ring of
faces around the vertex V : [F], arkd the Euler operators usually require

adjacency among faces F: {F).

11.2 GRAPH-BASED MODELS

A geometric model emphasizing topological structure, with data pointers


linking together an object's faces, edges, and vertices, is a graph-based model.
We can represent a solidobjectas a list of the object's faces and their
respectivesurface equations. We represent the edges of these facesas curve
equations, with pointers to their endpoinl vertices and adjoining faces.We
represent the vertices as lists of coordinates, with pointers to the edges
meeting at each vertex. Notice that there are two kinds of information:
Graph-Based Models 311
\342\226\240

1. The pointers defining the topology or connectivity between vertices,

edges, and faces


2. Numerical data definingcurve and surface equations and vertex
coordinates

Subsequent modeling operations may alter just the pointers,jusi the


numericaldata, or both.
Figure 11.23 is an model.The
example of a graph-based model contains
redundant information, situations
but in this is desirable. Some
many
redundancy can up searching
speed algorithms, thereby eliminating the need for
global searches. Scaling and rigid-body transformations (translation and
rotation) alter only numerical data, leaving the pointers unaffected. In
addition, wireframe-based computer-graphics displays can be derived from a
graph-based model in an amount of time proportional to the number of
edges.
There are interesting differences among graph-based systems. In addition
to differences in degree of redundancy, there are differences in how the
edges ofa face are accommodated. Some graph-hased systems require a face
to have a single boundary with no hole. Others allow an outer boundary plus

\316\226\316\233
/
\316\265
\316\275 V: F
F
1

E: V \320\257:
\316\225 E: F

FA
l/

F. V F- F.\\ F: F
F

L._K

Figure 11.22 Topological relationships between pairs of


polyhedron elements.
312 \342\226\240
Complex Model Construction

Vertices Edges Faces

v, \302\243, F.

j
E\342\200\236ElrE \302\2432, Ex,
\302\243], \302\243\342\200\236

F\342\200\236F,.F4

^2 \302\2432 Fi

Ei> Ej, ^\321\207.


\302\2435

F\342\200\236F5.F. F,,F3,F,

^ \302\2433 F3

^2. ^
l\302\267\302\267,,

\302\243\342\200\236\302\2432,.. \302\243\342\200\236,...

Figure 11.23 A graph-based model.

disjoint in loops
\320\273\320\265\320\263-boundary representing holes. This characterizes the
more highly structured systems and offers computational advantages for
complex (multiply connected) solids.
Forsolids represented as planar-faced polyhedra,many economies are
available with graph-based systems. Because all edges are straight-line
segments, we can store them as vertex pairs, and face boundaries as ordered lists

(chains) of vertices. Or we can treat a polyhedron


as a simple graph, listing
the vertices with their coordinates in one array and their connectivity in
another. The latter is \321\217
connectivity matrix (see Figure 11.24). The
matrix
connectivity is a binary matrix. Zero-valued elements indicatethat no

connectivity exists, and one-valued elements indicate that connectivity exists


between the
pair of We can construct such a matrix for other
vertices.
elements as well, and one is shown in this figure for the connectivity between
the faces of the polyhedron.
Graph-Based Models 313
\342\226\240

The connectivity matrix called an adjacencymatrix.Thesematrices


is also
are convenient for
algorithms that determine whether an edge exists
between two vertices. If we let a:j denote the clement of the connectivity
matrix describing the existence of an edge betweenvertex \320\263 and vertex j.
then an algorithm accesses atj and reads its value.The time needed to do this
is independent of the number of vertices and the numberof edges. The main

disadvantage of a connectivity matrix is that it requires V2 storage (V=


number of
vertices) even though most a:j = 0. If efficientpackingis availablethe
storage requirement
can be reduced to V1 bits.
A graph, then,is a set of nodes(orpoints)connected hy branches (lines).
The number of branches at anode determines itsdegree.Ifany branch has a
direction associated with it. then the graph is a directedgraph (see Figure
11.25). For directed graphs, we can assign an in degree and an out degree to
eachnodeby counting the branches pointing to it and
away from it,
respectively.
A
path from one node to another is the sequenceof branches tobe
traversed. If the start and end nodes of a path are the same, the path is a circuit.
If there is a path between any pair of nodes of a graph, the graph is
connected. A tree is a connected graph without circuits.A graph containing some
or all of the nodes and branches of a graph G and no other nodesor branches
is a subgraph of G. A spanning tree of a connectedgraph G is a subgraph

containing all its nodes and enough branches t o maintain connectivity with-
out creating any circuits.

Vertcs
I 2 3 4 5 6 7 {j
I II 1 0 1)000
2 I 0 1 0 0 10 0
3 0 I 0 10 0 10
\320\233 1 0 I 0 0 0 0 I
__- \342\200\224\302\243
5 I 0 11 0 0)01
6 0 1 0 0 J 0 I 0
7 0 0 1 0 0 1 0 I
8 I 0 11 0 1 1 0 I 0

Face
A \320\262 CDF, F
4 0 1 I 1 0 I
a 1 0 1 1 J 0
1 = Connectivity
0= Wo connectivity \321\201 I I 0 0 11
u. D I I 0 0 1)
\316\225 0 I 1 J 0 I
F I 0 11 10.
Figure 11.24 Connectivity matrices for a polyhedron.
314 \342\226\240
Complex Model Construction

(a)

Figure 11.25 Examplesof graphs.

We may represent a graph in many ways. One way uses a list of vertices
(nodes) and their connectivity matrix (branches), as we saw earlier.Another
interesting way uses matrix elements, which often results in
bit vector
considerable efficiency for graph algorithms. Lists may represent a graph by
having a list of adjacent vertices associated with each vertex or node. Figure
11.25b showsa directedgraph with six nodes. Its connectivity (or adjacency)
matrixis
A B CD \316\225 F

A 0 1 0 0 0 1
\320\222 0 0 1 \317\213 0 1
\320\241 0 0 0 1 0 0
D 0 \317\213 0 0 1 0
\316\225 0 0 1 0 0 0
F \317\213 0 0 0 1 \317\213

Note that for a directed graph, an \342\200\224


1 only if there is a directed edge from
vertex ;' to vertex/. The six adjacency lists are
Graph-BasedModels 315
\342\226\240

vertex A[B,F] vertex D[E]


vertex B[QF\\ vertexE[C]
vertex
C[D] vertex F[E]

Edges of undirected graphs are representedtwice in an adjacency matrix.


If there is an undirectedbranch (or edge) connecting vertex / to vertex j,
then a\342\200\236
- = 1.When wc delete an edge from an undirected we delete
dj, graph,

both a(J and a;i from the matrix. In the case of adjacency lists, we create a
supplementary array to link the double entries of edges and speed the search

process.
Again, a tree is a directed graph with no circuits. A tree has the following
additionalproperties:
1. There is one and only one node, called the root, which no branches enter.
2. Every node except the root nodehas one and only one entering branch.
3. There is a unique path from the root node to each other node(shown in

bold outline in Figure 11.26).

The terms entering branch, exiling branch, parent node, and descendant
node are all relative to the root node.
Although it
may be trees with roots at the top and
disconcerting to see
leavesat the bottom, Given two adjacent nodesa and
that is the convention.
b, as in Figure 11.26, if the branchis directedfrom a to b, then a is a proper
ancestorofb (sometimes called the father of b), and bis a proper descendant
ofa (a son of a). A leaf node has no properdescendants.

R = iqqj nude

Figure 11.26 A tree graph


316 \342\226\240
Complex Model Construction

Several quantitative parameters are associatedwith a tree, as in Figure


11.26. Looking at node b, we find that the depth of this node in the tree is the
length of the path (numberof branchestraversed) from the root R to b The

height of node b is the length of the longest path from b to a leaf. We also
notice that the height \316\277\316\271
the tree Ls the height of the root. The level of anode

is the height of the tree minus the depth of the node.

If the descendants of each node are in order, say, from then left to right,
the tree is ordered.When we study Boolean models in Section 11.3, we will
use a specialtype of tree, called a binary tree, which is an ordered tree where
each node has two descendants\342\200\224a left descendant and a right one. The tree
in Figure 11.26 is a binary tree.
The binary tree in Figure 11.27 is complete. A binary tree is completeif for

some integer \320\272


every node of depth less than has
\320\272 a left and right
descendant and
every node of depth is. a leaf
\320\243\321\201 This is true for the nodes at depth \320\272
= 3 in the figure. The total number of nodes in a
complete binary tree of
heights is2*+1- 1,
Algorithms must often a binary
tree, that is, visit each node to get
traverse
information about it path or the lies. We will investigate
on which it three
systematic ways to do lh\\s: preorder traversal, postorder traversal, and inorder
traversal Figure 11.28 illustrates Lhese traversal on the binary tree shown in

Figure 11.27. First, we define a node and


\316\267 all its descendants as a subtree /\342\200\236

of tree T. The node \316\267 is the root of t\342\200\236.


We let r denote the root of the tree and
d,_ and dR its immediate descendants. Then we define the preorder traversal
of \316\244 recursively as follows (see Figure 11.28a):

1. Visit the root r.

2. Visit in preorder the subtrees with roots dL and dR. in that order.

L = leal node Height = * - 3


R = rooi node Number of nodes = 2*' '-1 = 15

Figure 11.27 A complete binary tree.


Graph-Based Models \342\226\240
317

(a)

Figure 11.2B Traversals of a binary tree.

We define the poslorder traversal of 7\" recursively as follows (see Figure


11.28b):

1. Visit in postorder the subtrees with roots dL and dR, in that order.
2. Visit the rootr.
318 \342\226\240
Complex Model Construction

Finally, wc define the inorder traversalrecursively as follows (see Figure


11.28c):

1. Visit in inorder the left subtree of root r (if it exists).


2. Visit r.
3. Visit in inorder the right subtree of r (if it exists).
If we assigna number in sequence to each we visit, we notice some
node
interesting properties. The inorder traversal numbers of the nodes of a
binary tree occur in such a way that each node in the left subtree of a root
node nR has a number less than while
\302\253R, each node in the right subtree has
a numbergreaterthan nH.
A wireframe model is the simplest exampleof a graph-based model,
consisting of a set of vertices defined by their coordinatesand a connectivity
matrix defining how the vertices are connectedto form straight-line edges.
Faces either are not explicitlydefinedor are given as a separate list, or circuit
of vertices. The literature describing the basics of wireframe modeling
methods is vast and accessible. Work in this area is by no means finished. This is
demonstrated by the work of Agarwal and Waggenspack (1992) on
decomposition methods for extracting face topologies from wireframe models;of
Hojnicki White and (1988) on converting CAD wireframe data to surfaced
of
representations; Lequett (1988) on the automatic construction of
curvilinear
solids from wireframe views; of Brewer, Vicknair,and Courier (1989)on
converting wireframes to solids; and by the work of many others.
Usinga data structure
equivalent to a directed graph, Letcher and Shook
(1995a) present
a new logical framework they call relational geometric
synthesis (RGS) for constructing complex geometric models from
points, curves,

surfaces, and solids (see Chapter 12).Their graph structure is more


complicated than the because most of their geometricentities
conventional tree,
require two or more support nodes. The RGS schemeincorporates
embedded entities
(points on curves, curves on surfaces, and so on) and relative
entities. The data structure ensures durability of intersection curves, as well
as durability of the resultsof compositional
processes.
Changes in any part of
a complex geometric model are automatically reflected in contingent parts
of the model.

11.3 BOOLEAN MODELS

The discussion of Boolean models begins with a brief review of set theory as
it affects Boolean models and operators. In geometric modeling, when we
Boolean Models * 319

combine the simple shapes calledprimitivesto form morecomplex shapes,


set theory becomes useful. Solid-modeling techniques, in particular, have
drawn considerably from the axioms of set theory. For example, important
early work at the University of Rochester draws from point-set topology to
establish more rigorous mathematicalfoundations for solid modeling (see
Requicha and Voelker [1977] and Requicha and Tilove [1978]). We begin
with some of the basic concepts of set theory and finish with a look at point-
set topology, includingset-membership classification and its relevance to
solid modeling. (Incidentally, the first formal treatment of sets dates back to
only the second half of the nineteenth century, when Cantor created the
main body of the theory.)
The term sel denotes any well-defined collection of objects. Objects
belonging to a set are its elements o r members. In geometric modeling, solid
or otherwise, the basic clementis the point.The symbols [ I } indicate the
set-builder notation and describe the set in terms of conditions on any
arbitrary element of the set\342\200\224conditions that every element of the set must meet.
Forexample, [x\\2.5<x<3.5] is a set consisting of all real numbersin the
specified interval. On the left-hand side of the vertical line we read, \"the set of all
\317\207...'' On the right-hand side we have the conditions for set membership.
A set thai contains all the elements of all the sets under consideration is
the universal sei, denoted by H. A deck of 52 playing cards may be the
universal set if we are investigating the probabilities of certaincombinations of
cards in a poker hand. Conversely, a null selis a set which has no elements at
all. It is denoted by \317\206 and is also referred to as the empty sel or tbe void set.
In genera], two sets A and are
\320\222
equal,expressed as

A = B (11.27)
wheneverset A and set exactly the same elements.Two sets
li contain A and
arc
\320\222 in one-to-one correspondence if we can pair each elementin A with

exactly one element in S, and each element in with


\320\222
exactly one element in
A. Two sets A and are
\320\222 equivalent sets if we can place their elements in one-

to-one correspondence.
Any set/1 is a subset of setti only if every element in A is also an clement
in B. The symbol \321\201
indicates the subset relationship.Thus,
\320\233\320\265\320\271 (11.28)

means that A is a subset of B.A is a proper subset of li if every element in A


is contained in and
\320\222 if has
\320\222 at least one element not contained in A. Every
set is a subset of itself, but not a proper subset.
New sets are formed by combining
the elements in two or more sets in
some fashion. Given sets A and B, we can constructa third set whose
\320\241 e|e-
320 \342\226\240
Complex Model Construction

menls are all of the elements in A together with all of the elements in B; that
is, the union of A and B. We write this as

C-AuB (11.29)
By the union of two sets, wc mean the set of all elementsin one set or in the
other set or in both sets. For example, if A = [a,h,c) and \320\222
-
[c,d,e,f], then C-
Akj B= [a,b,cfd,e,f].
Notice that there is no repetition of elements in C, even
though
element is in
\321\201 both/1 and B. We may read A kj \320\222as A or \320\222.
Here, the
or is what logicians call the inclusiveor because AkjB includes the elements
that belong to A as well as B.
If we forma setD comprised of elements common to both/1 and B, selD
is the intersection of A and B, expressed as

D=AnB (11.30)
By the intersectionof two sets, we mean the set of all elements, and only
those elements, that are in both sets.Thus, if A = [a,bfcfd},B- [c,d,e,f,g],and
D=AnB, then D =
[c,d].
If/1 and are
\320\222 their difference (or more formally,
sets, then their Boolean

difference) A- B denotes the set of elements i n A that are not also elements
in B. Thus, if A = [a,b,c,d], and \320\222
=
[d,e,f\\, then A-B- [a,b,c] and \320\222 -\320\220 =

[e,f]. C|early,/4 -A = 0.This minus sign does not combine with in the way
\317\205

that a plus analogy might suggest..Forexample, (A kj A)


- A = 0, but A kj
(A
- = A. The
A) complementofa set
A with to a universal set \302\243 is respect
the set of a|] elements in that
\316\225 are not elements in A, written cA.
Furthermore, if we form complements with respect to a set Econtaining/1 and \320\222 as

subsets, then/1 - =
\320\222 A ncB and Au \320\222
= These two identities
ncB).
\321\201(\321\201\320\220

often allow us to simplify computations. In boundary evaluation algorithms,


with appropriate pre- and postprocessing,only the intersection operator is
required.
One way to
study sets and subsets is with Venn diagrams, which are
particularly useful in representing such set relationships as equality and such set
operations as union and intersection.Figure11.29illustrates some set
properties and operations using these diagrams. There are several ways we can
combine sets, and certain well-established rules that govern these operations
(see Table 11.1).
The geometricnature of Venn diagrams suggests useful ways for us to
interpret the properties of setsand operations on them. In geometric
modeling,sets consist of points, and the universal set \316\225 is the set of points defining

a Euclidean space with a dimension of our choosing. Set theory suggests


methodsfor operating on these points and classifying them according to
such propertiesas inside,outside,oron the
boundary of a geometric solid.
Boolean Models 321
\342\226\240

\320\273
\321\217
\320\270
(\320\260)

\320\233-\320\222 \320\237
(\320\220 \320\270
\320\257) \320\237
(\320\233 \320\241>
(c) (J)

figure 11.29 Venn diagrams and set theory.

Let us consider the real line defined by a continuous set of pointsin F.1,

where E'is set of points we are considering


the universal (sec Figure 11.30).
We define a subset Xof El by the line segment a < X< b, where \321\217 and b are

limiting points of the set X. X is an open set,where the


open circles at a and
b symbolizethat these points are not included in the set, and the solid circles
in the lower figure indicate their inclusion. The closureof an Open set is the
union of the set with the set of all its limit points. These concepts extend to
two-and three-dimensional spacesand point sets.
The boundary of a closed set is the set of all its limit points. Conversely,the
interiorof a closedsetis the set of all points of a set not on its boundary.Thus,

X = bXuiX (11.31)
where bX denotes the set of boundary points and iX denotes the set of
interior
points.
We are now ready to see how theseconcepts allow us lo use simple shapes
to create morecomplexones.We will use the set operators union (u),
intersection (n), and difference (-), also called Booleanoperators, and the rules
for their application and combination, calledBooleanalgebra.

Boolean Operators

A distinguishing feature of the geometric objectswe will deal with here is


that we define them as closedsetsofpointshaving a boundary subset and an
322 \342\226\240
Complex Model Construction

Table 11.1 Properties of operations on sett


Union Properties

1. \320\220
\320\270 is a
\320\222 set. Closure property.

2. \320\220
\320\270 ~ \320\222
\320\222 \320\270\320\233 Commutative property,
3. (du8|uC =A \320\270
\\j (\320\222 \320\241) Associative properly.
4. \316\221 = A
\317\205
\317\206 Identityproperty.
5. A \\jA = A Idempoiem properly.
6. A\\j cA- \316\225 Complement property.

Intersection Properties

1. \320\220 Is a sei.
\320\263\\
\320\222 Closure properly.
2. \320\220\320\263,\320\222=:\320\222\320\223\\\320\220 Commutative properly.
3. {A ri B) r\\ \320\241 = \320\220
\320\223\\ \320\263,
(\320\222 \320\241) Associative properly.
4. A nE=A Identity property.
5. Ar\\A~A Idempoiem property
6. A r\\cA = \302\247 Complement property

U i stri but i ve Proper! jes


1. \320\233\320\270(\320\271\320\277\320\241|=(\320\233\320\270\320\224)\320\223|(/1\320\270\320\241)
Union is distributive over intersection.
2. -
\316\221
\316\267 \\j \320\241)(\316\221
{\316\222 \316\267 \317\205
\316\262) \320\241) Intersection
\316\267
(\316\221 is distributive over union.

Complementation Properties

1, cE = \317\206 The c-omplemeni of the universal set is the empty set.


- \316\225
2, \321\201\321\204 The complement of the empty set is the universal set.
3, c(cA) -A Thecomplement of a complement of a set \320\233
is \320\233.

4, c(A = \321\201/1\320\273\320\263\320\271 law,


\320\270\320\271) DeMorgan's

5, c(A r,B)- cA^jcB DeMorgan's law.

interior subset. We use Boolean operations similar to set intersection, union,

and difference to combine simple objects to form more complex ones. The

algorithms that perform these operations must produce as output objects


that are also closed sets of points having boundary and interior subsets and
preserve the dimensionality and homogeneityof the initial objects.The
latter
requirement means that in any Boolean operation, suchas \316\233 =
kj \320\222 all
\320\241,

the objects must be of the same spatial dimension. SeealsoRequicha and

Voelker(1985) and Putnam and Subrahmanyam (1986).


BooleanModels 323
\342\226\240

a<x <b

Open sei

a ^ ^ b
\317\207
\317\207

a Closed set *

Figure 11.30 Open and closed sets.

Figure11.31demonstrates how the ordinary set-theoretic intersection of


two well-defined two-dimensionalobjectsproducesa result that does not
meet our requirements. First,A and \320\222 are well defined because each
possesses a boundary set bA and bB and an interior set iA and iB. Second, the
resulting intersection is mathematicallycorrectaccording to set theory but
geometrically incorrect, or at least inadmissible, because has
\320\241 no interior.

Thus, \320\241 is not like A and B. It is not a two-dimensional objectand, clearly,


this intersection operation did not preserve dimensionality. We would prefer
an operator that recognizes this condition and producesa nullset.Requicha
(1977) and others early on proposed the use of regularizedset operators,
which
preserve dimensionality and homogeneity (no dangling or
disconnected
parts of lower dimension).The importance of these regularized
operators will soon become apparent.
We begin by combining two simple polygons A and B, as shown in Figure
11.32.Both A and are
\320\222 two-dimensional objects with straight-line
boundaries. The arrows indicate the direction of parameterization. Notice lhat both

A and are
\320\222
parameterized in a consistent direction. In this case, they are

Ob

Figure 11.31 Degenerate intersection of two


well-defined two-dimensionalobjects.
324 \342\226\240
Complex Model Construction

2 \320\227\320\242

I
\316\271
\316\271
\316\271

L_
i-P^
-\321\213-

\316\271 \316\271 L I
Union: U \320\257
\320\233 Difference: /1-\320\257 Intersection\302\267 \320\224\320\237\320\222

Figure 11.32 Union, difference, and intersection of two simple


polygons.

both counterclockwise. By maintaining consistency in orienting the

polygons' edges, we can establish a convention defining which side contains


pointsinside the
polygon\342\200\224on
the left in our example.
We assume that we have alreadyappliedthe appropriate scaling and
positioning transformations A and B, so now we will look at an algorithm for
finding C-AkjB.

1. Find all the intersection points of the edges of A and B; points 1,2,3. and 4.
2. Segmentthe edges of and
\320\233 \320\222.
Thus, if the boundary polygon of A is
-
parameterized from -
\320\2700 to -
\320\2701 and from
\320\222 = 0
\316\275 to \316\275
1, then the boundary
of A in the example has four segments: e
\320\270
\320\263*\320\263],\320\263*
[\321\206; \320\265[\302\253>\302\253^],
\320\265[\302\2532;\302\253\320\267],\302\253

and \320\270
\320\265
[\302\253jjuj.
also
\320\222 has four segments: e
\316\275
[vj; v3]. \316\275
e [v3; vz], e [v2\\
\316\275 i-'i],
and ve [\316\271\316\257;
\316\275\316\221].

3. Find a point on the boundary polygon of A that is outside B, say, p0.Then


that segment is also outside B.
4. Starting at p0, trace the boundary of A to the next intersectionpoint with

B, point 1.
5. Find the intersecting segmentof B, and trace along it in the direction of
increasing \316\275
to its intersection with A, point 4. At this point, we discover
that we have traced back to the starting segmenton A, but we have not
yet exhausted the list of segments. We have found only one loop.
Boolean Models 325
\342\226\240

6. Find a point on one of the remaining segments of A that is outside B. Then


that segment,too,isoutside/i.
7. Trace this boundary segment to the next intersectionpoint with B, point 2.
8. Repeat step 5, tracing \320\222 to point 3. We have completed another loop.
Becausethere are no more qualifying segments to trace, the union
operation is
complete. Nate that the second loop is parameterizedin a
clockwise direction, which means that it encloses a hale.

We label the boundary segmentsof \320\233


and the loops as the /i that comprise
aaive segments; conversely, the
segments we label as
other boundarv
inactive. If we no longer need representations of the initial objects A and B, we
discard them and delete I hem from the modeling dalahasc. In any evenl, we
represent object\320\241by reparameterized concatenations of the appropriate
active segments of A and B, forming lvvo separate and distinct loops,as we
have just seen.
The difference operation is the same as the union operation except that
we trace the boundary segments of \320\222
-clockwise. The intersection operation,
too, is similar to union, except that segment tracing must start from a point
on the boundary of A that is inside /i.
The algorithmjust outlined requires several supporting algorithms. The
principal ones are a procedure for finding the intersection points; a
procedure for
determining whether a point is inside or outside a closed polygon;
and procedures tracing segments, forming loops,and rcparameleri/ing the

loops- The list will grow as we investigate more sophisticated problems

involving Boolean operators.


The example we have just explored is very simple\342\200\224too simple, in fact, to
illuminate most modelingproblemswe encounter when applying Boolean
operators. However, the exampledemonstratesthe basic approach:
intersecting, testing, tracing, and sorting. Determining the topology of surfaces
that are the combinations of other surfacesis a suhtlc
product of Boolean
and complex process and continues to be a challenging subject of research.
Consider the two-dimensional objects A and \320\222 in Figure 11.33. Each is
well defined; that is, closed and dimension ally homogeneous. Thus, we
express A and as
\320\222

A = bAviA and B=bB\\JiB (11.32)


where,as in
Equation (11.31), b denotes the set of points on the boundary
and \320\263
denotes the set of interior points.
Next, we translate A and into
\320\222
position prior to combining them by the
Boolean operationto form object \320\241First, we perform (he se!-!heoretic
326 \342\226\240
Complex Model Construction

-Wangling edge

Set-theoretic Regularized
intersection intersection

Figure 11.33 Set-theoretic and regularized Booleanintersections.

intersection, with the


proper result shown in the figure. Notice the dangling
edge; this result is obviously not dimensionally homogeneous,yet it is the
correct set-theoretic intersection. The result we seek is shown to the right. It
is the regularized denoted
Booleanintersection \316\221
\316\267 closed
*\320\222, and

dimensionally homogeneous. Given the set-theoretic intersection, we have


C^AnB (11.33)
We rewrite this as

C = (bA uM)n(iBuifc) (11.34)


which
expands to

C = (bAn bB) u (iA


\317\200 \320\270 \316\267
\320\250)\320\270
(\320\254\320\220
\320\254\320\222) (iA n iB) (11.35)
Figure 11.34shows a geometricinterpretationof each of the four
expressions in
parentheses, above. We notice, again, that the direction of
parameterization is indicated by arrows in Figure 11.34a. Since C-bCw iQwe must
find the subsets of bC and iC that form a closed, dimensionally
homogeneous object C*. We must derive candidates for C* from the terms in
Equation
(11.35).
In Figure 11.34d, we see the two-dimensional interior of \320\241
and

correctly surmise that

iC=iC* = iAniB (11.36)


Boolean Models 327
\342\226\240

A
\320\222 \316\262

(a) ft)

\316\262 \320\262

\317\211 id)

Figure 11.34 Candidate components of a


regularized Booleanintersection.

Next, we must determine bC*. where bC* - Valid


(bA kj Note
\320\252\320\222).
that the
boundaries of any new object will
always consist of boundary segments of
the combiningelements.We can generalize this observation as follows.
Boundary points can becomeinterior points, whereas interior points cannot
become boundary points. Furthermore,for regularized intersections, we
assert without proof that

iAnbBtz bC* (11.37)


and

bAniBcbC* (11.38)
So far, have successfully
we accounted for Figures 11.34b to 11.34dof the
set-theoreticintersection effort the regularized
in our to determine
intersection.We must
analyze (bA r\\bB)
now (see Figure11.34a) to determine which

of its subsets are valid subsets of the boundary of C*. The isolated point is a
valid member of bC*,becauseit must always be a member of both (iA \316\267
\320\252\320\222)

and (bA \316\267


iB). We are left with two apparently identical overlapping
intersections of A and B. These intersections are distinguishedbecausethey are

interior to neither A nor B. Let us find a test to differentiate between them.


328 \342\226\240
Complex Model Construction

At some point p, on segment1,we create a new point offset


p\302\253

perpendicularly
from it a distance e to the right (relative to the direction of

parameterization),
and a similar
point p,_ to the left (see Figure 11.35). We do the
same at a point p2 on segment 2. Next,we construct a table for each segment
to test whether each point pR and p; is inside A or B. For segment 1, neither
test point is insideboth A and S, whereas for segment 2, test point pL is
inside both A and B. This test determines that segment 2 is a valid boundary
of C*.Thisprocedureanalyzes the neighborhood of points on the segment so
that we can properly classify it.
Another, simpler classificationtest is available ifwe adopt a consistent
convention for the direction of parameterization. At p, we compute the
tangent vectorp/' from the A boundary representation and p', from the \320\222
boundary representation. In our example, they are in opposite directions.
We do the same for segment 2, where the tangent vectors arc in the same
direction, From this we conclude:If the respectivetangent vectors at a

point of the overlapping boundaries of two intersection objects A and \320\222


are in the same direction, then the overlappingsegment is a valid boundary
of C*
- A n * otherwise the segment is not a valid boundary.
\320\222;

Let us summarize the results. The valid regularized intersection of two


objects A and is
\320\222

C*=An*B (11.39)

Segment InB
\316\231\316\267\316\233
1

Pr 0 1

o-*~ Pi 1 0
P, Pfl

Segment InB
\316\231\316\267\316\233
7

PR 0 0

Pi 1 1

P2 Note1 = yes
L. -\302\273U 1 1
0= no

P\302\253J

Figure 11.35 Regularized boundary test.


Boolean Models 329
\342\226\240

where

C* = bC*uiC*
(11.40)
= Valid,, \316\267
(\320\254\320\220
\320\270
(iA
\320\254\320\222) \316\267 \320\270 \316\267
(\320\254\320\220
\320\254\320\222)
\320\270
\320\250)
\316\267
(\320\263/1 iB)

There is nothing in this expression that indicates dimensionality, so we


conclude that it applies equally
to one-, two-, three-, or n-dimensional
objects. Later in this section, we will investigate the Boolean combinationof
three-dimensional solids. First, let us continue operations on the objectsin
Figure 11.33.
The components of the set-theoretic union of A and \320\222
are shown in
Figure 11.36. Again, they are the full set of valid candidates for determining
\320\241*
-\320\220 \320\270* We
\320\222.
begin, as in the preceding intersection, by expanding the
set-theoretic expression

C = AuB (\320\237-41)

C=(bAu iA )\\j(bBu iB) (11.42)


C^(Mu \320\270
(iA
\320\254\320\222)
\320\270 \320\270 \320\270
(\320\254\320\220
\320\254\320\222)
u
\320\250) (iA \320\270
iB) (11.43)

Equation (11.43) as correct


is just and subject to interpretation without
the parenthetic separation terms.
of Thus,

C=Mu6flui/lu6fl^MuiBuMu/B (11.44)

\320\222 \320\262

{< ) (\320\254)

A
\320\262

(0

Figure 11.36 Candidate components of a


regularized Boolean union.
330 \342\226\240
Complex Model Construction

The redundant elements are underlined.We delete them so that Equation


(11.44) becomes

= bB^JiA
\320\270 kjiB
(11.45)
\320\254\320\220

which is identical to Equation (11.42)with parentheses deleted. From these


components, we determine bC*,iC*.and, hence,C*.First, we observe that

iC* = \317\212\316\233\317\205\316\257\316\260\317\205
[Valid, \316\267
bB)]
(\320\254\320\220 (11.46)

and note that some boundary points become interiorpoints.If we do not


include these points, we will have what amounts to a hole in iC*. Also, we
notice that it is redundant to add \\j(hA
\316\267
\320\250)\316\267
(bB \316\267
iA) to the right side
of Equation (11.46).Why is this not the case for u[Valid,(M \316\267
bB)}'}

Next, we observe that


bC* = Valid\342\200\236(M \320\270
bB) (11.47)

where

Valid ~
\320\254\320\220 not
\320\254\320\220 in iB and part on bB (11.48)
or
Valid \320\254\320\220-\320\254\320\220- \316\267 \320\270 \316\267
[(\320\254\320\220iB) Valid^M bB)] (11.49)

Similarly,

Valid bB^bB- [(bB \316\267 \320\270


\316\234) Valid,(M \316\267
Z>S)] (11.50)

An ambiguity exists in (bA resolve by a test similarto


\316\267
/>S) that we must
that discussed for the intersection
operator. If we discardall of (bA \316\267bB).
then bC* is incomplete. Therefore, the boundary
of the regularized set C* is

bC* ^bA^jbB- [(bA


\316\267
iB) \320\270
(bB \316\267
iA) \320\270
Valid^M \316\267
Z>S)] (11.51)

In Equations (11.51), we see that (bA \316\267bB) is subdivided,


(11.46) and a
portion assigned to iC* and a portion to bC*.Furthermore, nothing is lost,
since we assert Valid,(M \316\267 -
bB) Valid,,(M \316\267
bB).

Finally, we consider Figure 11.37. Here are the components of the


- we
difference
operator (A B). Again, expand the set-theoretic expression

C^A-B (11.52)
to yield

C--(bA-hB- iB) \320\270


(iA -bB- iB) (11.53)
Boolean Models 331
\342\226\240

W (d)

Figure 11.37 Candidate components of a


regularized Booleandifference.

Two things are immediately clear from the figure.First.tC* must equal iA -
bB - iB; in the case of our example, two disjoint sets result. Second, C* \317\210
\320\241,

because certain segments of'bC* are missing from \320\241


If wc add iA bB
\316\267 to C,
as in Figure 11.37d, the boundary is still incomplete.'1\320\252\320\265 missing segment is
a subset of bA bB.
\316\267 Here, again, we must perform a lest to determine the

valid subset. For the case of the difference operator,Valid(Zvl (~\\


bB) are

segments adjacent to only iC* or (iA


those - Thus,
r \316\262).

bC* -fcCu (iA \316\267


bB) \320\270
Valid(M \316\267
bB)
(\316\240.54)
=
(bA -bB- iB) \\j (iA \316\267 \320\270 \316\267
bB)
\320\243\320\260\320\251\320\254\320\220
\320\254\320\222)

Therefore the
\320\241*,
- 5),is
regularized (A
C*= (bA-bB- \320\270
(iA \316\267
bB) u Valid(M \316\267 \320\270
(iA
\320\254\320\222)
- bB - iB)
iB)

(HAS)
Other relationships
between A and are
\320\222
possible. Figure 11.38 shows a
particularly useful example.Here,objectA completely encJoses B. The
equations just developed verify the results. This is a \\vay to model holes.
If we execute a sequenceof two or more Boolean operations on a set of
objects, then the result depends on the order of the sequence.In Figure
332 \342\226\240
Complex Model Construction

|a) aus

\320\273

\320\262

\316\221
|\320\254) \316\223,\316\222

(\320\241)\320\220-\320\222

Figure 11.3B Examples of Boolean operations.

11.39,three objectsare combined, and the results are obviously dependent


on the order.
BooJeanoperators apply in exactly the same
to three-dimensional solids
way that two-dimensional
objects regularized Boolean combining
do. The
operationsare the same, and closure and dimensional homogeneity are also
necessary. Figure 11.40 illustrates the effect of various combiningoperations
on two simple three-dimensional objects. In Figures 11.40a to 11.40c,nothing
unusual results, but in Figures 11.40d to 11.40f,nonregularizedoperations
produce intersections that are not three-dimensional. Applying the
regularized
operators to these last three cases properly producesnull results.

Set-Membership Classification

In order to regularize sets resultingfromcombiningoperations onother sets,


we must determine oron the
whether a given point is inside,outside, bound-
Boolean Models 333
\342\226\240

Figure 11.39 Order dependence of Boolean operations.

ary of a given set. Three important subsets of any regularized set A are: the
set of all ils interior points,denotediA; the sel of all points on its boundary,
denoted bA; and all points outside ii, denoted cA. Assignment of a specific

point to one of thesesetsisset-membership classification. The early work in


formalizing and making rigorousset-membership class i fication for

geometric
modeling was done by R. B.Tilovc (1980) and others at the University
of

Rochester. They observed a similarity between four types of geometric


problems related to modeling:

1. Point inclusion. Given a solid and a


point, is the point inside, outside, or
on the
boundary of the solid?
2. Line/polygon clipping. Given a polygon and a line segment, what part of
the line is inside the
polygon? What part is outside the polygon? What
part
is on the boundary of the polygon?
3. Polygon intersection. Given two polygons A and B, what is the
intersection \316\221 \316\222?
\316\267
polygon

4. Solid interference. Given two solids, do they interfere (that is, intersect
unintentionally)?

In each problem,two geometric elements are involved, requiring us \320\263\320\276

determine some sort of inclusion relationship between them.Creatinga set-


334 > Complex Model Construction

lb) Id

\316\262
/
4r
i 4\321\2027
/
47 /
/7
/\317\210-\316\263

/
Id| {e| |f)

Figure 11.40 Boolean operations solid.


on a three-dimensional

membership classification the approach to these problems.


function unifies
We denote this function ], which
as M[ operates on two specified point
sets\342\200\224a reference set 5 and a candidate set X. Thus,M[X,S] partitions Xinto
subsets corresponding to their membership in bS,iS, or cS.
Let us look at several classification relationships and some classification
methods. We will consider the possible relationships between sets taken
from E\302\260,E\\El, and Ei universal sets; that is, points,linesor curves, surfaces,
and solids.
Relationships involving points are shownin Figure 11.41. The most basic,
yet easily overlooked,classification
relationship is between two points: A
test point may be the same as a given point, or it may be different. A simple

algorithm to compare coordinates with some degree of precision will


produce the classification,
A point may be on or off a
given curve; if on the curve,three subclasses are
possible\342\200\224on
the initial point, on the endpoint, or on an intermediate point.
Boolean Models 335
\320\262

For a straight line, an additional pair of classifications for a point exist\342\200\224on

the back extension of the line or on the forward extension of the line. Finally,
a point can beto the right or left of a line or curve on a surfacerelative to its
direction \316\277\316\271
parameterization. A simple test for right-left status is to first find

the on the given curve nearest the candidate


point point. Given a consistent

convention, the sign of the resultingvectorproduct indicates on which side


of the curve we find the point.
Given a bounded, simply-connected topological disk (for example,a
closed, non-seif-intersecting curve lying on a surface, of which a convex
polygon on a plane is a Special case), then a point may be inside the disk, on
its boundary, or outsideof it.In special case of a straight-edged the plane
polygon, there are classifications
additionalrelative to the boundary\342\200\224the

point may be on a specific edge or a vertex.


One to classify a point as inside or outsidea diskor
way is polygon
to

compute
the winding number (see Apostol [1978] or any other calculus textbook).
The sign of the winding numberdependson the direction of parameterization

(see Figure 11.42).We can arrange the numerical integration of the


line
appropriate integral and the direction of paxiimeterizalionto yield cither the signs
shown in the figure or the reverse.

\321\203\342\200\224\302\260\321\215
/
\316\257\316\261

1 2 1

la) [\320\254)

Id Id)

Figure 11.41 Point classification.


336 \342\226\240
Complex Model Construction

Winding number = +1 Winding numbei = -1 Winding number =0

Inside Outside

Figure 11.42 The winding number and the inside-outside


classification.

Given a solid, that is, a regulari zed three-dimensional setof points,a


candidate point can again have the three basic relationshipsto it\342\200\224inside,
outside, or on solid is a polyhedron,then
its boundary. If the we can further
describethe point on its boundary as beingon an edge or a vertex.There are
several ways to determinethe inside-outside status. Let us look at two
approaches.
Figure 11.43ashows an arbitrarily shaped solid whose boundary we will
assume is a parametric surface. Given p, we computethe closestpoint q to it
on tife surface. Next, we compute the surface normal at
\317\200
q and compare its
direction to the vector (p - q). Assuming the convention of an outward-

\302\253 *-x

la) lb)

Figure 11.43 Inside and outside a solid-


BooleanModels 337
\342\226\240

- same sign,\317\201
pointing normal, then if and
\317\200
(p q) have the is outside the
solid; otherwise, it is inside (if not on the boundary,in which case\317\201
-
q
- 0).
Figure 11.43bpresumesa solid defined as the Boolean intersection of
half-spacesin \302\243\\Here, we simply test against
\317\201 the set of inequalities
defining Ihe half-spaces. As we proceed through an ordered list of these
we
inequalities, update a status flag on p. As long as \317\201 satisfies each successive
half-space dcfinilion. it is inside the solid, and we so flag it. 11 \317\201
identically
satisfies a half-space limit (for example, p. - e),then we change its slatus to
on the boundary. If the point \317\201 fails any test, the algorithm terminates, and
we
flag the point's status as outside the solid.
Set-membership classification also extends to curves and straight-line
segments and, perhaps most importantly, to straight lines and polygons.Figure
11.44shows the principal relationships hetween two curves and two straight
lines. Detection and computation in Figures 11.44aand 11.44bfor curves,
and Figures 11.44c. Il.44h.and 11.44i for straight, lines are fairly
The
straightforward, remaining cases are examples of overlap. Forstraight lines, dctecl-

ing two points in common or a common point and common absolute


directionof tangent vectors at the point indicates overlap. WiLh curves, the
situation is more complex. Here, we must accept an approximation of

overlap because, unless forced to do so, most incidental matches will not mate

identically.
Line and polygon classifications are shown in Figure 11.45: the polygons
represent regularized sets in E2. A
single line segment defining an edge of
polygon
R intersects polygon A in three ways. The membership-classification
function M[ ] subdivides and classifies this line: \316\233-,
is a suhset of the
boundary
of X2
\320\224 is a subset of the interior of A, or \316\247\317\204,
is a subset of the outside or
complementof/1. Several
membership tests these conditions
\316\257\316\277\317\204 were
suggested previously, so we will not discuss them again here.
In Figure 11.46, we see the tangent vector convention,also mentioned
earlier. This convention permits us to locate the directionof the inside of an

objectfrom any point on the boundary. We then extract information about


its immediateneighborhoodfrom the boundary representation. An
ambiguity arises w hen we try to classify poim 2, say, with respect to A n Jj, given
only the classification of the point with
respect to A and \320\222
separately. We
cannot express M[X,A\\OP\\Ii\\
solely
of M[X,A) and M[X,B], and in terms
we need moreinformation lo resolve ambiguities. Here, the point is on bA
and on bB, but not on bC, although\320\241
= \316\221
\316\267 We
\316\222. see in the figure that wc
can use informationembeddedin the boundary itself to remove
ambiguities.Of course, this does presuppose an analytical representation of the
boundary.
338 \342\226\240
Complex Model Construction

la)

If)

lb)
lg)

|h)

id) ii>

Figure 11.44 Curve and line-segment classification.

Finally, we considerthe two intersecting in Figure 11.47. If the


solids
surface of each one is represented analytically, then we can computenormal
vectors at any point on them. We can use this information in a set-
membership classificationalgorithm.We assume that the surfaces of the
solids are parameterized in such a way that the normal at an;y point on them

always points outward, away from the interioror material of the object.
Then, on overlapping surfaces, we can easilyclassify a neighborhood. -
If \320\277\320\273
nfl, the iA and iB are on the same side, and \316\212\316\221
iB is not a null set. If n,,
\316\267 =
-na, then iA and iB are on opposite sides and do not intersect in the
neighborhood.
Boolean Models 339
\342\226\240

\320\222

\317\207,
\321\2051.\321\2052.\321\2051\321\201\321\214\320\262

\321\210

X2C\\A

X^CcA

Figure 11.45 Line and polygon


classifications.

V. \321\217
1
\320\226
\\\316\221\302\267
3\316\257

L4ftifl

Figure 11.46 Tangent vector convention for


two-dimensional objects.
340 * Complex Model Construction

\320\233/ \320\243

// / j/ \320\262

\317\207

\"\320\262-
-1 *\342\226\240
\302\267\342\200\224
\"\320\273 \317\200

/ ^

/ / \320\243
/\321\203

=\316\267\316\257
\320\260\320\273

Figure 11.47 Normal vector convention for

three-dimensional solids.

We a somewhat rigorousapproachto solving


have taken the problems of
set-membership La ter
classification. discussion will reveal the importance of
other concepts that we touched on only briefly here (sec Figure11.48).These

conceptspervade computer graphics and CAD/CAM modeling algorithms


and other moreabstract appliea lions, offering ample Opportunity for further
study and research.

\320\250\320\2501
\320\262

^
\316\212

fej ibj

Figure 11.48 Probiems for set-membershipclassification.


Boolean Models 341
\342\226\240

8oolean Models

If we represent a solid object by the Boolean combination of two or more

simpler objects, then the representation is a Boolean model. If A, B, and \320\241

denote solids and if \320\241


~A(Op)B, where (OP) is any regularized Boolean
operator, then A {OP)B is a Boolean model of Remember
\320\241 that A, B, and
must
\320\241 be of the same spatial dimension. From now on, we will assume that
all Boolean operations are regularized, so thai, for conciseness, wc can drop
this term as a qualifier. The symbols u, n, and - will denote the regularized
Boolean operators: union, intersection, and difference,respectively.
A Boolean model is a procedural model (sec Figure11.49). For
example,
let us assume that we know the size, position,and orientation oiA, B, and C,
perhaps as a list of vertex coordina tes. The Boolean modelof D isD (a u
-
defining D says nothing quantitative about
- \320\241.This Boolean statement
\320\222)

the new solid it creates. It only specifies the procedure for combining the
primitive constituents.It doesnot tell us the coordinates of the vertices of
the new solidor anything about its edges or faces. We may know all thereis
to know geometrically and topologically about A, B, and C, but all wc know
about D is how to assemble it. Therefore, this leads us to say that the Boolean
model is a procedural representation, or an unevaluated model If we want to
know more, then we must evaluate the Boolean model, compute
intersections to determine new edges and vertices, and analyze the connectivity of
thesenew elements to determine the model's topological characteristics.

r *_j-

D - fAUBl -C

Figure 11.49 A simple procedural model.


342 > Complex Model Construction

The boundary has 32 vertices, 48 edges, and 18 faces.


of D The undirected

connectivity matrix of the vertices is a 32 \317\207


32 array containing 1,024
elements. Since each vertex in this model is connected to 3
exactly others,there
are only 96 nonzero elements in the matrix. A boundary cvaluator routine
uses this information to construct the boundary representation.
The binary tree for this model is shown in Figure11.50. The leaf nodes are
the primitive solids, with Boolean operators at eachinternal node and the
root. Each internal node combinesthe two objects immediately below it in
the tree and, if necessary,transforms the result in readiness for the next oper-
ation.The constructive representation of an object is a direct translationof
the Boolean operators into a binary tree structure.
How are the
primitives modeled? systems, they are stored as a
In many

graph-basedmodel and become a unit


template or parameterized shape to
be scaled positioned
and as a leaf node of the model's binary tree. Or a
primitive
may be a Boolean combination of directed surfacesor half-spaces. A

Figure 11.50 The binary tree for D = (A wB)


- \320\241
Boolean Models 343
\342\226\240

directed surface is a surface whose normal at any point determines the inside
and outside of the primitive solid. unbounded An surface divides Cartesian
space into two unbounded regions; each region
is a half-space- The Boolean
intersection of an appropriate set of half-spaces
can form a closed three-
dimensional solid.
We
may use directed surfaces defining half-spaces to construct an entire
model. Each directed surface by an implicit equation of the form
is given
f(x,y,z)- 0- The function is zero at the surface and positive insidethe object.
Thus, we define a complex object hy the union of the intersectionofdirected
surfaces:

f=G(n^ (11.56)

where the /; are directedsurfaces or


half-spaces. The f4 describing the
surfaces are usually implicit functions of the These
form/;,(*,j>,z) functions = 0.

define surfaces that divide spaceinto half-spaces, two we can easilyand


evaluate points as satisfying/,(*,.)',\320\263)>0 < 0. which we then classify as
\316\277\317\204\316\262,\316\266\317\207,\316\263,\316\266)

belonging to the
object's point set or to its complement, respectively.Fora
fuller treatment sec Mortenson (1989). Parametric surfaces do not formally
define half-spaces, because they do not divide spaceinto two parts in a direct
analytical way They would first have to be converted into implicit surfaces.
Othersystems opera
te with solid, bounded primitives. At any node of the
binary tree, two valid solids combine to producea third valid solid. The
Boolean model of even relatively complex solids is generated quickly in

these systems, and it has a very compact and concisedata structure.


Figure 11.51 is another example of a Boolean modelof a solidobject.
Wc

let denote
\316\240 a primitive object. Here is a
\316\240\316\271 rectangular parallelepiped and
is
\316\2402 a right circular cylinder. 7\", denotes a transformation that scales and
positions the primitives.First,the union operator combines and
\316\223,\316\240, T2l\\z to
produce i'b a hub-like shape with rectangular ears. Next. and
7'\320\224\320\242, '\320\223\320\224\320\242?

combine to produce S2. similar to 5, but smaller in size.The Booleandifference


between 5, anda circular hole and pairof keyways
S2 creates in 5, to

produce St.. Then of S, with 7\"4ib reforms


the intersection the outer surface of
the ears, giving them a radius equal to that of T^nz's,producingSA. SA and S5
combine to produce Sfi and add a further refinement to the geometryof the
ears. S(, and S7 combine to produce Ss. the final object shape. Notice that Si
defines a pair of holes; these are \"drilled\" in St, to produce SH.
Although this model represents a modest accomplishment, we can

appreciate the compactness and conciseness that a Boolean model achieves.To


demonstrate this more explicitly, we express 5s as a string of symbols
344 \342\226\240
Complex Model Construction

Se = ^6 ~ ^7

^4
\302\2736=
- ^5

s2=r3n1uriln2

Figure It.51 A Boolean model of a mechanical part.


Boolean Models \342\226\240
345

- -
\342\204\226 S5)
- \320\270
(78\320\2372 \320\237\320\2372)

- \316\267 - -
u \316\2447\316\2402) \320\270
\342\204\226 \316\2442\316\2402)
(7\342\200\236\316\2402 7\320\243\320\2372)
(\316\244\316\230\316\2402

=
(\320\220',-52)\320\277^\320\2372-(76\320\2372\320\2707\321\202\320\2372)-(\320\2238\320\2372\320\270\320\2239\320\2372)

= \317\205 - \320\270 \316\267


[(\316\223,\316\240, \316\2442\316\2402)
(\316\2233\316\240, 7<\316\2402)] \316\2445\316\2402

-(\320\223\320\271\320\270\320\2237\320\237\320\263)-(\320\222\320\224\320\270\320\242,\320\237\320\263)

Then we use the distributive property of the intersect operator to obtain


= \316\267 u - 7,\316\2402\316\267
Ss (7,\316\240\316\271 75\316\2402 72\316\2402\316\267
\316\2445\316\2402) 75\316\2402\317\205
\316\267
(\316\244^\316\223\316\231 \316\2445\316\2402)

- \317\205 - u 74\316\2402)
(7\"6\316\2402 77\316\2402) (\316\223\302\253\316\2402 (11.58)

This symbol string, including the nine transformations,is the procedural,


unevaluated geometric model. We note that this symbol string is not unique.
Although
and
\316\240, are
\316\2402 fixed primitive types, the transformations vary
\316\223,

depending shape of the objectmodeled.


on the size and We also note that for
this example, all operations involving except
\320\263\\\320\2422\320\2372 7,\316\240, r\\ T5Yl2 are trivial,
since all the other bodieslie entirely within Thus,
\316\2445\316\2403,

7\320\263\320\2372\320\27775\320\2372=7\320\263\320\2372

\316\267
\316\223?\316\240,
-
\316\2445\316\2402
\316\2443\316\240,

\316\244,\316\2402\316\267\316\2445\316\2402=\316\244,\316\2402

A sophisticated modeling system will detect the condition and will not

process these trivial operations.


Computing intersections is of central importance in evaluating the
boundary of a Boolean model. If we define the complete boundaries of two

primitives or subobjects, then the complete boundary of A(OP)B is the sum of the

segments of A and \320\222


boundaries. These segments are the active regions on A
and and
\320\222 are themselves bounded by the intersection of the original
boundaries of A and B.
Let us review the effectof the three Boolean operators on a set of two or
three primitive objects. We including primitives, to be a
consider an object,
collection of
points, comprising some the interior and some the boundary.
The union of two objects, say, \320\220\320\270 is
\320\222, a collection of points that belong to
-
A, B, or A and B. The difference of two objects (A B) is a collection of
points that belongs to the surface and interior of A but is not inside B, a
collection of points that belongs to the surface of \320\222 and is inside A. Figure 11.52
shows two- and three-dimensionalexamples.
346 > Complex Model Construction

A-B

AS

AUB-C

Figure 11.52 Examples of union and difference.

The operation the set of points belonging to both A and


\320\233 Bis
\316\267 B.
These points three
are of
types: those interiorto both A and B, those on
boundary regions of A interior to B, and those on boundary regionsof \320\222
interior to A (see Figure 11.53). Only points 1 and 2 of \316\221
\316\267 in Figure
\316\222

11.53a are important, because they are the bounding points of the active
regions of the bounding curves of A and B. There may be more than two
points of intersectionof the two-dimensional boundary curves, depending
on their shapes.
The order in which we perform combining operations in a Boolean model
is important; for example, in general
AuB-C*A-BuC (11.-59)
However, we can randomly mix the order within a sequence subset where all
the operators are rhe samerype without affecting the resulting shape. Thus,
Boolean Models\342\226\240
347

Figure 11.S3 The intersection operation.

A uB-C=BuA -C (11.60)
or

H-B-C-Du\302\243M-(3uCuO)u\302\243
^-(SuOuC)u\302\243 (11.61)
M-(DuBuC)u\302\243
and so on.To understand order dependence better, see again Figure 11.39.
A geometric-modeling system must accommodate many interesting,
difficult, and potentially pathological situations when evaluating the boundary of
a complexshape. Some of these situations are shown in Figure 11.54. The
union of two disjoint primitives (that is,nonintersecting)appearsin Figure
11.54a; the difference of two disjoint primitivesappearsin Figure 11.54b; the
union of two primitives where one wholly contains the other appears in

Figure 11.54c; the difference of two primitives where the positive primitive
wholly
contains the negative primitive appears in Figure 11.54d;the
difference of two primitives where the negative primitive wholly contains the
positive primitive
appears in Figure 11.54e; the difference of two primitives that
creates two or more new objectsappearsin Figure 11.54f; the union of two
primitives that are tangent appears in Figure 11.54g; and the union of two
primitives that creates inner loops or cavities (bubbles) appearsin Figure
11.54h. Not shown in this figure are the operations^ <jA or A -A Although
the preceding situationsare two-dimensional, each also has a direct three-
dimensional analog.
Somegeneralizations are in order (see Figure 11.55). Modeling systems
use algorithmic equivalents to check the validity of results or to speed
computations. If two closed planar curves intersect, they will intersect at an even
numberof points\342\200\224a tangent condition is not counted as an intersection(sec
Figure 11.55a). If two closed coplanar curves-4 and \320\222
do not intersect, and if
348 > Complex Model Construction

<c) <d) <e)

*/ \\ s
1 I
1 1 1 I
rn
1 1 ' 1

<0 <g) (h)

Figure 11.S4 A variety of Boolean modeling situations.

a point is inside
\320\276\320\275
\320\222 curve A, then curve is
\320\222 entirely inside curve A\342\200\224the

converse is also true (see Figure 11.55b). If a closed curve intersecis the

bounding surface of a three-dimensional shape,it intersect will it at an even


number of points\342\200\224again, tangents are not counted (see Figure 11.55c).If an
unbounded plane intersects
\316\241 the closed bounding surface of a three-
dimensionalshape S, then the intersection will consist of one or more closed
nonintersecting curves (see Figure 11.55d).

Constructive Solid Geometry


Constructivesolid (CSG)
geometry is the name for a set of modeling
methods that defines complex solids as compositions of simpler solids. Boolean
operators are used to create a procedural model of a complex solid.The
model is represented b;y
a binary tree of Boolean operations, where the leaf
nodes are
shapes,
simple sized and positioned in space,
primitive or directed
surfaces (half-spaces), and the branch nodes are the set operators (union,
difference, and intersection). For a good entry into the literature of this
method, see Requicha and Rossignac(1992). They survey and critique the
field of solid modeling,including mathematical foundations, representations,
algorithms, applications, user interfaces, and systems.Requicha,Voelcker,
Boolean Models 349
\342\226\240

and others on the Production Automation Project at the University of

Rochester introduced many of the most importantconceptsof CSG,


includingregularized Boolean operators, primitives, boundary-evaluation
procedures, and point-membership classification. Although we have already
discussed many
of these concepts, wc will review them here in the con text of
CSG. Also see Mortenson(1989),Tilove
(1977),
among many others.

Requicha(19S0) viewed CSG as a generalization of cell decomposition. In

cell decomposition models, we combine individual cells usinga gluing


operation, a limited form of the union operator where we join components at
only perfectly matched faces. Constructive solidgeometry operators are
more versatile, since boundaries of joined components(primitives) need not
match, and interiors need not be disjoint.Furthermore, CSG uses all the reg-

\321\202\321\210.

(\321\201) \316\216/ <d)

Figure 11.SS Four general properties of Boolean models.


350 * Complex Model Construction

ularized Boolean operators\342\200\224union, difference, and intersect\342\200\224so thai we


can add material as well as removeit.
Constructive solid geometry representations of complex solids are ordered
binary trees whose or terminal nodes are either primitives
leaf or

transformations. The nonterminal nodes are either regularized Boolean operatorsor


transformations that operate on their two subnodes (or subsolids).Each
subtree of a node (not a transformation leaf) representsa solidresulting from

combining and transforming operations indicated below it. The root, of


course, represents
the final object. Let us look at a simple example.
In Figure11.56, the leaf nodes
four represent the primitives \316\240]
andn2 and
the translation Ax. The two internal nodes represent results of the operations
- and
\316\2402)
(\316\223\316\244
root node represents
\320\224\320\273\320\2372.\320\242\320\254\320\265 the final object. Note that the
primitive and intermediate objectsare valid bounded solids. Of course,
transformations are not limiLed to rigid motions. The full range of sealing and
symmetry transformations is theoretically possible. S uch transformations are
limited only by the capabilities of subsequentBooleanalgorithms.
If the primitive elements of a modeling system are valid bounded solids
and the combining operators are regularized,then the resulting solid models

\321\203 \320\273
f S >
\320\266 1* /
*>\342\226\240\342\200\224'

\320\247
>
\321\207 _^s
\342\226\240^

i primitive
\320\237

Figure 11.S6 Constructive solid geometry representation.


Boolean Models 351
\342\226\240

are valid and bounded. However, a modeling system is possiblethat allows


user-defined primitives. Here, either the user or the system must verify the
validity of a model.
The most common
approach modeling systems is to offer
in contemporary
a finite set of concise, primitives
compact whose size,shape,position,and
orientation are determined by a small set of user-specifiedparameters.For
example, most systems provide a block-type primitive, for which we can
specify
the length, width, height, and initial position. The modelingsystem
then checks the validity of the parameters (that is, the length, width, and

height values must all be positive real numbers). Other common primitives
are the cylinder, sphere, cone, and torus.These and other examples are
shown in Figure 11.57 with their corresponding parameters (excluding
position and orientation).
The more modeling systems can also generate
sophisticated quasi-

primitives with Sweeping- or extruding-type operators. Even here, the system


controls validity b;y checking input parameters. The number of primitives,
however, is not a sign of the descriptive
power of a modelingsystem. For

example, the block and cylinder alone have the same descriptive power as
the primitive set consisting of the block, cylinder, wedge, fillet, cylindrical
segment, and tetrahedron if both sets have the same combining and
transforming operators.
The primitives themselves are usually represented by the intersection of a
set of curved or planarhalf-spaces. For example, the primitive block is
represented by the regularized intersection of six planar half-spacesand the

cylinder by the intersection of a cylindrical half-spaceand two planar half-


spaces (see Figure 11.58).Only three of the six half-spaces defining the
primitive block are shown in Figure 11.58a. Arrows indicate the directionof the
material and not necessarily the direction of the surface normals.(If normals
are of
part
the representation, they can be assigned during the boundary-
evaluation phase.) Purely graph-based primitives are also possible.
The Booleanoperatorsused by CSG systems are the familiar threesome:
union, difference,and intersect. However, some modelers include other
operators, suchas glue, which is a specialized version of the basic three.The
complementoperator is not used, because in an otherwise regularized
scheme it produces nonregular objects. Also, recall from the discussionofset
theory
and Boolean operators that union and intersect are commutative
(that is, \320\220
\320\270 - \320\222
\320\222 A
\320\270 and \320\220 = \320\222
\320\263\320\273
\320\222 \316\267
A), but the difference operator is
not (that \\s,A -B^B-A).
More powerful modeling systems often generate two representations of a
solid. The first is the procedural or constructive representation exemplified by
a binary tree data structure linking primitives and successive subsolids by
352 > Complex Model Construction

\316\212
\316\227

Cylinder
(\320\254)

|d) Insidefittel

~L\302\267*^
/1
\316\223
\316\227
R>*j

\\

|e) Cylindrical Segment |f) Tetrahedron

|g) Spftere |h) \320\223\320\276\320\273\320\270 |i) Cone

Figure 11.57 Primitive solids.

using combining transformations,


operators andas we just discussed.The
second the is
boundary representation, which describes the faces,edges,and
vertices of the boundary of the sotid. This descriptionitselfhas two forms\342\200\224
a topological representation of the connectivity of the boundary elements

and numerical data describing the shape geometryand position of these


elements. The data defining the object's topology usuallypoint to the geometric
shapedata.
The boundary representation is computed from the constructive repre-
sen \"tation by a set of algorithms called the boundary evaluator.The boundary
Boolean Models 353
\342\226\240

evaluator determines where component faces are truncated and new edges
and vertices are created or deleted. Where boundary elements overlap or
coincide, the evaluator mergestheminto a single element and thus maintains
a consistent, nonredundantdata structurerepresenting a solid's boundary.
New edges are created where surfacesof two combined solids intersect.
The boundary evaluator finds these intersectionsand then determines by
set-membership classification which segments of the intersection are actual

edges of the new solid.The new edges are terminated by new vertices, tha t is,
where the edge intersects a surface. Again, the vertices must be classified.We

c<y<</ Primitive solid

Half-spaces: \316\271\316\257\316\257,^\316\257
!\316\220/

nOi shown

Figure 11.S8 Primitives as intersections of half-spaces.


354 > Complex Model Construction

will look a little deeper into some of these concepts of boundary evaluation,
using the example in Figure 11.59.
First, we intersect each surface of A with each surface of B; this operation
assumes that both surfaces are unbounded. In our example, there are 36
intersection combinations, with only 10 producing intersection edges. (Note
that
simple tests or heuristic techniques can dramatically reducethe number
of candidates for intersection.) We produce edge eab by intersecting face a
and face b, and list the edges produced this way as tentative edges, or /-edges,
for reasons that will soon be apparent. The list of/-edges is a supersetof the
actual edges of the new solid \320\241The intersecting pair of surfaces defining
face a and faceb are unbounded, making /-edge unbounded,
e\342\200\236b also.

Next, we intersect all /-edges with all the faces to produce points
(potentialvertices) that segment the /-edges. Edge enb is divided intothree segmen Is
by two of the verticalplane facesof \320\257We classify these segments as outside,
inside, or on the boundary of C. Only segments on the boundary are real

edges. Doing this in steps, we first classify each /-edge segment with respect
to each
primitive. Then we use the classifications instead of the primitives,
processing them through the model's binary tree and reclassifying them at
each successive node. At the root node, the segments of /-edges on the
boundary are realedgesof \320\241
Weneed which points near each segmentof a/-edgeare inside
to know the
solid are outside. Knowingonly that a segment is on a primitive is
and which
inadequatefor classifying it at higher levels in a model's binary tree. Using a

F ace b

Figure 71.S9 Boundary evaluation.


Boolean Models 355
\342\226\240

neighborhood model, consisting of points dose to the segment,we can


indicate which points are inside and which ones are outsidethe solid. Figure 11.60
shows a neighborhood model of segment2 of e\342\200\236h.
Here, a small disk
symbolizesthe
neighborhood, and the shaded area indicates points insidethe solid.
Our perspective is from an end of the segment. The neighborhood modelis
defined by the faces that bound the model a I this edge. We use neighborhood
models of two primitives (or subsolids) and the corresponding operator to
combinetheseneighborhoods to determine if the segment is outside, inside,
or on the next level of the highest tree. More examples are presentedin
Figure 11.61. We create a neighborhood at any node in the tree by applying the
indicated operator to the neighborhoodsof the two subnodes.
We can now make some generalizations. First,faces of a new solid are a
subset of the facesof the combining solids. We can modify but cannot create
faces,unlesswe admit sweep operators. However, wc can create new edges
and vertices, and we can delete any element type.
We have seen that the procedural representation of a complex solid is

compact and we can generate rapidly.


it This is true of the solid created by

the ROMULUS system (circa 1980s) in Figure 11.62. Extensive


computationsare necessary to generate the boundary representation from a

procedural representation, but the boundary representation contains a wealth of


useful information for computing global properties, graphic display models,
and other applications. Again, the procedural form is an unevalua ted model,
and the boundary form is an evaluated model. The most versatileand
powerful
modeling systems use both.

Neighborhood of segmeni 2 of e^

Figure 11.60 Neighborhood model.


356 > ComplexModel Construction

Side view
\320\233 \320\222

figure 11.61 Combining neighborhood models.

The next section continues the discussionof boundary evaluation. A


review of the sections on set-membershipclassification and Boolean

operators will be helpful.

11.4 BOUNDARY MODELS

The objectiveof a boundary model (or b-rep) is to build a complete


representation of a solid as an organized collection of surfaces.
We ean
represent
a solid as a union of faces (surfaces),bounded by edges (curves), which in
turn are bounded by vertices (points). Faces,then, lie on surfaces; edges lie
on curves; and verticesare at edge endpoints. A boundary model stores the
Boundary Models \342\226\240
357

Cytinde

Cylinder

utavirey view
\320\241
ol chamber

Diiierince1

Spherjcal chamber Cub*

Figure 11.62 A ROMULUS-treated solid.


358 \342\226\240
Complex Model Construction

mathematical data of the surfacegeometry on which the face lies, the curve
geometry on which the edge lies and which hounds the face,and the point
geometry (the coordinates) of the vertices.
A
simple b-rcp method
represents solids by means of a set of plane
polygonal faces
(sometimes called polyhedral or tessellated models).The faceedges
are straight lines. This is obviously a special caseof boundary representation
where curved surfaces and edges are approximatedby planes and straight
lines. We are assured of a closedboundary surface by certain topological
relationships
between the elements of a polyhedral net on the surface.Eachedge
is adjoinedby two and only two faces and vertices, with an equal number of
edges and vertices on the ring surrounding any face. Similarly, an equal
number of edges and faces surround any vertex (with the exception of the apex of
a conical-type surface).Theseconditions rule out open, shell-like surfaces.
Finally, the boundary of a solidmust satisfy certain conditions: It must be
closed, orientable,non-self-intersecting,
bounding,
and connected.

Generalized Concept of a Boundary


To begin the discussionof boundaries of physical objects, let us review
certain concepts. Cartesian space of any dimension can
\316\267 be denoted by
the symbol E\". Thus, ordinary three-dimensionalspace is F?, and two-
dimensional space is E2. Points in E2 are defined by two real numbers, in \302\2433
by three real numbers, and in E\" by real
\316\267 numbers. Coordinate space is
unbounded, because the numbersdefining coordinate points of the space
can take any real values from -\342\204\242
to +\302\253..

A region R\" is a finite, bounded portion of spaceE\". The points that


any
comprise region either regionlie entirely Thus,
within the or on its boundary
the set of pointsdenotedby R can be divided conveniently into two subsets
R, and Rh, where R, is the set of pointsin the interior of a region andi^is the
set of points on its boundary. We write this as

R = [R\342\200\236Rb] (1162)

All physical objects are three-ciimensional regionsR3. The boundary of an


Ry
region is a closed surface. Given any point in
space, it is obviously either
outside the region,in the boundary set Rb, or in the interior set and
R\342\200\236 this

applies to regions of any dimension.


A curve is a one-dimensional region \316\2331.It has two points in the set R[
unlessit is a closed curve; then there are no points in R[.All other points of
the curve are in R],
A surface is a two-dimensional region R2. An ordinary open surface is
always bounded by
a dosed curve. On the surface within this curve may
Boundary Models 359
\342\226\240

occur one to \316\267


nonintcrsecting closed curves or loops. All the points on all
the loops comprise the set R\\, All other points of the curve are in R\\ (see
Figure
11.63).
Now we expand our horizons a little and alsomodify the notation scheme.
-
Let be
R'\"\302\267\" a region of E\", where m - dimensionality of R and \316\267
dimensionality of the space \302\243in which R is located. Note that m <n. Then
=
\316\257\316\223'\"
[\316\222'\"-'-\",.\316\223'\"1 (11.63)

points on the boundary


~'\342\226\240\"
where B\"' is the set of of R\"1\" and is the
\316\223'\302\267\" set of
~yjl
points in the interior of the region. The set B'\" is itself a proper
region
intoa
because it can be decomposed set of points on ils boundary and a set
on its interior. Table \320\246.2defines allowable regions in Of
\302\243?. course, wc can
construct a similar table for
regions in spaces of any dimension. The general
conceptof a boundary is contained in the expression B'\"~'\342\226\240\".

Any point in space has one and only one of the following three properties
with
respect to any region R'\"\":

1. It is inside the region; that is, it is a member of the set /\"'\342\226\240\".

2. It is on the boundary of the region;that is, it is a member of the set S\"'\"'\".


3. Itis outside, not a member of the set R'\"'\".

For a homogeneous region, when m - we


\316\267 can imply by an
/'\"\342\226\240\"
explicit
formulation of B'\"~1\302\267\".Thus, for a homogeneous solid in E3,the explicit
definition of the B13 of the solid is necessaryand sufficient for the definition of
R3i of the solid.B2,i is the outline or boundary surface of the solid,where
pointson the inside (that is. in /\") are implied by B13.

/
1

\320\247-*

~-fi|

Figure 11.63 A plane figure and its boundaries.


360 \342\226\240
Complex Model Construction

Table 11.2 Allowable regions in E3

Order Class & r-O Jmn

RIU Point TTiepoint iiseif No interior points


R13 Curve The iwo endpoinLs The set oF points of the curve
except for the two boundary
points in \320\222\321\216

R2 Surface One or more closed curves ihni The sei of all


points on the surface
define the boundaries oF the except those on the bounding

surface curves in fi'J


R1 Solid One or more closedsurfaces The set of all points within the
thai define the boundaries of solid excepi thoseon the
the soiici bounding surfaces in B2i

B-reps

The boundary of a solid separates pointsinsidefrom points outside the solid.


The boundary is the primary interface between the solid and the
environment.
surrounding Reflection from a solid and, therefore,the solid's
of light
appearance are determined by the surface properties of shape,color,and
texture. Even the bounding surface of transparent objects influenceslight
reflection. The bounding surface of a solid is where it contacts other solids.
Manufacturing processes are concerned with the interaction of the surface

envelope of a tool path with the surface of a part's raw-stock shape.


Boundaryrepresentations (b-reps)ofsolids must satisfy certain conditions.
The conditions for a well-forme-d surface are that it must be closed, or<-
entable, \316\267
on-self-intersecting, bounded, and connected. We have already
distinguished between the boundary of an object (including two-dimensional
objects and objects of arbitrary dimensions) and its interior points, and we
have discusseda boundary evaluator for CSG representations. Thus, we have
most of the ingredientsfor boundary representations.
We will refine our notation of the bounding surface of a solid and then
investigate a specifictype of boundary computationally
representation. It is
convenient for us to segment the surface of a solidinto facesor
boundary
patches, with each face or patch in turn bounded by a set of edges and
vertices. Faces should satisfy the following minimal set of conditions:

1. A finite number of faces defines the boundary of a solid.


2. A face of a solid is a subset of the solid's boundary.
3. The union of all faces of object an defines its boundary.
Boundary Models 361
\342\226\240

4, A face is itself a subset or limitedregion of some more extensive surface.


5. A face must havea finite area and be dimensionally homogeneous.

These conditions are illustratedby the boundary surface of the simple


cube and cylinder in Figure 11.64. Both objects have a finite number of [aces.

The cube's boundary is convenientlysegmented intosix planar faces, defined


by the discontinuities at the edges, and it coincideswith our intuitive notion
of a boundary. The cylinder'sboundary is more arbitrarily segmented, with
the end planar faceshaving the only natural segmentation and the
surface
cylindrical requiring a division into faces in any number of ways. (That is,

assuming segmentation by vertical edges, wc can have any number of faces


of equal or unequalsize.)

<b|

Figure 11.64 Faces defining the boundary of a solid.


362 \342\226\240
Complex Model Construction

No single face of either the cube or the cylinder defines the entire object;
therefore, every face is a subset of the
complete boundary. face is also
Each

a subset or limited(bounded)regionof a more extensive sUrfaee. Thus, each


face of the cube is a boundedregionof an infinite plane, and so are the
circular disks or end faces of the cylinder. Howabout the cylindrical surface
itself? Each face of the cube and cylinderhas a finite area and is dimension-
ally homogeneous. (There areno dangling edges or isolated points.)
We can represent the planar facessimply by their bounding edges.
However, curved faces require more information. For example, the curved face
may be a region of a Bezier surface, where we define this surface by its
characteristic polyhedron, and we similarly define the eUrve on this surface that

delimits the actual face with its characteristic polygon. There are
computational devices or conventions to indicate on which side of an edge or

delimiting curve the face lies. We have investigated several,and Figure 11.65
illustrates one such convention. Here, the face-bounding curve is
in
parameterized a consistent direction so that the vector \316\267
xt points to the face side of
the curve.

The data structure b-repis best describedby a hierarchical


of a graph
listing the faces, that form the boundary of a solid.The
edges, and vertices
complete bounding surface consists of one or more
of a solid shells, depending on
the presence of internal voids, or disconnected islands (if imaginary solids
are admitted). Each shell consists-of one or more faces, where a face is a
connected subset of a surface bounded by a elosed connectedset of edges. An

edge is a segment of a curve bounded by two points, the vertices.


We can Usuallysegment the boundary of an object into faces, edges, and
verticesin an unlimited number of ways, so there is no Unique b-rep
of an

object. As Figure 11.66 shows,there are many


valid boundary representa-

Figure 17.65 Face boundary convention.


Boundary Models 363
\342\226\240

tions for the cube and cylinder. The cylinder to Ihe right of each cube is its
topological equivalent, having the same boundary-segmentation scheme.
Geometricdata for eachobject different, are of course. Strictly speaking, a
cylinder and cube the same topology have regardless of how their bounding
surfaces are segmented. Sometimes, to avoid confusion when diseussing an
object's boundary segmentation, we speak of its topological or
structure.
combinatorial We use the term metric information to mean geometric
information (for example, the coordinates of a point).
In general,topological
structure and metric information arc not
independentof each other. For example,in Figure 11.67, if we make vertex 1 coincide
with vertex 2, then the object is no longer valid. We conclude that a valid
combinatorial or topologicalstructuredoesnot in itself guarantee a valid
object. We must reestablish validity conditions for both metric and
dala.
topological These conditions depend on characteristics of |he representation

\316\252}
\320\273
/\320\243
1

1
L_
j\342\200\224~
>

\320\243 \320\243 \321\203

\320\243 \320\243 \320\243

Figure 11.66 Boundary representations are not unique.


364 \342\226\240
Complex Model Construction

which the construction processes allow (for example,many schemes are lim-
ited to faces defined by three edges).
There are powerful schemes
b-\320\263\320\265\321\200
where validity must be determined by
meansother computing than face, edge, and vertex relationships. Ordinarily.
theseschemesdescribe solid a as the union of very general facesembedded in

extended surfaces, where the solid's edges are definedby the intersections of
these surfaces. These schemes are not true directed half-spaces, since their net
Boolean intersection is usually not related to the object model, and surface
behavior external from the face is not important.
to and remote We can

construct such models in two different ways\342\200\224assemble surfaces to create solid


primitives that then, as in CSG schemes, combine to create more complex
shapes,or omit the primitive phase altogether and construct complex shapes
directlyby assembling and intersecting appropriate surfaces. The procedures
on b-repsare
using Booleanoperations commonly known as boundary
evaluation or merging algorithms. Let us look at some two-andthree-dimensional
examples.

The following statement implies the shape of a complexohjectb:


S=AuB (11.64)
In boundary-representation schemes, this means that the bounding surface
of S consistsofa set of appropria te regions of the bounding surfacesof
primitives A and B. These regions are the active regions,and we denote them hy
and
\316\261\316\273aH. We determine these active regions with two conditions. First, ihe
regions are bounded by the intersection of the boundary surfaces of A and

B; is, bA \316\267
that In the
\320\254\320\222. two-dimensional example in Figure 11.68, the
intersection consists of points 1 and 2, which are obviously independent of
the type of combiningoperation.Second,
we select the active region ofaspe-

/S
\\
'1^-V
f
\\ I
\\ J /
V
\\
\\
/ /\342\226\240

/ f
y/ K.j
' -~

Figure 11.67
Interdependence
of topology
and geometry.
Boundary Models 365
\342\226\240

eific primitive based on its classification being inside,outside,or on the

boundary of other combining primitives.


The combiningsequenceof the three primitives represented by the binary
tree (seeFigure11.69)reduces to the linear sequence A uB-C. Each
primitive is in position performing the Boolean operations (see Figure
for
11.69a). Because a two-dimensional example, the primitives arc closed
this is
parametric curves. The zero point of the parametric variable is shown,along
with an arrow indicating the direction of parameterization.
is tlic positive
Counterclockwise direction of parameterization for curve loops enclosing a
solid region. Curve loopsparameterized clockwise enclose or define holes.
The union of A and Sin two steps is shown in Figure 11.69b. Here we find
the intersection of the two bounding curves of A and B, points uy and u2:

\320\234\320\277\320\254\320\222=[\320\270,,\320\2702] (11.65)

This operation divides both curves into two segments. For the union
operation, the active region of bA is tha t segmen t of bA lying outside B. The active
regionofbBis that
segment of bB lying outside A. To the right in this figure
are active regions on the unit parametric intervalsof the respective
boundarycurves. The active region on bA, denoted aA, consists of two intervals\342\200\224

one from 0 to ulA and the other from to


\302\253M 1. There is one active interval a\342\200\236
on bB\342\200\224from u>B to u2B-
We complete the shape definition by using the results of \320\270
\320\220 and
\320\224
taking
its Boolean difference with \320\241
(see Figure 11.69c). Here we find the active
regionson bCas well as the revised regions on bA and bB. Computing
intersections is, again, the first step. In doing this, we Find only the intersection of
bC with the active regions of bA and bB. For our example,
(bC \316\267
aA) \320\270
(bC \316\267
aH)
=
[\320\2703,\320\270\320\273] (11.66)

Once we find u3 and


proper interval ac on bC and
we
\320\2704, select the
determine the effect on aA and this is a differenceoperation,\320\224\320\276:is
aB. Because that

part of bC that is inside the result of \320\233\320\270 We


\320\222. modify aA and aB by re tain-

Figure11.68 Boundary intersection.


366 \342\226\240
Complex Model Construction

S = [AVB) - \320\241

\321\214\320\274\320\270\320\273|

\"\320\267\321\217
, .

'\342\226\240\320\233\"\320\267\320\273
]

^bS
\",\321\217 \320\272
IS ]

\"\320\260\321\201UJC
1 J

Figure 11.69 Two-dimensional boundary representation.

ing Only
those
portions lying outside C. The effect on aA, aH, and is shown
\321\217\321\201

by the bold sections on the unit parametric intervals at the right in Figure
11.69c. The union of the active intervals after any combining operation
always definesoneor more closed loops.
A similar situation occurs with three-dimensional objects. The active
surface
regions (faces) on all the primitives combined to form a solid will define
Space-Partitioning Models 367
\342\226\240

a closed surface. For example, in Figure 11.70the shape consists of [he union
of a
sphere with a skew-truncated cylinder. We denote the cylinder by and
\316\240
\316\271

[he sphere by fl2. We define the cylinder by the combination of three surfaces
whose intersection curvesoutlineand bound lace regions.The union of these
face regions definesthe boundary surface of the cylinder. Points bound
active regionson curves, and curves bound aetive regions on surfaces. The
active regions of the surfaces in this figure are shaded.We decompose the

primitive Ylt (cylinder) into its constituent surfaces and map each of these
onto a unit square in parameter space. Their respective active regions are
outlined. (Remember that we parameterize loops defining holes in the
clockwise direction.) We sec also the primitive \316\2402
(sphere).
The intersection
of bYlt and is a
closed-space
\320\254\320\2372 curve, which appears twice in the
parametric
space representations. First, the intersection curve is associatedwith fl3 or
surface D; second, it is associated with constituent surface A of \316\240,.In each
case, the curve is a function ol a third parametricvariable t, The functions of
t map the curve into the unit square in u,w parameter space from the unit

interval in f
parameter space.

11.5 SPACE-PARTITIONING MODELS

We can take a commonobject\342\200\224a coffee mug. for example\342\200\224and imagine

decomposing it into separate pieces so that each piece is easier to describe


than the original (see Figure11.71). As the first step, wc detach the handle
from the mug.This seemsnatural and topologically reasonable, because
there are then two parts, each with a simply-connected topology, instead of
onemultiply connected object. Next, we detach the bottom of the mug.Now
there are two parts with a simply connected topology and one with a
multiply connected topology. If necessary, we continue to decompose any or all ol
these parts until wc meet some predetermined describability criterion. This

process is known as cell decomposition.Wc can represent any solid as the


sum or union of a set of cells into which it is divided.Cell
decomposition is
useful where the total object may not be amenableto representation,but its
cellsare. There are many ways of decomposing a solid into constituentcells;
none is unique, but all are unambiguous.

Spatial-occupancy enumerationis a specialcaseof celldecomposition


where cells are cubical in shape and located in a fixedspatialgrid.As the size
of the cube decreases, this method approaches the representation
of a solid

body as a set of contiguous points in space. To define a solid using spatial-


occupancy
enumeration requires a convenient way to represent this set of
cubical cells. One way is simply to list the coordinates of the centers of the
368 \342\226\240
Complex Model Construction

Figure 11.70 Three-dimensional boundary representation.


Space-Partitioning Models 369
\342\226\240

Figure 11.71 Cell decomposition example.

cells; a solid objectis thus a set of adjacent cells. Cell size determines the
maximum resolution of the model.
Two advantages of representinga solidby spatial arrays are often cited: It
is easy to accessa given point, and
spatial uniqueness There are
is assured.
alsodisadvantages: There is no explicit relationship between the parts of an
object, and such schemes usually demand large amounts of data storage.
A ceil in a spatial array is either occupiedby a piece of the solid or it is not.
A ceil can be marked with the binary 1 or 0 to indicate spatialoccupancy.
Early schemes of this type were highly redundant, becauseall cellsof an
object were marked, even though it was highly likely that any particular cells
had the samestateas cellsadjacent to it. Only close to an object's boundary
do chances increase for a change of state.
Quadtrees and their three-dimensional analogs, octrees, suggest a way
to

use spatial-occupancy enumeration more efficiently. Let us look at quadtrees


first. The quadtree representation of a two-dimensional object is basedon
recursive subdivision of a square array into quadrants.Eachnoderepresents
a square region on a plane. In computer-graphic applications,
this may be the
370 \342\226\240
Complex Model Construction

screen plane of the display. Whereas each node a binary tree has two of
descendants, each node of a quadtree has four.

In Figure 11.72, we superimpose a square on an arbitrary two-dimensional

object. If the object does not uniformly cover the square, then we subdivide
the square into four equal quadrants. If any of the resulting quadrants is full
or empty, then we do not need to subdivide it further, which is true for
quadrant 3 in this example. If any of the resultingquadrants is partially full, we
subdivide it again into quadrants. We continue to subdivide partially full

quadrants until the resulting regions are either full or empty or until wc
reach some predeterminedlevelof resolution. We can arbitrarily declare the
partially full quadrants as either full or a
empty according to conventionwe
establish.

The node of the quadtree representsthe entire


root array. It is the universe
element, and leafnodes represent regions that require no further subdivision.
Such regionshave standard sizes and positions related to powers of 2.The
number of nested subdivisions from a given node to the universe element
determines the node's level in the quadtree and also the size of the region
represented by the node. If the height of the tree is n, then the maximum

potential array size is 2\" \317\2072\". For the example in Figure 11.72, \316\267 ~ 3, and

because of the efficiencies of quadtree representation, there are only 33


nodes instead of 64 (that is, 23 \317\207 23). The resolution necessary to accurately
represent an object dependson the difference in size of gross and fine
features of the object and curvature of the boundary.Thegreaterthe magnitude
of n, the greater the resolution. Reducingan object model into a quadtree
representation is quadtreeencoding.
Octree encoding is an extension into three dimensions of qu adtree
encoding. Meagher (1982b) developed a sol id-mo deling method basedon octree
encoding for the high-speed manipulation, analysis, and computer-graphic
display
of solid objects. His approach uses a spatially presorted8-ary
hierarchical tree structure, the octree, to represent solids, ft also uses algorithms
that grow only linearly with object complexity by takingadvantage of the
inherent data presorting in the tree structure. The octree encoding of a
model proceedssimilarly to quadtree encoding. Here we recursively
subdivide a cubical region into octants or eight cubicalregions(seeFigure |1.73).
Each node of an octree that is not a leaf node has eight descendants.If the

height
of the tree is n, then the maximum potentialarray size is 2\" 2\".
2\" \317\207
\317\207

For the example in the = 3.


\316\267
figure,
Octree and quadtree encoding schemes suggest many interesting
possibilitiesfor representing, analyzing, and displacing complex solid objects.All
computations on these models are based on integer arithmetic,making
analysis algorithms fast and amenable to parallel processing.Meagherand
1\320\233
\320\263\320\273
r*j
\320\276
fl-
\320\263\320\273
\320\263\320\276 ~. \320\223\321\207
\320\263\320\276
(\320\234
\317\203>
.; \320\276
tD \320\241\321\2071
\320\223\321\207
\320\233
\" \321\201\320\276 \320\223\321\207
\342\226\240%.
1\320\233
\320\223\321\207
~ *\320\242
\320\240^ \320\277
\320\223\320\2471

\316\261.
\" \317\204 (0 \320\223\320\236 \342\226\240\320\270
\321\212_
\317\211
\317\211
\342\226\240*-\302\267
\317\207\316\271
ta

\317\203

\320\263\321\207
\320\263\302\273

\316\277\316\271
372 \342\226\240
Complex Model Construction

Figure 11.73 Octree representation.

others have demonstrated algorithms that translate, rotate, and scale octree
models; that combine them using Boolean operators; and that compute
geometric properties
and
perform interference analysis. These schemes, and
variations on them, offer hcuristi-c tools for rapid preprocessing or sorting
modelsbasedonothertechniques.
RELATIONAL GEOMETRIC
SYNTHESIS

Relational
geometric synthesis is anew approach to geomemc modelingand
computer-aided geometric design, it offers an innovative, object oriented,
relationally structured environment that greatly improves the efficiency of
the design processand resolves many long-standing problems. This chapter
begins with an introduction to the characteristics of relational geometric
synthesis, followed by
a discussion of relational model structure,model
evaluation, serialization, and relational entities. A detailed example and several
applications
are
presented.This chapter concludes with a discussion of open
issues in relational geometry.
This chapter was co-authored by Dr.John S.Letcher,Jr.,principal
developer
of relational geometric synthesis, and his associates D. MichaelShook,
Seth H. Porter, and George A. Dickson. They can be contacted at: Aero-
Hydro Inc., P.O. Box 684, Southwest Harbor,ME 04679, (207) 244-7347,
http://www.aero hydro, com.

12.1 INTRODUCTION
Relationalgeometric synthesis (RGS)\342\200\224or relational geometry (KG)\342\200\224is an

object-oriented framework for computer-aided geometric design. RG


provides a new structure for CAD programs and CAD models that solves
important outstanding problems in geometricmodeling and confers
profound benefits in practical design. Compared with conventional CAD, RG is
characterized by:

373
374 Relational
\342\226\240 Geometric Synthesis

1. A synthetic design approach,building Up from simpler to more complex


geometry\342\200\224from points, to curves, to surfaces\342\200\224through sequential
constructions.

2. Representation and retention of a large variety of constructive

relationships
between the geometric elements (objects) comprising a geometric
model.
3. Supportof a rich and easily extensible set of methods for object

construction.

4. Methods for construction of point, curve, and surfaceobjectsexplicitly


and durably embedded in other objects; for example, points and curves

embedded in surfaces.
5. Methods for construction of accurateand durable joins between surface
objects without performing surface-surfaceintersections.
6. Facility in the construction of para metrically variable modelsinvolving
complex, free-form and sculptured surfaces combined with durable
topology.
7. Compact serialization and storage of complex geometries, in the textual
form of a geometric-representation
language.

These characteristics lead to many advantageous applications for


relational geometry throughout computer-aided design. In particular, its facility
for generating parametrically varied geometries in forms suitable for visual
evaluation and/or engineering analysis enables an unprecedented potential
for refinement and
optimization
of designs.
In the balance of this Introduction, we briefly amplify each of these
characteristics.

5yn thesis

The to modeling builds upward


RG approach from
simpler to more complex

objects. Point objectsare the foundation for any model. Curves are typically
constructedfrom points in a variety of ways or, in some cases, from other
curves.Surfacesare typically
constructed from curves in a variety of ways or,

in some cases, from other surfaces. Further geometrycan be constructed on


and from surfaces.

Capture of Relationships
The conventional CAD design process requires creation
\316\220\316\267\316\265 of a sequence of
geometric objects by execution of user commands. Almost every object
added to a CAD model is created in some definite relationship to one or
Introduction 375
\342\226\240

more objects already model; for example,size,position.shape,


in the and

orientation. Most of theserelationships exist only in the mind of the designer;


but even in the cases where the intended relationshipis explicitly
communicatedto and utilized by the CAD program, as soonas the new object is
constructed the relationship information is discarded. Thus, a conventional
CAD model consistsof a collection of essentially independent, unrelated,
self-contained objects.
If the designer had perfect foresight and could envision the completed
modeland allits properties from the outset of the design, this loss of
relationship
information be of little consequence. However, it is well
might
known designthat a simple forward process.It is far more often an
is seldom
iterative process: Design is carriedforward to some stage, then analyzed and
evaluated; problemsare identified; the designer then has to retreat to some
earlier stage,change some elements, and work forward again. It is typical
that many iterative cycles are required, depending on the skills of the

designer, the difficulty of the designspecifications, and whatever constraints


and optimization objectives may be present. In each forward stage, the
designer will have to repeat many previously performed operations
(updating),
in order to restore relationships disrupted by the revision of earlier
designelements.
Revision oi existing design to meet new requirements
a previously is a
common situation similar problems are encountered.A change
in which that
alters an early stage of the designrequiresat least one forward pass through
all the subsequent design stages to restore disrupted relationships. The

updating process can be very difficult, error-prone, and time-consuming\342\200\224

particularly if the relationships, and the sequence of designstagesto achieve


them, have been lost.
RG provides a comprehensive frameworkfor capturing,storing,and
utilizing relationships Each relationship expresses a
between objects.
constructive
dependency object upon another
of one or, conversely,the supportof the
second object by the first. Since some objectsmay depend on two or more
other objects, and someobjects may support two or more other objects, the
overall structureof dependencies in a relational model is that of a relation or
directed graph.

The principal advantage to capturing and maintaining interobject


relationships
is that affected objects can be identified
the set of and

automaticallyupdated in appropriate sequence following a change in any object,


preserving all captured relationships. A qualitative property or quantitative
relationship that is so captured and maintained is referred to as a durable
property of the RG model.
376 Relational
\342\226\240 Geometric Synthesis

Rich and Extensible Entity 5et


RG is also characterized byset of geometric object classes{entities).
a rich
each of which represents more
one or distinct constructionsofa singleobject
from a set of other objects. An RG object instantiated from one of these
classesknows how it was constructed, and from what other objects; this
information is part of its stored data. RG providesa unified framework on
which many useful methods of construction of points,curves, surfaces, and
solid objects can coexist and complementone another.
In contrast to the restrictiveness and homogeneity of NURBS-hasedmod-
eling,
in which all geometry is fundamentally represented as ratiosof B-Spline
tensor
products, RG is a heterogeneous, inclusive, pluralistic framework.The
mostfundamentaJ representation
of an RG object is simply a
precise
statement of its method of construction plus thosedata values requiredto complete
the construction, including the identities of any supporting objects.Many
different methods of construction can be supported within RG, including
NURBS.This pluralism has a cost in complexity, in two important
ways:

1. The entitiesall require different types and quantities of dsta.


2. Essentially,each entity requiresa different cvaluator procedure.

However, the additional complexityis found to be manageable through


object-oriented program design, and it does confer profound advantages in

modeling flexibility and accuracy.

Embedded Geometry
Many ofthe entitiesin RG provide constructions are explicitly
of objects that
embedded in other objects of higher or same dimensionality,for example:

Beads\342\200\224points embedded in a curve


Magnets\342\200\224points embedded in a surface
Snakes\342\200\224curves embedded in a surface

The embedding of an object is durable a qualitative property captured


through a dependency relationshipof the embedded object (guest) on the
supporting object (host).
AccurateJoinsbetween5urfaces
In conventional solid modeling, intersections between surfaces
surface and
play
a prominent troublesome role. Typically, when two surfaces
and often
must share a commonedgeeach of the surfaces is made arbitrarily larger
Introduction 377
\342\226\240

than necessary so that they deliberately intersect;the solution for the curve
of intersection between themis then determined, and the unwanted portions
of each surfacea re trimmed off a long the intersection.This process has many
difficulties and pitfalls, which for much of the complexity,slow
account
response, and
frequent
lack found in these programs.
of robustness
RG providesseveralrelatively efficient and robust ways to construct
multiple surface objects having precise, durable joins. Often these procedures
are the inverse of the conventional process; that is, first design the
intersection, then build the adjoining surface or surfaces to conformto it.These
methods do not solve all surface-to-surface
joining problems,so projection-
and intersection-based methods are also supported, but they are neededfor
at mosta small percentage of the junctions in typical RG models.

ParametricModeling
Typically,
RG models are constructed so as to have
many durable properties,
combined with many parametric degrees of freedom.Thedurableproperties
result from captured relationships and embedding.They can be qualitative,
topologicalpropertiesor metrical quantitative, properties, or a combination.
The parametric degrees of freedom often can be expressed as coordinate
values, parameter values,or coordinate and parameter offsets of various
point objects which are acting as supports for other geometry. This tends to
permit visual,interactivevariations dragging by point objects. An alternative
is to support numeric variables expressions
and as relational objects on
which geometric elementscan depend. either In case, the ability at a
to work
high level with
parametrically variable models enables rapid refinement and
of
optimization designs, as as adaptation well and customization of existing
designs to satisfy new requirements.

Compact Storage
The serialization of an RG model expresses the complete model structure,
includinginterobject relationships, in an extremely compact form. In part,
the compactnessresults from the use of references to objects to eliminate
redundsneies in the representation. More profoundly, the compactness
results from the expressionofthe modelin terms of constructive
relationships and prescriptions\342\200\224a sort of genetic code for recreating the modelfrom
scratch\342\200\224rather than as all the elaborated detail.

Related Developments
Sutherland's Sketchpad project (Sutherland [1963]) utilized stored references
to point objectsto establishdurable connections between lines. Reference to
378 \342\226\240
Relational Geometric Synthesis

objects by name or address, and geometry languages, were also used in the
APT machine-tool programming system and in Armit's Multipatch, Multiob-
ject, ICON, and TAG projects (Armit [1982]). Some elements of RG may
underlie Boeing'saerodynamics
grid and paneling system (AGPS), a
proprietary grid generation system (Sneppand pomeroy [1987]). AGPS has at least
some entities which reference other objects for their data, achievingat least
one level of automatic Updating. Snyder (1992) presents a procedural-
languageapproachto CAD which
supports rapid regeneration following
changes in
underlying objects. Each of these systems a Howsa scriptto be
executed in order to regenerate a complex
geometry with parametric variations.
Further, there of
are some
examples storing a multilevel r elational
structure of
interobject dependencies, permitting selective updates of only the
portionsofthe modelwhich are actually affected by a change. Armit (J982)
discussesthis capability in a surface modeler,TAG. PADL-2 is a CSG solid-
modeling framework with this feature (Brown [1982]).Gossard,et al. (1988)
describe a dimension-drivenpolygonalsolidmodeler.
Constraint-based and variationalmodelingaccomplish some of the
Updatingcapabilities of RG, but we find their flavor to be quite different from RG,
and their relevanceto free-form three-dimensional modeling to be

apparently relatively limited.

MultiSurf and RGKemel


MultiSurf is a Windows-based relational surfacemodeler available from
Aero Hydro, Inc. The working demo version of MultiSurf, availa blc free from
the address or web site noted previously, will permit the interested reader to
learn about relational geometry in far greater depth than the subjectcan be
treated in this chapter. RGKernel, the \320\241
library providing the data storage,
maintenance, serialization, and geometry evaluation functions of MultiSurf,
is also available from AeroHydro, Inc.as a software component. It is noted
that the novel features of RGS are the subject of patents and patent
applications in several countries.

12.2 RELATIONAL MODEL STRUCTURE

Object versus Entity

Any geometric-modeling program must provide means of creating objects


from several object as point, line,polyline,
types or classes, such circular arc,
Bezier patch, rectangular solid. CAD nomenclature tends to apply the words
object and entity more or less interchangeably to both the abstract objectclass
Relational Model Structure 379
\342\226\240

and the objects instantiated from it. In RG we experience the need to


differentiate these concepts, and to avoid confusion wc recommendadherenceto
the following convention;

The abstract object class is called an entity.


The instantiated object is called an object.

A suggestive way to think of the entity is as a blank form for specifying an


object of a particular class.An object by filling in all required fields
is created
on oneof these forms. From the programmer's point of view, the entity is an
abstractdata type, plus one or more methods for utilizing the data; an object
is allocated
the and filled-in data structure.
In RG, one of the data fieldsin any entity is for an object naive. Within a

model, every object has a unique object name.Object names have utility in

identifying objects on the screen, and for selectingobjects editing,


for

interrogation, and export operations. However, the more critical and


use
characteristic of object names in RG is for specifying interob/ect dependencies. Most
RG entities represent the construction of an object from one or moreother

objects (supports); the identity of the supports is expressedby use of their


names.

Example: RelPoint
A Relative Point object is instantiated from the RelPoint entity by filling in
the name of a basis-point object, and the x,y,z coordinate offsets from the
basis point.

Example: BCurve

A B-SpHne object is a parametric B-Splinecurve


Curve of specified degree
made ordered set of controlpoints(vertices).
from an The set of supporting

points is specified by an ordered list of object names.

Example: CLoftSurf
A
C-Lofted Surface object is a parametric surface that interpolates a set of
curve objects in sequence. The set of supporting
curves is specified by an
ordered list of objectnames.

Entity Classes and Subclasses

Most RG entities can be arranged into a class hierarchy, primarily on the


basis of dimensionalityand embedding, as in Figure 12.1. The parent classis
380 Relational
\342\226\240 Geometric Synthesis

RGObject; the member data at this levelincludean object name, an entity


code, and such commonattributesas colorand visibility codes. From
RGObject, the hierarchy is in descending order of dimensionality:
RGSolidsare parametric solids in three dimensions, =
\317\207
x(u,y,w).
RGSurfaccs are parametric surfaces in three-dimensions,\317\207
=
x(\302\253,v).

RGCurvesare parametric curves in three-dimensions, \317\207


=x(f).
RGSnakes are parametric curves embedded in an RGSurface.
RGPoints are points in three-dimensions
RGBeads are points embedded in an RGCurve.
RGMagnets are points embedded in an RGSurface.
RGRingsarepointsembedded in an RGSnake.

The inheritance diagrammed in Figure 12.1 primarily indicates the existence


of methods permitting objects of one class serve to as degenerate instances
of another class. For example,any RGPoint, or any object subclassed from
RGPoint, can be evaluated as a degenerate RGCurve; it just returns the
samex,y,z coordinatesfor any value of the parameter /. (The converse is not
true; evaluating an RGCurve as an RGPoint would not make sense.)
Similarly, any RGMagnet be evaluated can as a degenerate RGSnake. As
another example, an RGSnake requires a method to be evaluated as an
RGCurve, returning x,y,z coordinates for given parameter value /; but it
does not make sense to try to evaluate an RGCurve a s an RGSnake,sincean
RGCurve in general does no! Jie in any surface.
There are some problems with the hierarchy in Figure 12.1. Clearly, it is
rife with multiple inheritance which, although supported to somedegreein
many object-oriented programming systems, is nonetheless a rich sourceof
conceptual implementational
and difficulties Embedding of solids, surfaces,
curves, and points in solids presents more complex possibilities not repre-
sentablc in the diagram.
There are other entity classes that do not fit into these dimensionality/
embedding classifieslionsRGPiauesare infinite planes specified in several
ways and used in a variety of constructions. RGFrames are local Cartesian
coordinate frames.RGGraphsarenongeometric entities that provide a
uniform way to specify univariate functions, used to enhancethe modeling
flexibility
of many entities RGRelabels, also nongeometric entities, provide a
versatile way to
reparameterizc curves and surfaces.
Entities can also be classified as direct Objects instantiatedversus iterative.
from a direct entity can be evaluated exactly and uniquely in a finite number

of operations (assuming exact arithmetic, and that the


supports can be evaJu-
Relational Model Structure \342\226\240
381

RGObject

Contours (5) Solid (0) Plane (5) Frame (2)

Surface (24)

Line
(1H Curve (17) *- SubSurf (1)

SubCurve (2) Point (15) Snake(15)

Bead
(3) Magnet (4) SubSnake (1)

Ring (3)
Figure 12.1 Class hierarchy of relational entities. Numbersin parentheses
represent the current population of each class.
382 Relational
\342\226\240 Geometric Synthesis

ated exactly). AnAbsMagnetisa simple example;it just requires the


surface
supporting evaluated to be at a single specifiedu,v position. Iterative entities
require a search or iterative solution. For example, IntMagnetis
an a point on
a surface at its intersectionwith a curve; locating it requires solution of three
simultaneous(usually nonlinear) equations in the three unknowns t.u.v.The
iterativesolutionmay require many surface and curve evaluations; may fail to
exist;may fail to converge; may have multiple solutions; may require provision
of starting va lues for the unknowns; and may have limited accuracy becauseof
truncationerrors.Direct entities are highly preferred for their simplicity,
efficiency, accuracy, and robustness, bu t itera tivc entities provide sometimes
necessary constructions available
not through entities.
the direct
A recently developed class of entity is designated as procedural.
Essentially, procedural entities permit the construction of a curve, surface,or solid
by constructing one typical point, curve, or surface using any sequence or
combination of point, curve, or surface objects, then automating the
repetition of that construction over a one-, two-, or three-dimensional parametric

domain. As essentially user-defined entities, the procedural entities vastly

broaden the flexibility of relational modeling.

Model Relation and Digraph


A model
logical consists of a set \320\236
of objects ou o2,... oiV, and a set R (the
relation) of constructive dependencyrelationships r,,ri,. . . r.w.each
relationshipcomprising
an ordered pair (<?,,oy) of elements of \320\236
in the order

(support, dependent). A relation can be depicted by a directed graph (digraph) in

which the nodes are objects, and each edgeis a directed relationship between
two objects. 'ITie in-degree of an object is the number of its supports; the out-
degreeis the number of its dependents.
We speak of the set of all objectsto which there is a downward path
through the digraph as the descendants of the object, and the set of all objects
to which there is an upward path as the object's ancestors.
Figure 12.2 the digraphs three simple relational models. Figure
shows for
12.2aconsistsofjust two objects, an absolute point and a relative point.(An
absolute point has no supports; its data is simply its x,y,z coordinates, plus
some attributes commonto allRGPoints.) Figure
12.2b consists of five objects:
four absolute points and a BCurvemadefrom them. Figure 12.2c also consists
of five objects and is similar to Figure 12.2b,in fact may form the identical
absolute configuration. However, in the case of Figure 12.2c, three of the
points are RelPbints, relative to the provides a quite
AbsPoint PO. This
different relational structure, with this possibly useful property: If PO is moved, the
curve will
\320\222\320\241 translate to a new position, while retaining its originalshape.
Model Evaluation 383
\342\226\240

RelPointPI PI RelPoint PI
\320\236 P3 RelPoint P3

\317\203

AbsPoini PO P2 RelPoimP2

(a)

Figure 12.2 Digraphs for three simple relational models:{a) Two objects, an
absolute point and a relative poirkt;
Five
{\302\243>) objects, four absolute points and
a BCurve made from them; objects, one absolutepoint,
(c) five three relative
points, and a BCurve made from the four points.

As cyclic dependencies evidently lead to infinite recursion and self-


contradictory or indeterminate models, they are currently forbidden; thai is.
the digraphis requiredtobe acyclic.

12.3 MODEL EVALUATION

The logical model is insufficient for display, interrogation, and


purposes.
manufacturing Although it presumably contains a fundamentally exact and
complete specification geometric configuration, the logical
of a desired
model contains little your teeth into. Forexample,
thitt you can get only the
AbsPoint objects are available in a form suitable for immediatedisplay.The
actual configuration of any objects having one or more supportsis only
implied.The evaluation of absolute geometric representations\342\200\224explicit
representations in terms of x,y.z coordinates\342\200\224from the corresponding logical
objects is the principal computationaltask of RG.
384 Relational
\342\226\240 Geometric Synthesis

Object Evaluation
What constitutes the evaluation of an object dependsupon the object's class
and may be implementation-dependent. Each objectcontains a state

variable evaluated indicating whether its evaluation is currently valid. An


evaluated object contains data structures holding some evaluated form
appropriate to its entity class. For example, the evaluation of any RGPoint
object will include the x,y,z coordinates of the point. An object in the
RGBead or RGRing class will additionally include the object's t parameter
location on the supporting curve; an RGMagnetor RGRing will additionally
include the object's \302\253,v
parameter location on the supporting surface. The
evaluation of an RGCurve might be a uniform tabulation (sampling) of
points from the curve; the evaluation be
of an RGSurface might the

tabulation of a topologically rectangular mesh of points from the surface.


Derivativevalues could also be present in curve and surfaceevaluations.
The evaluation of any object can be immediately utilized for display

purposes
and for export object data in various formats.
of absolute
Variouserrorconditionscan arise during the evaluation of an object; for
the most part, these are entity-specific. For example,the evaluation of an
RGPIane class object consists oi a pointin the plane and a unit normal
vector. One RGPIane class entity is a Plane3\342\200\224the plane determined by three
supporting points. If these three pointshappen to be collinear. they fail to
determine a plane. Another possibilityis that evaluation of one or more of
the supports fails; for example, one of the supporting points may be an Int-
Magnet that failed to converge. Such failures must be detected and
handled\342\200\224the Plane3 object must not be marked as evaluateduntil the
problem
is corrected\342\200\224or nonsense will ensue (assuming some other object depends
on the
plane).

Program structure

Although relational geometry is presented as an object-oriented

framework\342\200\224suggesting the particular appropriateness of implementation in an

object-oriented language\342\200\224in fact, to date RGKernel is implemented


entirely in ANSI \320\241
The between an application
principal interface requiring
absolute geometricdsta and the RGKernel is a set oi classevalualors, one

for each entity class. One argument for


any class evaluator is the object to
cvalua te. The otherarguments depend on the class:

RGPoint: out-\316\247,\316\245,\316\226

RGBead: out- identity of host curve; t


parameter
Model Evaluation 385
\342\226\240

RGMagnet: out-identity of host surface: u,v parameters

RGRing: out- identities of host snake and surface;t.u.v parameters

RGLine: out- X.Y.Z of one point; unit tangent vector

RGCurve: in- vector of t


parameter
values

out- tabulation of sampled points: \316\247,\316\245,\316\226


RGSnake: in- vector of t
parameter
va lues

out- identity of host surface;tabulation of u.v parameters


RGSurface: in- vector of u paramc ter values; vector of \316\275
parameter
values

out- tabulation of sampled points: \316\247,\316\245,\316\226


RGSolid:in- vector of u values; ve-ctor of \316\275
values; vector of w values
out- tabulation of sampled points:\316\247,\316\245,\316\226
RGPlane: of
out-\316\247,\316\245,\316\226 one point-; unit normal
RGFrame: out- transformationmatrix

The return value of a primary math routine is an error codeif an error

occurs; else 0.
ITie essential structure of a classe-valuator is simply (pseudo-C):

int RGClass ( object, other arguments)


[

int err = 0;

if( object->entity is not in this class) return 1;


if( objcct->evaluated && LookUpEnabled)
fill
output arguments from lookup table;
else
5witch(object->entity)
[

case ENTITY1: err = Entityl( object, other arguments);


break;
case ENTITY2: err = Entity2(
object, other arguments);
break;

case ENTITYN: err =


EntityN( object, other arguments):
break;

return err;
386 Relational
\342\226\240 Geometric Synthesis

In the above pseudocode, Entityl( ), Entity2( ), and so on are cvaluator


procedures for the individual entities in the class. If, as in almostall cases,the
entity has supports, the entity evaluator will have an equivalentnumber of
classcvaluator calls to evaluate them. For example, the cvaluator for a
BCurve will first iterate through its pointsupports, calling the RGPoint class
evaluator for each of them and storing the resulting control-point
coordinates. Then it can iterate through its input list of /parameter values,
evaluating each output point as the inner product of the control points with
B-Spline basis functions.
Thus, the addition of a new entity to an existing class requires only:

1. Creationof the cvaluator procedure for this entity


2. Anew casein the class evaluator
3. Addition of user interface code for creationand editing

Only linear effort is required to indefinitely extend the supported entity set.

Recursive Model Evaluation


Provided that the evaluator functions are all programmed recursively (i.e..
reentrant calls arc
permitted), program structure previously outlined
the
(with LookupEnabled
=
FALSE) can recursively evaluate any valid model
(or identify the errors in a model that is incompletely valid).Accuracy of

recursive evaluation is limited only by roundoff, and by controllable


in the case of iterative entities. However,it is
truncation error
apparentthat when
there are deep levels of dependency many function calls are required,

possiblyrepeating some evaluations many times, so the model evaluationprocess


may be unacceptablv slow.

Table Lookup
An alternative to recursive evaluation,includedin the previous structure
when LookupEnabled is TRUE, is to utilize the evaluation of an object as a
lookup table. Table lookupshort-circuits the recursion and prevents
duplicate evaluations, enormously accelerating the evaluation process. In the case
of curves, surfaces, and solids, some form of interpolation is needed,as the

tabulated sampling will generally not include the particular parameter


values that will be
required in later evaluations. Truncation errors generally will

be present, and will accumulate to a degree that is difficult to predict and


monitor. Nevertheless, in our experienceinterpolation-based evaluation can

provide ample accuracy for visual displays during interactive modeling

phases, and in most cases for the output of actualmanufacturing data.


Serialization 387
\342\226\240

Updating

Part of the data stored in an objectis an ordered Est of its supports, as


required for the model evaluation process previously outlined. This is the
primary representationof the model relation, For efficient updating, it is also
expedient to store and maintain a list of the objeet's dependents. When an
object is changedin an editing operation, it can notify its dependents, they
can notify their dependents, and so on, in a recursive processthat finally
invalidates all descendajits. (Invalidation is resetting the evaluateduag.)
During the evaluation of an object, as noted earlier,eachofits supports
must be evaluated. If a support is marked as invalid, it will be evaluated
before a value is returned.Thus, evaluating any invalidated object will cause
any of its ancestors that are invalid to reevaluate themselves, recursively,
in

the correct sequence to update this particularobject.No object needs to be


evaluated more than once in updating the entire model.

12.4 SERIALIZATION

File storage of a relational mode I requires a serialization of the object data


for all of the model's objects.Besidesthe object data, the file must convey
any model-level information.This canincludea language version, model
version, symmetry flags, identifica tion of units, model-levelcomments, and

so on.
The body of the file is a sequenceof objects.Each entity has a method for
writing its data a
to string. An object pointer, that is, the identity of a support,
is output as the name of the referenced object. It is not necessary to output
the object's list of dependents, as this information can easily be
reconstructed when the file is read back in.
The formatfor an object string is essentially as follows:

Entity-name object-name color visibility divisions [other object attributes]/


(entity-specific data);
Entity-name: A keyword identifying the entity; for example, Abs-
Point,RelPoint, BCurve.

object-name: A name for the object.


color: An integer color code for displaying the object-
visibility: An integer code controlling aspects of the object's
display appearance.

divisions: Specifies the number of divisions and subdivisionsfor


tabulation and display.
388 Relational
\342\226\240 Geometric Synthesis

other object attributes: Include optionallayer,unit weight, object


remark.
/: Terminates the optional attributes.
entity-specificdata: The sequenceof integer, float, and

object
supporting names required to instantiate the object; for example:
AbsPoint object-name /\316\247\316\245
\316\226;

RelPoint object-name /point dX dY dZ;


BCurve object-name / relabel type (point] point2 pointN j;
A variable-length list of supports, suchas the control points of a BCurve,
is enclosed in braces.

The serialization relational model can be viewed


of a as a geometry-

representation language. Model files canbe created by typing in this language,


or can be automatically generated and modified by other programs, so longas
correctsyntax is observed. Entity names are commands to create, that is, calls
to predefined procedures. The object's data values are like Ihe parameters
passed to the procedure. Object names are analogous to variables.Multisurf
functions as an interactiveintcrpreler/compiler for the model langnage.
The model language docs not currently support
such typical program-
ming-language constructs as subroutines,branching, and iterators, but these
could be fruitful additions for the future.
Early versions of MulliSurf required top-down order in the model file
(i.e., an object had to be definedbeforeit could be used as a support for
another object)as well as in the internal data storage. This conditionwas
difficult to maintain when editing the model file manually It was later found lo
require only a modest amount of bookkeeping during file read-in lo
dispense with top-down order.

12.5 RELATIONAL \316\225\316\235\316\244\316\223\316\240\316\2255

In this section we specify for concrcteness' sake about 80 relational entities

representing all object classes. (This is about 75 percent


of the current Mul-
tiSurf/ RGKernel entity population.)
The entities arc presented in the form of a template for their model file

descriptions. Some shorthand notation used in these templates requires


explanation:

point, curve, surface, and so on: Entity class names signify the name of an
object of the specifiedclass.
Relational Bitities 389
\342\226\240

{ .... ): Braces indicate an arbitrary -length list of the indicated objects;


counted 1 to N.
: Ellipsis indicates
position
of some attributes that are class-specific\342\200\224

color, visibility, divisions for tabulation and display\342\200\224plus


some optional
attributes layer and unit weight.
such as
mirror: A plane, line, or point object usedfor mirrorimaging
mirror/surface: For projection, a two-parameter family of projection
lines;radials through a point, normals to a plane, line,or surface. For

intersection, the dual one-parameter family of implicit surfaces; spheres


around a point, cylinders around a line, planes parallel to a plane, or
surfaces parallel to a surface.
bead/curve: Either a bead or a curve.Thisspecifies a curve, and optionally
a point on it, which is usually used as the starting value for a fixed-point
iteration. Similarly ring/snake and magnet/surface.
knotlist: A knot vector object usedfor NURBS entities.

Three-Dimensional Points

AbsPoint name ..../XY Z;


RelPoint name .... /point dX dY dZ;
PolarRelPt name ..../pointlat Jon radius;

In the Polar Relative Point, the distance and direction from poinl are
specified in terms of spherical polar coordinates.

ProjPointname ..../pointmirror;
The Projected Point is located at the projection of point upon the mirror.

MirrPoint name ..../point mirror,

The Mirror Pointis locatedat the mirror image of poinl with respect to the
mirror, that is. two times the displacement of the ProjPoint.

RotatPoint name ..../pointlineangle;

The Rotated Point is located by rota ting


from the position of point, about the
axis line,through an angular distance of angle.

TanPoint name ..../bead offset;


390 Relational
\342\226\240 Geometric Synthesis

The Tangent Point is located along the tangent


to the host curve of bead,
startingat the location of bead, at signed distance offsel.

OffsetPt name ..../magnet offset;

The Offset Point is locatedalong the normalto the host surface of magnel,
starting at the location of magnet,at signeddistanceoffsel.

FrameAbsPf name .... Iframe \317\207\316\266;


\321\203

The Frame Absolute Point is located at x, y, \316\266


specified in frame coordinates.

FrameRelPt name ..../framepointdx dy dz;

The Rela tive PomI is locatedrelativeto polnlat


Frame the offsets dx, dy, dz
specified in frame coordinates.

BlendPoint name
..../{point! wtl point! wt2 .... pointN wtN j;

The Blended Point is the weighted sum of the component points:


- \316\243
\317\207 w,x,

Beads and Rings

A bead class entity constructs a single point embedded in a curve. A ring


class entity constructs a single point embeddedin a snake. Since snakes are a
subclass of curves,rings are a subclass of beads. The difference is that a ring

is logically also embedded in the snake's host surface, therefore can serve
also as a magnet on that surface.

AbsBead name /curvet;

The Absolute Bead is the point on curve at


parameter value t.

Re/Bead name / bead dt;

The Relative Bead is a point on the host curve of bead, at the signed
parameter offset dt.

ArcRe/Bead name / rve


bead/\321\201\320\270 ds;
Relational Entities 391
\342\226\240

The Arclcngth Relative Bead is a point on the host curve of bead, at the
signed arclength offset ds. When a curve is direclly specified, rather than a

bead, the offset is from t = 0.

IntBead name /bead/curve mirror/surface point;

The IntersectionBeadis a
point on the curve designated by bead/curve.
where it is the
intersected
by implicit cutting surface parallel to
which
mirror/surface
passes through point. It' bead/curve is a head, its parameter
location / is used as the starting value for the iterative search; if it is a curve, the
search starts at i- .5.
The followingthreering entities arc parallel to the corresponding heads.

AbsRing name /snaket;


Ret Ring name / ringdt;

IntRing name /ring/snake mirror/surfacepoint;

JmRingl
name / ring/snake] ring/snake2;

The Intersection Ring,secondkind, of two snakes on the


is the intersection
same surface(or of a snake itself). Its host is the snake designatedby
with

ring/snake 1. If either ring/snake is a ring, its t parameter value is used as the


starting position for the search; otherwise the search starts at t - .5.

Magnets
Each magnet class entity constructs a point embedded in a surface.

AbsMagnet name /surface \320\270


\316\275;

The Absolute Magnet is the point on surfaceat parametervalues u. v.

Ret Magnet name /magnet du dv ;

The Rclalive Magnet is the point on the host surfaceofmagnel, at

offsets
parameter du, dv.

IntMagnet name /magnet/surface bead/curve;

The Intersection Magnet


is a point on the surface designated by
where
magnet/surface it is intersected by the curve designated by bead/curve. If mag\302\267
392 m Relational Geometric Synthesis

el/surface
\316\267 is a magnet, its u, \316\275
position is used for starting values for the
search; otherwise the search starts at -
\320\270 .5, = .5.
\316\275

Pro/Magnet name /point magnet/surface mirror/surface;

The Projected Magnet is a point on the surface designated by


formed
magnet/surface, by the projection of poinl along a radiant of mirror/surface. If
magnet/surface is a magnet, its \316\275
position isu,
used for starting values for the
search; otherwisethe search starts at = .5,
\320\270 = .5.
\316\275

Curves

An RG curve class entity is a parametric curve x-x(t) with a nominal


parametric range of [0,1]- do extend beyond the nominalrange,
However, curves
and can be evaluated value, unless the evaluationresultsin
al any parameter
a division by zero (possible with NURBCurvc). The first support of any
curve Relabel object,which
is a performs an optional reparameterization.
Specifying the default relabel,denotedby *, accepts the curve's default or
natural parameterization.

Line name /relabel point] point2;

The Line is the straight linefrom poinll to poinl2. The default

parameterizationis uniform. Besides qualifying as a curve, a linecan serve as a mirror

or as a rotation axis in some entity constructions.

Arc name /relabel type point] poind \317\201\316\277'\316\271\316\267\316\262;

The Arc is acirculararcconstructedinone of sixways(lype | from


\321\216\320\261)
three

points.The default parameterization is uniform with


respect to arc length.

Conic name /relabel type point] point2 points sO si;

The Conicis a conicsectionor catenary, depending on lype. poinll is the


center; poinl2 and point3 establish semimajor and semiminor axes.s8 and si are
starting and ending conic parametervalues corresponding to t = 0 and t - I.

Helix name / relabel point linegraph angle;

The Helix is a generalized helix permittingvariable radius and pitch. If line


is uniformly parameterized and graph is constant, the resulting curve is a
standard helix.
Relational Entities a 393

BCurve name /relabel type (point] point2 pointN};


The
B-Spline Curve is ihe Bezier curve using the B-Splinebasisfunctions
-
with uniform knots, order \320\272lype + \316\212,
and N vertices: x(r) = \316\243
\\,B,(t).

CCurve name / relabel type f point! poim2 pointN};


The
C-Spline
Curve is an interpolating spline of type 2 (quadratic) or 3
(cubic) with chord-length parameterization and not.a-knot end conditions.

FoilCurvename /relabel type [point! point! pointN j

The Foil Curve implementsseveralfamilies of standard NACA airfoil


sections,
lype selects the airfoil family. The number N of control poinlscan be

three, four or five. Three points create half of a symmetric profile; four a full

symmetric foil; five a full cambered foil.

NURBCurve name / relabel type knoilisi[ poind wil poind wt2 ....
pointN wtN J;

The NURBS Curve is the rational \320\222-Spline


with order -
\320\272
lype + 1, knots
supplied by a KnotList object, and N control poinls x,- with weights w;. \\{t)
-
\316\243\316\275,\317\207\316\262^\316\231\316\243\316\267,\316\222\316\247\316\256.

RelCurve name /relabel curvepointO point] graph;

The RelativeCurve is a copy of its basis curve \321\205\321\214(().


stretched and rotated to
fit between new endpointsxo,xi:x(()
= x,,(f) + (l -\320\224\320\236) -
+/(\316\257) [\317\207\316\271
[\321\205\320\276-\320\245\320\271(\320\236)]

Xi(l)]. The graph supplies the blending function f(t); in this context, the
*
default graph signifies a linear blend,\320\224()= t.
SubCurve name / relabel bead! bead2;
The SubCurve is the portion of a basis curve \\b(s)betweentwo beads at
positions sn and Si, reparameterized to the interval [0,1]:x(i) =\321\205\321\214[(1
-t)s,) + isi\\.

PolyCurve name /relabel [curve! t! curve!t2 curveN ].) j;

The PolyCurve is the concatenationof two or more curves, reparameterized


to the interval [0,1].The real value l- associated with each curve specifies
where that curve ends in the [0,1] parameter space of the PolyCurve.

ProcCurvename / relabel'point (bead/ring/graph! ....bead/ring/graph Nj;


394 m Relational Geometric Synthesis

poinlis any point object, which generally has the bead and ring supports as
ancestors.The Procedural Curve is the locus of point as the supporting
beads.rings,and/or are graphs varied in unison over the t parameter interval

[0,1]. Any graphs included as supportsareevaluated at each parameter value


(.and substituted in order for any real parameters in poinl.

Snakes
An RGSnake class object is a parametric curve with a nominal parametric
range of [0, embeddedin
1]. a surface object. It needs to be emphasized
that a snake by definition lies precisely on the host surface,and that three-

dimensional absolute coordinates of points on the snakeare obtained by a

composition ope ration: The snake is evaluatedto a location w = (u,v) in the


surface's parameter space; then the surface is evaluated at this location
through the surfaceequations.
LineSnake name ..../relabel magnet J magnei2;

A straight line is constructedin the (u,v) parameter space, from magnell to


-
magnel2: w(f)
=
(1 () W[ + t w2.
The LineSnake and the followingsnakesare highly parallel to the

corresponding
curve entities, requiring no further explanation:

ArcSnake name ..../ relabel type magnet I magnei2 magnet3 ;


liSnake name ..../relabel type ( magnet I magne\\2 .... magnetN j ;
CSnake name ..../relabel type j magnet i nuignet2 ....magnetN j ;
FoilSnake name .... / relabel type j' magnet1 magnet2 .... magnetN j ;
NURBSNakename ..../relabel type knotUst /magnetI wtlma^>net2 wl2 ....
magnetN wtNJ ;

RelSnake name ...J relabel snake magnet]magnet2 graph ;

SubSnake name .... /relabel ring] ring2 ;

PolySnake name ..../relabel (snakel tl &nake2 (2 .... snakeNtN j\\

ProcSnake name .... / relabel magnet f bead/ring/graphl bead/ring/


graphN}
The following snakes have no direct counterpart among RGCurves:

Pro/Snake name .... /relabel curve magnet/surface mirror/surface;

The Projected Snakeis the projection of curve onto the surface identified by
magnel/surface, using minor/surface for the projection.
Relational Entities 395
\342\226\240

IntSnake name .... /relabel magnet mirror/surfacepoint;


The Intersection Snake is an intersection of the host surfaceof magnelwith
the
implicit surface parallel to mirror/surface and passing through poinl.

magnel serves purposes: to identify the host surfacefor the IntSnake,


three
to identify which of multiple intersection curves is to be used for the
InlSnakc (the onewhose end is closest to magnel). and lo identify which end
of the selected intersection curve is to be the / = 0 end of the IntSnake.

UVSnakename /relabel type magnel;

The UVSnake is a parametric line \320\270


- constant or = constant,
\316\275 according to
lype.

EdgeSnuke name /relabel type surface;

The EdgeSnake is one of the four edges of surface, according to lype.

GeoSnake name /relabel magnel]magnet2;

The Geodesic Snake is a geodesic arc from magnell to magnel2.

Surfaces
-
An RGSurface class object is a parametric surface patch \317\207 x(\302\253,v) wilh a
nominal parametric range of [0,t] \321\205
[0.1].
Like curves, surfaces extend
beyond the nominal range and can be evaluatedat any parameter value,
unless the evaluation results in a division by zero. The first support of some
surfacesis Relabel object, a which performs an optional reparameterization
in the v-direction. Specifying
the default relabel, denoted by *, accepts the
surface's default or natural parameterization.
Several surface entities belong to a subclass of lofted surfaces,supported
by an ordered set of curves called master curves.Evaluation of a lofted
surface at a position (u,v) is a three-stage process:
1. Each master curve is evaluated at parameter value u.
2. The resulting points xf.;' = 1... . ,JVare used to constructa lofting curve of

appropriate type.
3. The lofting curve is evaluatedat parametervalue v.

TranSurf name ! curveI curve!;


396 Relational
\342\226\240 Geometric Synthesis

The Translation Surface is generated by a translated copy of curve2, swept


-
a\\ongcurvehx(u,v)-\\i(u) + x2(v) x2(0).

RevSurf name /relabel curve lineangle!angle!;

The Revolution Surface is generated by revolving curve about line, from


anglel to angle2.
RuledSurf name / relabel curvel curve!;

The Ruled Surface is generatedby connecting corresponding points on


curvel and curve2 with straight lines: x(u,v)
= (1 - v) xj(u) + \316\275
\317\207\316\212(\316\272).

DevSurf name / bead/curve I bead/curve2;

The DevelopableSurfaceis alsoa ruled surface between curvel and curve2,


but the rulings are skewed: x(w.v) = (I - v) xt(u + \316\264)
+ \316\275
x2(u -\316\264), where 6(\320\270)

solves the tangency condition (scalar triple product).


- - -
6) =
|
[\317\207,
+
(\321\213 \316\264) x2(u + \316\264) xj(w
\316\264)] xz(\" I
\320\236

which ensures developability. This solution for \316\264


requires iteration. If the

supports are beads (at il and (2, say), they supply a starting value for \316\264
-
at \320\270

(il + (!) 12\342\200\224a


suggested first ruling\342\200\224which helps to select between possible
multiple solutions.

BlendSurfname /graph!graph! curve! curve! curve3 curve4;

The BlendSurf is a Coons patch formedfrom the four boundary curves,


which nominally join end-to-end in the given sequence: x(h,v) = U(h.v) +
\\(u,v) - W(m,v),
where:

- a) Xi(w)+ a x3( 1 -\320\270)


U-(l

X=(]-b)X4(\\-v) + bx2(v)

W =
(l-g)(l-fc)X|(0^^14(l-fl)fc^3f^

The graphs supply the optional blending functions a(v), b(u)\\ the default
graphsare the identities a(v)- b(u)-
\316\275, If
\320\270. the boundary curves do meet at
the corners, the BlendSurf interpalates all four of them.
Relational Entities 397
\342\226\240

NURBSurf name /u-type v-type knotlistl knotlist2 \320\277\321\201\320\270


{ point 11 will pointNM wtNM j;

The NURBSurfis the nonuniform rational B-Spline surface made front a


rectangular array of control poinls with = \316\243
\316\243
x(J weights w;j: x(u,v) w,t x(J
\316\222,^\316\222^\316\231\316\243\316\243^\316\275,\316\222^\316\222^,).

ALoftSurf name / relabel type citrvel cnrve2 curve3;

The Are-lofted Surface is lofted with circular arcs (see Arc) of the Specified

type, 1 to 6.

BLoftSurfname / relabel type (curve] curve2 curveNj ;

The B-Spline lofted surface is lofted with B-Spline curves: = \316\243


x,(n)
\317\207(\316\271\316\271,\316\275)

B,(v). It interpolates X] and x|V and is \"attracted\" to its other mastercurves in

the same way a B-Spline curve is attracted to its controlpoints.

\320\241
Loft Surf name /relabel type (curve] curve! curveN j ;

The C-lofted surface is lofted with C-Spline curves (see CCurve)that inter -

pola te all the master curvesin sequence.

FLoftSurfname / relabel type ( curvel curve2 curveN j ;

The Foil-lofted surface is lofted with standard airfoil sections (see Foil-
Curve). There can be three, four, or five master curves. The first and fifth are
the trailing edge, the third is the leadingedge,and the second and fourth
control thickness and camber.

SweepSurf name / bead curve] curve2 graph] grciph2 graph3;

The SweepSurf is generated by sweeping


curvel along the host
(the shape)
curveof bead (the path), with optional scaling supplied by the graphs.

OffsetSurfname /surface( offsetl( offset2 offset3 offset4} } ;

The OffsetSurf is generatedfromthe basesurface by offsetting in the normal


direction by a signed variable amount. If only offset 1 is result is a
given, the
parallelsurface.If offsels are given for the four corners, the normal offset is
bilinearly blended.
RelSurfname /surface ( point I [ point2 poim3point4jj ;
398 Relational
\342\226\240 Geometric Synthesis

The Relative surface is a copy of surface, rotated and stretched to span four
new corner poinls. If only pointl is given, the result is a
parallel translation
bringing the (0,0) corner to pointl. If all four corners are given, the
displacement is a bilinear blend of the corner displacements:

x(u,v)
=
xb(u,v) + (1 - u) (1 - \316\275)
-
[\317\207, x,(0,0)] + \320\270
(1
-
v) [x2 - xft(1.0)]
+ it \316\275
[x3- xft(l.l)] + (!-\302\253)
\316\275
[\317\207*-xft(0.1)]

PolySurf name / /surface I ul surface! it2 surfaceN uN } ;

The PolySurf is the concatenation


of two or more surfaces, reparameterized
in to
\320\270 the interval [0.1]. The real value u, associated with each surface
specifics where that surface ends in the [0,1] if-parameter space of the PolySurf.

SubSurf name /{ snake! snake2 ( snakeSsnake4 j j ;

The SubSurf is a portion of the hostsurface of the snakes, reparamctrized to


x
[0,1] [0,1]. Denote the
parameters of the supporting surface by w = \\p,q].
If only two snakes are used, the SubSurf is a ruling between them in p,q
space: w(u ,v) = (1 - v) w,(ii) + \316\275 w2(\302\253); if
all four snakes are given, the
SubSurf is a bilinear Coons blending between them in p,q space, analogous to
theBlendSurf.

ProcSurf] name /point { magnet I magne(2 magnetN };

poinl is any kind point object, which generally has the magnels as
of
ancestors. The first kindof Procedural Surface is the locusof poinl as the magnels
Eire viiricd in unison over their (u.v) spaces.

ProcSurfename / curve j bead/ring/graphl .... bead/ring/graphN j ;

curve is any curve object, which generally has the bead and ring supportsas
ancestors. The second kind of Procedural Surface is the locus of curveas the
supporting beads, rings, and/or graphs arc varied in unisonover the t
parameter interval [0,1]. Any graphs included as supports arc evaluatedat each
parameter
value i. and substituted in order for any real parameters in curve.

5olids
An RGSolid class objectisa parametricsolidhyperpatch =
\317\207
x(u,v,w) with a
nominal parametric range of [0,1] \317\207
[0,1]
\317\207
[0.1]. Solids are not currently
implemented in the MultiSurf product, but are in a development version of
Relational Entities \342\226\240
399

RGKernel. Currently supported construction methods are highly parallel to

corresponding surface entities.

RuledSolid name / relabel surfacel surface2;

The Ruled Solid is generated by connecting correspondingpoints on


surfacel and surface2 with straight lines: \\{u,v,w) - (1 - w)xl{u,v) + w x2(u,v).

RevSolid name / relabel surfacelineangle]angle2;

The Revolution Solid is generated by revolving surface about line,from


anglel to ang!e2.

BLoftSolidname /relabel type (surfacel surfacel surfaceNj;


The
B-Spline lofted solid lofted
\320\252 with B-Spline curves: x(u,v,w) - \316\243
\317\207,(\316\272,\316\275)

B{w).

BlendSolid name /graphl graph! graphs surfacel ....surfaceo;

The BlendSolid is a trilinear blend of its six supportingsurfaces,


which

nominally surround a topologically hexahedral volume.

Contours
Each Contourobjectisa set of contours cut through one or more surfacesby
a family of parallel implicit surfaces: planes, cylinders, or
spheres.

Contours name /first last qO qint mirror ( surfaces };

The cutting surfaces are implicit surfaces parallel to mirror, at signed


distances q
-
qS + i qinl,i -firsl,.... lasl.

XContoursname /first XO last Xint j surfaces j ;


YContours name /first YO last Yint ( surfaces j ;
ZContours name /first last ZO Zint { surfaces j ;

The cutting surfacesare planes parallel


to the coordinate planes; for
example,
the planes X = X8 + \320\263
Xlnl,
= firsl,...
\320\263 lasl.

CvContours name / curve first last tO tint ( surfaces j;


400 Relational
\342\226\240 Geometric Synthesis

The cutting surfaces are planesnormalto curve, at parameter values t- tB +

(tint, i =firs( lasl.

Graphs
A
Graph object function/(i) over the parameterrange [0,1J.
is a univariate
Graphs are not visible objects, but are used to enrich the flexibility of other
entities. Wherever a graph is required,tbe default graph
* can always be used
to accept some appropriatedefault behavior, for example, the linear graph
- i.or a constant = 1 or = 0. The meaning of the default graph * is
f(t) \320\224\321\201) /(f)
specific to the entity in which it is used.

BGraph name/ type ( fi \316\262 fN} ;

The B-Spline Graph is a univariate function specified as a linear


of
combination the B-Splinc basis functions with uniform knots, order \320\272
-
lype + 1,
and W vertices: fit)
= \316\243/\316\262,(\316\257).

Relabel name / type {ti (2 tN j ;

The Relabelis a special BGraph with f, = 0, f..v - 1. and nondecreasing values,


used for
reparametcrizing curves and surfaces. The parameter t or \316\275
is put
through the relabel function before beingusedin the curve or surface
definition.

PolyGraph name/(graphl il graph! t2 .... graphN1.0} ;

The PolyGraph is the concatenation of two or more graphs,reparameterized


to the interval
[0,1]. The real value i, associated with each graph specifies
where thai graph ends in the [0.1 ] parameter space of the PolyGraph.
Planes
Each Plane class object defines an infinite implicit plane. Planes are not
parameterized,
so they cannot support magnets and snakes.

Plane2name / pointlpoint!;
The
plane passes through pointl and is normal to the line from poinll to

point2.

name
P/\320\260\320\277\320\265\320\227 /point! poin(2 \317\201\316\277'\316\271\316\267\316\262;
Detailed Example * 401

The P|ane3 object is the plane determinedby the three points.

XPIane name /X;


YPIane name /Y;
\316\226
Plane name /Z;

These are planes parallelto the coordinate planes, at the specified X, Y, or \316\226
positions.

Frames

Each Frame class object is a local right-handed orthogonal x.y.z coordinate


system, used for location of FramePoints. The default frame *
is the global
coordinate system.

Frame3 name /point] pomt2point3;


This frame is located at pointl, with its axis
\317\207 in the direction of point2, and
its \321\203
axis in the plane of the three points.

/uilerFrame name / point frame anglel angle2 angteS;


The Euler Frame is constructed by translating a copy of frame to poinl,
followed by rotations through three Euler angles.

12.6 DETAILED EXAMPLE

Table the model file for an example modelutilizing


12.1 is a variety of point,
curve, and snake objects and six connected surfaces of various types, as
definedand outlined previously All of the surface connections are exactand
durable. Figure 12.3 is a wireframe representation of the resultingabsolute
model.The example comprises hull, deck, and cabin surfaces for a 30-foot
sailing-yacht design.
The example model has six surface objects:bull and deck are C-Iolted
surfaces; cablnfwd, cabinside and cabin afl are ruled surfaces; and cabin_top
is a blended surface. The surfaces all have visibility only the
1. which causes
parameter lines - constant
\320\270 to be displayed. Eleven transverse sections
(XContours stations) through the model are also displayed for purposes of

visualizing the shapes.


bull is a C-lofted surface with three curves MCA,
B-Spline master MCB.

MCC, each having four absolute points supports.deckalsohas three


as mas-
402 Relational
\342\226\240 Geometric Synthesis

Table 12.1 Example of relational modelfile


MulIiSurf 1.08
Units: none
Extents: 0.000 0.0O0 -1.451 31.700 6.0235.173
View: 10.00 50.00 \320\236

Places: 3

BeginModel;
// 3x4 clofl hull, deck, cabin for GM example
AbsPoinfAl 141 0.000
\320\243 0.000 3.600 :
AbsPointA214 I \320\233
.000 0.000 1.410;
AbsPoint A3 14 \\ J 2.500 0.000 -0.840 ;

AhsPointA4 14 I J 3.000 0.000 -0.900 :


BCurveMCA 11 I8x4/i2jAl A2A3A41:
AbsPoint Bl 14 |/ 15.0005.8402.640 ;
AbsPojnl B2 14 W 15.0006.0000.540 ;
AbsPoinlB3l4 I \316\257
15.000 3.900-1.200 ;
AbsPoinlB4l4l 5.000
\320\233 0.000 -1.440 ;
BCurve.MCBII 8x4/ *2 Bl B2 \320\222\320\227
B4 ] ;
1 |
AbsPoint CI 14 1/ 30.0003.5002.760 :

AbsPoint C214 1 * 30.900 3.5001.410 :


AbsPojnl C3 14 I \320\243
31.700 2.500 0.220 ;
AbsPoinlC414 I \320\243
31.700 0.0OO 0.220 ;
BCurve MCC 111 8x4 / *2 CI C2 \320\241\320\227
| ] ;
\320\2414

CLoftSurf hull 10 I 8x2 10x3 0 / * 3 | MCA MCB


MCC];
AbsPoinl liansomt) 14 1/ 29.SO00.0003.0(X):
AbsPoint transoml 14 I / 29.SO0 1.750 3.000 \342\226\240,
BCurve lransom_rop 10 I 10x1 / * 2 CI Iransoml
[
IiansomO ] :
AbsPojnl deck_clr 14 | / 15.000 0.000 3.450 ;
AhsPointdeck_mid 141/ 15.0002.700 3.450;

BCurve deckjieam 10 I 10x1 / * 2 | Bl deck_mid


deck_clr) ;

CLoftSurf deck 7 1 4x3 10x3 0 / * 3 ( Al deckjieam


transomjop j ;

nO 13 1 8x4 / * 2 deck ;
EdgeSnake

AbsRingrOll 1/ nO 0.25500 ;

RelRingrl 11 I /r0 0.42600;

RelMagncI dm2 12 I / r0 41.37000 0.0 ;


RelMagnet dm3 12 1 / r0 -0.65000 0.03000 ;
SubSnakenl 14lSx4/*K)r| :
AbsRingr2 II | /n| 0.50000:
Detailed Example 403
\342\226\240

Table 12.1 (Continued)

RelMagnel dm4 12 I / r2 -0.800IX) 0.0 ;


RelMagneidm5 121 / rl -0.800OOO.0;
BSn;ikc fp_fwd 11 | |0xl / * 2 | K) dm2 dm3 ] :
BSnaki: fp_sidt 11 | 2()x| /
* 2
| dm3 dm4 dm5 ] ;
* rl :
LineSnake fp_afl 11 1 10x1 / dm5

RelPoinlrpI l| | /1()2.000 0.000 1.300 ;


RelPoint rp3 11 1 / dm3 2.000 0.1)00 1.100:
RdPuint rp5 11 1 / dm5 -0.200 -0.500 1.400;
RelPoint rp6 11 | / rl -0.300 0.000 | .800 ;
RelPoinr rp7 11 | / r2 0.0000.0001.650;
RelCurve rop_fwd 11 I l()x|
fp_fwd rpl rp3 ; / * *

RelCurve
* *
11 I 2()x| / fp_side \320\263\321\200\320\227
;
rop_side rp5
* *
RelCurve rop_afr 11 I 10x1 / fp_afl rp5 rpo ;
RLiledSiirfcabin.fwd II I 10x1 1x10/* fp_fwd top_fwd ;
0 *
RiiledSurf c;ibin_side II I 20x1 Ixl / fp_side rop_side :
RuledSiiifcabiii_aft 11 1 10x1]xl 0 fp_afl / * top_all;
CCurve lop.clr 11 | |0xl / *2 | rpl rp7 rp6 j ;

BlendSurf cabin_lop 14 I 4x2 5x2 0 / * *

(lop_hvd topside top_afl lopctr ] ;


XContours siaiions 12 1/0 10 1.9492.733
( hull deck cabin_fwd cabinside cabin_afl cabin_lop ] ;
RuledSurf Iransom 3 1 8x2 lx| 0/* transomjop MCC;
lid Model;
\316\225

ler curves; the first is the single point Al,and the other two are three-vertex

B-Spline curves deck beamand transom. T he join between bull and deck is
exact and durable becausethe C-Splines at the adjoining edges on each
surface use the same data points, namely, Al, Bl, CI, and therefore are
identicalcurves.

The three cabin_fwd, cabin_side. cabin_aft are constructed


ruled surfaces
in a similar fashion another: Each usesa snakeon deck as one edge,
to one
providing an exact and durablejoin to the deck surface, and a relative curve
dependent on that snake as the second (upper) edge. The three snakes on
deck join eachotherexactly and durably because they share common end-
points,namely, magnets dm3 and dm5. The three relative curves top_fwd.

top_side, top_aft also join each other exactly and durably because they are
constructed using common endpoints. namely, relative points and rp5.
\320\263\321\200\320\227

cabinside joins the other two surfaces exactlybecauseitsend rulings arc the
lines dm3 \342\226\240 and dm5
\320\263\321\200\320\227
\342\226\240 which
rp5, are identical to end rulings on the
adjoining surfaces.
404 Relational
\342\226\240 Geometric Synthesis

Figure 12.3 Example of model of Table t2-t, comprising six a ecu rate Jy

conjoined surface objects.

The blended surface cabm_top joins the three ruled surfaces accurately
because it uses their upper edge curvestopjwd, top_side, top_aft
as data,

interpolating each of them. Its fourth side is a three-point C-Spline top_ctr,

which lies exactly in the center plane becauseeachof vertices has its
a zero
coordinate.
\321\203

Exact and durable surface joins are accomplishedin this model by three
relational techniques:

1. Two transfinjte surfaces sharing a common curve as edges,for example.


cabin_side to cabinet op.
2. A transfinite surfaceconnectedto a snake embedded in another surface,
for example, cabin__side to deck.

3t Two identically ruled or lofted surfaceswith master curves that share


common endpoints, \316\257\316\277\317\204
example,hull to deck or cabin_side to cabinlwd.

12.7 APPLICATIONS

Parametric Variations

The model of Section 12.6 servesas a basis for illustrating


example the
potential of RG lor constructingparametrically variable models. This model
can be transformed, with preservation of its topology, into an extremely wide
variety of alternative shapes by changing the coordinates of absolute points,
the offsetsof relative points,and parameters
and the
parameter offsets of
rings and magnets. example An
modification which alfectsall six surfaces is
to incvease
they coordinate of AbsPoinl Bl. Followingthis change,the con-
Applications \342\226\240
405

ncctivity and relative positioning of the several surfacesis automatically


preserved as the absolute model is updated (see Figure12.4).
A further example modification is to drag AbsRing r0 to a new position

(see Figure belongs to an EdgeSnakealong the centerline


12.5). r8 edge of
deck. Because RelRing rl is relativeto rB, and the several dm magnets are
relative to these two rings, the entire cabin structure transports intact to a
new locationwhereit continueslo jointhe deck precisely. Also, rl can be
dragged to changethe length of the cabin.
The parametric handles tend lo be the floating-point data components of
various kinds of points.Thishas the advantage that most of the handles are
visible points which can be selected and dragged,as in the preceding examples.

Discretization

RG is very well adapted to creatingsurface and volume discretizations Tor


both boundary integral and finite-elementanalysis methods. Discretizations
can be constructed in such a way that they are topological^ invariant with
respect
to parametric variations of the underlying geometry.
Boundary integral (panel) methods are widely used for problems
governed by linear field equations and boundary conditions, and are especially
advantageous for domains which are unbounded in some directions;for
example, irrotational hydrodynamic and aerodynamic flows, acoustics, and
electrostaticand electromagnetic
problems. The discretized geometric
representation consists of an assemblage of small triangular or quadrilateral
panels tessellating the exposed surfaces.
When a surface patchis completely exposed, itissimple to partition it into
quadrilateral or triangular panelsalongits parametric mesh lines. Relabeling
of curves and surfaces provides a facility for
parametric
control of mesh size
distribution's may be required for solution accuracy. When a surface patch

Figure 12.4 Example model following a change in the \321\203


coordinate
of point B1.
406 Relational
\342\226\240 Geometric Synthesis

Figure 12.5 Example model followinga changein the t parameter


of ring r0.

is partially covered by one or more other patches, the SubSurf entity


provides a way to panelize the exposed portion with a
quadrilateral
mesh that
adheres to the underlying surface.Useof common edge curves or snakes for
surface and SubSurfconstructiontypically provides exact conforming joins
between the panels on adjoiningsurfaces.
Figure 12.6 shows a propeller model panelized for potential flow analysis.
The model has five-fold global symmetry, so only one blade and a helical

portion (Vs) of the shaft and hub arc explicitly mode led. T he blade is aBLoft-
Surf with seven master curves: a snake on the shaft plus six FoilSnakes lying
on concentric cylinders.A Fillet surface blends between a snake on the blade

Figure 12.6 Pa nelized model of a


propeller
for potential flow analysis.
Applications 407
\342\226\240

and one on the shaft. One SubSurfon the blade,the complete Fi|let,and four
SubSurfs on the shaft/hub complete the panellation. Many variations in
pitch, skew, rake, chord, thickness, and camber distributions are possible with

the topology of the panelization being completely conserved.


Finite elementmethods are widely used for problems governed by
nonlinear field equations, or in bounded domains, Tor example, viscousflows,
heat conduction, and stress analysis. The discretized representationconsists
ofa partition of the problem domain into subdomains (finite elements),
typically tetrahedral or hcxahedral cells. Parametric solids are easily divided

into conforming hexahedra] cells along parametric mesh surfaces;a


hcxahedralcell can be further divided into five tctrahedra.

Optimal Design

The ability to generate parametricallyvariable modelswith topologically


invariant opens the way to automated ana lysis and
discretizations
optimization
cycles. One of the most advanced applications of RG to date was the
development of New Zealand's AC class sailingyacht Black Magic, winner
of the 1995 America's Cup. Over 2,000hull and appendage variations were
simulated and evaluated in a systematicsearchfor the optimum competitive
configuration.
Asinany simulation-based optimal designprocess, it is
important in yacht

design to simulate the completesystem, rather than any particular subsystem


(Oliver [1987]). In this casethe simulationconsisted of the following steps:

1. Choice of geometric model parameters.


2. Generation of discretized model.
3. Simulation of AC classrule measurement, yielding allowable sail areas.
4. Computational fluid dynamic (CFD) analysis, yielding coefficients for

hydrodynamic lift, drag, and moments.


5. Equilibrium performance analysis for the completeyacht (Velocity
Prediction Program [VPp]), yielding predicted speeds for different headings
and wind
speeds.

6. Race course traversal, yielding elapsed timesversus wind speeds.


7. Simulation of two-yacht races versus othercandidate designs in the
predicted distribution of wind speeds (Race Model Program), yielding
win/loss probabilitiesfor pairs of yacbts.

8. Simulation oi scoring system for the entire race series, yielding win/loss
probability
for the scries.

The win probability for the series is of course the single objective for
optimization.
408 \342\226\240
Relational Geometric Synthesis

In a competition involving top-level the yacht designers, builders,


world's
and sailors from eight countries, intense technical anddevelopment on all
sides. Black Magic
was a spectacular success. She won 35 out of 36
eliminationraces, and swept the final contest with 5 decisive victories over the U.S.
defender, taking the America's Cup away from the United States for only
the second time in the 144-year history of the event.

Animation
Relational models having parameters which cause them to deform in
mechanically realistic ways are a potentially powerful basis for creating
animated scenes. Once a model is developed with a number of parametric
handles, it can be controlled by programming the handles versus time,like a

robot. Of course, arbitrary control programs may produce unphysical or


unrealistic motions. The integration of physics and physiology with relational
geometry models to produce realisticanimationswould be an interesting
and possibly very fruitful
topic.

Figure 12.7 shows a relational shark model which is able to \"swim.\" Two

parameters (y offsets of two


RelPoints) control the first (half-cycle) and
second (full-cycle) shape modes of the spine curve. The body is a SweepSurf

using the spine as path. Eachof the five fins is also a SweepSurf, sweeping a
snakeon the hodyalonga path.The two handles are programmed with out-
of-phase sinusoidal variations to produce the swimming action.

DevelopableSurfaces
The efficient welded or riveted metal construction of such large complex
shell structures as ships and airplanes requires high precision in metal
cutting
and forming processes. Fabrication is greatly simplified when the
surfaces are is, they can be formedfrom
developable, that flat sheet material by
bending alone, rather than with any degree of in-plane stretching.
MultiSurf provides several surfaceentities that can construct cylinders
and cones, plus the DevSurf entity that generates explicitly developable
surfaces spanning two supporting curves. Developable surfaces made by any of
these methods can be accurately flattened (developed)onto the plane,with
their dependent magnets, snakes, and contours intact. Figure12.8is an
example
of this capability.

Compound Plate Layout

Similarly, constructionof nondevelopable (compound-curved)


shell

structures can greatly benefit from the modeling features and precisionof RG.
Applications 409
\342\226\240

Figure 12.7 A relational shark model for demonstrating


potentialof RG for animation studies.

Figure 12.9 shows an exampleof this application. First, a single fair surface
is designed for the complete(nondevelopable) hull surface of a vessel.
Snakes are used to representweld seams dividing the surface up into 12
plates,eachof which will be individual ly
formed from a flat blank by some
compounding process before Each
plate
assembly.
is covered with a Sub-
Surf. The three-dimensional of each
geometry
SubSurf is exported to an
auxiliary program simulates
which the forming process in reverse, yielding
a flattened outline accurate for
cutting of the blank from material, plus flat

strain maps which can guide the application of tools compounding

(Letcher [1993b]).
410 Relational
\342\226\240 Geometric Synthesis

lb]
Figure 12.B (a) MultiSurf model for hard-chine sailboat made up of 9
developable surface panels, (b) MSDEV expanded panels for hard-chine sailboat,
with positions of stations, waterlines, and buttocks marked.
Open Issues in Relational Geometry 411
\342\226\240

Figure 12.9 Subdivision of compound-curvedsurfaceinto individual plates


for expansion and fabrication.

CNC Machining
Numerical-controlled of sculptured
machining parts requires a precise
description of the geometry for generating tool In the future. RG paths.

could well come into use the fundamental as geometry standard for tool-
path generation.Today. NURBS transmitted surfaces
through IGES files are
the most commonform of part description. In order to with communicate

NURBS-based CAM and other applications, RG surfaces be exported must

in the form of NURBS.


Sincemost RG surfaces are in fact not exactly representable by NURBS,
in most cases approximation is required, with some loss of accuracy. This is
done by least-squares fitting to a tabulated mesh. Figure 12.10shows a CNC

machined part derived fro ma MultiSurf model.The part is a custom marine


hardware item (a bow chock) designed by Peter Smith for a production
power yacht built by the Hinckley Co., Southwest Harbor, Maine.

12.8 OPEN ISSUESIN RELATIONAL GEOMETRY

Logical Completeness

During the first years of developmentof RG (1991to 1992), the number of


entities implemented grew rapidly, and there was always a long list of entities
412 Relational
\342\226\240 Geometric Synthesis

Figure 12.10 Chock designed in two dimensions by Peter Smith (The Hinckley
Co.). Model for NC milling made in MultiSurf by George Dickson (Aero-
Hydro). Rendering made with POV-Ray by Ed Stanley (AeroHydro).

clamoring for inclusion.Sometimesit appearedthat the growth in entity


population might be exponential if we implemented every useful construction.In
later years, the growth became much slower as we seemed to approach a state
of having the bases covered;that is, few modeling problems came to our
attention which could not be accomplished with some combination of the
available entities,about 100in number. In particular, the procedural entities
covered a wholesetofoutstanding problems, and could obviate a fair number
of existingspecialized entities.Although we still have a list of proposed
entities waiting, we also have a sense that somelevelof logical completeness may
not be far away.

Modularity in Relational Models


The digraph model structure is potentiallycomplex and hard to visualize.As
the number of objects increases, relational models become progressively
(evidently,
much more than linearly) more difficult to comprehend.This is
similar to problems addressed by the trend to modularity in programming
Open Issues in Relational Geometry \302\253413

languages. appear very beneficial to be able to encapsulate


It would groups

of related objects into modules, using local intermediateobjectsand limited,


well-defined interfaces to other modules.The representation and
of such
manipulation a new layer of structure appearspractically essential to moving

much beyond the 1.000- to 2.000-object level of complexityin relational

models.

Subroutines

Many models are characterized by having similar, sometimes identical,


constructions repeated in different locations in the mode I.The spars and sails of
a square-rigged ship come to mind as a practicalexample. Currently, such
constructions require duplication of of
groups objects, w ith minor variations;
often, wc construct such models by writing a LISP. C, or Basic program that

generatesa modelfile fragment. The concept of a subroutine or procedurein


the model representation that would encapsulate the constructionof oneor
more
objects, and be called with varying parameters, seems to offer a useful
and highly attractive alternative.

Variables, Expressions, and Functions

Many entities,particularly point class, have data fields filled by


in the real

(floating-point) not hard to see potential


numbers. It is advantage in

allowing these fields to be filled with numeric variables or expressions, well


as as
constants. By adding a Float entity

Float name /expression;

the dependency of an object on oneor more numeric variables can be


represented and maintained within the usual dependency relation. Besidesa set
of numeric functions such as sine and cosine, some numeric-valued functions

of objects such as Distance( pointl, point2) would beuseful.We have


tentatively implemented variables, expressions, and functions in a development
version of RGKernel. but user-interface issues preventedinclusion in the
current product release.

Constraint Equations
RG accomplishes
some, but definitely the parametric capabilities
not all, of
typical of constraint-based modeling through its geometric constructions.
With numeric variables and expressions it should be possible to add a quite
general constraint
equation and solution capability. This has not been
explored.
414 Relational
\342\226\240 Geometric Synthesis

B-Rep Solid Modeling


The predominantmethodof solidmodeling today is a boundary
representation,
comprising
a
description of edge-facetopology combined with
of
geometry faces, typically trimmed portions of parametric or implicitsurfaces.
Modeling proceeds primarily by Boo lean operations and analogsof
machining
operations, operating on instances of a small set of primitive solids. While
this approach appears to be quite successful in the design of mechanical
parts, it has not shown muchability to incorporate free-form, sculptured
surfaces in solid models.
Our current, short-term approach to connectionwith b-rep solid modeling
is via NURBS approximation. MultiSurfservesas a relational, interactive
front end in which complex surface geometries can be modeled and varied.
These surfaces are exported as NURBS to solid modelerwhere,provided
a
the
accuracy is high enough, they can be united into shells and subjected to
Boolean operations and so forth. Desirableadditionsto facilitate this

approach are two new entities:

BFitSurfname /u-type nit \316\275-type tolerance


\316\267
\316\275
surface;

The fitted surface is a least-squaresapproximation


B-Spline to surface, using

B-Spline types u-type and v-type for the and


\320\270 \316\275
directions, respectively. The
number of control points nit, nv for each direction can be specified, or if
specified as 0. will start at type+1 and be increased as necessary to meet the
specified tolerance. Statistics on the quality
of fit and the number of control
points used are available by interrogating the BFitSurf. The fitted surface

object can be viewed, of course, like any other surface, and can support other
geometry. On export,no further fitting is performed.

TrimmedSurf name / magnet ( snakesj;

The trimmed surface is the portion of the host surfaceofmagnet that can be
reached without crossing any of the snakes.Since the trimmed surface
(unlike a SubSurf) does not possessa regular parametric domain, this entity
is subclassedfrom RGObjectinsteadof RGSurface.
It may also be advantageous to implement a classof implicit(nonpara-
metrie) surface entities comprising the typical solid-modeling primitives,so
thesecan be constructed in a relational fashion and positionedand viewed in
MultiSurf before being exported to the solidmodeler.
In the longer range, solid modeling should benefit from adopting the RG
approachto surfacemodeling and providing native support for a significant
set of RG entities. This would greatly enrich the capability of solidmodelers
Conclusions 415
\342\226\240

to deal with free-form surfaces, and would solve many of the precision
problems that arise from approximation-based NURBS modeling.

12.9 CONCLUSIONS

Relational geometric synthesis is a design framework that permits and


encouragesthe captureof qualitative and quantitative relationships between
the geometric elements of a CAD model.With roughly the same amount of
effort as is required to createa single, static design CAD
in a conventional
program, RGS allows the creation of a relational model having many eon-
served topological geometric and
properties, combined with many degrees
of freedomfor parametric variation and refinement\342\200\224\"live\" versus \"dead\"
geometry.
We propose RGS as a new standardframeworkfor surface modeling,
providing flexibility and accuracy far beyond NURBS-restrieted methods.
Promisingconnectionsto solid modeling, engineering analysis, CNC
manufacturing, and animation arc being developed and explored.
This page intentionally left blank
APPENDIX A

VECTORS

In this text, a vector is an ordered set of numbersfrom which we derive the


properties of direction and magnitude or length. denote We vectors with
boldface, lowercase letters, and visualizethem as a directed line segments, or
arrows. A vector with zero magnitudeis a null vector, and we denote it by 0
(no directionis defined for it).
The traditional form is

\321\200=\321\200\320\220+\320\2404+\321\200,\320\272 (A.l)

where the i,j,k are mutually orthogonal unit vectors


\320\261\320\260\321\210 (see Figure A.l).
In general, basis vectorsneednot be mutually orthogonal nor of unit
magnitude. The are
p.uP\342\200\236Pz vector representing
components displacements in the
x,y,z directions, where i, j,
along the x,y,z
oeeur
\320\272 axes, respectively. A free
vector is not necessarily withassociated
any point in space, while \316\206
position
vector or radius vector has its initial point fixedat the origin so that its
components
are equivalent to the coordinates of a point.
In matrixform,Equation (A.l) is

=
\316\241 \\\316\241\317\207
\316\241 \316\241
\321\203 \320\263] (A.2)

or, alternatively,

417
418 \342\226\240
Appendix A

P-
=
\316\241 [' J 4 p, (\316\221.3)

A
To simplify the matrix form, we o-mit the i.j.k,so that

P= [-r \320\243 \316\266] \316\277\316\271 (\316\221.4)

This is particularly appropriate for the position or radius vector,where we

interpret the components,now matrix elements, as point coordinates.


In the tensor form, the superscript (/= I, 2. or 3) on \317\207
identifies the

component
as x, or
\321\203 z, respectively, where e, is the correspondingbasisvector.

=
\317\207
X \320\273'\320\265,

(A.5)

or simply

- re.
\317\207
(A.6)

Figure A.I Traditional vectorform.


Vectors \302\253419

The repetition of the index i indicates summation. This is the Einstein


convention used in tensor analysis-
Two vectors a and bare equalif and only if their respective components are

equal.Thus, if aK - bs, ay
-
by, and az - bz, then a = b. Fixed vectors radius (or or
positionvectors)are equal
if and only if their respective end pointscoincide.
Free vectors are equal made to coincideby a translation.
if they can be
W. R. Hamilton (1805-1865) and H. Grassman(1809-1877) developed
the

foundations of vector analysis in the mid-nineteenth century, and J.W. Gibbs


(1839-1903) made important contributions to the present form of vector
analysis.
Vector Magnitude
The magnitude (also lengih or norm) of a vector p ~[px />v pz] is the real
numher Ipl, where
=
Ipl Vp2+p2y+pl (A.7)

It is always the case that Ipl


> 0. Furthermore, Ipl = 0, if and only
=
if \317\201 0;
that 0], the null vector.
is, = 0
\317\201 [0

Multiplying a vector by a scalaF changes its magnitude. Thus


=
\320\272\321\200 kpt
[\320\272\321\200\321\217 kp-_\\ (A.8)

and

\\kp\\^kVpi+pj+pi fK \321\207

=
Alpl

If < 0,
\320\272 the direction of \317\201
is reversed.

The magnitude of a vector is invariant under rigid-body transformations;


that is, magnitude is independent of direction.

Vector Direction
The direction of a vector is given by its directioncosines(or direction

numbers): cos a, cos cos


\316\262, (see
\316\263 Figure A.2).

P*
= \342\200\224
cos a
Ipl

cosp--^-
(A. 10)
420 \342\226\240
Appendix A

Figure A.2 Vector direction.

Since Ipl =
vpx+pl + p\\, then

\316\241\316\233\\(\302\243\316\224\\(\316\241.\"

so that

cos2 + cos2
\316\261 \316\262cos2
+ 1
\316\263= (\320\220.\320\246)

This means that any two direction cosines are sufficient to determine the
direction of a vector.

Unit Vector
The following notation convention is useful: If \317\201
is any vector, then \317\201
denotes

its unit vector. The unit vectorp in the direction of is


\317\201
a vector having a
to one; = Litis
magnitude equal Ipl given by

m\302\243 (a\302\26712)

This means that


Vectors \342\226\240
421

. \316\241\317\207 . Pv - \320\240\320\263

\320\240\321\203=\302\245' \320\240\320\263~\302\245
\317\201'\316\262\317\212\316\257'

and

|\317\201|= \\/# +\317\201)+\317\201\\

= \\

Obviously

pl+Pi+pi-1

Using Equation (A. 10) and substitutingappropriately


produces
- cos \316\261
px

= cos
pt \316\262

- cos \316\263
pz

This demonstrates that the components of a unit vector are also its direction
cosines.

Basis vectors
In a vector space the set of vectors can express e, is a
every vector basis if we

in that space asa linear vectors and iftheerare


combination of the basis
linearly independent. In three-dimensional Cartesian vector space any three
linearly independentvectorsform a basis. The unit vectors i. j, \320\272 form such a
basis because i = [1 0 0],j = [0 1 0].andk= [0 0 1] are linearly
independent. The components of a vector depend on the basischosen,and.in
general, the components change if the basis changes.

VectorAddition
Given two vectors =
\317\201 [px pv pz]andq-[qx qy gj, their sum is the
vector (sec Figure \320\220.\320\227\320\260)

+
\317\201 Q
- + qx)
[(\317\201* iPy + 4.) (Pz + qj] (A.13)
The difference of two vectors is (sec Figure A.3b)
-
p-q=[(Px- qx) ip, <7v) (P( -<?;)) (A. 14)

Order is not important.Ifd = a + b + then


\321\201 it is also true that d =a+ + b.
\321\201

This means that vector addition is commutative.


A
graphic interpretation is:To add two or more vectors(drawn as
arrows),
join the tail of each succeedingvectorto the head of the preceding one. The
422 \342\226\240
Appendix A

Figure A.3 Vector addition.

resultant vectoris representedby an arrowfrom the tail of the first vector to


the head of the last.

Scalar Product
The scalar product (or inner product) of two vectors \317\201
and q is the sum of the
productsof their corresponding components:
\342\226\240
\316\241Q =Pxq, +p>>qy +Pt4z (A.15)
If \317\201
- \342\226\240
-
q, then \317\201\317\201
\342\226\240
lplz.If \317\201q- they
\317\213, are perpendicular. The various
scalar products ofthe basisvectors i,j, and \320\272
produce the following:

i-i=j-j=k-k =l

i-j=j-k=k-i =0 (\320\220.16)

i-k-j-Uk-j-O

The scalar product written in tensornotation is

p-q=p>q% (A.17)
where is
\316\264,*
the Kwnecker delta, and

r\\ if j~k
=
\316\264,1
(A.18)
0 if j*k
The angle \316\270
between two vectors and
\317\201 q satisfies the following equation:
\342\226\240
q=
\317\201 Ipllql cosB (A.19)
so that

-cos-'-P-^- (A.20)
lpllql
Vectors ,423

The scalar product


of two vectors is independent of the coordinatesystem
in which they are expressed.

Vector Product
The vector product of two vectors and
\317\201 q is another vector r:

pxq-r (A.21)
where
-
\320\263 [iP,4z- P-Sh) (P,q* - p*qz) {p*qt- PA')] (A.22)
Itis easy to show that \317\207-
\317\201\317\201 0. Furthermore, if \317\207=
\317\201 q 0, then and
\317\201 q are
parallel.
The expansion of the following determinant also produces the vector
product:
' J \320\272

px q- Px p. \317\201, (\316\221.23)

4x 4i \320\247\320\263

The angle between


\316\270 and
\317\201 q is a by-product of the vectorproduct:

Ip xql -Ipllql sin \316\270

so that

1 - Sin
(A.24)
Ipllql
The right-hand rule gives an intuitive sense direction of the vector \320\263
of the
resulting from pxq. Think of rotating into
q, curling
\317\201 the fingers of your
right hand in this angular direction. Then the extended thumb of your right
hand will point in the direction of r (sec Figure A.4).

pxq = r

Figure A.4 Vector product.


424 \342\226\240
Appendix A

Vector products of the i,j.k basisvectorsproduce


ixj^k

jxk-i
(A.25)
kxUj
ixi = jxj =k xk^O
The vector product is useful in
finding the area ol a triangle (see Figure
A.5).The area of the triangle ABC is

\320\220\320\263\320\265\320\260\320\224\320\233\320\222\320\241^-1\320\260\321\205\320\253
(A.26)
2

Triple Product

The triple scalar product \317\201


\342\226\240
qx r given in terms of a determinant is

\320\257, \320\252
\316\241\317\207

pqxr Pr \320\257. ry (A.27)

P; 4z \320\223;

and it is easy to show that p-qxr-pxq-r.


An alternative tensor form is

\317\201\302\2679\316\247\316\223^\316\276,^ (A.28)

where

even
Si*
~ if i,(,k is an odd permutation of 1,2,3.
other

Figure A.5 Area o\"f a triangle in vector form.


Vectors 425
\342\226\240

The triple vector product yields


px(qxr) = (p-r)q-(p-q)r (A.29)
where the result of x(qxr)
\317\201 lies in the plane of q and r.
VectorProjection
The scalar projection s of onto
\317\201 q is (see Figure A.6)

s ~P \"
TT '
- Ipl cos \316\270 (A.30)
\\\\q\\

The vector projection of


\316\275 onto
\317\201 q is (see Figure A.7)

(A.31)

VectorEquation of a Line

The vector equation of a line p(u) through point and


p\302\273 parallel to vector t is

(see Figure A.8)

p(u)=p0 + ut (A.32)

or, in component form,

X(l<) -Xi, + Utx

z(u)=z0 + utt (A.33)

An alternative form is

p(\=pa") + \"(pi-po) (A\302\26734)

where if e
\320\270
[0,1]. then Equation (A.34) defines a line segmentfrom p0 to p,
(see Figure A.9).
If q(iv) = qt, + ws and s - kt, then the linesthrough p0 and are
q\302\273 parallel.

\302\273q

Figure A.6 Scalar projection.


426 \342\226\240
Appendix A

*-q

Figure A.7 Vector projection.

Figure A.B Vector equation of a line.

Pi

^IP,-Pol

,P|u|

Figure A.9 Vector equation of a line segment.


Vectors \342\226\240
427

Vector Equation of a Plane


The vector equation of a plane\317\201(\316\220\316\257,\316\271\316\275)
through p0 and parallel to two
independent vectors s and t is (see Figure \316\221.
\316\231
0)

= + lis + wt
p(f/,w) p\342\200\236 (A.35)
with the condition s \317\210
kt. In component form this is

- ya + +
\321\203 wt,
\320\270,\321\207\321\203 (A.36)

+ Us,
\316\266-\316\226\316\261 + wtz

The unit normal to


\316\256 the plane is the vector product

ft-Sxi (A.37)

Thrcenoncollincar points p0,p,.p2 are also sufficient to uniquely definea


plane(see Figure
A.
11). Thus,

p(u,w) = p0 + ff(pi
-
po) + w(p2
- pi) (A.38)
The unit normal for this formulation is

(P)-Pfl)x(p2-Pi)
(A.39)
!(\316\241\316\271
-\316\241\316\277)\317\207(\316\2412-\316\241\316\271)\316\231

Figure A.10 Vector equation of a plane.


428 \342\226\240
Appendix A

Figure A.11 A plane containing three noncolljnear points.

Vector Equation of a Plane: Normal Form

One way to define a plane is by specifying


a vector d from the origin to a
point on it such that d is perpendicular to the plane (see FigureA.12).
Then

any point on the


\317\201 plane must satisfy

(p-d)-<U0 (A.40)
Expanding this equation produces

-
(x ds)ds +iy- dy)dy
+ (z- d7)dz = 0
or
dtx +
dyy + dzz - (d\\ + d] + d\\)
= \320\236 (\320\220.41)

Figure A.12 Vector equation of a plane: normalform.


Vectors 42 9
\342\226\240

Because d1 - d\\ +
dj + d2?,cos -
\316\261 djd, cos =
\316\262 djd, and cos =
\316\263 djd, then

Equation A,4l reduces to


cos
\317\207 + \321\203
\316\261 cos + cos
\316\262\316\266 7
- d -0 (A 42)

where cos a, cos cos


\316\262, are
\316\263 the direction cosines of d.

Solution of VectorEquations
The vector equation a + lib + wc - d+ fe
represents of three linear
a system

equations in three unknowns: it, w, and t. In component form these equations


are

as + ubs + wcx = dx + tex

+ ub
\320\260
\321\203 y + wcy
- dy
+ tey

az + lib; + wc7 -dz + Iez

We use their vectorformto solve for u, w, and t


by isolating each in turn. For
example, to isolate i, we apply (b
\317\207 as
\321\201) follows:

wc) -
\342\226\240
(bxc) (a + ub + (b \317\207
c)
\342\226\240
(d + te)

Because (b x c) is perpendicularto both b and c, then

(b a =
\317\207 \342\226\240
(b \317\207 \342\226\240
d + \317\207 \342\226\240
e
c) c) (fb c)

Solving this equation for t


produces

\317\207 \342\226\240
a - \317\207 \342\226\240
d
(b c) (b c)
\317\207 \342\226\240
e
(b c)

Continuing this method yields similar expressions for \320\270


and w:

\317\207 \342\226\240
d - \317\207 \342\226\240
a
(c e) (c e)

\317\207 \342\226\240
b
(c e)

\317\207 d -
\342\226\240 \317\207 \342\226\240
a
(b e) (b e)

\317\207 \342\226\240
\321\201
(b e)

Summary of Vector Properties


Given vectors p, q, r and scalars\320\272
and /, then

1. p + q^q +p
2. +
\317\201 (q
+ r) - (p + q) + r

3. *(/p) - kip
430 \342\226\240
Appendix A

=
4. + Op
(\320\272 kp + /p
5. k(p + q) -
kp + kq
6. pp-lplz
7. p-rrr-p
8. \317\204-
\317\201 Ipllrl cos \316\270

9. \342\226\240
+ q)
(\320\263
= \342\226\240 \342\226\240
+ \317\201
\320\263 q
\317\201 \317\201

10. (kp)-r^p-(kr)=k(p-r)
11. If \342\226\240
\317\201r-0, they are perpendicular.
12. If \317\201 q \317\207 =
r, then is
\320\263
perpendicular to both and
\317\201 q.
' j \320\272
-
x \320\263 \321\200\321\205
13. \317\201, \317\201\316\266
\317\201

\320\247\321\205 \320\257\320\263.
\320\247\321\203

14.
\321\200\321\205\320\263^-(\320\263\321\205\321\200)

15.
px(q
+ r)=pxq + pxr
16. -
\317\207
\320\263
(\320\272\321\200)
\317\207 -
\317\201 (\320\272\320\263)
\317\207
\320\263)
\320\272(\321\200

17. If =
\320\263
\321\200\321\2050, they are parallel.
18. \317\207^\320\263
\317\201\317\201
0
APPENDIX \320\222

MATRICES

A matrix is a rectangular array of numbersor other mathematical elements

arranged in m rows and \316\267


columns, For example:

an
\302\253\320\270 an alA
A^ \"21 a21 \"23 \"21
\320\26431 a31 a33 aiA

where aif
is the matrix element in the /th row and /th column.
The number of rows and columns determines the order of a matrix. A
matrix of m rows and columns
\316\267 is of order m \317\207 Then
\320\277. / e [1 : m] and / e
[1: n]. The order of the largest square submatrix whose determinanthas a

nonzero value is the rank of the matrix.


Two matrices A and are
\320\222
equal if corresponding elements are equal. This
means that A = if
\320\222 -
b,j for all
\320\260\321\206 i, /.
A matrix square matrix if m = n, a row matrixtfm= 1,and a column
is a
if \316\267 Single row or column matrices are often
matrix = 1. called vectors.
Matrices have a unique algebra that governs operations on them, and it
was the English mathematician Arthur Cayley (1821-1895) who developed
and refined the algebra of matrices.

431
432 \342\226\240
Appendix \320\222

Special Matrices

A
diagonal matrix square matrix that
is a has zero elementseverywhere
except
on (he main diagonal. For example,

\"\320\237 0 0 0
0 0
\320\2607\320\263
0
A =
0 0 0
\321\217\321\202\320\260

0 0 0 fljj

Thus,flfj
= 0 if /
*/. If all the \320\264\320\263\320\263
are equal, then the diagonal matrix is a scalar
matrix. A diagonal matrix that has unit elements on the main diagonal is a
unit matrix or identity matrix:

\"1 0 0
0 10 =%
0 0 1

where, again,6,y is the Kronecker delta.


A square matrix whoseelementsare symmetrical about the main diagonal
is a symmetricmatrix, so thai atj - ey/. For example,
\"5 3 \316\212

A= 3 1 4
1 4 -2_
A
square matrix is antisymmetric or skew symmetricif \321\211
-
-a)V For example,

0 -9 -3\"
A= 9 0 I

3 -1 0_

where =
implies
\321\211 ~\316\261\316\274
(hat ati = 0.
A null matrix, denoted by 0, is one whose elements are all zero.

MatrixTranspose
Interchanging (he rows and columns of a matrix A produces
its iranspose A'.
For example, if

3 1 2
A^ 0 -1 -2
3 0 4

then
Matrices 433
\342\226\240

3 0-3
A'- t -1 0
2-2 4
The productof any matrix and its transpose is a symmetric matrix,that is.

(AAT)r=AAT.
All matrices have a transpose, not just square ones.Thus, if
-
\320\222
[\317\207\321\203\316\266],

then

/\342\226\240_
\320\222

Matrix Addition

Adding lwo matrices A and \320\222


produces
a third matrix whose
\320\241 elements ate

equal to the sum of the corresponding


elements of A and B. Thus, A + B= C,
or +
c,r
\316\261,, \316\260,\317\212-
A and must
\320\222 be of the same order, and the resultingmatrixis
of the same order as the original matrices.
The differenceof two matrices A and is
\320\222 another matrix D whose
elements are equal to the difference of corresponding elements of A and B.
- - = be of the same order,
A d,r Again, A and \320\222
Thus = D, or \320\273\320\263; must
\320\222 b,
and the resulting matrix is of the same order as the originalmatrices-

Scalar Multiplication

Multiplying a matrix A by a scalar constant\320\272


produces a new matrix of
\320\222 the

same order as A. Thus. k\\ = B,or.in terms of the matrix elements, ka,t
=
b,r

Matrix Multiplication

Multiplying two matrices A and \320\222


produces
= C. il'and
a third matrix C. AB
only if the number of columns of A is equal to the number of rows of B, in
which case A and \320\222are conformable: If A is of order m \317\207 and
\316\267 \320\222 x
is \317\200\317\201,

then is m xp.
\320\241 In this example. A premultiplies \320\222 and \320\222
postmultiplies
A.

Given matrices \316\241


and M, with R - MP (where \316\234 premultiplies P). and
S =
PM (where \316\234postmultiplies P), then in general R \316\250
S, except for the
identity matrix, where

= \316\231\316\221
\316\221\316\231 (\316\222.1)

The
product of two matrices defined in terms of their elements is
434 \342\226\240
Appendix \320\222

\320\260>\320\272\320\254\320\272
\321\201\321\207=\316\243 (\320\222.2)

where is cqualtothe
\320\273 number of columns of A and thenumberof rows of B.

possible to construct matricesA


II is and \320\222
such that \316\221
\317\210 \316\222
\316\237, 0, but
\317\210 AB =
A zero
\317\213. or null matrix is one for which all elements are zero.

Partitioned Matrices
It is often computationallyconvenient to partition a matrix into submatrices
and to treat it as a matrix whose elements are themselves these submatrices.
Thus

\320\274\342\200\236
\320\2741\320\263
M =
M71 \316\234
22

where M/f and M(Z must necessarily have the same numberof rows (and

similarly for M2, and M22), and Mn and M21 must necessarily have the same
number of columns (and similarly for \320\234]2and M22). For example, if

\320\220\321\206
\320\220\320\277
\320\22013 b,,b12b \"13
A =
\316\2122
It
A2i A22 A23 Bnl 12\"23
B27 \320\222

and C=A + B,then

+ \320\222\321\206
\320\220\321\206 Ai2 + Bl2 Au + Bi3
\321\201-
A2I + B2I A22 + B22 \316\221^+ \320\222
23

where the
Al; and B,; are conformable.
Hereis an
example of the multiplication of partitionedmatrices.The
matrices must be conformable for multiplication before and after partitioning.

au
a\342\200\236 flu nlA \321\21715

\302\2532i \302\25322 \"2j \321\2172\320\220


\320\2602\321\212
\320\220\321\206
\316\22112 \316\221\316\267
A =
\321\2173| \320\260\321\2121 \320\224\320\2674
\320\260\321\212\321\212 '21
\320\260\321\212\321\212 '22 \320\247\320\267

\"\342\226\24011 \"\316\256 \"\316\2125


\"\316\2122^\320\220\321\202,

bu \320\254\320\277
\320\254\320\270

b2i \320\254-22\321\21423 \320\222,, \320\222]2


=
\316\222 bu \320\254\320\277
\320\254\321\205\320\222?| \320\23022

\320\252* \321\214#
\320\254\320\220\\ LB3i B,2J
\320\254\321\212\320\263
\320\254\320\273 \321\214\321\217

+ \316\22112\316\22221
\316\221,\316\271\316\222,\316\271 \342\226\240+
\320\220\321\206\320\222\320\273 + Al2B22
\320\220\320\237\320\22212 + \316\221\316\267\316\22232\"
AB
+ \\ZZR2,
.\316\221\316\226(\316\222((
+ AaB3J A;,B,2 + \320\220\320\263\320\267\320\222\320\260
+ \320\220\320\260\320\222\320\267\320\263
Matrices .435

Determining the products Ai2B2i,.


\320\220\320\274\320\222\321\206, . ., and so forth, and performing
the indicatedsumscompletesthis computation.

Matrix Inversion

The inverse of a square matrix A is A\"1. A matrix and its inverse satisfy the

conditions

AA\"1 = A-'A = I (B.3)


The elementsof A\"1 are <?ry,
where

\316\227\316\223'\316\212\316\221,'\316\231
\321\211-=- (B.4)
\316\231\316\221
I

where IA;;i denotes


the determinant of the (n - 1) x (n -
1) matrix derived
from A by deleting row / and column i from A (note the subscript order on
A;). If A\"1 exists, then IAI *0.

Scalar and Vector Products


If row matrices\316\241
and Q represent the vectors and
\317\201 q where
=
\316\241
[pi pi
p3],and Q = [q, q2 <?3],then the scalar product of the vectors is

p-q = PQr (B.5)


where

PQT
=
[PiP2P3]
= \316\241\316\2714\316\273+\316\241\316\2714\316\271+\316\241\316\2574\316\271
(B.6)

Using the components of to


\317\201 form the following antisymmetric matrix,
then a matrix multiplication represents the vector product of \317\201
and q:

0 -p3 Pi
Pj 0 -p,
~Pi Pi \302\260
.

and

0 -\320\240\321\212 \320\247\\
\321\200\320\263
=
pxq Pi \320\270 -\316\241\\ \320\247\320\263 (\320\222.7)

\320\270
'\320\240\320\263
\316\241, \320\257\320\272
436 \342\226\240 \320\222
Appendix

Eigenvalues and Eigenvectors

The expression p' = Ap represents


(he general transformation of a point p,
where
p'
is the transformed point and A is the transformationmatrix.Under
certain conditions it is possible to find a scalar X such that \317\201'
= or
\316\273\317\201

=
Ap \316\273\317\201 (\316\222.
8)

Every vector is true is an eigenvector


for which this of A, and \316\273
is the

eigenvalue of A
corresponding to p. Matrix A sends an eigenvector into a
collinearvector, and the corresponding eigenvalue is equal to the ratio of the
magnitudes of the two collinear vectors.

Equation (B.8)is equivalent to

(\316\221-\316\273\316\231)\317\201=0 (\316\222.9)

This equation has non trivial solutions if \317\201


*0 and

\316\231\316\221-\316\273\316\231\316\231=0
(\316\222.10)

This is the characteristic equation? and its solutionsare eigenvalues of A.

Summary of Matrix Properties


1. A + B = B+A
2. A + (B + C)
=
(A + + \320\241
\320\222)

3. jfc(A + B)
= jfcA + kB

4. (A +/)A = AA +/A

5. k(!A)
= (kl)A = l(kA)
6. (AB)C=A(BC)
7. A(B+ C) = AB+AC

8. (A + B)C = AC + BC

9. =
\316\221(\316\273\316\222)=\316\273\316\221\316\222
(*\316\221)\316\222

IB. (\320\220
+ \320\222)\320\223=\320\220\320\223
+ \320\222\320\223

11. = kAT
(kA)T
12. (AB)T = B7A7'
13. If AA\"1 = I and A_1A =
I, then A is nonsingular.
14. If IA| = 0, then A is singular.
15. If AAr= I, then A is orthogonal.

Determinants

A determinant isa squarearray of elements that reduces to a single value by


following a well-defined procedure. Determinants facilitate many vector and
Matrices \342\226\240
437

matrix operations. a matrix must be squareto have


However, a determinant,

and not every square matrix is associatedwith a determinant. If

\302\25311 \302\25312
A^
<721 \302\25322

then

= flu \302\25312
=
|A| <7ll<722-\302\253l2ib
fl22

If

\302\25311 Ol2

A = fl2l <722

<73l \320\25732

then

\302\253:: \302\253\320\270 \302\253\316\220\316\220


\302\253\320\270 \302\25312
\302\253\320\270
IA1 = \316\262\316\271, ~\302\253I2 + \320\260\320\277
a-si \302\25333 \302\25331 \320\247\321\212\321\212
\302\25331 \302\25332

The \321\201\320\276
factor
of element
aif
of determinant IAI is

=
cr/ (-i)'\"+'iA,;i
where 1A,JI denotes the determinant of Ihe (n - 1) \317\207
(n
~
1) matrix derived
from A by deleting row i and column/ from A.

Determinant Properties

1. The determinant of a squarematrix is equal to the determinant of its


= 1A71.
transpose: IAI

2. Interchanging any two rows (or columns) of A changes the sign of IAI.

3. If we obtain \320\222
by multiplying one row (or column) of A by a constant c,
then |BI = clAI,
4. If two rows (or columns) of A are identical, then IAI = 0.
5. If we derive \320\222
from A by adding a multiple of one row (or column) of A

to another row (or column) of A, then IBI = IAI.


6. If A and \320\222
are both \317\207
\316\267\316\267
matrices, then the determinant of their product
islABI= IAHBI.

7. If every element of a row (or column) is zero, then the value of the
determinant is zero.
This
page intentionally left blank
APPENDIX \320\241

TRANSFORMATIONS

Geometric transformations are an integral part of the modelingprocess.


Once we define a curve, surface, or solid, we can move it. duplicate it. and
reshape it to either becomepart of a more complex model construction or
simply
to meet more refined design requirements. A transformation allows
us to changethe position, orientation, or shape of a model in ways that would
otherwise be tedious, if not impossible,to achieve.
Linear transformations are the focus of this chapter. With the exception of
translations and projective transformations, they are given by linear
homogeneous equations of the form

x' = a, ,x + +<*\\?,Z
\320\260\320\2632\321\203

\342\226\240= \320\273- \320\273-


y' \316\261->\316\273\317\207 \316\261-\317\207\316\266
\320\260-\321\217\321\203

z' = ayix + a^y + al2Z


A translation spoils the homogeneous character of these equations by
requiring the addition of the constant terms\320\224\321\206,
alA, and a^A, respectively The
projective ties require a rationalform,where each of the three expressions on
the right is divided by a fourth linear expression aA,x + aA2y + aA^z +aAA (with
or without the constant terms). Introducing homogeneous coordinates
restores the homogeneous character of these equations.
determine a hierarchyof linear
We can transformations by the invariancc
of certain geometric properties.An invariant property is one that does not

439
440 \342\226\240
Appendix \320\241

change, one that is preserved when we subject the geometricmodel to a


transformation. The rigid-body transformations. or isometries,consistingof
translations and rotations, are the most restrictive of the so-calledaffine
transformations. These are the linear transformations that preserve, at least,

parallellines. For the isometries,all metric properties are invariant (distance,


angle,area, volume, and so on).
An isotropic or uniform dilation (scaling) transformation, another linear
transformation, preserves angles but not the other metric properties.
Nonuniform, or anisotropic dilation, as shear transformations, preserve
as well
parallel lines but not angles and distance. Projective transformations, the
least restrictive linear transformations, preserve straight lines but not
parallels. This brings us to nonlinear topological transformations, where bending,
stretching, and twisting are allowed and only the topologyof the modelis
preserved. We addressed these in part in
Chapter 10.
'Die transformations we consider here are translation,rotation,reflection,
symmetry, scaling and shear. We also discuss how to find the product of
multiple sequential transformations. For a more complete discussion of these
and many other geometric transformations, including symmetry and group
theory, see Mortenson (1995).
Transformation of Hermitc representations is somewhatdifferent from that
of the Bezier and B-Splinerepresentations. The Hermitebasis curves and
surfaces are defined by a mix of boundary conditiontypes:namely, endpoints and

tangent vectors. The Bezier and B-Splinecurves and surfaces are simply
defined by a set of controlpoints.We already know that Bezier and B-Spline
forms are affinely invariant, while is not true of the Hermiteform.For
this
example, given curve
a Bezier and air arbitrary point p(ur) on it, we can
perform air affine transformation on the control points and then,fromthe results,
compute\320\260 we can
\321\200'(\320\270;),\320\276\320\263apply the same transformation to \321\200(\320\272\320\263),
producing

p(iir).and finding that =\317\201(\",). Using


\317\201'(\317\211,) the Bezier form as representative of
the modelingelementsdefined by control points, we can compare it to the
Hermite form, depending upon the particular transformation imposed.
We will interpret transformations in an active sense. That is, we act on and
transformthe model within a fixed coordinate system. Although we might
think of transformationsas accomplishing
some sort of movement, they are
really just mappingsof functions. There is no path or transformation
trajectory. Only when we use a transformation to sweep air element through its

space to produce a higher-order element is the idea of a path necessary, and


then it is obvious and we explicitly incorporate it into the model.
Each specie of transformation is presentedfirst in terms of linear
Cartesian
equations. From these we develop their vector and matrix
We
representations. use homogeneous coordinates to compute the product of multiple
Translation 441
\342\226\240

sequential transformations that include translations and projections.Recall


that in
homogeneous coordinates we represent a point \317\201
in /i-dimensional

space by a vector of \316\267


+ 1
components. In ordinary Cartesian coordinates, we
represent a point by
the
three-component vector [x \321\203z]T, and in
homogeneous coordinates by the four-component vector [x \321\203\316\266h\\r. The
Cartesian and homogeneous coordinates are related by
hx

hy

hz

These equations, of course, should be familiar from the earlier discussion of


rational curves and surfaces.To si mplify things we use [x \321\203\316\2661J' to

represent the point [x \321\203z\\r.

C.I TRANSLATION

The translation of a point is given by

y'
= y + (CI)
ty

z' = z + tz
where and
t\342\200\236
ty, f; represent components of the translation. Translation
preserves the size and shape of an object and is, therefore, one of the rigid-body
transformations.
Tlie rigid-body translationof a geometric objectrequires that every point
on it moves a
equally given distance in a given direction (see Figure CI).
This meansthat we may specify a translation by a vector I so that
=
p' p+ t (C.2)

The prime mark denotes a transformed vector or matrix. In purely matrix


form we write this as
P' = P+T (C3)
these matrices produces
Expanding
442 \342\226\240
Appendix \320\241

Figured Translation of a curve.

x' \317\207 tx
= +
\320\243 \320\243 h
\316\266' \316\266 tz

x + h
y + 1, (C4)
z + tz

If we are careful with our and its interpretation,


notation we can mix
vectors and matrices as we already have for curves and surfaces.
Adopting
the

convention of treating points as column matrices, may


we write Equation
(C.3) as

p' = p + T (C.5)

A succession of translations is another translation equivalent to its vector


sum. The order of the succession is not important. Thus,

p'
=
p + li + l2+ +l\342\200\236

is to
equivalent

p'
=p + 2> (C.6)
i = I

Vector geometry and matrices certainly expeditetranslation


For
transformations.
example, vector equation of a line is p(u) = p0 +
if the then
\320\275\320\260, its
Translation 443
\342\226\240

translation bylisp'(ti)
=
(p(l + l) + ua, or p'(u) =
p(u) +I. Similarly,if a plane
=
pu + \302\253a
is \321\200(\320\270,\320\270\320\236 + wb. then its translation is p'(ii) = (p0 + I) + \"a + wb, or
+ 1.
\321\200'(\321\213,\320\270>)=\321\200(\320\270,\320\270>)

It is not necessary to translate every point on a curve or surface. It is


sufficient to translate the control points, from which we can then generate
a new

curve or surface. To translate a cubic Hermitecurve, we must transform its


matrix of geometric coefficients. Thus,

B' = + \316\244
\320\222 (C.7)

where =
\316\244 I 0
[I 0]r.
For a bicubic Hermite patch we ha-ve, again, the general form = \316\222
\316\222' + \316\244,

but now

110 0
T =
1(00
0 0 0 0
(C.8)
0 0 0 0

The four corner points are translated, and the tangent and twist vectors are
unaffected.
For a Bezier curve or surface we translate all the controlpointsby (.Thus,

for curves we have

\317\201'(\302\253)=\316\243(\316\241'+\316\277^(\
/ = o

(C.9)

=
Xp;bju)
i = ()

and for surfaces

+
Vr(u,w) =\316\243 \316\243(\316\241* ') B\302\253M Mw)
i (l = /\"= (1

(CIO)

/ = o /=o

We translate B-Spline curvesand surfacesin the same way,by translating the


control points.
444 \342\226\240
Appendix \320\241

C.2 ROTATION IN THE PLANE

The geometry describingthe rotationof a


point (or vector) through
\317\201
an

angle about
\317\206 the origin is shown in Figure C.2. Because\317\201
and p' lie on the
circumference of a circlecenteredat the origin and Ipl
=
Ip'l (distance is
preserved in a rigid-body transformation), from elementary trigonometry we

find that

= cos - sin
cos + \317\206)
(\317\211 cos
\317\211 \317\206 sin
\317\211 \317\206

sin = sin
+ \317\206) cos
\317\211 + cos sin
\317\211
(\317\211 \317\206 \317\206

Furthermore, cos o = je/lpl and sin ro = j'/lpl,so that substitution yields


\317\204' \317\207 \316\275
= ^\342\200\224
+ \317\206) -
= \342\200\224-\321\201\320\276\321\217
cos (\317\211 \317\206-rrsin \317\206
Ipl Ipl Ipl

-*--
sin =-2\342\200\224=\342\200\224-sin +
+ \317\206)
(\317\211 \317\206 cos \317\206
Ipl Ipl Ipl

which simplifies to
x' =jc cos \321\204-\321\203
sin \317\206

(\320\241\320\237)
=x
\321\203' sin +ycos
\321\204 \317\206

Figure C.2 Rotating a point or vector


about the axis.
\316\266
Rotation in the plane 445
\342\226\240

In matrix form this equation becomes


p' = Rp (C.12)

where R is the rotation transformation matrix, and

R cos \317\206 -sin \317\206


(C.13)
sin \317\206 cos \317\206

We will use the convention of premultiplying the point matrixby the

transformation matrix. Notice that a property of all isometries.


IRI = 1 is

Successive Rotations about the Origin

The product of two successive rotations and


\317\206\316\271 of
\317\2062 a point about the origin
is given by
=
p' RA,p (CM)
We interpret this as a rotation by followed
\317\206\316\271 by in
\317\2062. that order.The matrix
product \316\227\317\206,\316\227\317\206\316\271
yields

- cos
cos cos \317\206,- sin
\317\206\316\271 sin
\317\206^ \317\2062 -sin cos \317\2062
\317\206\316\271
sin
\317\206] \317\2062
R e,R
(ij: cos sin
\317\206] + sin \317\206\316\220|
cos \321\2042 -sin + cos \317\206\316\271
sin \321\204\320\267 cos \317\2062
\321\204\320\263 \317\206\316\271

Using elementary trigonometric identities wc find

COS^+\321\204\320\263) -Sin^+\317\206;,)
R^R^! Sin (\317\206,+\321\204\320\263)COS^+\321\204\320\263)
(C.15)

which tells us that for successive rotations in the plane about the origin we
simply add the anglesand use the resulting sum in the rotation matrix of
Equation (C.13). easily generalize We this to the product of successive
\316\267

rotations about the origin, or

cos +
+ \317\2062 \342\226\240\342\226\240\342\226\240
+ \317\206\342\200\236)
-sin + + - +
(\317\206, (\317\206, \317\2062 \317\206\342\200\236)
R (*1+\320\2442
+ -
'
+\320\244;\320\263) (C.16)
+ \342\226\240\342\226\240\342\226\240
sin -t- \342\226\240\342\226\240
+ \317\2062
(\317\206! + \317\206\342\200\236)
cos + \317\2062
(\317\206\316\271
+ \317\206\342\200\236)

The order in which we perform the product is not important,so that, for
= = conclude thai a sequence of rotations
example. R^R0l R^R*., R^ + \302\2732-
We

in the plane about the origin is commutative.This is not the case for rotations
in space, where order is importantand different orders produce different
results.
446 \342\226\240
Appendix \320\241

Rotation about an Arbitrary Point


A rotation R about an arbitrary point p(. in the plane requires first a
translation li
=-prthat brings the point pc to the origin.Next, we execute the
rotation and then reverse the translation i2 = pc> obtaining

= +
p' R(p-pf) pL (C.17)

The combination of matrix multiplication and addition quickly becomes

cumbersome as we add more rotations and translations.We will see that


using homogeneous coordinates reduces this problem to a more workable

sequence of matrix multiplications only.

Rotation of Curves and Surfaces


Given the vector equations of aline and plane, we rotate them about the
origin as follows:

Line: =
Rp0
\321\200'(\320\275)
+ iiRa (C.18)
Plane: p'(u,w) = Rp0 + iiRa + wRb (C.19)
Rotating a planar cubicHermitecurve requires some attention to how we
set up its \320\222
matrix. Here is one way to do this.We let

pn *o

Pi X, \320\243\\
(C20)
pa x'6 \320\243\320\247

\320\253
\316\241\316\252- yU

Then a rotation transforms the curve by operatingon its matrixofgeometric


coefficients as follows:

B' = RB (C.21)

or, more completely


p'(u) = UMRB = UMB'
(C.22)
For a Bezier curve, we rotate the set of conlrol points, so that
p; = rp( (C.23)
and

p'(\=Zp^m(\")") (C24)
= 0
\320\263
Rotation in SpaceaboutthePrlnclpal Axes - 447

Coordinate 5ystem Rotation

To compute the coordinates of a point or the components of a vector in a


coordinate system rotated by with
\321\204\321\201 respect to the initial system and with a
common origin, we use Equation (C. 13) with = This
\317\206-\317\206,.. asserts that a
coordinate system rotation produces results identical to that of an equivalent but
oppositely directed rotation of a point or vector in the fixed initial
coordinate system, and leads to

cos -sin
(-\321\204\321\201) (-\317\206,.) cos sin
\321\204\321\201 \321\204\302\243
R* (C.25)
sin cos -sin \321\204\321\201
\321\201\320\276\321\214\321\204\321\201
(-\321\204\321\201) (-\321\204\321\201)

so that

Rd (C.26)
We also see that

R, = R[ = R^ (C.27)

C.3 ROTATION IN SPACE ABOUT THE PRINCIPALAXES

Rotations in space are more challenging and complexthan rotations in the


plane. We let and
\316\270,
\317\210, denote
\317\206 rotations about the x, and
\321\203 \316\266
axes,

respectively, of a fixed global frame. Remember, we are taking the active point of
view, where points and other geometric objects are repositioned in a fixed
coordinate frame. We begin with a rotation about the \316\266 axis, because it looks
much like a rotation about the origin in the x, \321\203
plane,
and simply expand
Equation (Gil) to account for the \320\263
coordinate,so that

= \317\207
\317\207' cos - sin
\317\206\321\203 \317\206

/ = sin
\317\207 + \321\203
\317\206 cos \317\206 (C28)

\316\266'=\316\266

and make appropriate changes to the rotation matrix,so that


cos \317\206 -sin \317\206 \317\213

R*=l sind> \317\206


sin cosd>\317\2060Ol
cos (G29)
0 0 1

The rotation matrices for the and


\317\207 axes
\321\203 are simple extensions,namely
448 \342\226\240
Appendix \320\241

10 0
R, \317\213cos \317\210 -sin \317\210 (C30)
0 sin \317\210 cos \317\210

and

cos \316\2700 sin \316\270

Rf 0 1 1
(C31)
-sin \316\270 \317\213cos \316\270

Obviously, it is still the case that IRJ


=
IRVI
= IRJ = 1.

SuccessiveRotationsaboutthe Principal Axes

We can use successive rotations about each of the three principal axes to
place a geometric object into any orientation. However, it is
important that
we establish a convention for doing this, because it turns out that, for
successive rotations in space, order is important. Here is the first convention we
will use:

1. First, if *0,
\317\206 rotate by Ra about the \316\266
axis.

2. Next, if \316\270
*0. rotate by R0 about they axis.
3. Finally, if \317\210*0, rotate by Ry about the axis.
\317\207

Using this convention to rotate a point we have

(C32)

The expanded product


of these three rotation matrices is

cos\316\270
cos \317\206 -cos sin \317\206
\316\270 sine
-
cos \317\210
R, .|\316\220\316\262\317\210: + sin
sin \317\206 sin
\317\210 cos
\316\270 \316\271cos co-s
\317\210 \317\206sin sin
\317\210 sin \316\271-sin
\316\270 cos
\317\210
\316\270
(C33)
sin sin - cos sin cos
\316\270 \316\271sin cos sin \316\271
sin \316\270 cos cos \316\270
\317\210 \317\206 \317\210 \317\210
\321\201\320\276\320\267\321\204+
\317\210 \317\210

A different order, say, ReR^R^, yields an entirely different product matrix.


We kn0w IRJ = |RVI = IRel = l,and
that we can use matrixalgebrato show

that = 1. This raises the following comment


\316\231\316\232\316\275\316\270\317\206\316\231
and caution: After a

sequence of rotations it is unavoidable that the determinant of the resultant


rotation matrix will no longer precisely one. That is, it will happen that
equal
IRI = 1 e. The
\302\261 deviation will depend accuracy of the algorithm
on the
computing
the sine and cosine functions, computational precision, round-off
errors, and, of course, the number of individual rotation matricescontribut-
Rolalion in Space aboul Ihe Principal Axes 449
\342\226\240

ing to the final product. In the absenceofcorrective measures, this deviation


will produce non-rigid-body transformations and incorrectvalues for

equivalent rotations.

Rotation of the Coordinate System


There are situationsin which we must determine the coordinates of a point
or components
of a vector in a coordinate system that is rotated with respect
to the initial system, but with a common origin or pivot point. When rotating
a point or vector, the principal axes are fixed, but under a coordinate system
rotation a succession of original and transformed axes leads to their final

position. Figure C.3 shows what happens to the coordinate axes when they
are rotated by and
\321\204\321\201,
\316\230\316\225, in that
\317\210\316\225, order, and when none of them is zero.
Rotating
the coordinate system by has the
\321\204\321\201 same effect as rotating the
point or vectorby =
\317\206-\321\204\321\201.

Rotating about
\321\204\321\201 the axis
\316\266
displaces the and
\317\207 axes
\321\203 to the x' and / axes,
while the z' axis remains coincident with the initial axis.The
\316\266 next rotation,
0C about the y' axis,displaces the x' and z' axes to x\"and z\" and leaves the y\"
axis coincident with the y' axis. The final rotation,\317\210\316\225 about the x\" axis,

displaces
the /' and z\" axes to /\" and z\"', leaving the x'\"axis fixedand
coincident with the x\" axis. We denote the first rotation the
as \320\232(\321\204\321\201),
second as

R(6C),and the third as \316\232(\317\210().


Letting
=
\316\230\316\225,
\316\232(\317\206\316\223,
with \317\206
\317\210,.) \320\235(\321\207\320\263\321\201)\320\235(\320\265\321\201)\320\2
= and = we find from
=-\317\206,, \316\270~\320\262\342\200\236
\317\210 -\317\210,, Equation (C33)

Figure C.3 Rolation of the


coordinate system.
450 \342\226\240
Appendix \320\241

\316\262(\316\246<-\316\221,\317\210\316\223)

cos
cos cos
\316\270, \321\204\320\263 cos sin \317\206,
\316\230\316\223 -sin \316\270,

-cos sin
\317\210^ + sin \317\210,
\321\204\320\263 sin cos
\316\270,- cos
\317\206,, cos + sin \317\210\316\223
\317\206\302\243
\317\210\302\243 sin
sin \316\270, sin \317\210\302\243
\321\204\320\263 cos \316\270,
(C34)
sin sin
\317\210, + cos \317\210,,
\321\204\320\263 sin cos
\316\270, \342\200\224sin
\317\206, cos
\317\210, + cos \317\210\302\243
\317\206\302\243 sin \316\230\316\223 cos
sin \317\206,, cos \316\230\316\223
\317\210\316\223

As we might expect, it turns out that is neither


\320\255\321\201,
\320\232(\321\204\321\201,
\317\210\316\225)
the transpose
nor the inverse of R \316\270,
(\317\206, Simple
\317\210).
matrix algebra suffices to demonstrate
this assertion.Thus,

\316\270,,
\316\232(\316\246\316\277
=
\317\210.) R;1 Ri' R^' = Rj RJ \320\251= [R4 Re R\302\245]r

and

=
\302\245) [R^ReR^l\"'
\316\227\316\223(\317\206,\316\270,

However, in general

[R$ Re Rv] \317\210


[R,, R9 R$]

Euler Angle Rotations


So far, we have rotated pointsand other geometric objects with respect to a
fixed globalframe,or we have roiated the global frame. Now we will define
a local frame that is rigidly attached to an object.The local and global frames
initially coincide.We perform subsequent rotations with respect to this local
frame,so that when we rotate an object its frame rotates with it. The rotation
angles are the Euler angles.
The rotation sequence
in

=
\321\200' \320\232(\320\263*\320\233)\320\260\320\264\320\262)\302\253(\320\263.\320\244)\321\200

is the \317\207
convention Euler angle rotations, where x', y', and z' indicatethe
for
local frame position with respect to the globalframeafter the first rotation,
and x\", y\", and z\" indicate its position after the second the rotation.(Notice
change in notation: The first argument element in parenthesison the
rotation matrix indicates the axis of rotation, and the secondelement indicates

the angle of rotation.) The premultiplying conventionfor combining


rotations applies. The first rotation R( \320\263,
\317\206) about
is the \316\266
axis in the global frame.
It leaves the \316\266 axis of the local frame unchanged but rotates the local\317\207 and \321\203
axes with the
object.The second rotationR(*', is about
\316\230)
an x'axis that does
not now coincide with any of the global axes. This means that we must first
rotate*' into coincidence with one of the global axes, so we choose to rotate
through about
-\317\210 the global \316\266
axis, or R(z, -\317\206),bringing
the and
\317\207 x' axes into
Rotation in Space about the Principal Axes 451
\342\226\240

coincidence. We now perform R(j, followed


\316\230), by R(z, which
\316\246),
returns x'
to its proper position. This tells us that there is a sequence of global frame
rotations equivalent
to R(a', \316\230):

=
R(*', \316\230) R(z, R(x,
\317\206) R(z,
\316\230) -\317\206)

The first two rotations of the convention


\317\207
produce

RU-',\316\230) R(Z, =R(Zj


\317\206) \321\204)
\321\211\321\205,R(z,
\316\270) -\316\246) R(z, \317\206)

Using R(z, -\317\206)R(z,


= I
\316\246)
to simplify the above equation produces
=
R(x\\ R(z,
\316\230) \317\206) R(z, R(a-,
\317\206) \316\230) (C.35)

When wc perform the third rotation R(z\",\317\210)and again simplify using (he
procedure outlined above,we find that

=
R(z\", R(*',
\317\210) R(Zi
\316\230) \317\206) R(z, R(.v,
\317\206) R(z,
\316\230) \317\210) (C.36)

From this we conclude that a sequence of three Eulerangle rotations in the


local frame is equivalent to three rotationsthrough these angles applied in
reverse order and with respect to the global frame. The details of this method
and its generalization are given by Lee and Koh(1995).
The \317\207
convention is frequently used in
applied mechanics, kinematics, and
molecular and solid-state physics. The \321\203
convention's rotation sequence
(using the is
pre multiplying convention) R(z\", R(y',
\317\210) R(z,
\316\230) Many
\317\206).

other conventions are possible. The general guidelineis that no two


successiverotations should be about the same axis.

Equivalent Rotationsaboutthe Principal Axes

After a sequence of many rotations producinga net rotation R, we often must


solve the inverseproblem:Given any proper rotation matrix R, find a set of
rotationangles\317\206, and
\316\270, that
\317\210 generates an equivalent matrix. This problem is
somewhat loosely stated, and we must choose conditionsthat limit the
problem. We first select a specific sequence of angles and corresponding axes.Using
the sequence that produced R^ in Equation (C.33), we equate the arbitrary

proper rotation matrix R to R^ea to obtain the following relationship:


\320\223\321\206 \320\223\\3 cos cos
\316\270 \317\206

\320\223\320\263\320\263
\320\223\321\206 \320\22323 COS +
\317\210\316\272\316\257\316\220\316\220\317\206
5\316\252\316\267\317\2105\316\257\316\220\316\220\316\270\316\270\316\237\317\212\317\206
Sill \342\200\224
\320\223\320\2672
\320\223\321\2121 \320\263\321\212\321\212 \317\206 0\316\2375\317\2105\316\252\316\267\316\270\342\204\226\317\212\317\206
\317\2105\316\23111

-cos sin
\316\270 \317\206
sin \316\270

~
cos cos
\317\210 \317\206sill \317\210
sin sin
\316\270 \317\206-sin cos
\317\210
\316\270 (C.37)
COS\\|!Sin0sil^
5\316\220\316\267\317\210\316\26005\317\206+ COS\\||COS0
452 \342\226\240
Appendix \320\241

Because matrix equality implies elemenl-by-elemeiit equality, the


following
relationships also apply:

ru = cos cos
\316\270 \317\206 (C.38)

r2, =cos sin


\317\210
+ sin
\317\206 sin
\317\210 cos
\316\270 \317\206

rM =sin sin
\317\210 \317\206-cos sin
\317\210 cos
\316\270 \317\206

r12=-cos sin
\316\270 \317\206

= cos cos -sin sin sin


\316\270
\320\2372 \317\210 \317\206 \317\210 \317\206

rl3 = sin cos + cos


\317\206 sin sin
\316\270 \317\206
\317\210 \317\210

= 51110
/-,, (C.39)

i-23=-sin cos
\317\210 \316\270

= \316\270
r3} COS\\|ICOS (C.40)

II is tempting to solve these equations for \317\206, and


\316\270, \317\210
as follows:

= sin-1
\316\270 i-l3 from Equation (C.39) (C.41)

\320\223\320\2522
\\|l
= COS from Equations(C.40)and (C.41) (C.42)
COS \316\270

/
(C.38) and
-\316\271 \320\237\\
=
\321\204\320\24105
cose
from Equations (C.41) (C.43)

However, Equations (C.41)


to (C.43) have the potential for serious
computational problems. For example, computing an angle using the arcsine
between the -
function makes the distinction angles and
\316\270 \317\200 \316\270
ambiguous.
Furthermore, if = 0
\316\270 or then
\317\200, sin = 0.
\316\270 Equations (C.42) and (C.43) are
undefined when =
\316\270 because
\302\261\317\200/2, cos =
(\302\261\317\200/2)
0. A more conservative
approach is to use tangent and arctangent functions. One way to do this is to
premultiply both sidesof Equation (C.37) by R;1 to produce

'12 '13
COS
\320\2232, + Sin
\317\210 \316\2233| \317\210 r22 COS \317\210+r32
Sill \317\210 T21l
COS \317\210
+ \316\223\302\273
Sill \317\210
COS \317\210

Sill
-\320\22321 +
\317\210 r31
COS Sill
\317\210 -\316\22332 + \320\223\321\2122
\317\210 COS \317\210 Sill \317\210
-/\"\320\263\320\267 + \316\22333
COS \317\210

cos cos
\316\270 \317\206-cos sill
\316\270 \317\206sin \316\270

sill \317\206 cos \317\206 \317\213 (C.44)


-siii cos
\316\270 \317\206 sin sin
\316\270 \317\206 cos \316\270.

The element in row 2 and column 3 is zero. Equating this element in the

matrix on the right to that on the left produces


Rotation in Space about an Arbitrary Axis 453
\342\226\240

sill = 0
r2i cos + r.iS
\317\210 \317\210

Ian = \342\200\224\342\200\224
\317\210

= tan\" \316\2522\316\273
\317\210

These two solutions are 180\302\260


apart. It is also possible that r23
=
r33
= 0; Ihen
the angle is undefined,and we arbitrarily set =
\317\210 0. Otherwise, once we
compute
a value for we
\317\210, know all the elements of ihe lefl side of Equation
(C.44) and we can compute and
\316\270 \317\206.Thus

sin =
\316\270\320\263,\320\267

cos =
\316\270 sin + cos
\317\210 \320\263
~\320\263\320\263\321\212 \320\273 \317\210

so that

\320\223\321\206
= lair
\316\270 ,
sin + cos
\317\210 \320\263\321\215\320\267
\\~\316\257\317\2012.\316\271 \317\210;

With the sine and cosine defined, we easily computea unique value for \316\230-

For we
\317\206 have

sin = cos sin


\321\204\320\2633, +r3l
\317\206 \317\206

cos = cos sin


\317\206rn \317\210+rn \317\210

+
= ^5\316\2311\316\2201\316\234
\317\206\316\2523\316\267-'\316\257^05\316\246
\\/23 cos \317\210 + \320\263\320\2521
sili \317\210/

We conclude from all this that ihere is no unique solution to the \"given R,
find and
\316\270,
\317\206, problem,
\317\210\" unless we make a series of clarifying assumptions.

C.4 ROTATION IN SPACE ABOUT AN ARBITRARY AXIS

Rotation about an arbitrary axis is ihe most general form of a


in space

rotation transformation. The development that follows assumes that the axis of
rotationpasses through the origin because,if it docs not, it requires only a

simple translation transformation to produce the condition. We define the

axis by a unit vector a and the angleof rotation by a. The right hand rule
applies to the sign of a: If Ihe thumb of the right hand points in the direction
of a, then the fingers of Ihe right hand curl around a in the positive sense of
the angle (see FigureC.4).
454 \342\226\240
Appendix \320\241

Figure C.4 Rotation about an arbitrary


axis.

Here is the strategy we will use to develop ihe rotation matrix R


defining
this transformation: Rotate the vector a into alignment wilh the \316\266
axis,

perform the rotation through Ihe angle a, and Ihen return a to ilsoriginal
orientation. This process is expressed algebraically by the following
equations:

=
p' R_,R.vRaRvR+p (C.45)
R= R^R.VR\342\200\236R,R( (C46)

Reading terms from right to left in Equation (C.46),we first execute a


rotation R,,,
on an
arbitrary point \317\201
about the axis
\316\266 and through the angle \317\206.

This places the axis a in the y, \316\266


plane.Then R^, rotates the point about the \317\207
axis through the angle which
\317\210,
ali gns a with the z. Next, R\342\200\236
rotates the point
about the \316\266
axis, through the angle a. Finally, we reverse the process,with
R-y
and R.,, rotating the point by and
-\317\210 -\317\206,in that order, all of which
Rotation in Space about an Arbitrary Axis 455
\342\226\240

returns a to its initial position. We see that the matrix product R^R^SaRy
R$ appropriately rotates an arbitrary point to
\317\201 produce p' and leaves a and,
of course,any points on it invariant.
Performing the matrix multiplicationindicatedin Equation (C.46) to
produce R is a horrible task. Fortunately, it must be done only once.To proceed,
we use the following matrices:

cos \317\206-sin (\316\223


-\316\270- cos \317\206sin \317\206\317\213

R, sin \317\206 cos \316\246\317\213


* R -s
\342\200\224
-sin \317\206cos \317\2060

0 0 1 0 \320\236 1

\"
1 0 0 \"1 0 0
R, 0 cos \317\210 - sin j
\317\210 R-v
= \317\213 cos \317\210
sin \317\210

0 sin \317\210
cos
\317\210
0 -sin \317\210
cos \317\210

cos \316\261 -sin \316\261 0

= sin \316\261 cos \316\261\317\213


Ru
0 0 1

where

=
\320\24105\321\204
Vax + \320\271\\

= J
SHI <h

cos =
\317\210 aL

sin = +
\317\210 VaJ \320\251

and, because a is a unit vector, we have a\\ +


a]. + a] = 1.
Fivst wefind the elements of R in terms of sine and cosine functions of the

angles and
\316\230,
\317\206, Then
\317\210.
we substitute
appropriately to replace the sin \317\206,
cos

sin
\317\206, and
\317\210, cos terms
\317\210
with their equivalents using the unit vector
components ax, ay, and a7. Finally, we obtain

a + al (1 -cos a) sin + er - cos a)


cos ~at \316\261
ay (1
R sin a
\320\260\320\263
+ ax az (1 - cos a) cos -cos
\316\261+\316\254){\\ a)
~av sin cc + ax az (1 - cos a) a, sin a + ay az (1
~ cos
cc)
a sin cc + \316\261, (1
~ cos
\316\254\317\204 a)
~ cos
-a, sin cc + \316\262,,
az (1 a) (C.47)
cos a + a\\(\\ -cos a)
456 \342\226\240
Appendix \320\241

Compare
the matrix
r\342\200\236 elements, and also the rr;
and elements.
\316\267,
These and
olher patterns or regularities in the distribution of terms often indicate the
correctnessof a complexexpression such as this.
If the axis represented by a coincides with any of the principal coordinate
axes, then R simplifiesaccordingly. Thus, for example, if a lies along the \316\266

then = 0 and = lfso that


axis, \316\254\317\207
~\316\254; \316\254\316\266

cos \316\261 -sm \316\261 0


R sm \316\261 cos \316\261 0
0 0 1

as expected.

Rotation and Quaternions


Quaternions, invented byW. R.Hamilton in 1843, prove to be usefulfor
computing
the product of sequential rotations about arbitrary axesand
subsequently extracting the equivalent rotation angle and axis. They are four-

component hypernumbers, (one component)and part vector


part scalar
(three components), with special operating rules and interpretations. We will
define a quaternion A as the formal sum a + r of a real number (scalar) and
a vector.The formal derivation of the following quaternion properties
appears in many readily accessibletexts.
The sum of two quaternions A = a + r and \320\222
- b +s is another quaternion
such that

A+B =
(a+b) +(r+s)
and the productof two quaternions is

A + B = (a+r)(b +
s)

= - r br + r x s)
(as +
\342\226\240
+
(ab s)

The result in both cases consists of a scalar part and a vectorpart.The


presence of the term r s in
\317\207 the vector product indicates that the vector product
is not commutative, that is, \316\221\316\222\317\210\316\222\316\221.
We apply quaternions to the rotation transformation as follows:Let unit
vector a define the axis of rotation through the origin,and let define
\316\261 the

angle of rotation. We assert without proof that we can describe this rotation
by the quaternion
R = cos (a/2) + sin (a/2)a (C.48)

This is the normalized form of a quaternion.


The conjugate of R is
Reflection 457
\342\226\240

R*- cos (a/2)- sin (a/2)a

To rolale a point \317\201


through about
\316\261 a, we perform the quaternion
multiplication given by

P' - RPR '


where is the
\316\241 quaternion representing (the
\317\201
sea lar part of is zero
\316\241 and the
vector part isp)./\" is the rotatedquaternion p'. For a from which we extract
normalized quaternion,the inverseis equal lo the conjugate; thus. R~[ -R* =
cos (a/2) - sin (a/2)a.The inverse is found by simply reversing the sign of a.
It is easyto prove that ihe product of two normalized quaternions is another
normalized quaternion,
a necessary characteristic when dealing with

rotations.

This process extends to and greatly simplifies executinga sequenceof


rotations about arbitrary axes through the origin. For example,if R and S
describe two distinct rotations, then R rotates to
\317\201
RPR'1 and .S1 takes this
result to S(RPR~*)S~l. Because quaternion multiplicationis associative, we

have

S(RPR l)S-l = (SR)P(R-lS~l)

and
R-iS-l = (SR)~l
If we let T = SR, then we find that

= TPT '
(SR)P(SR)l

Clearly, the quaternion \316\244


describes is equivalent lo the
a rotation that
sequence R followed by S. Thus,
any sequence of rotations about axes
through the origin has an equivalent single rotation. It is easy to extract the
components of this equivalent rotation from the resultant quaternion \320\242.
1\320\252\320\265

vector part of 7\" defines the axis, and Ihe scalar part is the cosineof one-half
the rotation angle.

C.5 REFLECTION

Although the size and shapeof an object do not change reflection


under a
transformation,its handedness may change, as in a mirror reflection. For this
reason it is not strictly a rigid-body transformation.Itis not a topological
transformation either, because the topology of an object is not preservedunder a

reflection; that is. it is not possible to create a mirror image of an object by


458 \342\226\240
Appendix \320\241

bending, twisting, and stretching without culling or piercing.Yet combinations


of two or more reflections can produceall the rigid- body transformations.
Reflection transformations play an importantpart in constructing and

analyzing
ihe symmetry of models, and reflection lines and planesare lines and

planes of symmetry of a model and its reflectedimage. Of course, the subject


of symmetry is much deeper than this statement implies. To completely
explore symmetry and its to
relationship geometric modeling requires the aid
of group theory, which is beyond the scope of this text.
FigureC.5illustrates some of the ways to reflect a curve in the x, \321\203 plane.
The geometric coefficients of a cubic Hermite curve are shown for each of
four positions. The procedurefor constructing a reflected image of any
object in space simple.Forexample,
is lo reflect the curve in the first
quadrant
through
= 0
the \321\203 plane, we transform each point \317\201 on it to its
symmetric
image p'located an equal distance from the plane but on the other side of
it. The distancebetweenpoint a and is
point \317\201 equal to the distance between
a and p'. Point a lies on the straight line joining \317\201 and p' at its intersection
with the axis.
\317\207 Furthermore, the vector p' - \317\201 is normal to this axis.
This transformation merely changesthe algebraic signs of tbe \321\203
components of the curve coefficients. In fact, when the planeof symmetry is any one
of the three principal planes,the reflection transformation is accomplished by

-1 10 4 4 0
-11 0
\316\270 It \320\276
\320\260
-5.\320\221 13 0 5.5 13 0
0
-\320\255.\320\255-12 -12 0
\320\267.\321\215

-\316\233
-1 1
-5.5 -13 0
-3.8 12 0

Figure C.S Reflectionsof a curve in the x, plane.


\321\203
Reflection - 459

changing the sign of the curve coefficients of Ihe component corresponding to


the plane of symmetry. Although lhe
example in Figure C.5 is a plane curve,
the same procedures apply lo a curve that twists throughspace.
Reflection may also take place across any of the principal axes or through

the origin. A procedure analogous lo that for reflection through a plane of


symmetry applies lo reflectionacross principal a axis or through (he origin.
Figures C.6and C.7 more elaborate are
examples of the reflection of a curve.
The determinantof reflection transformation a
Rf is equal lo-l:

IR,l=-l (C.49)
This tells us that a reflection is an orientation (or handedness) reversing
transformation (for example, a right hand becomesa left hand). We will also
investigate pseudoreflections, transformations that look like a reflection but
are not orientation-reversing.

Inversionin the Origin

We can consider inversions as a special form of reflection they take


in that
place througha point.In the \316\275
\317\207, plane, inversion through the origin is given

Figure C.6 Reflectinga curve through the three


principalplanes.
460 \342\226\240
Appendix \320\241

Figure C.7 Reflecting a curve through the originand a


principal axis.

by

x' = -x
=
y' -y (C.50)

or, in matrix form

(C.51)
where
-\316\271 \317\213
R,
\317\213-\316\271

We notice that \\Rf\\


= +1, and this transformation preserves orientation,
inversion in the origin in three-dimensional space is given by
=
\317\207 ~x

=
\320\243 -\320\243

\320\263'=-\320\263 (\320\241.52)

and

-\316\271 \317\213 0

R/ ~ \317\213-\316\271 0 (\320\241.53)

\317\213 \317\213 -1
Reflection 461
\342\226\240

so that in three dimensions


IR,I=-1 (C54)
A study of inversion in higher dimensions demonstrates that inversion in
a point is a true reflectiononly in odd-dimension spaces. In even-dimension
spaces, the transformation producesa half-turn, which is a rotation through
180\302\260.Inversion in a point is an isometry becausedistances are
preserved.

Reflections in the Plane


Reflection in the axis
\317\207 is given by
x' = x
and, Rf - 1 \317\213
(C.55)
=-)>
\320\243 \317\213-\316\271

Reflection in the axis


\321\203 is given by
x' = -x
-1
= and R, 0]
\320\243' \320\243
\317\2131

Reflection in an arbitrary line m through the origin, at an ang1 \320\265 with


\321\204\320\273\320\263

the \317\207
axis, requires that we first execute a rotation that makesthe line coin-
cident with the \317\207
axis, = then we execute
\317\206-\317\206,\342\200\236; a reflection about the \317\207 axis

and, last, reversethe initial rotation. Thus

-sin \320\236
\321\204\342\200\236,1\320\2231
\316\265\316\277\316\264\317\206\342\200\236, cos sin \317\206\342\200\236
\317\206\342\200\236
R P\" ~
-I -sin cos
\321\201\320\276\320\261\321\204\342\200\236|_0\317\206\342\200\236\317\206\342\200\236
\320\274\320\277\321\204\321\202
(C.56)
cos 2 sin
\317\206,\342\200\236 2 \317\206,
sin 2 -cos
\317\206,\342\200\236 2 \317\206

Reflection in Space

Earlier we found that or more reflectionscan produce


a combination of two
all of the rigid-body transformations. It is easy to show that two reflections in
parallel planes are equivalentto a translation. It is also true that two
reflections in
intersecting planes are equivalent to a rotation. We demonstrate
both of these in a later section when we discussmultiplesequential
transformations. For now we merely list some very simple reflections.
Reflectionin the \317\207 -
0 plane is given by

X' = -X -I 0 0
=
\320\243' \320\243 and R, 0 1 \320\236
(\320\241.57)

z' = z \317\213\317\213 1
462 \342\226\240
Appendix \320\241

Reflection in the =
\321\2030 plane is given by

=x
\317\207 1 \317\213\317\213

=
\320\243' -\320\243 and R,= \317\213-1 0
(C58)
z' = z 0 \317\2131

Reflection in the = \317\213


\316\266 plane
is given by
-x
\317\207' \316\212 \317\213 0\"

y'=y and Rf= 0 1 0 (C.59)


z'=-z \320\276\317\213 -1

A transformation given by
-x
\317\207' 1 \317\213 0
/ = -y and R f~ 0 -\316\271 \317\213 (C.60)
\342\200\224
\316\266 ~~z 0 0-1

is the same as a half-turn about the axis.


\317\207 really a pseudoreflection,
It is
because here IRfl =1. Similar half-turns may occur about (he \321\203
and axes.
\316\266

C.6 DILATION AND SHEAR

Dilation (often calledscaling) and shear are more general affine


where
transformations, at least parallel lines are preserved. Isotropicdilation,that is

uniform expansion or contraction in all directions, preserves shape and


angles but not distance. Shearpreservesdistance along parallel lines, bul nol
shape and angle.

IsotropicDilation
We define dilation as follows: If the distancebetweenany
a uniform pair of

points then after


is d, a uniform dilation ihe distance between them is kd.
The equations describing a uniform dilationfixing the origin are

x' = kx

y' = ky (C.61)
z' = kz

In matrix form, these equationsbecome

~k 0 \317\213
(\320\241.62)
\317\213\320\272\317\213

0 \317\213\320\272
Dilation and Shear 463
\342\226\240

where fc is the scale Ihe dilation is an expansion. If 0 < \320\272


factor. If > 1.
\320\272 then
< 1. Ihen Ihe dilation is a contraction. If \320\272
= 1. il is the
identity transformation.
If \320\272
< 0, the transformation is a reflection or inversion coupled with an
expansion or contraction.
We a dilation
execute of a Bezier or B-Splinecurve or surface by simply
applying the dilation transformationto the control points. We scale a cubic
Hermite curvevia its geometric coefficients. Thus, B' = kB = [fcpj kpt fcpii
kp\"]T (see Figure C.8). We see the effect of scaling on the tangent vectorsin
Figure C.9.
The inverse of any dilation is
\342\200\224
0 0
\320\272

D'
1
= 0 \317\213 (\320\241.63)
\320\272

\317\213 \317\213

We will consider dilation fixing an arbitrary point in the nextsection.

Figure C.B Scaling a curve with respect to the


origin.
464 \342\226\240
Appendix \320\241

Figure C.9 The effect of scalingon tangent


vectors.
The productof two dilations DL and \316\2142
fixing the origin is

p' = D2D,p
~ktk2 \320\236 \320\236
(C64)
0 ktk2 0
0 0 ktk2_

By inspection, wc conclude that DZD L = D|DZ and that the order of the
dilations is not
important.

Anisotropic Dilation

Anisotropic dilation is a nonuniform expansion or contraction. In general,


there may be three independentscale factors fixing an arbitrary pojnt,
referred to as the three principal directions in space. For the simplest case,
we Specify a different scale factor for each of these directions,fixing the

origin, and thus producing

x' = kxx

/=*,\320\243 (\320\241.65)

z' = kzz
Dilation and Shear 465
\342\226\240

In matrix form, we write this as


** 0 \317\213

0 *v. \317\213 (C.66)


0 \317\213 *.

Clearly, in ihis situation the scale factor must vary with direction. To
demonstrate this, we look at the simplercaseof anisotropic dilation in the

plane, where x' = kxx and y'


=
kyy
and where the dilation axes correspond to
the \317\207
and axes,
\321\203
We will let k0 denote the ratio in the direction \317\206
(before

dilation) with respect to the \317\207


axis (see Figure CIO) and compare the distance
betweena pairof pointsp, and \321\200\320\263 on a line through the origin before d and
after d\\ an anisotropic dilation. We compute k^asd'/d. The distancebetween
p, and before
\321\200\320\263
dilation is

Following an anisotropic dilation with ratios kx and ky, the distance


between \317\201\316\212
and is
\317\201\316\212

Substituting for x' and y', we find


d' ^kl(x2-Xiy +
ytf
\320\251(\321\2032- (C.67)
and

+
\320\272\320\246\321\205.-\321\205^
\320\272\320\232\321\203.-\321\203,)2

(Xi-XtY + iyi-yd1

\320\243

k,= 1.5
ky=2.0

Figure C.10 Anisotropic dilation.


466 \342\226\240
Appendix \320\241

This equation becomes more meaningful if we use y = x tan so


\317\206, that

Because in this simple case k, and ky are orthogonal, it is relatively easy to


interpret the maximum minimum dilation
and and the effect of direction. A
graph of versus generates
/\316\257\317\206
an ellipse
\317\206 with kx and the major and minor ky

axes, depending on their relative magnitudes.

The product of two sets of anisotropic dilationsalong principal axes the

and fixing the origin is given by

^A-rj
0 0

0 \317\213
\320\272\320\2431\320\272\320\2432 (C.69)
0 \320\276
\321\214*\320\232.

Shear in the Plane Fixing a Principal Axis or Plane


A shear transformation induces a deformation in a geometric modellikethat
shown in Figure \320\241\320\237.
Here, lines parallel to the \320\273:
axis slip in the \317\207
direction

an amount proportional to their coordinate.


\321\203 In three-dimensional space,
parallel planes do the slipping.The equations describing this transformation
in the plane fixing the axis
\317\207 are

x' =x + kxy
<\320\24170>

or

Figure \320\24111 Shear fixing the axis.


\320\273
Multiple Sequential Transformations 467
\342\226\240

1 *,.
=
\316\241
0 1 (C.71)

Similar equations define the shear transformationthat fixes the axis:


\321\203

x' = x
(C.72)
y'=kxx+y
or
1 0
=
\316\241 (C73)
\316\232 \316\271

A shear transformation in three-dimensional space fixing the - 0 plane


\316\266

is given by

x' = x + k,z \"l 0 kt


y'
= y + k2Z or P' = 0 1 k2 (C.74)
z' = z 0 0 1
Similar equations fix the - 0 -and
\317\207 \321\203
- 0
planes.

C.7 MULTIPLE SEQUENTIALTRANSFORMATIONS

Rotation about an arbitrary point in the plane or an arbitrary axis in


space requires that we first translate the model so that the arbitrary point
coincides with the origin or so that the arbitrary axispassesthrough the

origin. We then perform the indicated rotations and translate the results
so that the point or axis returns position. to its initial We handle
reflections, dilations, andfixing arbitrary points, lines, or planesin a
shears
similar way: by executing appropriate translations and rotations before and
after the primary transformation. Whenever translations are part of the
sequence of
transformations, matrix addition is required if we write the
equations for rotation, reflection,dilation,
and shear in their Cartesian
(nonhomogeneous) form.This approach rapidly becomesa nestedmessof
matrix algebra.
It is not possible to express a general lineartransformation in two or three
dimensions as a square matrixo\302\243
Order two or three, respectively, if it must
include translationsor projections. An extra dimension is necessary in both
cases. This requires the use of homogeneous coordinates, where =
\317\201 [hx hy
hz \316\256]7\".
= 1,
If \316\256 then =
\317\201 [\320\273\321\203 \316\2661]'and p'= [*' / \316\266'
If.
4\320\261\320\222
\342\226\240
Appendix \320\241

Translation

We may now write the Cartesian translationp' = p + t in matrix form as


p' = Tp (C.75)
where and
\317\201 p' are given in homogeneous coordinates and
1 0 0 \320\223\320\273

0 1 0
T= ty
(C.76)
0 0 1 tz
_o \316\277\316\277 \316\271

Because h ~ tu - 1, when we perform the matrix multiplication of


Equation
(C.75), we obtain

V\" X + tx

/ y + h
z' Z + tz
(C.77)
1 1

A sequence of translations is given by


TE=T, T2T, -T\342\200\236 (C.78)

or

\"l 0 0 +
fi:
f\342\200\236
+ + f

0 1 \320\236
!^
+ !\320\2432
+ ' + r
Ty =
\316\233,
(C.79)
0 0 1 ttl + t.* + \342\226\240
+ t.
ooo \316\212

Order is not important, so that, for example, T2 T, = T, T2.

Rotation in the plane


Rotation in the plane about the origin using a homogeneoustransformation
matrixisexpressed
as
cos \317\206
-sin \317\206 \316\237

P' = sin \317\206 cos \317\206\316\237 (C.80)


0 0 1

Rotation about an arbitrary point pt requiresthat we first translate the


model so that p,.coincideswith the origin.Then we perform the rotation and
translatethe resultssothat pr returns to its initial position. This sequenceof
is
transformations represented by the matrix product
Multiple Sequential Transformations \342\226\240
469

1 0 xc cos \317\206
-sin \317\206
0 1 \317\213-\320\263.

0 1 ,vf sin \317\206


0 0
\321\201\320\276&\321\204 1 ~yr (C.81)
0 0 1 0 \317\213 1 0 0 \316\271

Carrying out this matrix multiplication, we obtain


cos \317\206
-sin \317\206 ~xc cos + sin
\317\206 \316\275,-
+
\317\206xc
-
sin \317\206 cos \317\206~-xt
sin \317\206yc cos +
\317\206yc (C.82)
0 0 1

In terms of Cartesian coordinates,this is


*'=(.\302\243-\317\207-,)
cos -,vf)
\321\204-(\321\203 sin + xc
\317\206

= -
)>' sin +
\316\246(\320\243
(\320\243-\320\243\321\201) J'.) cos + \321\203,
\317\206 (C.83)

Rotation in Space

Rotation about the axis


\316\266 is expressed as

cos \317\206 -sin \317\206 0 0


sin cos \317\206 0 0
0
\317\206

0 1 0 (C.84)
0 0 0 1
Similar
equations, easy to derive, apply to rotation about the .rand axes.
\316\275

Again, rotation about an arbitrary axis not through the origin requires
that we first translate the model so that some point on this axis coincides
with the
origin and, second, rotate the model so that the arbitrary axis aligns
with one of the principal axes.Next,we execute the primary rotation and
finish the
sequence of transformations by reversing the secondary rotation and
translation so that the arbitrary axis once again coincides pointwise with the
initial position, carrying the model along with it. of course.

The rotation of a point about the \316\266


axis, followed by a translation
expressed as the of
product homogeneous ma trices, is

p'
= TRp

1 0 0 \342\226\240sin
\317\206
0 \317\213 \317\207
\316\257.\316\275]
\317\2131 0 ty sin \316\246 cos 0
\317\206\320\236 \316\275

\317\213 0 1 tr 0 0 1 0 \316\266

\317\213 0 0 I 0 0 \317\2131 \316\231

(C.85)
470 \342\226\240
Appendix \320\241

cos \317\206
sin \317\206
0 t, \317\207

sin \317\206
cos \317\206 \317\213ty \320\243

\317\213 0 1 tz \316\226

0 0 \317\213 1 \317\205_

Reversing the order of these transformations, we obtain

p' =
RTp

cos \317\206 sin \317\206 \317\213\316\277]


1 \317\2130 \316\223, \317\207

sin cos \317\206 \317\213


0 \317\2131 \317\213 \320\243
\317\206 ty
0 0 1 0 \317\2130 1 tz \316\266

0 \317\213 0 1 \317\2130 0 1 1 (C.86)

cos \317\206 -sin \317\206


0 COS
\316\257, -ty
\317\206 Sin \317\206
sin \317\206 cos sin
\317\206 \317\213\316\257, t+ ty
COS \316\271

\320\236 \317\213 1

0 \317\213 \317\213 1

From these results it is clear that order is important, because we see that
TRp*RTp

Glide Rotation

The glide rotation (otherwiseknown screw rotation) consistsof


as the twist or
a translationand rotation about an axis
parallel to the directionof
translation, where the translation is proportional to the rotation angle.The
followingequation describes a glide rotation about the \316\266
axis:

cos \317\206 -sin \317\206 0 0

sin \317\206
cos \317\206\317\213 0
0
(C.87)
\317\213 1 \320\243\321\201\321\204

0 0 \317\213 1

Reflection in Space

The homogeneous transformation matrixfor inversion in the origin is


Multiple Sequential Transformations \342\226\240
471

-10 0 0
0-1 0 0
R; =
0 0-10 (C.88)
0 0 0 1
Because = +l,
/y\302\253
the parity computation is unaffected, and \\Rf\\
= -1.

Inversion of a geometric model relative to an arbitrary point pi requires


first translation that movesp, to the origin,
a then the primary inversion,
followed by a translation that moves p, back to its original position.Thus,

\321\200'^\320\242\320\233/\320\242\320\223'\321\200 (C.89)

where

1 0 0 X, -10 0 0 1 0 0 -\320\273-,

=
0 1 0 )>l 0-1 0 0 0 1 0 -y,
TiR/T \316\2231
0 0 1 Z\\ 0 0-10 0 0 1 -z,
0 0 0 1 0 0 0 1 0 0 0 1

-10 0 2x,
0-10 2y,
0 0-1 2zi (C.90)

0 0 0 1

Dilation in Space

The anisotropic dilation about an arbitrary point pf of a set of points


defining
a geometric object is expressed concisely using homogeneous
transformation matrices. Here we assume that the scale factors k\342\200\236,
ky,
and kz are
relative to the principal axes. We have

p'=TfDT-p (C.91)
where
1 0 0 xc \320\232 0 0 0 1 0 0 -X
0 1 0 \320\243\321\201
0 k( 0 0 0 1 0 -y
TVDT
0 0 1 Zc 0 0 k7 0 0 0 1 ~z
0 0 0 1_ . \320\276 \320\276 0 1 0 0 0 1
0 (1 -k\342\200\236)x,

0 0 -
ky (1 ky)yt
0 0 k; {\\-K)z(
(C.92)
0 0 0 1
This page intentionally left blank
BIBLIOGRAPHY

This
bibliography provides points of entry inlo a much more extensive
literature, loo large for a comprehensive listing here. In somecases,only the most
accessible works are cited, not necessarilythe earliest,on a particular
subject.
Because a significant part of geometric modeling comes out of the
research and development efforts of private industry (and this is still true
today), access to these resultsis oflen difficult, in part due to proprietary
considerations as well as varying standards of documentation and reporting.
Many new enlries are included in this bibliography of the second edilion,
of course,and nol all enlries of the first edition are repeatedhere.The many
reasons for this include limilalions of Spaceand changesof emphasis.
Omission of
important works is not intended but is almost predictably inevitable

in a work of this size. I apologizefor any omission and welcome comments


on additions and correctionspending subsequent printings of this work.

Abelson, H., and A. Disessa. Turtle Geometry: The Computer as a Medium


for ExploringMathematics. Cambridge,Mass:MITPress,1981.
Abhyankar, S. \"Algebraic Geometry for Scientists and Engineers\"
Mathematical Surveys and Monographs 35. American Mathematical Soeiely,
1990.
Abhyankar, S. S., and L.
\320\241
Bajaj. \"Automatic Parameterization of Rational
Curves and SurfacesIV: Algebraic Space Curves.\" ACM Transactions on
Graphics 8(4):325(1989).
Acton, F. S. Numerical Methods that Work. New York: Harper and Row, 1970.

473
474 \342\226\240
Bibliography

Adams, J. A. '\"Geometric Concepts for Computer Graphics.\" Engineering


and Weapons Report no. EW-72-4. Annapolis,
Md.: U. S. Naval Academy,
Sept. 1972.
Affentranger,F,and J. A.Wiseacker.'On Ihe Convex Hull of Uniform
Random Points in a Simple d-Polytope.\" Discrete and Computational
6(4):
Geometry 291 (1991).
Agarwal, S. C, and W. N. Waggenspak, Jr. \"Decomposition Method for
Extracting Face Topologiesfrom Wireframe Models.\" Computer Aided
Design 24(3):123 (1992).
Agin, G. I, and \320\242. Binford.
\320\236. ''Computer Descriptions of Curved Objects.\"
IEEE Transactionson Computers C-25:439 (1976).
Agoston, \316\234.
\316\232.
Algebraic Topology. New Dekker, 1976.
York: Marcel
Ahlberg,J.,E.Nilson, and J. Walsh.. The Theory of Splines and Their
Applications. New York: Academic Press, 1967.
Ahuja, D V., and S. A. Coons. ''Interactive Graphics in Data processing:
and
Geometryfor Construction Display.\"
IBM Systems Journal 3(4): 188
(1968).
Aldefeld, B. \"Variation of Geometries Based on a Geometric-Reasoning
Method.\"ComputerAided Design 20(3): 117-126 (1988).
Alexandroff, P. Elementary Conceptsof Topology. New York: Dover, 1961.
Alt, L. \"Rational Linear Reparametrization of NURBS and the Blossoming
Principle.\" Computer Aided Geometric Design10(5): 465(1993).
Ansaldi, S., L. De Floriani, and B. Facidieno.\"GeometricModelingof Solid
Objectsby Using a Face Adjacency Graph Representation.\" Computer
Graphics19(3):131(1985).
Aomura, S., and T. Uehara. \"Self intersection of an Offset Surface.\"

Computer Aided
Design 22(7): 417 (1990).
Aono, M., D. E. Breen,and \316\247
\316\234. Wozny \"Fitting a Woven Cloth Model to a
Curved Surface:Mapping Algorithms.\" Computer Aided Design 26(4): 278
(1994).
Apostol, \316\244.
\316\234.Calculus, Vol. 2: Calculus of Several Variables with
Applicationsto Probability and Vector Analysis. New York: Blaisdell,1978.
Arbab, F \"Set Models and Boolean Operations for Solids and Assemblies.\"
IEEE Computer Graphics and Applications10(6):
76 (1990).

Armit, A. ''TAG\342\200\224A
high performance interactive 3D graphics systems.\"
Computers in Industry 3:117-123 (1982).
Armit, A. P. \"Curveand SurfaceDesignUsing Multtpatch
and Multiobject
Design Systems.\" Computer Aided 251
Design25(4): (1993).
Bibliography 475
\342\226\240

Armstrong. G.
\320\241.
\"Modeling Requirements for Finite-Element Analysis.\"
Computer Aided Design26(7):573 (1994).

Arner, R.
\316\241 \"Another Look at Surface/Surface Intersection.\" Ph.D. thesis,
University of Utah, 1987.
Aziz, N. M.. R. Bata, and S. Bhat.\"Bezier Surface /Surface intersection.\"
IEEE Computer Graphics and Applications10(1): 50-58(1990).
Baer, A.,C. M. Easlman.and M. Henrion. \"Geometric Modeling: A Survey\"
Computer Aided Design 11 (5): 253-272 (1979).
Bajaj, \320\241
L., J. E. Hoffman, and R. E. Lynch.\"TrackingSurfaceIntersections.\"
Computer Aided Geometric Design 5: 285-307 (1988).
Bajaj,C.,andl.lhm.\"Hermitc interpolationof Rational Space Curves Using
Real Algebraic Surfaces.\" Proceedings of the 5th Annual ACM Symposium
on Computational Geometry. 1989.
. \"Algebraic Surface Design with Hermite Interpolation.\" ACM
61
Transactions on Graphics11(1): (1992).

Ball, A. A. \"A
Simple Specification of the Parametric Cubic Segment.\"
Computer-Aided Design 10(3): 181-82 (1978).
. \"Reparametrization and its Applicationin Computer-Aided
Geometric Design.\" international Journal for Numerical Methods \\n Engineer-

ing 20:197-216 (1984).


. \"An Investigation of CurvaLure Variations over Recursively
Generated
B-Spline Surfaces.\" ACM Transactions on Graphics 9(4): 424
(1990).
. \"CONSURF Part 1: Introduction of the Conic Lofling Tile.\"
Computer Aided Design 25(8): 513 (1993).
Barbie,!, and M.Spegel.\"Language for Description of Geometric
Configurations.\" Computer Graphics Forum 9(1): 9 (1990).
Bardis, L., and N. M. Patrikalakis. \"Blending Rational B-Splinc Surfaces.\"
Proceedings of Eurographics }989. Amsterdam: N orth-Holland. 1989.
Bardis, L., and M. Vafiadou. ''Ship-Hull Geomelry Representation with B-

Spline Surface patches.\" Computer Aided 217


Design 24(4): (1992).
Barnhill, R. E. \"Smooth
Interpolation over Triangles.\" In ComputerAided
Geometric Design, cds. R. E. Barnhill and R. F. Riesenfeld. New York:
Academic Press. 1974.
. \"Blending-Function Interpolation: A Survey and Some New
Results.\" Numerical Analysis Report No.9.Department of Mathematics,
University of Dundee, Dundee, Scotland. July 1975.

. Coons Patches. Computers in Industry 3: 37^3 (1982).


476 \342\226\240
Bibliography

. \"A
Survey of the Representation and Design of Surfaces.\"IEEE
Computer Graphics and Applications (1983). 3(7); 9-16
. \"Surfacesin Computer Aided Geometric Design: A Survey with
New Results.\" Computer Aided GeometricDesign2:1-17(1985).
Barnhill, R.E.,G Birkhoff, and W. J. Gordon. \"SmoothInterpolation in

Triangles.\" Journal of Approximation Theory 8:114-28 (1973).


Barnhill, E., R. and J. Gregory. \"Blending Function Interpolation to Boundary
on
Data Triangles.\" Mathematics of Computation 29(131): 726-735 (1975).
Barnhill, E., Farin, R. G M. Jordan, and B. R. Piper. \"Surface/Surface
Intersection.\" Computer Aided Geometric Design 4: 3-16 (1987).
Barnhill,R. E.,andR.F Riesenfeld.eds. Computer-Aided Geometric Design,
New York: Academic Press, 1974.
Barr, A. H.
\"Superquadrics and Angle-Preserving Transformations.\" IEEE
Computer Graphicsand Applications1(1)(1981).
. \"Global and Local Deformations of Solid Primitives.\" Computer
Graphics18(3):21(1984).
Barry, P. J., J. \320\241
Beaity, and R. N. Goldman. \"Unimodal properties of B-
Splines and Bernstein-Basis Functions.\" Computer Aided Design 24(12):
627 (1992).
Barry.
P. J., and R. N Goldman. \"A Recursive Proof of a B-Spline Identity for

Degree Elevation.\" Computer Aided Geometric Design 5(2):173-175(1988).


Barsky, B. A. \"The Beta-Spline: A Local Representation Based on Shape
Parameters and Fundamental Geometric Measures.\" Ph.D. dissertation,
Department of ComputerScience, University of Utah, 1981.
. \"Local Control of Bias and Tensionin Beta-Splines.\" ACM
Transactionsin Graphics 8(2): 109-34 (1983).
. \"A Study of the Parametric Uniform B-Spline Curve and Surface
Representation.\" Technical Report CSD Science
83/118. Computer
Division, University of California, Berkeley, May 1983.
.\"ADescriptionand Evaluation of Various 3-D Models.\" IEEE
Computer Graphics and Applications 4(1): 38-52 (1984).
. Computer Graphicsand GeometricModeling Using Beta-Splines.
New York: Springer-Verlag, 1988.
. \"RationalBeta-Splinesfor Representing Curves and Surfaces.\"
IEEE Computer Graphics and 24
Applications13(6): (1993).
Barsky, B. A.,R. H.Bartels, and J. \320\241
Beatty \"An Introduction to the Use of
Splines in ComputerGraphics.\"Technical Report CS-83-9. Department of
Computer Science, University of Waterloo, Waterloo,Ontario,1983.
Bibliography 477
\342\226\240

Barsky, \316\222. and


\316\221., J. \320\241.
Beaity \"Varying the Betas in Beta-Splines. Technical
Report CSD82/112. Computer
Science Division, University of California,
Berkeley, Dec. 1982.
Barsky, B. and
A\342\200\236 T. D. DeRose. \"The Beta 2-Spline: A Special Case of the
Beta Spline Curve and SurfaceRepresentation.\" IEEE Computer
and
Graphics Applications 7(3): 15 (1985).
. \"Geometric Continuity of Parametric Curves:Three Equivalent
Characterizations.\" Part 1. IEEE Computer Graphics and Applications
9(6): 60-67 (1989).
. \"Geometric Continuity of Parametric Curves:Construction
of
Geometrically Continuous Splines.\" Part 2. IEEE Computer Graphics and
Applications 10(1): 60-68, (1990).
Bartels, R. H.,and J. \320\241Beatty \"A Technique for the Direct Manipulation of
Spline Curves.\" In Graphics Interface 89. Palo Alto, Calif.: MorganKauf-
mann, 1989.

Bartels, R. H., J. \320\241Beatty, and B. A. Barsky. An Introduction to Splines for


Use in Computer Graphics and Geometric Modeling. Palo Alto, Calif.:
Morgan Kaufmann, 1987.
Bartels, R. H., and R. T. Hardock. \"Curve-to-Curve Associations in Spline-
Based Inbetweeningand Sweeping.\" Computer Graphics 23(3): 167 (1989).
Beacon, G R., J. R. Dodsworth, and S. E. Howe. \"Boundary Evaluation
Using Innerand OuterSets: The ISOS Method.\" IEEE Computer
and
Graphics Applications 9(2): 39 (1989).
Beatty, P. L., A.
\316\241 Fitzhorn, and G J. Herron. \"Extensions in Variational
Geometry that Generate and Modify Object Edges Composed of
Rational Bezicr Curves.\" Computer Aided Design 26(2): 85 (1994).
Beck,J.,R. Farouki, and J. Hinds. \"Surface Analysis Methods.\" IEEE
Computer Graphics and Applications 6(12): 18-36 (1986).
Bedi, S. \"Surface Design Using Functional Blending.\" Computer Aided
Design 24(9):505(1992).
Bercovier, M., and E. Shilat. \"Enhancement of Gordon-Coons
\"
Interpolations
by 'bubble functions.' Computer Aided Geometric Design 10(3^1):
253 (1993).
Berger,D N.. and M. Kallay. \"Computing the Unit Normal on a Degenerate
Edge.\" Computer
Aided Design 24(7): 395 (1992).
Bez, H. \"On Invariant Curve Forms.\"Computer
Aided Geometric Design
3(3): 193-204 (1986).
Bezier, P.\"Definitionnumeriquedescourbeset surfaces I.\" Automatisme 11:

625-632(1966).
47\320\222 \342\226\240
Bibliography

. \"Definition numerique des courbes et surfaces JI.\"Automatisme 12:


17-21(1967).
. \"Procede de definition numerique des courbes et surfaces non matb-
ematiquc.'M\302\253if>moi(sme 13(5) (1968).
. Numerical Control: Mathematics and Applications, trans. A. R.
Forrest and A. F. Pankhurst. London: Wiley, (972.
. \"Mathematical and of
PracticalPossibilities UNISURF.\" In

Computer Aided Geometric Design, eds. R. E. Barnhill and R. F. Riesent'eld.


New York: Academic Press, 1974.
. \"Essay de definitionnumeriquedescourbeset des surfaces
experi-
mentales.'' Ph.D. thesis, University of Paris IV. 1977-
. ''General Distortion of an Ensemble of Biparametric Patches/'
Computer Aided Design19(2):116-120
(1978).
. The Mathematical Basis of the UNISURF CAD System. London:
Butterworths, 1986.

. \"First
Steps of CAD.\" Computer Aided Design21(5):259(1989).
. \"Style, Mathematics and NC.\" Computer Aided Design 22(9): 524
(1990).
Binford,T. O.. and G. J. Agin. \"Computer Description of Curved Objects.\"
Proceedingsof the Third International Conference on Artificial
Intelligence, 1973.

Bishop, More Than One Way


R. L. \"There Is to Frame a Curve.\" American
Mathematical Monthly 82:246(1975).
Blackmore, D,M.,C. Leu,andF. Shih. \"Analysis and Modeling of Deformed
Swept
Volumes.\" Computer Aided Design 26(4): 315 (1994).
Bloomenthal,J. \"Polygonization of Implicit Surfaces.\" Computer Aided
Geometric Design 5: 341-355 (1988).
Bloomenthal, J., and K. Shoemake.\"Convolution Surfaces.\" Computer
Graphics 25(4): 251 (1991).
Bloor. M. 1.G, and M. J. Wilson. Blend Surfaces Using Partial
\"Generating
Differential Equations.\" Computer 21(3): 165 (1989).
Aided Design
Bodduluri, R. M. C, and B. Ravani. \"Design of Developable Surfaces Using
Duality between Plane and point Geometries.\" Computer Aided Design
25(10):621(1993).
Boehm, W. \"Cubic B-Spline Curves and Surfaces in Computer Aided
Geometric Design.\" Computing 19: 29-34 (1977).
. \"Inserting New Knots into B-Spline Curves.\" Computer Aided

Design 12(4): 199-201 (1980).


Bibliography \342\226\240
479

.
\"Generating the Bezier points of B-Splines.\" Compute,- Aided
Design13(6)(1981).
. 'On Cubics: A Survey/' Computer Graphics and Image Processing
19:201-226(1982).
.\"Curvature Continuous Curves and Surfaces.\" Computer Aided
Geometric Design 2(2): 313-323 (1985).
. \"Rational Geometric Splines.\"ComputerAided Geometric
Design 4:

67-77 (1987).
. \"On the Definition of Geometric Continuity.\" Lelter to the editor.
Computer Aided Design 20(7):370-372(1988).
Boehm,W.,G. Farin, and J. Kahmann. 'A Survey of Curve and Surface
Methods in CAGD.\" Compute,-Aided Geometric Design 1(1): 1-60 (1984).
Bonner,D.L\342\200\236
M. J. Jakiela, and M. Watanabe. \"PSEUDOEDGE: Noninter-
sectcd Parametric Quilt Modeling of Multiply Connected Objects.\"
Compiler Aided Design 25(7): 438 (1993).
Borrel, p, and D.Bechmann.
\"Deformation of \320\273-Dimensional Objects.\"
Proceedings of the Symposium on Solid Modeling Foundationsand CAD/CAM
Applications. Washington, D.C.; ACM Press, 1991.

Borrel, P..and A.
Rappoport. \"Simple Constrained Deformations for
Geometric Modeling and Interactive Dcsign.'MCAi Transactions on Graphics
13(2);137(1994).
Boyse, J, W. ''Data Structure for a Solid Modeler.\"Researchpublication
GMR-2933. Computer Science Department, General Motors Research
Laboratories. Warren, Mich., 1979,

. \"Interference Detection among Solids and Surfaces.\"


Communications
of the ACM 21: 3-9 (1979).
Boyse, J. W., and J. E. Gilchrist. \"GMSolid: Interactive Modeling for
Design
and Analysis of Solids.\" IEEE Computer GraphicsandApplications 2(2):

27-40(1982).
Braid, I.C. \"Designing with Volumes/'CAD Group report. Cambridge
University 1973.

. \"The Synthesis of Solids Bounded Communications


by Many Faces.\"
of the ACM
18(4): 209-16 (1975).
, \"New Directions in Geometric Modeling.\" Proceedings of the
Workshop
on Geometric Modeling, CAM-I. 1978.
Braid, |. C, R. \320\241Hillyard. and I. A. Stroud.\"Stepwise Construction of Poly-
hedra in Geometric Modeling.\" CAD Group report no. 100.Cambridge
University. 1978.
4B0 \342\226\240
Bibliography

Brewer 111, J. \316\221.,D. Vicknair, and M. Courier. ''Converting Wireframes to


Solids.\"
Computer Aided Engineering 16(3): 51 (1989).
Brisson, E. \"Representing GeometricStructuresin d Dimensions: Topology
and Order.\" Discrete and ComputationalGeometry9(4):387(1993).
Brown. \320\241 \"Some
\316\234. Mathematical and Representational Aspects of Solid
Modeling.\"IEEE Transactions on Pattern Analysis and Machine
Intelligence PAMI-3(4): 444-53 (1981).
Brown. \320\241 \"PADL-2;
\316\234. A technical summary.\" IEEE CG&A 2(2): 69-84
(1982).
Brown, \320\241 A. G. Requicha,
\316\234.,A. and \316\227.\316\222.
Voelker. \"Geometric-Modeling
Systems for Mechanical Design and Manufacturing.\" Proceedings of the

1978 Annual Conference of ACM. Washington, D.C.:ACM Press, 1978.

Brown, \316\234.,and
\320\241 \316\227.
\316\222.
Voelker. \"The PADL-2 Project.\" Proceedings of the
Seventh NSF Conferenceon Production Research Technology. Ithaca,
N.Y.: National Science Foundation, 1979.
Brown,K. Q. \"Comments on Algorithms for Reporting and Counting
Geometric Intersections.\" IEEE Trunsactions on Computing C-30(2): 147^18
(1981).
Brunei, P, and 1. Navazo. \"Solid Representation and Operation Using
Extended Octrees.\" ACM Transactions on Graphics 9(2): 170(1990).
Bu-Qing, S., and L. Ding-Yuan. Computational Geometry- New York:
Academic Press, 1989.

Burger, R. Schaback. \"A Parallel


H., and Multistage Method of Surface-
Surface Intersection.\" ComputerAided Geometric Design 10(3^1): 277

(1993).
Butter R. \"TheComputationof All
field, K. the Derivatives of a B-Spline
Basis.\" Oxford, England:BritishLeyland, May 1974.

Cameron, S.,and \320\232.


\320\241.
Yap. \"Refinement Methods for Geometric Bounds in
Constructive Solid Geometry.\"
ACM Transactions on Graphics 11(1): 12
(1992).
Carlbom,l..l.Chakravarty. and D.Vanderschel.
\"A Hierarchical Data
Structure for Representing the Spatial Decomposition IEEE
of 3D Objects.\"
Computer Graphics and Applications 5(4): 24-31 (1985).
SolidModeling
Casale, M. S. \"Free-Form with Trimmed Surface Patches.\"
IEEE Computer Graphics and Applications7(1):33^13
(1987).
Casale, M. S.,and J. E. Bobrow. \"A Set Operation Algorithm for Sculptured
Solids Modeled with Trimmed Patches,\" Computer Aided Geometric
Design 6(3): 235-248(1989).
Bibliography 4B1
\342\226\240

Casale, \316\234.
S., J. E. Bobrow. Underwood. \"Trimmed-PatchBoundary
and R.
Elements: Bridging Gap the Solid Modeling and Engineering
between
Analysis.\" Computer Aided Design 24(4): I93 (1992).
Casale, S., M. and E. L. Stanton. \"An Overview of Analytic SolidModeling.''
IEEEComputer Graphics and Applications 5: 45-56 (1992).
Catmull, \316\225.\316\225.
\"Computer Display of Curved Surfaces.\" Proceedings of the
IEEE Conference on
Computer Graphics, Pattern Recognition, and Dtila
Structure. 1975.
Catmull, \316\225. and
\316\225. J. Clark. \"Recursively B-Spline Surfaces on
Generated
Arbitrary Topological Meshes.\" Computer Aided
Design 10(6) (1978).
Catmull,E.E., and R.Rom. \"A Class of Local Interpolating Spline.\"In
Computer-Aided Geometric Design, eds. R. E. Barnhill and R. F. Riesenfcld.
New York: Academic Press. 1974.
Celniker, G, and W. Welch. \"Linear Constraints for Dcformablc B-Spline
surfaces.\"In Computer Graphics Special Issue: 1992 Symposium on
Interactive 3D Graphics 165-170 (1992).
Chang, G. \"Matrix Formulation of Bezicr Technique.\" Computer Aided

Design 14(6); 345 (1982),


Chang, S.-L..M.Shantz.and R. Rochclti. \"Rendering Cubic Curves and
Surfaces wilh
integer Adaptive Differencing.\" Proceedings of SIG-
Forward
GRAPH '89. Graphics 23(3):
Computer 157-166 (1989).
Charrot. P. and J. Gregory \"A A.
Pentagonal Surface Patch for Computer
Aided GeometricDesign.\" Computer Geometric Design 1(1): 87-94
Aided

(1984).
Chazelle. and
\320\222., L. Guibas. \"Visibility and Intersection Problems in Plane
Geometry.\" Computer Graphics Forum 4(6): 51 (1989).
Chen, B-\"Onthe Euler Characteristic
of Finite Unions of Convex Sets.\" Di.v-
crete and ComputationalGeometry \320\256(1): 7\320\243
(1993).

Cheng, F ''Estimating Subdivision Depths for Rational Curvesand


Surfaces.\" ACM Transactions on Graphics 11 (2): 140 (1992).
Chirehdast,M., and \316\245.
\316\241 Papalambros. \"Conversion of Spatial-Enumeration
Scheme into Constructive Solid Geometry.\"
Computer Aided Design
26(4): 302 (1994).
Chiyokura, H. \"An Extended Rounding Operation Solids with
for Modeling
Free-Form Surfaces.\" IEEE Computer Graphics and Applications 7(12);
27-36(1987)
. Solid Modeling with DesignBase, Reading; Addison Wesley I 988.
482 \342\226\240
Bibliography

Chiyokura, and
\316\227., F. Kimura. \"Design of Solids with Free-Form Surfaces.\"

Computer Graphics 17(3): 289-298 (1983).


Choi,B.K., and S. Y. Ju. \"Constant Radius Blending in SurfaceModeling.\"
Computer Aided Design 21(4): 213
(1989).
Choi. B. K., and \320\241S. Lee. \"Sweep Surfaces Modeling via Coordinate
Transformations and
Blending.\" Computer Aided Design 22(2): 87 (1990).
Choi,B.K.. W. S. Yoo, Lee. \"Matrix Representationfor NURB
and C. S.
Curves and Surfaces.\" Computer Aided Design 22(4):235(1990).
Chou,J.J., and M.W. Blake. \"Planar Cubics through a Point in a Direction.\"
Computer Aided Design 25(6): 348 (1993).
Clark, J. H. \"DesigningSurfacesin 3D.\"Communications
of the ACM 19(8):
454(1976).
Cohen, E. \"Algorithms for Degree-Raising of Splines.\" ACM Transactions on
Graphics 4(3): 171(1985).
Cohen, \316\225.,\316\244.
Lyche, and \"Discrete B-Splinesand Subdivision
R. Riesenfeld.
Techniques in
Computer-Aided Design and Computer
Geometric
Graphics.\"Computer
Graphics and Image Processing 14(2): 87-111 (1980).
Cohen,E..and R. F. Riesenfeld.\"General Matrix Rcpresefl lationsfor Bezier
and B-SplineCurves.\" Computer Industry 3: 9-15 (1982).
Coons, S.A. \"An Outline of the Requirements for a Computer-Aided Design
System.\" MIT Memo ESL-TM-169. Cambridge, Mass.: Massachusetts
Mar.1963.
Institute of Technology,
\"Surfaces
\342\200\224\342\200\224\342\200\224. for Computer-Aided Design of Space Figures.\"MIT
MemoESL-9442-M-139. Cambridge,
Mass.: Massachusetts Institute of
Technology. July 1965.
. \"Surfacesfor Computer-Aided Design of Space Forms.\" MIT Memo
Mass,:
MAC-TR-41.Cambridge, Massachusetts Institute of Technology,
June 1967.
\"Rational
\342\200\224\342\200\224\342\200\224. Bicubic Surface patches.\" Project MAC technical report.
Mass.:
Cambridge, Massachusetts Institute of Technology, 1968.
.\"Surface Patches and B-SplineCurves.\" Computer Aided Geometric
Design, eds. R. E. Barnhilland R. F. Riesenfeld. New York: Academic
Press, 1974.
. Melhode Matricielle. Trans, from Englishby P. Bezier and M. Moron-
val. Paris: Hermes,1987.
Coquillart,S. \"Extended Free-Form Deformation: A Sculpturing Tool for 3D
GeometricModeling.\"Proceedingsof SlGGRAPH the 90 Conference.
Computer Graphics 24(4): 187-196 (1990).
Bibliography 483
\342\226\240

Courier, S. M., and J. A. Brewer.\"Automated Conversion of Curvilinear Wire-


Frame Models to Surface BoundaryModels: A
Topological Approach.\"
Computer Graphics 20(4): 171 (1986).
Cox,M. G. Numerical \"The Evaluation of B-Splines.'Voii/vW of the Institute
of Mathematicsand Applications 10: 134-149(1972).
Coxeter, H. Introduction to Geometry. New York:Wiley, 1961.

Crocker, G. \316\221.,and W F. Reinke. \"Boundary Evaluation of Non-Convex


Primitivesto Produce Parametric Trimmed Surfaces.\" Computer Graphics
21(4): 129(1987).
de Boor,C.\"On Calculating with B-Splines.\"/o(/rno/ of Approximation
Theory' 6: 50-62 (1972).
. Good Approximation by Splines with Variable Knots.\" ISNM 21:
57-72(1973).
. A Practical Guide to Splines. New York: Springer-Verlag,1978.
de Boor,C, Hollig, K. and M. Sabin. \"High Accuracy Geometric Hermite
Interpolation.\" Computer Aided Geometric Design 4(4): 269-278 (1988).
de Casteljau,P.\"Outillagesmethodscalcul.\" Technical Report. Paris:
Citroen, 1959.

.\"Courbeset Report. Paris: Citroen,1963.


surfaces a poles\"Technical
. Shape, Mathematics Kegan Page, 1986. and CAD. London:
de Floriani,L.,and B. Falcipieno. \"A Hierarchical Boundary Model tor Solid
ObjectRepresentation.\" ACM Transactions on Graphics 7(1): 42 (1988).
Degen, W L. F. \"High Accurate Rational Approximation of Parametric
Curves.\"Computer Aided Geometric Design 10(3-4): 293 (1993).
de Montaudouin, \316\245
\"Cross Product Cones of Revolution.\" Computer Aided
Design21(6):404(1989).
DeRose, A. \"Geometric Continuity: A ParametrizationIndependent
Measure of
Continuity for Computer Aided Geometric Design.\"Ph.D.thesis,
University of California, Berkeley, 1985- Also published as Technical
86/255.
ReportUCB/CSD
DeRose, \316\244
\"Composing Bezier Simpliccs\" ACM Transactions on Graphics
7(3):198-221(1988).
DeRose,\316\244 D., and B. A. Barsky \"Geometric Continuity, Shape Parameters,
and Geometric Constructions for Catmul-Rom Splines.\" ACM
Transactionson Graphics 7(1): 1-41 (1988).
Dimsdale, B. \"BicubicPatch Bounds\"Computing and Mathematics with
Applications 3(2): 95-104 (1977).
484 \342\226\240
Bibliography

Shytt and A. M. Ytrehus.\"The


Dokken,\320\242., V. role of NURBS in Geometric
Modeling and CAD/CAM.\"In Advanced Geometric Modeling for
Engineering Applications. Netherlands: Elsevier, 1990.
Du, W. H., and F. J. M. Schmitt. \"On the G1 Continuity of PieccwiseBczier
Surfaces: A Review with New Results.\" Computer Aided Design22(9):
556-573(1990).
Eastman, \320\234.
\320\241. \"Vector versus Raster: A Functional Comparison of Drawing
IEEE
Technologies.\" Computer Graphics and Applications 10(5): 68-80
(1990).
Eastman, \320\241. and
\320\234., K.Weiler. \"Geometric Modeling Using the Euler
Operators.\" In Proceedings of the First Annual Conferenceon Computer
Graphics in CAD/CAM Systems. Cambridge, Mass.: Massachusetts
Institute of Technology. 1979.

Eck, M. \"Degree Reduction of Bezier Curves.\" Computer Aided Geometric


Design 10(3^l\302\267):
237
(1993).
Elber,G.. and E. Cohen. \"Tool Path Generationfor Free-Form Surface
Models.\" Computer A idea Design, 26(6): 490 (1994).
Elmaraghy, W. H., S. R. Valzuri, and \320\222. Skubnik.
\320\234. \"Intersection Volumes
and Surface Areas of Cylinders for Geometrical Modeling and Toleranc-
ing.\" Computer Aided Design 26(1):29(1994).
Epstein,M. \"On the Influence of Parametrization in Parametric
Interpolation;' SIAM Journal 13: 261-268 (1976).
of Numerical A nalysis
Eshleman.A. L. Informal notes on parametric cubic curves. Undated.
Eshleman,A. L.,and H. D. Meriwether. \"Animated Display of Dynamic
Characteristicsof Complex Structures.\" Presented to the 1966 UAIDE
Annual Meeting.San Diego,Calif,Oct.-Nov.
1966.

.
\"Graphic Applications to Aerospace Structural Design Problems\"
Presentedto SHARE, Fourth Annual Design Automation Workshop, Los
Angeles, June 1967.
Falridiena,B. \"Special Issue: Modeling in Compuler Graphics.'\" Editorial.
Computer Aided Design26(8):595(1994).
Farin, G \"Bezier Polynomials over Triangles and the Construction ofPiece-
wise \320\241
Polynomials.\" Report TR/91. Department of Mathematics, Brunei
University, Uxbridge, England, Jan. 1980.
. \"Designing C1 Surfaces Consisting of Triangular Cubic Patches.\"

Computer Aided Design 14(5): 253-256 (1982).


. \"Piecewise Triangular
\320\241Surface
Strips.\" Computer Aided Design
18(1): 45-47 (1986).
Bibliography 485
\342\226\240

.
\"Triangular Bcrnstein-Bezier Patches.\" Computer Aided Geometric
Design 3(2):83-128(1986).
. \"Curvature
Continuity and Offsets for Piecewise Conies.\" ACM
Transactionson Graphics8(2):89 (1989a).

. \"Rational Curves and Surfaces.\" In Mathematical Methods in


Computer Aided Geometric Design. New York: Academic Press, 1989b.
. \"Trends in Curve and Surface Design.\" Computer Aided Design
21(5):293(1989).
. ''From Conies to NURBS: A Tutorial and Survey.\" IEEE Computer
Graphics and
Applications 12(5): 78 (1992).
. Curves and Surfaces for Computer-AidedGeometric
Design. New

York: Academic Press, 1993a.


.''Tighter Convex HullsforRationalBezierCurves.\" Computer Aided
Geometric Design 10(2): 123 (1993b).
Farin,G.,ed. Geometric Modeling: Algorithms and New Trends. New York:
SIAM,1987.
. cd. NURBS for Curve and Surface Design, Philadelphia, SIAM,
1991.
Farin,G., P. Barry and \"A Link between Lagrange and \320\222ezier Curve and
Surface Schemes.\" Computer Aided Design 18: 525-528 (1986).
Farin, G. and N. Sapidis. \"Curvature and the Fairness of Curves and
Surfaces.\" IEEE Computer Graphics and Applications 9(2): 52-57(1989).
Farouki, R. T, and J. K. Hinds. \"A
Hierarchy of Geometric Forms.\" IEEE
Computer Graphics and Applications 5(5): 51-78 (1985).
Farouki, R., and V. Rajan. \"On the Numerical Condition of Polynomials
in Bernstein Form.\"Computer Aided Geometric Design 4(3): 191-216
(1987).
Faux, I. D.,and M. J. Pratt. Computational Geometry for Design and
Manufacture. Chichester, England: Halstcd Press, 1980.
Ferguson, D. \"Constructionof Curves and Surfaces Using Numerical
Optimization
Techniques.\" Computer Aided Design 18(1): 15-21 (1986).
Ferguson,D.R., and T. A. Grandine. 'On the Construction of Surface
Interpolating Curves: I. A Method for Handling Nonconstant Parameter
Curves.\" ACM Transactions on Graphics 9(2): 212 (1990).
Ferguson, E. N.
\"Computer Graphics Education Directory.\" Computer
Graphics 23(4): 243 (1989).
Ferguson,J.C. \"Multivariable Curve Interpolation.\" Joumat of the ACM 11:
221-28(1964).
486 \342\226\240
Bibliography

Fcrrucci,V..and A. Paoluzzi. \"Extrusion and Boundary Evaluationfor


Multidimensional
Polyhedra.'' Computer Aided Design 23(1): 40 (1991).
Filip, D.J. \"Adaptive Subdivision Algorithms for a Set of Bezier Triangles.'1
Computer Aided
Design 18(2): 74-78 (1986).
\342\200\224\342\200\224\342\200\224.
\"Blending Parametric Surfaces.\" ACM Transactions on Graphics
8(3):164(1989).
. \"Determining Planar Curves.\" Computer
the Orientation of Closed
Aided Design22(7):401(1990).
D. I, and T. W. Ball. ''Surfaces: Procedurally
Filip, RepresentingLofted
Surfaces.\" IEEE
Computer Graphics and Applications 9(6): 27-33(1989).
Fjallstrom, P.-O. \"Evaluation a Dclaunay-Bascd
of Method for Surface

Approximation.\" Computer Aided Design 25(11): 711 (1993).


Fong, P, and \316\227. Seidel.
\316\241 \"Control Points for Multivariate B-Spline
Surfaces over
Arbitrary Triangulations.\" Computer Graphics Forum 10(4):
309(1991).
. \"An
Implenientation ofTriangular B-Spline Surfaces over Arbitrary
Triangulations.\"ComputerAided Geometric
Design 10(3^l\302\267):
267 (1993).
Forrest, A. R. \"Curves and Surfacesfor Computer-Aided Design.\" Ph.D.

diss., Cambridge University, 1968.


. \"Coons Surfacesand Multivariate Functional Interpolation.\" CAD
Group document submitted to the Journal of the ACM. Cambridge
University. Feb. 1969.

.
\"Computational Geometry.\" Proceedings of the Royal Society of
LondonA(32l):187-195
(1971).
\342\200\224\342\200\224\342\200\224.
\"Computer-Aided Design of Three-Dimensional Objects: A
Survey.\" Proceedings of the Internationa!
\320\220\320\241\320\234/\320\2331\320\241\320\220
Computing
Symposium. Venice, Italy: ACM, 1972.
. \"Interactive Interpolation and Approximationby Bezier

Polynomials.\"
CwnpMfwg.foi//7ia/ 15:71-79(1972).
\"A New
\342\200\224\342\200\224\342\200\224. Curve Form for Computer-Aided Design.\"CAD Group
documentno.66. Cambridge University, June 1972.
. 'On Coons and Other Methods for Representation of Curved
Surfaces.\" Computer Graphics and Image Processing 1(4): 341-389(1972).
\342\200\224\342\200\224\342\200\224.
\"Computational Geometry\342\200\224Achievements and Problems.\" In
Computer Aided GeometricDesign,eds.R.E.Barnhill and R. F Ricsen-
feld. New York: AcademicPress,1974.
\"On the
\342\200\224\342\200\224\342\200\224.
Rendering of Surfaces.\" Computer Graphics 13(3): 253
(1979).
Bibliography 487
\342\226\240

.\" Recent Work on Geometric Algorithms.\"In MathematicalMethods


in Computer Graphics, ed. K. Brodlie. New York: AcademicPreys, 1480.

. ''The Twisted Cuhic Curve: A Computer-Aided Geometric Design


Approach.\" Computer Aided Design 12(4): 165-172 (1980).
. \"Free-FormSurfacesand Solid Modeling.\" In SIGGRAPH '84
Course Notes on Free-Form Curves and Surfaces. ACM, 1984.
Fowler. B. \"GeometricManipulationofTensor Product Surfaces.\" Computer
Graphics {Special Issue: 1992 Symposium on Interactive 3D Graphics):
101408(1992).
Fowler, and
\320\222., R. Bartcls. \"Constraint-Based Curve Manipulation.\" IEEE
ComputerGraphics and
Applications 13(5): 43 (1993).
Gans. D. Transformations and Geometries. New York: Appleton-Centurv-
Crofts,1969.'
Georgiades, P. N., and D.P.Greenberg.
\"Locally Manipulating the Geometry
of Curved Surfaces.\" IEEE ComputerGraphicsand Applications 12(1):
54-64 (1992).
Ghosh. P.. and P. K. Jain.\"An Algebra of Geometric Shapes.\" IEEE.
Computer Graphics and Applications 13(5): 50 (1993).
Goldfeather, J. \"Solid Modeling.\" IEEE Computer Graphics and
Applications
9(3): 20-28 (1989).
Goldman, R. \"Subdivision Algorithms for Bezier Triangles.\" Computer
Aided Geometric Design 159-166(1983).
. ''Illicit Expressions in Vector Algebra.\" ACM Transactions on
Graphics 4(3):223-243(1985).
. \"The Method of Resolvents: A Technique for the Implicitization.
Inversion,and Intersectionof Non-Planar, Parametric, Rational Cubic
Curves.\" Computer Aided Geometric Design2(4):237-255
(1985).
Goldman, R., and T. DeRosc. \"Recursive Subdivision without the
Convex Hull Property.\" Computer Aided Geometric Design 3(4): 247-266
(1986).
Goldman,R.. and C. Micchelli. \"Algebraic Aspects of Geometric
In
Continuity.\" Mathematical Methods in Computer Aided Geometric Design, eds.
T. andLychc
L. Schumaker. New York: Academic Press. 1989.
Goodman.T. \"Properties of Beta-Splines.\"/owmfl/ of Approximation Theory
44(2): 132-153(1985).
Gordon. W. J. \"Free-Form Surface Interpolation through Curve Networks.\"
TechnicalReport GMR-921. General Motors Research Laboratories.
1969.
488 \342\226\240
Bibliography

.
\"Blending-Function Methods of Bivariate and Multivariate
Interpolation and Approximation.\" SIAM Journal of Numerical Analysis 8(1):
158-177(1971).
. Operator \"An Calculus for Surface and Volume Modeling.\"IEEE
Computer Graphics and Applications 3(7): 18-22 (1983).
Gordon, W. I. and R. F. Riesenfeld.\"Bernstcin-Bezier Methods for the
Computer-Aided Design of Freeform Curves and Surfaces.\" Journal of the

ACM
21(2): 293-310 (1974a).
. \"B-Splinc Curves and Surfaces.\"
Computer Aided Geometric Design,
eds. R.E. Barnhill and R. F Riesenfeld. New York: Academic Press, 1974b.
Gosh. P.. and P.K.Jain.\"An Algebra Shapes.\" IEEE Computer of Geometric

Graphics and Applications 13(5): 50 (1993).

Gossard, D. C. R. P. Zuffante, and H. Sakurai. \"Representing Dimensions,


Tolerances, and Features in MCAE Systems.\"IEEE Computer Graphics

and
Applications, 8(2): 69-84 (1988).
Gossing, T. \"Bulge,Shearand Squash: A Representation for the General
Conic Arc.\"ComputerAided Design 13(2): 81-84 (1981).
Grubowski, H., and X, Li. \"Coefficient Formula and Matrix of Nonuniform
B-Spline Functions.\" Computer Aided Design24(12): (1992).
637

Gregory, J. A. ''Smooth Interpolation without Twist Constraints.\"in Com-


pitter Aided Geometric Design, eds. R. E. Barnhill and R. F Riesenfeld.
New York: Academic Press. 1974.
. \"C Rectangularand Non-ReclangularSurface Patches.\" In Surfaces
in Computer Aided Geometric Design, eds.R. E. Barnhill and W. Boehm.
Amsterdam;North-Holland, \\983a.
. \"JV-SidedSurface Patches.^'lnMathematics
of Surfaces, ed.

J.A.Gregory Oxford: Clarendon Press, 1983b.


The Mathematicsof Surfaces.
, ed. Oxford: Claredon Press, 1986.
Greiner. G., and H. Seidel.\"Modelingwith Triangular B-Splincs.\" IEEE
Computer Graphics and Applications 14(2):56-59(1994).
Griessmair.J.,andW. Purgathofer^\"Deformation
of Solids withTrivariare B-
Splines.\" Proceedings of Eurographics '89.Amsterdam: North-Holland,

1989.

Guenler, and
\320\222., R. Parent. \"Computing Length of Parametric
the Arc
Curves.\" IEEE Computer Applications 10(3):72-78 (1990).
Graphics and
Gunther, O., and S. Dominguez. '\"The Performance of Curve
Schemes.\"
Representation IEEE Computer Graphics and Applications 13(3): 55
(1993).
Bibliography 489
\342\226\240

Gursoz, \316\225.
L., \316\245.
Choi, and F. B. prinz. \"Boolean Set Operationson Non
Manifold
Boundary Representation Objects.\" Computer Aided Design 23(1):
33(1991).
Hagen,H. \"Geometric Spline Curves.\" Computer Aided Geometric Design
2(1-3): 223-228(1985).
. \"Bezier Curves with Curvature and Torsion Continuity.\" Rocky
Mountain Journal of Mathematics 16(3): 629-638 (1986).
. \"Geometric Surface Patches without Twist Constraints.\"Computer
Aided Geometric Design 3: 179-184 (1986).
Hahn, J. \"GeometricContinuous Patch Complexes.\" Computer Aided
Geometric Design 6(1): 11-22 (1989).
Hall, M.. and J. Warren. \"Adaptive Polygonalization of Implicitly Defined
Surfaces.\" IEEE Computer Graphicsand Applications 10(6): 33^42
(1990).
Hanna, S. L.. J.F.Abel,and D. \316\241
Grcenberg. \"Intersection of Parametric
Surfaces by Means of Look-up Tables.\" IEEE Computer Graphicsand
Applications 3(7): 39-48 (1983).
Hands, J. \"Reparametrization of RationalSurfaces.\" In The Mathematics of
Surfaces II, ed. R. Martin. OxfordUniversity.
1987.

Hartley, P., and C. Judd. \"Parametrization and Shapeof B-Spline


Curves.\"

Computer Aided Design 12(5): 235-238 (1980).


ofBezier-Type
. \"Parametrization B-Spline Curves.\" Computer Aided
Design 10(2): 130-135(1978).
Hatvany, J., W., and M. A. Sabin.\"World
M. Newman, Survey of Computer-
Aided Design\" Computer Aided Design25(12): (1993).
776

Heisserman, J. \"Generative Geometric Design.\" IEEE ComputerGraphics


and
Applications 14(2): 37^5 (1994).
Herman, I. \"Onthe ProjectiveInvariant Representation
of Conies in
Computer Graphics.\" Computer Graphics Forum 8(4): 301 (1989).
Higashi. M. \"High-Quality Solid-Modeling System with Free-Form
Surfaces.\"
Computer Aided Design 25(3): 172 (1993).
Hubert, D.and S.Cohn-Vossen.
Geometry and the Imagination. New York:
Chelsea, 1952.
Hinds,J. K. \"Methods of Representing Conic Segments by Means of
Rational Parametric Cubic Equations.\" Northern Illinois University. De Kalb.
III. Informal notes, undated.

Hoffmann, \320\234.Geometric
\320\241. and Solid Modeling: An Introduction. San
Mateo, Calif: Morgan Kaufman. 1989.
490 \342\226\240
Bibliography

\342\226\240.
\"Implicit Curves and Surfaces in CAGD.\" IEEE Computer Graphics
and Applications 13(1): 79 (1993).
Hoffmann. and J. E. Hopcroft.
G M. \"The Potential Method for Blending
Surfaces.\" In Geometric Modeling:Algorithms and New Trends, ed. G.
Farm. Philadelphia: SIAM.1987.
Hoffmann, J. E.
\320\241\320\234.. Hopcroft, and M.S. Karasick. \"Robust Set Operations
on Polyhedral Solids.'\" IEEE Computer Graphics and Applications 9(6):
50-59(1989).
Hoffmann. \316\234.,and
\320\241 J. Zhou. \"Some Techniques for Visualizing Surfacesin
Four-Dimensional Space.\" Computer Aided Design 23(1): 83 (1991).
Hohmeyer, M. E..and B. A.
Barsky. \"Rational Continuity: Parametric,
Geometric, and Frenet Frame Cont inuity of Rational Curves.\" ACM
Transactionson Graphics 8(4): 325 (1989).
Hojnicki, J. S.and p R. White. ''Converting CAD Wireframe Data to
Surfaced Representations.\" Computers in Mechanical Engineering Mar./Apr.:
19-25 (1988).
Holmstrom.L. \"Piecewise Quadric of Implicitly Defined
Blending
Surfaces.\" Computer Aided Geometric Design 4: 171 (1987).
Hosaka,M., and F Kimura. \"Non Four-Sided Patch Expressions with
Control Points.\" Computer Aided Geometric Design 1(1): 75-88 (1984).
Hoschek.J. \"Offset Curves in the Plane.\" Computer Aided Design 17(2):77
(1985).

\342\200\224.\"Circular Splines.\" Computer Aided Design 24(H): 611(1992).


\"Free-Form
\342\200\224\342\200\224\342\200\224. Curves and Free-Form Surfaces.\" Computer Aided
Geometric Design 10(3^1): 173 (1993).

Hoschek, J., and F. Schneider. \"Spline Conversion for Trimmed Rational


Bezier and B-Spline Surfaces.\" Computer Aided Design 22(9): 580 (1993).

Houghton, \316\225.
\316\225.. Emmetl, R. Factor, and L. Sabharwal. \"Implementationof
a Divide-and-Conquer Method for the Intersection of Parametric
Surfaces.\" Computer Aided Geometric Design 2(1-3): 173-184 (1985).
Joe, B. \"Discrete
Beta-Splines.\" Computer Graphics 21(4): 137 (1987).
\342\200\224\342\200\224\342\200\224.
\"Multiple-Knot and Rational Cubic Beta Splines.\" ACM
Transactionson Graphics 8(2): 100 (1989).
''Rational
\342\226\240. Beta-Spline Curves and Surfaces and Discrete Beta-
Technical
Splines.\" Report
no. TR 87-04. Department of Computing
Science, University of Alberta, Edmonton, April 1987.
\"Knot Insertion
\342\200\224\342\200\224\342\200\224. for Beta-Spline Curves and Surfaces.\"ACM
Transactions on Graphics 9(1): 41 (1990).
Bibliography \342\226\240
491

. \"Quartic Beta-Splines.\" ACM Transactions on Graphics 9(3): 301


(1990).
Joe, \320\222..W.Wang, and F. Cheng. ''Reduced-Knot NURBS Representations of
Rational G1 CompositeBczicr Curves.\" Computer Aided Design 26(5):
393 (1994).
Julie\302\273, C. and M. Laborie. \"Bias and Tension,Two Shape Parameters for
Convenient Specification of the Parametric Cubic Segment.\"Computer
Aided Design 21(8): 485 (1989).

Kalay.Y. E. \"The Hybrid Edge:A Topological Data Structure for Vertically


Integrated Geometric Modeling.*'ComputerAided Design 21(3): 130
(1989).
Kato, K. \"Generation of \320\270-Sided Surfaces Patches with Holes.\" Computer
AidedDesign 23(10):676(1991).
Kela, A. \"Hierarchical Octree Approximations for Boundary
Representation-Based Geometric Models.\" Computer Aided Design 21(6): 355 (1989).
Kela, J.
\316\221., E. Davis, and P.M. Finnigan. \"Wire frame to Solid Models: A
Survey.\" In Proceedings of the ASM \316\225
Computers in Engineering Conference.
ASME,1989.
R.E.Parent.
Kent, J. R.,W E.Carlson,and \"Shape Transformation for
Polyhedral Objects. Computer Graphics 26(2): 47 (1992).
Klok. F \"Two Moving Coordinate Frames for Sweeping along a 3D
Trajectory.\" Computer Aided Geometric Design 3: 217 (1986).
Kocic, L. M. \"Modification of Bezier Curves and Surfaces by Degree-
ElevationTechnique.\" Computer Aided Design 23(10): 692 (1991).

Koenderink, J. J. SolidShape. Cambridge, MIT Press, 1990.

Koparkar. \316\241
\"Designing Parametric Blends: Surface Models and Geometric
Correspondence.\" The Visual Computer 7(1): 39 (1991).
Kouh, J. S..and S.W Chau. \"Computer-Aided Geometric Design and Panel
Generation for Hull Forms Based on Rational Cubic Bezier Curves.\"
Computer Aided Geometric Design 10(6): 537 (1993).
Kramer, G. A. Solving a Geometric Constraint System: A Case Study in
Kinematics.
Cambridge. Mass.: Massachusetts Institute of Technology Press,
1991.
Kriezis,G. \316\235.
\316\221., \316\234.
Patrikalakis, and F.-E. Wolter. \"Topological and
Differential-Equation Methods for Surface Intersections.\" Computer Aided
Design 24(1):41 (1992).
Kuriyama, S. \"Surface Modeling with an Irregular Network of Curves
Sweeping
and Blending.\" Computer Aided Design 26(8): 597 (1994).
492 \342\226\240
Bibliography

Laidlaw, D. H..W. H.Trumbore,and J. F. Hughes.\"Construclive Solid


Geometry
for Polyhedral Objects.\" Computer Graphics 20(4): 161 (1986).
Lancaster.P., and K. Salkau skas. Curve and Surface Fitting. New York;
Academic Press, 1986.

Lane, E. P. Metric Differential Geometryof Curves and Surfaces, University


of Chicago Press, Chicago, 1940.
Lane,J.M., and R. F. Riesenfeld. \"A Theoretical Development for Computer
Generation and
Display of Piecewisc Polynomial Surfaces.\" IEEE
Transactionson Pattern Analysis and Machine Intelligence PAMI-2:35^16(1980).
Lang-Lendorff.G.. and J. Unterburg. \"Changes in Understanding of
CAD/CAM: A Database-Oriented Approach.-'Computer
Aided Design

21(5): 309 (1989),

Lasser, D \"Bernstein-BezierRepresentationof Volumes.\" Computer Aided


Geometric Design 2(1-3): 145-1 50 (1985).
.\"Intersection
of Parametric Surfaces in the Bernstein-Bezier
Representation.\" Computer Aided Design 18(4): 186-192(1986).
Laurent-Gengoux,P,andM. ofNURBS
Mekhilef. \"Optimization
Representation.\"
Computer Aided Design 25(11): 699 (1993).
Lazarus, F, S.Coquillarl, and Jancene.
\316\241 \"Axial Deformations: An Intuitive
Deformation Technique.\"ComputerAided Design 26(8): 607 (1994).
Lee. \320\222.,
and D Fredericks. \"Intersection of Parametric Surface Patchesand a
Plane.\" IEEE Computer Graphics and Applications 4(8):48-51(1984).
Lee.D.T, and F. P. Preparata. \"Computational Geometry\342\200\224A Survey\" IEEE
Transactions on Computers C-l3(12): (1984). \320\25672-1101

Lee, E. \"The Rational Bezier Representation for Conies\"In Geometric


Modeling: Algorithms
and New Trends, ed. G. Farin. Philadelphia: SIAM,
1987.
Lee. Y. and
\320\242., A. S. Koh. Performing Enler angle rotationsin CAD systems.
Computer-Aided Design 27(1): 75-78, Jan 95.
Lee. \316\245 and
\320\242., A. A. G. Requicha. \"Algorithms for
Computing
the Volume
and Other Integral Properties of SolidObjects.\" Automation Production

Project Technical Memo no. 35. Production AutomationProject.


Universityof Rochester, Rochester, N.Y, 1980.
. \"Algorithms for
Computing
the Volume and Other Integral
Propertiesof Solids. Part 1: Known Methods and Open Issues.\"Communications

of the AC\316\234
25(9): 635-641 (1982a).
. \"Algorithms for ting the Volume
\320\241\320\276\321\202\321\200\320\270 and Other Integral Proper-
lies of Solids. Part 2; A Family of Algorithms Based on Representalion
Bibliography 493
\342\226\240

Conversion and Cellular Approximation.'' Communications of the ACM

25(9): 642-650 (1982b).


Lccsley, M. ''PC CAD is Closingin on Mainframe CAD.\" Comment.
Computer
Aided Design 25(12): 739 (1993).
Lequelte.R. Conslruclion of Curvilinear
\"Automatic Solids from Wireframe
Views.'\"Computer Aided Design29(4):171(1988).
Letcher, J. S. Jr. \"Lofting and Fabrication of Compound-Curved Plates.\"./.
Ship Res. 37(2): 166-175 (1993).
Letcher,! S. Private communicalion.Aug. 28.1995.
Letcher, J. S. Jr., and D. M. Shook. \"Applications of Relational Geometric
Synthesis in
Sailing Yacht Design.\" In Proceedings, Ilth Chesapeake
Sailing
Yacht Symposium. Annapolis. Md.: SNAME, 1993.
Letcher. Jr., J.S.and D. M. Shook.''parametric Design and Gridding through
In Proceedings
RelationalGeometry.\" of the Surface Modeling, Grid
Generation and Related issues in Computational Row Dynamics (CFD)
Solutions. NASA Lewis Research Center, May 1995a.
. \"NURBSConsideredHarmful for Gridding (Alternative Offered).\"
Paper presented at the Fourth Annual Inlernational Meshing Round-

table, sponsored by Sandia National Laboralories, Albuquerque.N.M.,


Ocl.1995b.
Letcher, Jr.. J. S., D M. Shook, and S. G. Shepherd. \"Relational Geometric

Synthesis. Part 1: Framework.\" Computer Aided Design27(11)(1\320\24395).


Levin, J.\"Malhemalical Modelsfor Delermining the Inlersection of Quadric
Surfaces.\"
Computer Graphics andlmage Processing 11: 73-87 (1979).
Li, H., S.-Q. Liu. \"Local
and Intcrpolalion of Curvaturc-Coniinuous
Surfaces.\" Computer Aided Design 24(9): 491 (1992).
Lien, S..M. Shantz, and V. Pratt. \"Adaptive Forward Differencing for
Rendering Curves and Surfaces.\" S1GGRAPH '87 Proceedings. Computer
Graphics 2\\(4): 111-118 (1987).
Lienhardt, P. \"Topological Models for Boundary Representation:
A

Comparison
with ri-Dimcnsional Generalized Maps.\" Computer Aided Dcsigit
23(1):59(1991).
Light, R.,and D. Gossard.'\"Modification Models throu gh
of Geometric
Variational Geomelry\" Computer Aided Design 14(4): 209-214 (1982).
Lin,F., and W. T. Hewitt. \"Expressing Coons-Gordon Surfaces as NURBS.\"
Computer Aided Design 26(2): 145 (19\320\2434).

Liu. D. \"A Geometric Condition for Smoothness betweenAdjacent Bezier


Surface Patches.\" Acta Mathematfca Applications SirUca 9: 432 (1986).
494 >
Bibliography

Liu.D. and J. Hoschek.\"C and \320\241Continuity Conditions between Adjacent


Rectangular and Triangular Bezier SurfacePatches.\" Computer
Aided

Design 2\\{4):\\94(\\9S9).
Liu, Q. and \320\242. Sun.
\320\241 \"G1 Interpolation of Mesh Curves.\" Computer Aided
Design26(4):259(1994).
Llewelyn,
A. I. \"Review of CAD/CAM.\" Computer Aided Design21(5):297
(1989).

Lodha. S., and J. Warren. '\"Bezier Representation for Quadric Surface


Patches.\" Computer Aided Design 22(9): 574(1990).
Loop. \320\241 and
\320\242., T. D. DeRose. \"A Multisided Generalization of Bezier
Surfaces.\" ACM Transactions on Graphics 8(3): 204 (1989).
Lorentz,G.G. Bernstein Polynomials. Toronto Press, 1953.
Lossing. D. L., and A. L. Eshleman.\"Planning a Common Data Base for
Engineering and Presented
Manufacturing.\" to SHARE XLiii, Chicago,
Aug. 1974.

Lounsbery,M..S. Mann,andT. De Rose.''ParametricSurfaceinterpolation.\"


IE \320\225\320\225
Computer Graphics and Applications 12(5): 45-52 (1992).
Lychc, \320\242.,and V. Morken. ''Knot Removal for Parametric B-Spline
Curves and Surfaces.\" Computer Aided Geometric Design 4(3): 217-230
(1987).
Lyche,T., and L. L. Schumaker. Mathematical Methods in Computer Aided
GeometricDesign. New York: Academic Press, 1989.
Lyche, and
\320\242., L. L. Schumaker, eds. Curves and Surfaces.New York:

Academic Press, 1992.

Maekawa, and
\320\242.. N. M. Patrikalakis. ''Compulation of Singularities and
Intersectionsof Offsets of Planar Curves.\" Computer Aided Geometric
Design 10(5): 407
(1993).

Mallet, J.-L. \"Discrete Smooth Interpretation.\" ACM Transactionson


Graphics8(2):121 (1989).

\"Discrete
\342\200\224. Smooth Interpolation in Geometric Modeling.\" Computer
Aided Design24(4):178(1992).
Manning.
J. R. \"Continuity Conditions for Spline Curves.\"The Computer
Journal17;181-186
(1974).
Manocha, D. \"Solving Systems of Polynomial Equations.\" IEEE Computer
Graphics and
Applications 14(2):46-55 (1994).
Manocha. D.. and J. Canny. \"A New Approach for Surface intersection.\"
International Journal of Computational Geometry and Applications 1 (4):
491 (1991).
Bibliography \342\226\240
495

.
\"Implicit Representations of Rational Parametric Surfaces.\"Journal
of Symbolic Computation 13: 485 (1992).
Mantyla. M. \"An Inversion Algorithm for Geometric Models.\" Proceedings
oISIGGRAPH '82. ComputerGraphics 16(3): 51-59 (1982).
. '\316\206Note on the Modeling Space of Euler Operators\"Computer
Vision, Graphics, and Image Processing 26(1): 45-60 (1984).
. \"BooleanOperationsof 2-Manifolds through Vertex Neighborhood
Classification.\" ,4CAi Transactions on Graphics5(1):1 (1986).
. An Introduction to Solid Modeling. Rockville, Md.: Computer
Science, 1988.

Mantyla, M., and M.Tamminen. \"Localized Set Operationsfor Solid


Modeling.\" Proceedings of SIGGRAPH '83. Computer Graphics 17(3):279-288
(1983).
Markowsky, G, and M. A. Wesley. \"FleshingOut Wireframes.\"IBM Journal
of Research and Development 24(5): 582 (1980).
Martin, R.R.,ed. The Mathematicsof Surfaces II. Oxford: Claredon, 1987.
Martin, R. R., and \316\241\320\241.Stephenson. \"Sweeping of Three-Dimensional
Objects.\" Computer Aided 223
Design22(4): (1990).
Masuda, H. \"Topological Operators and Boolean Operations for Complex-
Based Nonmanifold Geometric Models.\" Computer Aided Design 25(2):
119(1993).
Mazzetti,M.,andL. Ciminiera. \"Computing CSG-Free Boundaries as
Algebraic Expressions.\" Computer Aided Design 26(6): 417 (1994).
McConnell,J.J. \"Dissertation Abstracts in Computer Graphics.\" Computer
Graphics 23{2):191(1989).
McLaughlin, H. \"Shape Preserving Planar Interpolation: An Algorithm.\"
IEEE Computer Graphics and Applications 3(3): 58-67 (1985).
Meagher,
D.J. \"Octree Encoding: A New Technique for the Representation,
Manipulation,
and Display of Arbitrary Three-Dimensional Objects by
Technical
Computer.\" Report
IPL-TR-80. Image Processing Laboratory,
Rensselaer Polytechnic Institute,Troy, N.Y.,Oct.1980.
. \"Efficient Synthetic Image Generation 3-D Objects.\"
of Arbitrary
Proceedingsof the IEEE Computer Society Conference on Pattern
Recognition and Image Processing. IEEE, 1982a.
.\"GeometricModeling Using Octree Encoding.\"Computer Graphics

andlmage processing 19: 129-147 (1982b).


.\"The Octree EncodingMethodfor Efficient Solici Modeling.\"
Technical
Report IPL-TR-032. Image Processing Laboratory, Rensselaer
Polytechnic Institute,Troy,NY., Aug. 1982c
.96 \342\226\240
Bibliography

.\"Octree Generation. Analysis, and Manipulation.\"Technical Report


IpL-TR-027.Imageprocessing Laboratory, Rensselaer Polytechnic
Institute. Troy,N.Y.,Apr. 1982d.

Meek, D. S., and D. J. Walton. \"Shape Determination of Planar Uniform


Cubic B-Spline Segments/\" Computer Aided Design 22(7): 434 (1990).
Menon. J. p \"ConstructiveShell Representations for Free-Form Surfaces
and Solids/' IEEE Computer Graphics and Application.\302\267; 14(2): 24-36

(1994).
Menon, J., R. J. Marisa, and J.
Z-agajac. \"More Powerful Solid Modeling
through Ray Representations.\" IEEE Computer Graphics and
Applications
14(3): 22-35 (1994).
Meriwether, H. D. Informal notes.Undated.
. Personal communication, Aug. 1995.
Micchelli, C, and H. Prautzsch.''Computing
Surfaces Invariant under
Subdivision.\" Computer Aided Geometric Design 4(4): 321-328 (1988).
Middleditch,A. E., and \320\232. Sears.
\320\235. \"Blend Surfaces for Set Theoretic
Volume
Modeling Systems.\" Computer Graphics 19(3): 161 (1985).
Milenkovic, V. \"Robust Polygon Modeling.\" Computer Aided Design 25(9):
546(1993).
Miller,J. R. \"Sculptured Surfaces in Solid Models: Issues and Alternative
Approaches.\"IEEE Computer Graphics and Applications 6(12): 37^-8
(1986).
-.\"GeometricApproachesto Nonplanar Quadric Surface Intersection
Curves.\" ACM Transactions on Graphics6(4):274-307 (1987).
. \"Incremental Boundary Evaluation Using Inference of Edge
Classifications.\" IEEE Computer Graphics and Applications 13(1): 71-78
(1993).
Miller, J. V., D. E. Breen,and R. M. O'Bara.\"Geometrically
Deformed

Models: A Method for Extracting Closed Geometric Models from Volume


Data.\"Computer Graphics 25(4): 217 (1991).
Morlenson,M. E. Geometric Modeling, 1stcd. New York: Wiley, 1985.
. Computer Graphics: An Iniroduction to the Mathematics and
Geometry. New York: Industrial Press, 1989.
. Geometric Transformations.New York: Industrial press. 1995.
Nasri, A. H. \"Polyhedral SubdivisionMethodsfor Free-Form Surfaces.\"
ACM Transactions on Graphics 6(1): 29 (1987).
Nicholl, R. \316\221.,and M.Nicholl.
\316\244
\"Performing Geometric Transformations by
on Graphics9(1):28(1990).
Program Transformation\" ACM Transactions
Bibliography 497
\342\226\240

Nielson, G. M. \"Computer-Aided Geometric Design.\" IEEE Computer


Graphics
and
Applications 12(5): 29-30 (1992).
Ning, p, and J. Bloomenthal. \"An Evaluation of Implicit Surface Tilers.\"
IEEE Computer Graphicsand Applications13(6):\320\227\320\227^\320\256 (1993).

Ohkura, K., and Y. Kakazu. ''Generalization of the PotentialMethod for


BlendingThree Surfaces.\" Computer Aided Design 24(11)'. 599 (1992).
Ohsuga, S. \"Toward Intelligent CAD Systems.\" Computer Aided Design
21(5): 315(1989).
Oliver. J. C, J. S. Letcher, Jr., and N. Salvesen.\"PerformancePredictions for

Stars & Stripes\" Trans. S.N.A.M.E. 95: 239-261(|987).


O'Neill,B. Elementary Differential Geometry, Academic Press, New York,
1966.
PalacoI.E.L.andE. L, Stanton. \"Anisotropic Parametric PlateDiscrete
Elements.\" International Journal of Numerical Methods in Engineering 4:
413-25(1973).
Palrikalakis, N. M. \"Surface-lo-Surfacc intersections.\" IEEE Computer
Graphics and Applications13(1):89-95(1993).
Patterson, R. R. \"Projective Transformations of the Parameter of a Bern-
slein-Bdzier Curve.\" ACM Transactions on Graphics 4(4): 296 (1985).
-. \"Projective Transformations of the Parameter of a Rational Bern-
stein-BezierCurve.1' Transactions
\320\233\320\241\320\234 on Graphics 4:276-290 (1986).
Pavlidis.T- '\"Curve Riling with Conic
Splines.\" ACM Transactions on Graph-
/\302\2532:1-31 (1983).

Pegna, J. \"Interactive Design of Curvature ContinuousFairing Surfaces.\"

Proceedings of the 8th International Conference on OffshoreMechanics


and Arctic
Engineering of the ASME. New York: ASME, 1989.
Pegna,J. and F. E. Woller. \"Geometrical Criteria to Guarantee Curvature
Continuity of Blend Surfaces.\" Journal of Mechanical Design, Transaction
of the ASM \316\225
\320\250(\\):
201 (1992).
Peng, S.
\320\236- \"AnAlgorithm for Finding Intersection Lines betweenTwo B-

Spliiie Surfaces.\" Computer Aided Design 16(4): 191-196(1984).


Penna,M., and R. Patterson. Projective Geometry and its Applications to
Computer Graphics.New York: Prentice Hall. 1986.

Peters, G J. \"InteractiveComputerGraphics Application


of the Parametric
Bicubic Surface.\" In ComputerAided Geometric Design, eds. R. E. Barn-
hill and R. F. Riesenfeld.New York: Academic Press, 1974.
Peters. J. \"Loeal Generalized HermiteInterpolationby Quartic C2 Space

Curves.\" Transactions
\320\224\320\241\320\233* on Graphics 8(3): 235 (1989).
498 \342\226\240
Bibliography

Pham, \"'Offset
\320\222. Curves and Surfaces: A Brief Survey.\"ComputerAided
Design 24(4): 223 (1992).

Phillips. M. \320\222.,and G. M. Odell. \"An Algorithm for Locating and Displaying


the Intersection of Two Arbitrary Surfaces.\" IEEE Computer Graphics
and Applications 4(9):48 (1984).
Pieg|,L.\"A Geometric Investigation of the Rational Bezier Scheme in

Computer Aided Geometric Design_\" Computers in Industry 7:401-410 (1987).


-. \"Hermite- and Coons-likc Interpolants Using Rational Bezier

Approximation Form with Infinite Control Points.\" ComputerAided


Design 20(1): 2-10 (1988).
-. \"Geometric Method of IntersectingNatural Quadrics Represented
in Trimmed Surface Form.\" Computer Aided Design21(4):201 (1989a).
. \"Key Developments in Computer-Aided Geometric Design.\"
Computet' Aided Design 21(5): 262 (1989b).
-. \"Modifyingthe Shape of Rational B-Splines. Part I: Curves.\"
Computer Aided Design 21(8): 509-518 (1989c).
.'\"Modifying the Shapeof Rational B-Splines. Part 2: Surfaces.\"

Computer
Aided Design 2\320\2469): 538 {l989d).
-. \"On NURBS: A Survey.\" IEEE ComputerGraphics and

Applications 11(1):
(1991). 55
. Fundamental Developments of Computer-Aided Geometric
Modeling.New York: Academic Press, 1993.
Pi eg], L.and W. Tiller. \"Curve and Surface Constructions Using Rational B-
Splines.\" Computer Aided Design 19(9):485-498 (1987).
. The NURBS Book.Berlin:Springer Verlag, 1995.

-. \"Circles: A Menagerie IEEE


of Rational B-SplineCircles.\"
Computer Graphics and Applications 9(5): 48 (1989).
Approachto DegreeElevation
. \"Software-Engineering of B-Spline
Curves.\" Computer Aided Design 26(1): 17 (1994).
Piper.B. \"Visually
Smooth Interpolation with Triangular Bezier patches.\"
In GeometricModeling:
Algorithms and New Trends, ed. G. Farin. SIAM,
1987.
Pottman, H. Invariant Classes
\"Protectively
of Geometric Continuity for
CAGD.\"Computer Geometric Design 6(4): 307-322
Aided (1989).
. \"Locally ControllableConicSplines Curvature Continuity.\" with

ACM Transactions on Graphics- 10(4):366(1991).


M. J.,R.
Pratt, J. Goult, and L. Lee. \"On RationalParametric Curve

Approximation.\"
Computer
Aided Geometric Design 10(3^.): 363 (1993),
Bibliography \342\226\240
499

Pratt. V. \"Techniques for Conic Splines.'1 Computer Graphics19(3):151


(1985).
-, ''Direct Least-Squares Fitting of Algebraic Surfaces.'' Computer
Graphics 2\320\251: 145 (1987).
Prautzsch. H. ''Degree Elevation of B-Spline Curves.\"
Computer
Aided

Geometric Design 1(2): 193-198 (1984).


-, \"A Round Trip to B-Splines via de Casleljau.\"\320\233\320\241\320\234
Transactions on

Graphics 9{3): 243 {\\989).


Prautzsch, H.. and Micchelli.
\320\241
\"Computing Curves Invariant under
Halving.\" Computer Aided Geometric Design 4(1-2): 133-140 (1987).
Preparata, F P., M. 1. and Shamos. Computational Geometry. New York:
1985.
Springer-Verlag,
Putnam, L. K., and A.
\316\241 Subrahmanyam. \"Boolean Operations on n-
IEEE
Pimensional Objects.\" Computer Graphics and Applications 6(6):
43-51 (1986).
Qin. H. '\"Dynamic NURBS with Geometric Constraints to Interactive
Sculpting.\"ACM Transactions on Graphics 13(2): 103 (1994).
Oin,K., J.Sun, and X.Wang. ''Representing Conies Using NURBS of Degree
Two.\" Computer Graphics Forum 11(5): 285 (1992).
Ramshaw. L. \"Beziers and
B-Splines as Multiaffine Maps.\" In Theoretical
Foundations of ComputerGraphicsand CAD, ed. R. Earnshaw. New
York: Springer-Verlag,1988.
Rappoport,A. ''Rendering Curves and Surfaces with Hybrid Subdivision
and Forward Differencing.\"
ACM Transactions on Graphics 10(4): 323
(1991).
Ratshek. H.. and J. Rokne. \"Test for Intersection between Plane and Box.\"
Computer Aided Design 25(4): 249 (1993).
-. \"Box-Sphere Intersection Tests.\"Computer
Aided Design 26(7): 57\320\243

(1994).

Redont, \316\241
\"Representation and Deformation of Developable Surfaces.\"
Computer Aided Design21(1):13(1989).
Requicha.A.A.
G.''Mathematical Models of Rigid Solid ObjccLs.\"Tcchnical
Memo no. 28.Production Automation Project, University of Rochester.
Rochester. N.Y. 1977.
. \"Representations for Rigid Solids: Theory, Methods, and Systems.\"
Computing Surveys 12(4): 437^-64- (l 980).
-. \"Solid Modeling: A 1988 Update.\" CAD Based Programming
Sensory Robots, ed. B. Ravani. New York: Springer-Verlag, 1988.
500 \342\226\240
Bibliography

Requicha. A. A. G..and J. R. Rossignac.\"Solid Modeling and Beyond.\" IEEE


Computer Graphics and Applications12(5): 31-44(1992).
Requicha, A. A. G., and R. B. Tilove. ''MathematicalFoundationsof
Constructive Solid Geometry: General Topology of Regular Closed Sets.\"
TechnicalMemo no. 27. Production Automation Project, University of
Rochester.Rochester. N.Y., 1978.

Requicha, A. A. G, and \316\227.\316\222.Voelker. \"Constructive Solid Geometry\"


Technical Memo no. 25, ProductionAutomation Project, University of
Rochester, Rochester, N.Y., 1977.
-. \"Geometric Modeling
of Mechanical Parts and Machining
Processes.\" COMPCONTROL. Sopron,Hungary: 1979.

-. \"An Introduction to Geometric Modeling and its Applications.\"


Advances in information Systems Sciences, ed. J. T. Ton.Vol.8.New York:

Plenum, 1981.
-. \"Solid Modeling: A Historical Summary and Contemporary
Assessment.\" IEEE Computer Graphics and Applications 2(2): 9-24 (1982).
. \"Solid Modeling: Current Status and Research Directions.\" IEEE
ComputerGraphics and Applications 3(27): 25-37 (1983).
. ''Boolean Operations in Solid Modeling:Boundary Evaluation and

Merging Algorithms.\" Proceedings 30


ofJEEE 73(1): (1985).
Riesenfeld, R, F.
\"Applications of B-Spline Approximation to Geometric
Problemsof Computer-Aided Design.\" Ph.D. diss.. Syracuse University,
Syracuse, N.Y., 1972.Also publishedas University
of Utah report UTEC-
CSc-73-126.
-.\"Aspects of Modelingin Computer-Aided Geometric Design.\"
Proceedings of
the National Computer Conference. AFIPS Press, 1975.
. ''HomogeneousCoordinates Projective Planes in Computer and

Graphics.\" IEEE Computer Graphicsand 1:50-55 (1981). Applications

Roberts, L. G. \"Homogeneous Matrix Representation Manipulation of and

n-Dimensional Constructs.\" Report MS-1405, Lincoln Laboratory,


Massachusetts Institute of Technology, May 1965.
Rockwood, \316\221. \"The
\316\241
Displacement Method for Implicit Blending Surfaces
in SolidModels.\"ACM Transactions on Graphics 8(4): 279 (1989).
Rockwood, A. P, and J. C. Owen. ''Blending Surfaces in Solid Modeling.\"In
Geometric
Modeling: Algorithms
and New Trends, ed. G. Farin. New York:
SIAM,1987.
Rosenblum, L. J. \"Research Issues in ScientificVisualization.\" IEEE
Computer Graphics and Applications 14(2): 61-63 (1994).
Bibliography \342\226\240
501

Ross, D. T. \"The Design and Use of IheAPT Language for Aulomalic

Programming
of Numerically Controlled Machine Tools.\" Proceedings of the
Computer Applications Symposium. Chicago: 1959.
-. \"The AED Approach lo GeneralizedCompuier-Aided Design.\"

Proceedings of the ACM National Conference.ACM 1967.

Ross, R. \"Transformations.\" IEEE Computer Graphics and Applications

9(3): 70 (1989).

Rossignac, J. R.\"Constraints in Constructive SolidGeometry.\" In Proceedings


of the 1986 Workshop on Interactive 3D graphics, eds. F. Crow and S.M.
Pizer. Hill, Chapel
N.C.: Association Machinery press, 1986.
for Computing
J.
Rossignac, R., and A. A. G Requicha. \"Offsetting Operations in Solid
Modeling.\" Computer Aided Geometric Design 3(2): 129-148(1986).
. \"Constant Radius Blending in Solid Modeling.\" ASM \316\225
Computers
in Mechanical Engineering (CIME) 3(1): 65-73 (1984).
-.\"Constructive Non-regularized Geometry.\" Computer Aided Design
23(1): 21 (1991).
Roulier,J.A. the Arc Length \"Specifying
of Bezier Curves.\" ComputerAided
GeometricDesign10(1):25 (1993).
Sabin, M. \"A Method for Displaying the Intersection Curveof Two Quadric

Surfaces.\" The Computer Journal 19: 336-338 (1976).


. \"Non-rectangular Surface Patches Suitable for Inclusion in a B-

Spline Surface.'\" In Proceedings of Eurographics1983,ed. P. ten Hagen.


Amsterdam: North-Holland, 1983.
-. \"Geometric Modeling\342\200\224Fundamentals.\" In Eurographics Tutorials
'83, ed. \316\241 J. W. ten Hagen. Berlin: Springer-Verlag, 1984.
. \"Recursive Subdivision.\" In The Mathematics of Surfaces, ed. J.
Gregory. Oxford: Clarendon, 1986.
-. \"Some Negative Results in iV-Sidcd Patches.\"ComputerAided
Design 18(1): 38-44 (1986).
Sakkalis, T, and R.
\316\244Farouki.
\"Algebraically Rectifiable Parametric
Curves.\" Computer Aided GeometricDesign10(6):551 (1993).
Samet, H. \"The Quadtree and Related HierarchicalDataStruclures'VlCAi
Computing Surveys 16:187-260 (1984).
Samet, H., CSGTrees,
and M. Tamminen.\"Bintrees. and Time.\" Computer
Graphics 19(3)-. 121 (1985).
Sapidis.N, and R. Perucchio. \"Solid/Solid Classification Operations for
Recursive Spatial Decomposition and Domain Triangulation of Solid
517(1992).
Models.\" Computer Aided Design24(10):
502
\342\226\240
Bibliography

Sarraga, R. F- \"Computer of Surfaces with


Modeling Arbitrary Shapes.\"
IEEE Computer Graphics and 6 7
Applications 10(2): (1990).
Schene, \320\241. \"Test
\320\232. for Intersection between a Plane and a Connected
Compact Polyhedron;7 Computer Aided Design 26(7): 585 (1994).
Schichtel,M. \"G2 Blend Surfaces and Filling of \316\267-Sided Holes\" IEEE

Computer Graphics and Applications 13(5): 68 (1993).


Schmitt,F.J.M.,B.A. Barsky, and W-H Du. \"An Adaptive Subdivision Method
for Surface Fitting from Sampled Data.\"ComputerGraphics20(4):179
(1986).
I.
Schoenberg, \"Contribution to the Problem of Approximation of
Equidistant Data by Analytic Functions.\" Quarterly of Applied Mathematics4:
45-99,121-141
(1946).
.\"On Variation Diminishing Approximation Methods.\" In On
NumericalApproximation, ed. R. E. Langer. Madison, Wis.: University of

Wisconsin Press, 1953.

Schumaker, L. L. Spline Functions: BasicTheory. New York: Wiley, 1981.


. \"Triangulationsin CAGD.\" [EEE ComputerGraphicsand
Applications 13(1): 47 (1993).
Schwartz, A. \"Subdividing Bezier Curves and Surfaces.\" In Geometric
Modeling:Algorithms and New Trends, ed. G. Farm. Philadelphia:S1AM,
1987.
Sederberg,T.W.\"Implicitparametric and Curves and Surfaces for Computer
Aided GeometricDesign.\"Ph.D. thesis, Purdue University, 1983.
-. \"Steiner Surface Patches.\"IEEE Computer Graphics and

Applications
5(5): 23-36 (1985).
.\"Improperly Parametrized Rational Curves.\"ComputerAided
Geometric Design 1 (3): 67-75 (1986).
-. \"Algorithm for Algebraic Curve Intersection.\" Computer Aided

Design 21(9):547 (1989).


. \"Techniques for Part 1.IEEEComputer
Cubic AlgebraicSurfaces.\"
Graphics and (1990).
Applications 10(4): 14-25
. \"Techniquesfor CubicAlgebraicSurfaces.\" Part 2. IEEE Computer
Graphics and Applications 10(5):12(1990).
T,
Sederberg, W., and D Anderson.
\320\241 \"Steiner Surface Patches.\" IEEE
Computer Graphics and Applications5(5):23(1985).
Sederberg,
\316\244
W., H. Christiansen, and S. Katz. \"Improved Test for Closed
Loopsin Surface Intersections.\" Computer Aided Design 21(8): 505-508
(1989).
Bibliography \342\226\240
503

Sederberg,T.W..andR. J. Meyers. \"Loop Detection and SurfacePatch


Intersections.\" Computer Aided Geometric Design 5(2): 161-171 (1988).
Sederberg,T. W., H. N. Christiansen, and S. Katz. \"Two Theorems Concerned
with Surface Intersection Are Proven and Their Usefulness Outlined.\"

Computer Aided Design 21(8): 505 (1989).


Sederberg,T. W., and R. Farouki.
\316\244
\"Approximation by Interval Bezier
Curves.\" IEEE ComputerGraphics Applications 12(5): 87 (1992). and

Sederberg, \316\244
W., and R. N. Goldman. \"Algebraic Geometry for Computer-
Aided GeometricDesign.\" IEEE Computer Graphics and Applications
6(6): 52-59 (1986).
Sederberg,\316\244 W., and R. J. Meyers. \"Loop Detection and SurfacePatch
Intersections.\" Computer Aided Geometric Design 5(2): 161-171 (1988).
Sederberg, \316\244
W., and S. Parry. \"Comparison of Three Curve Intersection
Algorithms,- Computer Aided Design 18(1): 58-64 (1986).
-. \"Free-FormDeformationof SolidGeometric Models.\" Computer
Graphics 20(4): 151 (1986).
Seidel, H.-P \"Computing B-Spline Control Points Using Polar Forms.\"
Computer Aided Design 23(9): 634 (1991).
Serano, D.. and D.C.Gossard. \"Constraint Management: A Prerequisite to
Conceptual Design.\" In KnowledgeBasedExpert Systems1 in Engineering:

Planning and Design, eds. D. Sriramand R. A. Adey. United Kingdom:


Computational Mechanics Publications,1987.
Shaffer, C. A. \"Dissertation Abstracts in Computer Graphics.\" Computer
Graphics27(2):86(1993).
Shah, J. J., and M. Manly la, eds.Advances in Feature-BasedManufacturing.
New York: Elsevier, 1994.
Shamos, M. 1. ComputationalGeometry. New York: Springer-Verlag, 1975.
-. \"Geometric Complexity.\" Proceedings of the 7th Annual ACM
Symposium on Theory of Computing.Washington, D.C.: ACM Press,
1975.
Shantz, M., and S.Chang.\"Rendering Trimmed NURBS with Adaptive
Forward Differencing.\" Computer Graphics 22(4): 189 (1988).
Shapiro, V.,and D L.Vossler. \"Construction and Optimization of CSG
Representations;7 Computer Aided Design 23(1): 4 (1991).
-. \"Separationfor Boundary to CSG Conversion.\" /ICAi Transactions
on Graphics 12(1):35(1993).
Sheng, X.,and B. E. Hirsch.\"Triangulalion of Trimmed Surfaces in
Parametric
Space.\" Computer Aided Design 24(8): 437 (1992).
504 \342\226\240
Bibliography

Shephard, D. '\316\206Two-Dimensional Interpolation Function for Irregularly


Spaced Data.\"Proceedingsof the National
\320\233\320\241\320\234 Conference. Washington,
DC: ACM Press, 1965.
Shoemake.K. \"Animating Rotation with Quaternion Curves.\" Computer
Graphics! 9(3): 245 (1985).
Shpitalni,M.,YKoren.and \320\241. Lo.
\320\241 \"Realtime Curve Interpolators.\"
Computer Aided Design 26(11): 832 (1994).
Snepp, D. K., and R. C. Pomeroy. \"A geometry system for aerodynamic
design\" (AlAA-87-2902), 1987.

Snyder, J. M. Generative Modeling for Computer Graphicsand CAD,


Academic Press, New York, 1992.
Sodhi, R-, and J. U.Turner.\"Towards Modeling of Assemblies for Product
Design.\" Computer Aided 8 5
Design26(2): (1994).
Solano,
L., and P. Brunet. \"Constructive Constraint-Based Model for
Parametric CAD Systems\" Computer Aided Design 26(8): 614 (1994).
Sridhar,N..R. Agrawal,
and G L. Kinzel. \"Active Occurrence-Matrix-Based
Approach to DesignDecomposition.\"
Computer Aided Design 25(8): 500
(1993).
notesontricubic
Stanton, E. L. Untitled,informal interpolation and

modeling. 1976.

Stanton, E. L., and L. M. Crain.\"PATCHES-III User'sManual.\" McDonnell

Douglas Astronautics Company Report no. MDC G5538,Nov. 1974.


Stanton. E. L., L. M. Crain,andT F. New. \"A Parametric Cubic Modeling
System for General Solids of Composite Material.\" International Journal of
Numerical Methods in Engineering 11:653-670 (1977).
Stone, M. C, and D
\316\244 DeRose. \"A Geometric Characterization of
Cubic
Parametric Curves.\" ACM Transactions 8(3): 147(1989).
on Graphics
Strasser, W., ed. Theory and Practice of Geometric Modeling. York: New

Springer-Verlag, 1989.
Stroud, I. \"Boundary Modeling with Special Representations.\"
Computer

Aided Design 26(7): 543 (1994).


Su, G, and D Liu. \"An Affine Invariant and its Application in
ComputationalGeometry.\" Scientia Sinica, ser. A, 24(3): 259 (1983).
-. Computational Geometry\342\200\224Curve and Surface Modeling. New York:
Academic Press,1989-
Sugihara,K.\"An Intersection Algorithm Based on DelaunayTriangulation.\"
IEEE Computer Graphicsand Applications 12(2): 59-67 (1992).
Supta, S., and J. (_/. Turner. \"Variational Solid Modeling for Tolerance
Analysis.\"IEEE Computer Graphics and Applications 13(3):64 (1993).
Bibliography 505
\342\226\240

Sutherland, 1. \316\225.
''Sketchpad: A Man-Machine Graphical Communication
System.\" Proceedings of the SJCC 23: 329-349 (1963).
Tamminen. M. \"Efficient Octree Conversion by Connectivity Labeling.\"
Computer Graphics 18(3): 43 (1984).
Terzopoulos,D..J. A. Barr.and K. Fleishcher. Piatt, \"Elastically Deformable
Models.\"ComputerGraphics21(4):205 (1987).

Tiller, W. ''Rational B-Splines for Curves and Surface Representation.\"


IEEE Computer Graphics and Applications 3(6): 61-69 (1983).
. '\"GeometricModelingUsing Nonuniform Rational B-Splines:
Mathematical
Techniques.\" SlGGRAPH Tutorial Notes, ACM. Washington,
D.C.:ACM Press,1986.
. \"Knot-Removal Algorithms for NURBS Curves and Surfaces/'
Computer Aided Design24(8):445 (1992).
Tilove, R. B.\"A Study of Geometric Set-Membership
Memo
Classification.\"Technical no. 30. Production Automation Project, University of
Rochester,NY., Nov. 1977.

-. \"Set-Membership A Unified Approach to Geometric


Classification:
Intersection Problems.\" on Computers C-29 (1980).
IEEE Transactions
. \"Line/Polygon Classification:A
Study of the Complexity of
Geometric
Computation.\" IEEE Computer Graphics and Applications 1(2):
75-78,80-82,84(1981).
.\"Exploiting Spatial
and Structural Locality in Geometric Modeling.\"
Technical Memo no. 38.Production Automation Project. University of
Rochester, Rochester, NY., 1981.
Tilove,R. and
\320\222., A. A. G. Requieha. \"Closure of Boolean Operations on
Geometric Entities.\" Computer Aided Design 12(5): 219-220 (1980).
Interpolationofa
Timmer,H.G \"Spline-Blended Network of Curves.\"

Douglas Aircraft Company Technical Memorandum Cl-250-CAT-76-044.Aug.


1976.
-. \"Analytical Background for Computation of Surface Intersections.\"
Douglas Aircraft Company Technical M emorandum C1-250-CAT-77-036.
Apr. 1977.

-. Informal notes. Undated.


Timmer, H. G, C.L.Arne.T R. Stokes Jr., and \316\227.
\316\227.
Tang. \"Ablation

Aerodynamics for Slender Reentry Bodies.\" AFFDL-TR-70-27.1, March 1970.


Timmer,H. G. and J. M. Stern.
\"Computation of Global Geometric
Propertiesof Solid Objects.\" Computer Aided Design 12(6) (1980).
K.D
Toennies, \"3D Modeling Using an Extended Cell Enumeration
Representation.\" Computer Graphics 24(5): 13 (1990).
506 \342\226\240
Bibliography

Toennies, \320\232.
D.,J.K. Udupa,and G.T. Herman. \"Registration of 3D Objects
and Surfaces.\" IEEE Computer Graphics and Applications 10(3):52-62
(1990).
Tokomasu,S.,I.Harashima,and N. Nakajima. \"Spanning Surface
\320\241
\320\260 over a
Given Wireframe.\" Computer Graphics Forum 12(4):211(1993).
Toth, D. L. \"On Ray Tracing Parametric Surfaces.\"ComputerGraphics19(3):
171(1985).
Turk, G. \"Re-tiling Polygonal Surfaces.\" Computer Graphics 26(2): 55 (1992).
Turner,J., and J. Rossignac. \"Special Issue: Solid Modeling '93.\"Editorial.
Computer Aided Design 26(6): 402 (1994).
van Overveld, W.
\320\241 A. M. \"Family of Recursively Defined Curves,Relatedto
the Cubic Bezier Curve.\" Computer Aided Design 22(9): 591(1990).
Varady, T. \"Survey and New Results in rc-SidedPatch Generation.\"
In The
Mathematics of Surfaces II, ed. R. Martin. OxfordUniversity Press, 1987.

Veltkamp, R. \320\241
\"Survey of Continuities of Curves and Surfaces.\"Computer
Graphics Forum
11(2): 93 (1992).

Verroust, F.
\316\221., Schonek, and D. Roller. \"Rule-Oriented Method for
Parameterized
Computer-Aided Design.\" Computer Aided Design 24(10): 531
(1992).
Vesprille,K.J. \"Computer
Aided Design Applications of the Rational B-
PhD.
SplineApproximationForm.\" thesis, Syracuse University, Syracuse,
N.Y., 1975.
Vida. J., R. R. Martin, and \316\244
Varady. \"A Survey of Blending Methods That
Use ParametricSurfaces.\" Computer Aided Design 26(5): 341 (1994).
Voelcker, H. \320\222.,and A. A. G. Requicha. \"Geometric Modeling Researchat
the University of Rochester.\" Presented at the First Annual Conferenceof
Computer Graphics
in CAD/CAM Systems, MIT, Cambridge, Mass.,Apr.
1979.
. \"Boundary-Evaluation Procedures for Objects Defined via
Constructive Solid Geometry.\" Technical Memo no. 26. Production
Automation
Project, University of Rochester, Rochester, NY., 1980.
von Herzen, B. \"Accurate Triangula lions of Deformed, Intersecting
Surfaces.\" Computer Graphics 21(4): 103 (1987).
Wang, \320\241
\"Shape Classification Parametric Cubic Curve and
of the
Parametric
B-Spline
Cuhic Curve.\" Computer Aided Design 13(4):199-296(1981).
Warren, J. \"Blending Algebraic Surfaces.\" ACM Transactions on Graphics
8(4):263(1989).
. \"Creating Multisided Rational Bezier Surfaces Using Base Points.\"
ACM Transactions on Graphics 11 (2); 127 (1992).
Bibliography 507
\342\226\240

Watkins, \316\234.,and A. Worsey. ''Degree Reduction for Bezier Curves.\"


Computer Aided Design 20(7): 398-405 (1988).
Welch, W., A. Gleicher, and A. Wilkin. \"Manipulating Surfaces
Differentially.\" Proceedingsof Computer Graphics '91. ACM 1991.
Welch, W., and A. Witkin. \"Variational Surface Modeling.\" Proceedings of
S1GGRAPH'92. Computer Graphics 26(2): 157 (1992).

Wesley, \316\234. and


\316\221., G. Markowsky. \"Generation of Solid Models from Two-
Dimensional and Three-Dimensional Data.\" In Solid Modeling by
Computers: From Theory to Applications, eds. M. S. Pickett and J. W. Boyse.
New York: Plenum Press. 1984.
Wil/, 1., and Y. Manor. \"Quadric-Siirface Intersection Curves: Shape and
Structure\" Computer Aided Design 25(10): 633 (1993).
Witkin, \316\232.
\316\221.. Fleischer, and A. Barr. \"Energy Constraints on Parameterized
Models.\" Proceedings ofSlGGRAPH '87. Palo Alto, Calif.: Morgan
Kallmann, 1987.

Woodward, D.
\320\241 \"Cross-sectional Design o/ B-Spline Surfaces.\" Computer
Graphics11(2):193 (1987).

Woodwark, J. R. \"Blends in Geometric Modeling.\"In Mathemaiicsof


Surfaces II, ed. R. R.Martin. Oxford University Press, 1989.
Yamaguchi, F. Curves and Surfaces in Computer Aided GeometricDesign.
New York: Springer-Verlag, 1988.
This
page intentionally left blank
INDEX

A Bezier,83
Ab initio design, 3
113.126
B-Spline,
characteristics of, 82
Addition, vector, 421
conversion between, 85,137
Adjacency matrix, 313
Affine
even-degree polynomials,45
transformation(s),Bezier Hermite, 41,42-47
curve invariance under, 87 Hermite basis transformation
Algebraiccoefficients.
40
matrix, 48
Algebraic geometry, 2
Ancestor, 315,382
odd-degree polynomials,45

45
Angle excess, 287
orthogonal,

symmetry between pairs of,45


Animation, 408
transformation matrix, 48
Approximation, 11
Basis vectors,4l7,421
APT language, 6
Arc length, 20 Beads, 376,390
Bernstein potynomiats:
Area, triangle, 424
Bezier curves, 83,88
Atlas, 296,297
partition-of-unity properly, 90
Auxiliary curve, 176 Beta splinecurves:
Barsky,B.A.,10

bias, 34,142
\320\222
cubic, 142
Barsky,B.A\342\200\236 10 tension, 34,142
Basis, 40,421 Beziercurve(s):
Basis function(s): affine Iransforma u'ons, invariance
Bernstein polynomials.83,88 under, 87

509
Bezier ciirve(s)(Continued): composite, 224

application
to geometric modeling, continuity. 224
33.81 control points,217.220
basis functions, 83.93 convertingbetweenBezierand
basis transformation matrix, 84 Hermite,222

Bernstein polynomials,83.88 degree elevation. 223


Bdzier-Hermite conversion, 85 isoparametric curve on, 219
binomial coefficient, 83 matrix form, 217,222

characteristic polygon, 82 points on, 217


circle,\320\2462 rational Bezier patch, 225
closed, 93 tensorproduct.217
composite, 105 Binary tree, 316,342,346,350
conic representations. 111 Binomial coefficient, 83
constructionof.88 Blend surfaces,213.215
continuity. 11)5 Boolean algebra, 2.321

control points, 82.89 Boolean model(s):


control polygon. 82, 90 Boolean algebra, 321
convex hull, 90 boundary of closedset.321
cubic,84 boundary, valid. 328
curvature at endpoints, 107 closed set, 319
degree elevation, 95 constructive solid geometry, 348

degree reduction,97 difference, 320


ellipse, 112 dimensional homogeneity, 323
G2 continuity, 107 directed surface,342
higher-order, 107 empty set, 319

hyperbola,112 graph-based model, 310


matrix 84 form, half-space, 342-343
modifying, 93 intersectionof,
half-spaces, 337

parabola. 112 interior of a closed set, 321


points on, 81 intersection,321)
properties of, 82 null set, 319
rational, 108 open set, 319
recursive subdivision, 102 operators,319
subdividing,97,1D2 primitives, 319

truncating, 97 procedural model, 341


UNlSURF system. 81 regularized set operators,323
weights, 110 set-membership 332
classification,
Bezier,P..7,10,81 sets,319
Bezier surface: sets, operations on, 319
basis function transformations, 222 sets, properties of, 319
bicubic patch.218 subset,319
characteristic polyhedron, 218 unevaluated model, 341
Index - 511

union, 319 nonperiodic, 113


universal set. 314 nonuniform basis functions, 113,
Venn diagram, 320 139
Boolean operators: nonuniform rational, 139
difference,320,321 NURBS, 139
intersection, 320,321 periodic, 127
union,319,321 points on, 114
dcBoor,C.,10 polygon, 121

Boundary evaluator, 364 quadratic basis functions, 128


Boundary model(s): recursive definition of basis,114
boundary representations (b-rcps), uniform basis functions, 126
356,360 weights, 139
data structure, 362 B-Spline surface:
generalizedconceptof a boundary, characteristic polyhedron,
227

358 closed, 228


region, 358 control points,227
topology, 363 matrix form, 228

validity, 358,363 nonperiodic, 227


Boundary, valid, 358,363 NURBS, 235
B-Spline curve(s): open,228
application to geometricmodeling, points on.227
10,33,113 quadric,
232

basis functions, 113,126 tensor product. 227


basis transformations, 124 Building-block geometiy, 348
circle, 141
closed,130 \320\241
conies, 139

conic shape factor, 141 Cardinal splines, 196,199


continuity, 134 deCasteljau,P.,7.88
continuity conditions, summary, 136 Cayley.A.,431
control points, 114 Cell decomposition,367
control points,multiple,115 Cells, parametric
network of, 254
conversion between basis Characteristic equation, 435
functions, 137 Characteristicpolygon, 82

cubic basis functions, 128 Circle, 70,141


degree of basis function Circuit, graph, 313
polynomial,114 Circular arc,71)
knot spacing, nonuniform, 115,117 Class evaluators, 384
knot spacing,uniform, 115 Classification of points, 332
knot values, 114 Closedcurved surfaces,305
knot vector, 114 Closed paths,
282

matrix form, 124 Closed path theorem, 286


CNC machining, 411 gluing operation, 349
Cofactors,of determinants, 437 history, 2,348
Combinatorial structure, 363 lea/ nodes,350
Completeness, logical, 411 neighborhood model, 355

Composite: primitives, 348, 350


curves, 74, \320\2565 procedural representation,351
solids, 252 Requicha,A.A.G.,10
surfaces, 192,224 root 350 node,

Compound plate layout, 408 Voelker,H.B.,10


Computationalgeometry, 2 Continui ty:
Computer-aided design (CAD),1, 6 Bezier curves, 105
Computer-aided geometricdesign B-Splinecurves,134
(CAGD),2 composite curves, 74,105

Computer-aided manufacturing first order, 77


(CAM),1,5,6 geome trie, 77
Computer graphics, 1 Hermite curves,74,77
Cone, 207 parametric, 77

Coniccurve(s): second order, 77,107


32
characteristics, Contours, 399
circle, 70 Controlled deformation,275
conic shape factor. 141 Control points;

construction of, traditional, 64 adding, 89


Hermite approximations of, 64 Bezier curve, 89
hyperhoi a, 69 Bezier surface,217,220
implicit equation of, 31 B-Spline curve, 114

NURBS curve,139 B-Spline surface, 114


68
parabola. polygon, 82,89
characteristic
surface, 64 Conventionsand notation,16
Conjugate net, 159 Convex hull, 90

Connectivity, 312 Coons, S. \316\221.,7,10,81


Connectivitymatrix,312 Coordinates, homogeneous, 108,439,
Connectivity number, 296 441
Constructive dependency, 375 Cox,M.G.,10
Constructive solid geometry(CSG): Crain,L.M.,11
binary tree, ordered, 346,350 Cross
plots, 28
Boolean models, 320 Cubic curves, 32,39
Boolean operators,319 Curvature, 20,301
boundary evaluator, 364 Curvature density, 288

boundary representation (b-reps), Curvature, total, 288


352 Curve(s):
branches,binary tree, 348 auxiliary, 176

cell decomposition, 349 Beta-Spline, 142


definition, \320\22748 Bezier, 32,81
Index .513

B-Spline,32 torsion, 20
circulararc, 70
truncating, 54,97
composite, 13,74,105 Cusps, 53
conic, 31,64 Cylindricalsurface,206
conic Hermite, 64
continuity, 74,77,105
D
conversion between implicit and
parametric form, 22
Decomposition, cell, 367
cubic, parametric, 25,32,39 Deformation(s):
curvature, 20,107 axial. 276
cusps,53 bivariate, 277
decomposition of, 28 controlled,275
direct point solution, 34 shapes.284
explicit equation of, 22 surfaces, delormable, 279
fitting. 12 topology of, 284
forward difference method for 1\320\2631\321\203\320\260\320\2631\320\2601\320\265,277

points on, 36 Degree elevation, 95,223


geometric continui ty, 77 Degree reduction, 97
Hermite, 32,39 Dependency,constructive. 375

implicit equation of, 22


Dependency, interobject, 379
interpolation, 33 Descendant, 315,382
intrinsic equations of, 19 Designoptimization,407
intrinsic properties, 19 Determinants, 436
isoparametric on a surface, 160 Difference operator. 320
loops,53 Digraph, 382
monomialbasis.48 Dilation (scaling),440,462,464,471
natural equation of, 20 Directed graph, 313,382
nets on surfaces, 159,181 Directed surface. 343
NURBS,9,139 Direction cosines,419
on surfaces, 159,161 Direction numbers, 419

orthogonal net, 159 Direct-point solution, 34


parabola, 68 Discretization, surface and volume, 405

parametric continuity,77 Discretization, topological invariant,


parametric equations of, 23 405
parameterization, reversing, 37 Disk, topological,286
points on, computing,34 Durableproperties, 375

position-direction, 268
power basis, 40
rational Bezier,108
\316\225

segment, 26 Eigenvalues, 436

subdividing, 54,97 Eigenvectors, 436


subdivision, quick, 59 Einstein summation convention,40
symmetriesof, 22 Ellipse, 32
514 Index
\342\226\240

Ellipsoid, parametric, 152 Gluingoperation,349


Embedded geometry, 161,376 Gordon, W. J., \320\256

Entity, 376,378 Graph-based models;

Entity classes and subclasses, 379 adjacency matrix, 313


Eshleman,A. E.,jci, 7 ancestor, 315
Euler angles, 450 ancestor,proper,315
Euler characteristic, 305 binary tree, 316
Euler operators,306 branches, 315
Euler-Poincare formula,295 circuit, 313
Euler's formula, 294 connected,313
Extrinsic properties,l9 connectivity matrix, 312
Extruded sweep,265 descendant, 315
directed graph, 313
in degree,313
F inorder 315
traversal,

Ferguson, J. C, 7,10,81 leaf node, 315


Finite element model and analysis, 4, node, 315
405 out degree,313
Forrest,A. R.,7 postorder traversal, 316
Forward difference method, 36 preorder traversal. 316
Four-point interpolation,61 relational geometricsynthesis, 373

Frames, 401 root, 315


Free vectors,417 spanning tree, 313
subgraph,313
316
G traversal, recursive,

tree, 316
traversal,
Gauss-Bonnet theorem, 306 tree. 313
Gaussian quadrature, 16 wireframe model, 318
General sweep surface,265,267 Graph, directed, 313
Geometric coefficients, 41 Graphs, 313,382,400
Geometric continuity, 77 Group technology, 263

Geometric modeling:
ab initio design,3 \316\227
geometric metaphor,
2

history, 6 Half-spaces, 166

polygonal schemes, 8, 9 Hamilton,W.R.,419,456


rendering,3 Handles, spheres with, 289

representation^ Hermite,C.,33
visualization, 3 Hermite basis transformation matrix,
Whatisit?,l 48
wireframe, 8 Hermite curves:
Gibbs,J.W.,419 algebraic coefficients, 40,49
Glide rotation, 470 algebraic form, 40
Index.515

application to geometric modeling, parametric cells, 254


33,39 tangent vectors, 250
basis f unctions, 39,41 256
trimmed boundaries,
basis transformation matrix,48 twist vectors, 250
Bezier-Hcrmite conversion, 85 Hermite surface, bicubic:
of,70
circular arc, approximation algebraic coefficients,169
composite, 74 algebraic form, 169

conic, 64 auxiliary curve, 176


continuity, 74,77 basis functions, 178,179
cubic, 39,61 basis function transformation

cusps,53 matrix, 170


directionality, parametric, 41 blend surfaces, 213
endpoints, 41 boundaries,172,180
four-point interpolation, 61 composite, 192

geometric coefficients, 41 continuity, 192


geometric continuity,77 converting algebraic and
geometric form, 41, 49 geometric forms, 179

hyperbola, approximation,69 curve net, 180


matrix form, 47 cylindrical surface, 206
parabola, 68 degeneratepatches,210
parametric continuity, 77 geometric form, 169,179
quintic. 46 matrix notation for,170
relationship between algebraic and normals, 182
geometric forms, 49 orthogonalnet,174
reparameterizing, 54 plane patch, 203
subdividing, 54 reparameterization of a patch,
tangent vectors,50-53 186
three-point interpolation, 60 ruled surface,207
truncating, 54 sixteen-point form, 184
unit tangent vector, 53 spline interpolation,l96
Hermite solid: subdividing,191
algebraic form, 241 tangent vectors, 180
basis transformation matrix, 241 tensorproduct,169,179
cells, 254 truncating, 191

compositesolids,252 twist vectors, 173,180


continuity,
252 unit normal, 182
curves and surfaces in, 253 History, 6
generalizednotation scheme.257 Homogeneous coordinates, 108,439,
geometric form, 241 441
higher-dimensional elements, 257 Homotopy, regular, 285

isoparametric curves in, 253 Horner's rule, 34


nonisoparametric curves in. 253 Hyperbola, 32,69
parameter spaceof, 252 Hyperpatch,237
I Linear transformations, 439
matrix. 432
411
Logicalcompleteness.
Identity
Logical model, 382
Implicitization of parametric form,
Loops and cusps in curves, 53
22,144
Innerproduct,422
Inorder traversal, 315 \316\234

Instances, 260-261
Magnets, 376,391
Interobject dependencies, 379 419
Magni tude, vector,
Interpolation,7,12 Matrices:
320
Intersection,
Intrinsic of curves, 19
addition,433
equation
313
Invariant property, 439 adjacency,

antisymmetric matrix, 432


Inversematrix, 435

solution, 37 application to geometric modeling.


Inverse-point
12
Inversion, 459
Isome tries,440
Bezier basis transformation, 84
160
Bezier curve, 84
Isoparametric curves,
B-Spline basis transformation, 124
B-Spline curve, 124
J characteristicequation, 435

cofactor, 437
Joins between surfaces,376 column matrix, 431
Jordan,C, 291 conformable, 433
Jordan curve theorem, 286
connectivity, 312

determinants, 436
\320\232 diagonal matrix, 432
eigenvalues,436
Kinematic analysis, 4 436
eigenvectors,
Klein bottle, 300 Hermite basis transformation,^
Knot, 291 identity matrix, 432
Knot group, 293 inversion of, 435
Knot spacing, 115,117 Kronecker delta,432
Knot values, 114,291 matrix algebra, 48
Knot vector, 114
multiplication of, 433
Kronccker delta, 422,432 null matrix, 432,434
order of, 431
L partitioned, 434
postmultiply, 433
Leaf node,3L5 premultiply, 433
Length, vector, 419 properties, summary of, 436
Letcher, J. S.,v,xi, 10.373 rank of, 421

Line, vector equation of, 425 row matrix, 431


Index 517
\342\226\240

scalar matrix, 432 Model structure, relational, 378,382


scalar multiplication, 433 Modularity in relational models, 412
scalar product as a matrix product. MultiSurf,v,378
435
skew symmetric matrix, 432 N
square matrix. 43L

symmetric matrix, 432 Natural equations of a curve. 20

transpose of, 432 Neighborhood model, 355


unit matrix, 432 Nets, curve:
vector product as a matrix product, conjugate,159
435 covariant,160

Matrix form: isoparametric, 160


Bezier curves, 84 orthogonal, 160
Beziersurface,217 parametric. 159
B-Spline curve, 124 Newton-Cotesquadratureformulas,
B-Spline surface, 228 14

Hermite curve, 47 Newton-Raphson method for finding


Hermitesurface,170 roots. 13
Tricubic solid, 241 Node,315
Merging algorithm, 364 Node, leaf, 315

Meriwether, H. D.,xi,7,176 Nonlinear transformations, 440


Mobius
strip, 299 Nonorientable surface, 298
Model evaluation, recursive, 383,386 Norm, 419
Model(s) and modeling: Normals,surface,182,
318,341
Boolean, Notation and conventions, 16
boundary representation (b-rep), Numerical analysis, 13
281,356 NURBS curve:
CSG, 3,281,348 circle.141
evaluation, 383,386 conic
representation, 139
finite element, 4,405 conic shape factor, 139
graph-based, 310 equation of, 139

logical, 41 \316\257 shape modification, 140


neighborhood, 355 weights, 139
parametric, 377,404 of,157
NURBS form, deficiencies
procedural, 341,351 NURBS surface(s),235
relational geometry,373
solid,4 \320\236
space-partitioning, 367

subtractive,6 Object, 376,378


unevaluated, 341 Object evaluation, 384
wireframe, 8,318 Octrees, 369
Model space,28 Op timiza tion, design, 407
Orientable,298 Polygons:
Orientation, 298 control, 82,90
Orientation-preserving,298 star, 282
Orientation-reversing, 298 Polyhedron:
Orthogonal net of curves, 159 convex,293
Outline surface,268 nOnsimple,293,295
regular, 293

simple, 293
\316\241
Polynomial interpolation, 13
Parabola, 68 Position-directioncurve,268
Parameterization, default, 392 Position vector. 417
Parameterization, effects of, 37 Postorder traversal, 316
Parameterization, natural, 392 Power basis,for curves, 40
Parameterized shapes,260,377,404 Preorder traversal, 316
parameter space,28,153 Primitives, 261,319
Parameter transformations, 54 Proceduralmodel,341,351
Parametric continuity, 77 Profile curve, 271
Parametric cubic curve, 39 Projective plane, 108,300
Parametric derivatives, computation
of, 27
Parametric of Q
equations, advantages
in modeling, 23,29 Quadrature:
Parametric modeling, 377,4()4 Gaussianquadrature,16
Parametric variable,normalizing Newton-Cotes
quadrature
domain of, 25 14
formulas,

Parity, transition, 301 Quadric surface(s):


Partition of unity, 90 classification of,148
Patch, 149 equation of, 144-145

Path, self-intersecting, 282 surface of revolution, 149


Path,simp]e,282 Quadtrees, 369
PD curve, 268 Quaternions, 456

Perspective transformation,111
Piecewise flat surface, 293 R
Piecewisepolynomials, 13

Plane, 203,427 Radius vector, 417


Point(s): Rational forms;
classification, 165,332 Bezier curves,108
forward difference,36 Bezier surface, 225

importanceof in modeling, 24 homogeneous coordinates, 108


inverse-point solution, 34 in variance under perspective
on curves,34 transformation, 111

on surfaces, 158 polynomial, 108


Index 519
\342\226\240

projective space, |05 logical completeness.411


weights,110,139 magnets, 376,391

Recursive model evaluation,386 model evaluation, 383,386


Recursive subdivision, 102 model structure, relational,378,382
Reflection, 457,470 modularity, 412

Regular polyhedra, 293 MultiSurf,v,378


323
Regularizedset operators, object evaluation, 384
Relational entities, 376,378 objects, 376,378
Relational geometric synthesis parameterization, default, 392

(RGS),318,373 parameterization, natural, 392


Relational geometry(RG): parametric modeling. 377,404
ancestors,382 planes,400
animation,408 points, three-dimensional, 389
beads, 376,390 program structure, 384
boundary representation. 414 relational entities,379,388
class evaluators,384 rings,390
CNC machining,411 snakes,376,394
compound plate layout, 408 398
solids,
constructive dependency, 375 surfaces, 395

contours,399 synthesis, model, 374


curves,392 trimmed surface, 414
dependency,constructive,375 Relationalmodel structure, 378,382
382
descendants, Rendering, 4
design optimization, 407 Reparameterization, 29,54,100.186
developable surface, 408 Representation, 3
digraph, 382 Requicha,A.A.G.,10
directed graph, 375,382 Revolution, surface of, 152
discretization, surface and volume, Riesenfeld,R.F.,l()
405 Rigid-body transformations, 439
discretization,topological Rings,390
invariant, 405 Root node, 315

durable properties, 375 Roots, finding polynomial:


embedded geometry, 376 New ton-Rap hson method,13
entities,376,378 Newton's method, 13

entity classes and subclasses, 379 sliding tangent method. 13


finite element model and analysis, Ross,D.T-,6
40.5 Rotation number, 282

frames, 401 Rotational sweep,265,271


graphs, 400 Rotations;
history, 10 about an arbitrary axis,453
joins between surfaces, 376 about an arbitrary point. 446
interobject dependencies, 379 about the origin,444
Rotations (Continued): Hermite basis transformation
coordinate system, 447,449 matrix, 244
curves and surfaces,446 hyperpatch.
equivalent about principal axes, 451 instances, 260-261
Euler angle(s),450 isoparametric surfaces,238
in the plane, 444,468 matrix form, 241,244
in space about principal axes,447 parameterized, 260
quaternions, 456 parameter space of, 252
successive, 445, 448 parametriccell, 254

284
Rubber sheet deformation, parametric solid, 237
Ruled surface, 207 sweeps, 264
tangent vectors,250
tricubic Hermite solid, 239,240
S
trimmed boundaries, 256
SAGE system, 6 twist vectors, 250
Scalar product,422 Space-partitioning model, 367
Scaling (dilation), 440,462 Spanning tree, 313
Schoenberg, \316\231.,\316\231\316\237 Spatial occupancy enumeration, 367
Set, closed, 321 Sphere, 151
Set, Open, 321 Sphere with handles, 289

Set-membershipclassification,332 Spline interpolation,l96,l99


Settheory,3,3l9 Stanton, E. L., \316\240
Shear,440,462,466 Star polygons, 282
Signature of quadra tic form, 147 Subdividing:
Simple-closed-path theorem,282 Bezier curves, 97
Simplepolyhedra,293 equal segments,58
Sketchpad syslem, 6 geometric construction,104

Snakes, 376,394 Hermite bicubic patch, 191


Solid mo deling,2,4,10,238 Hermite curves,54
Solids: quick subdivision, 59

algebraic form, 241 recursive, 102


boundary elements, 238,242 reparameterization,54,1(H)
bounding faces,239 Subgraph, 313
composite 252
solids, Surface(s):
continuity, 252 B-Spline,156
controlled deformation, 275 Bezier, 156

curves in, 253 blend, 213,215


embedded geometry,253 composite, 192
extrusion,265 conjugate nets on,159
generalized notation, 257 curve nets on, 159,181
geometric form, 241 curves embedded on, 161
group technology, 263 cylindrical. 146,206
Index . 521

degenerate patches,1.54 rotational,265,271


directed, 343 translationa 1,265,267

ellipsoid, L52 Synthesis, model, 374


embedded curves on, 161
explicitequation of, 144
\316\244
fitting, 12
Hermite, 156 Tangent vector(s):
hyperbolic paraboloid,208 affect on curve shape, 50-53
implicit equation of, 144 Bezier curves, 89

intuitive notion of, 143 cusps, 53


inverse-point solution, 158 Hermite curves, 50
irregular boundaries, 161 length, 50
isoparametric curves on, 160 loops,53
298
nonorientable, magnitude, 50

normal vector, 149,182 multiple of chord length, 53


NURBS, 235 parameterization,dependenceon,
orthogonal nets on, 159 50
parametric equations of, 149 Tensor(s):
parametric nets on, 159,174 application of, to geometric

patch. 149,155 modeling,3

piecewise flat, 293 Einstein summation convention,


plane, 203,427 40
point classification, 165 scalar product in tensor notation,
point evaluation,158 422
points
on a surface, 158 tensor product surface, 143,157,
quadric, 145 227
rational B<izier,225 Tensorproductsurface,169,217,227
of
rcparametcrization a
patch, 186 Three-point interpolation, 60
ruled, 207 Topology:
sphere, 151 angle excess, 287
surfaceof revolution,parametric, 296,297
atlas,topological,
152 closed path, 282

tangent vectors, 149 connectivity, 312


tensor product, 143,157 connectivity number, 296
trimmed patch, 164 curvature, 288,301
twist vectors, 149,157 curvature density, 288

Sutherland, I., 6 deformations, 284


Sweep shapes: discretizations, invariant, 405
extruded,265 286
disk,topological,
general, 265,267 Euler characteristic, 305

position-direetion (PD) curve, 268 Euler operators, 306


profile curve, 271 Euler-ibincare formula, 295
Topology (Continued): dilation, anisotropic. 440,464,471
Euler's formula, 294 dilation, isotropic,440,462
Gauss-Bonnettheorem,306 Eulcr angles, 450
handles, 289 geometric,439
homotopy, regular, 285 gliderotation, 470

in modeling, 3 homogeneous coordinates, 439,


invariant properties, 284 441
isotropy, ambient.285 invariant property, 439
Jordan curve theorem, 286 inversion,459
Klein bottle, 300 isometries, 440
knots, 291 linear, 439
Mobiusstrip.299 multiple sequential, 467
Orientable, 298 nonlinear,440
Orientation, 298 projections, 440

Orientation-preserving, 298 reflection, 457,470


Orientation-reversing. 298 rotation (see also Rotations),444,
parity, transition, 301 468

piecewise flat surfaces, 293 scaling (dilation), 440,462


of Euler's
Poincare's generalization shear, 440.462,466
formula, 295 sweeps,265
polyhedron, 293 topological, 440

polyhedron, nonsimple, 293,295 translation, 441,468


projectiveplane.300 Transition parity, 301
regularpolyhedra.293 Translation, 441,468
rotation number, 282 Translational sweep, 265,267
rubber sheet deformation of the Transpose of a matrix, 432
plane,284 Traversals,tree,316
self-intersecting paths, 282 Tree,313
simple paths, 282 Tree, binary, 316

simple polyhedra, 293 Tree, spanning, 313


sphere,289 Tricubic Hermite solid,240
structure, topological, 363 Trimmed patch, 164
surfaces, closed curved, 305 Triple scalar product, 424
surfaces,nonorientable,298 Triplevector product, 425

torus, 289 Truncating:


Torsion, 20 Bezier curves, 97
Torus, 289 control point transformations, 97

Transformations, geometric: cubic Bezier curves, 97


affine transformations, 440 Hermiie bicubicpatch, 191
Cartesian and homogeneous Hermite curve, 54

coordinates, 441 repa rameterization, 54


coordinate system rotation, 447. 449 shape invariance, 54
ditation (scaling),440,462 Twist vector, 173, ISO
Index 523
\342\226\240

\320\270 length, 419


line, equation of, 425
319,321
magnitude,419
Union,
UNISURF system, 81 419
norm,
Unii vector,420
plane, equation of, 427
plane, normal form, 428

position vector, 417


V
projection, 425
Vecior product, 423 properties of, summary, 429

Vector(s): radius vector, 417


addition, 421 right-hand rule, 423
applicationto geometricmodeling, scalar product, 422
3.11 tensor form, 418,422,424
area of a triangle, 424 triple scalarproduct,424
basis, 42| triple vector product, 425
basisvectors.417,421 unit vector, 420
direction cosines, 419 vector product, 423
direction numbers, 419 Venn diagram, 320
Einstein summation convention, Voelker,H.B.,10
419
equations, solution of, 429 W
free vectors. 4L7
inner product,422 Weights, 110, 139
Kronecker delta, 422 Wireframe model, 8,318

You might also like