This action might not be possible to undo. Are you sure you want to continue?

Welcome to Scribd! Start your free trial and access books, documents and more.Find out more

**Curves and Surfaces In Geometric Modeling: Theory And Algorithms
**

Jean Gallier Department of Computer and Information Science University of Pennsylvania Philadelphia, PA 19104, USA e-mail: jean@cis.upenn.edu c Jean Gallier Please, do not reproduce without permission of the author March 9, 2011

ii

iii

To my new daughter Mia, my wife Anne, my son Philippe, and my daughter Sylvie.

iv

Contents

1 Introduction 1.1 Geometric Methods in Engineering . . . . . . . . . . . . . . . . . . . . . . . 1.2 Examples of Problems Using Geometric Modeling . . . . . . . . . . . . . . . 7 7 8

**Part I Basics of Aﬃne Geometry
**

2 Basics of Aﬃne Geometry 2.1 Aﬃne Spaces . . . . . . . . . . . . . . 2.2 Examples of Aﬃne Spaces . . . . . . . 2.3 Chasles’ Identity . . . . . . . . . . . . 2.4 Aﬃne Combinations, Barycenters . . . 2.5 Aﬃne Subspaces . . . . . . . . . . . . 2.6 Aﬃne Independence and Aﬃne Frames 2.7 Aﬃne Maps . . . . . . . . . . . . . . . 2.8 Aﬃne Groups . . . . . . . . . . . . . . 2.9 Aﬃne Hyperplanes . . . . . . . . . . . 2.10 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

13 13 20 22 22 27 32 37 44 46 48

**Part II Polynomial Curves and Spline Curves
**

3 Introduction to Polynomial Curves 3.1 Why Parameterized Polynomial Curves? . . . . . . 3.2 Polynomial Curves of degree 1 and 2 . . . . . . . . 3.3 First Encounter with Polar Forms (Blossoming) . . 3.4 First Encounter with the de Casteljau Algorithm . 3.5 Polynomial Curves of Degree 3 . . . . . . . . . . . . 3.6 Classiﬁcation of the Polynomial Cubics . . . . . . . 3.7 Second Encounter with Polar Forms (Blossoming) . 3.8 Second Encounter with the de Casteljau Algorithm 3.9 Examples of Cubics Deﬁned by Control Points . . . 3.10 Problems . . . . . . . . . . . . . . . . . . . . . . . . v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

63 63 74 77 81 86 93 98 101 106 116

vi 4 Multiaﬃne Maps and Polar Forms 4.1 Multiaﬃne Maps . . . . . . . . . . . . . . . . . . . . 4.2 Aﬃne Polynomials and Polar Forms . . . . . . . . . . 4.3 Polynomial Curves and Control Points . . . . . . . . 4.4 Uniqueness of the Polar Form of an Aﬃne Polynomial 4.5 Polarizing Polynomials in One or Several Variables . 4.6 Problems . . . . . . . . . . . . . . . . . . . . . . . . .

CONTENTS 119 119 125 131 133 134 139 143 143 156 169 174 176 182 187 187 196 209 214 230 233 237 245 252

. . . . . . . . . Map . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

5 Polynomial Curves as B´zier Curves e 5.1 The de Casteljau Algorithm . . . . . . . . . . . . . . . 5.2 Subdivision Algorithms for Polynomial Curves . . . . . 5.3 The Progressive Version of the de Casteljau Algorithm 5.4 Derivatives of Polynomial Curves . . . . . . . . . . . . 5.5 Joining Aﬃne Polynomial Functions . . . . . . . . . . . 5.6 Problems . . . . . . . . . . . . . . . . . . . . . . . . . .

6 B-Spline Curves 6.1 Introduction: Knot Sequences, de Boor Control Points . 6.2 Inﬁnite Knot Sequences, Open B-Spline Curves . . . . . 6.3 Finite Knot Sequences, Finite B-Spline Curves . . . . . . 6.4 Cyclic Knot Sequences, Closed (Cyclic) B-Spline Curves 6.5 The de Boor Algorithm . . . . . . . . . . . . . . . . . . . 6.6 The de Boor Algorithm and Knot Insertion . . . . . . . . 6.7 Polar forms of B-Splines . . . . . . . . . . . . . . . . . . 6.8 Cubic Spline Interpolation . . . . . . . . . . . . . . . . . 6.9 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . .

**Part III Polynomial Surfaces and Spline Surfaces
**

7 Polynomial Surfaces 7.1 Polarizing Polynomial Surfaces . . . . . . . . . . . . . . . . 7.2 Bipolynomial Surfaces in Polar Form . . . . . . . . . . . . 7.3 The de Casteljau Algorithm; Rectangular Surface Patches 7.4 Total Degree Surfaces in Polar Form . . . . . . . . . . . . 7.5 The de Casteljau Algorithm for Triangular Surface Patches 7.6 Directional Derivatives of Polynomial Surfaces . . . . . . . 7.7 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

259

261 261 270 275 279 282 285 290 295 295 323 333

8 Subdivision Algorithms for Polynomial Surfaces 8.1 Subdivision Algorithms for Triangular Patches . . . . . . . . . . . . . . . . . 8.2 Subdivision Algorithms for Rectangular Patches . . . . . . . . . . . . . . . . 8.3 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CONTENTS 9 Polynomial Spline Surfaces and Subdivision 9.1 Joining Polynomial Surfaces . . . . . . . . . 9.2 Spline Surfaces with Triangular Patches . . . 9.3 Spline Surfaces with Rectangular Patches . . 9.4 Subdivision Surfaces . . . . . . . . . . . . . 9.5 Problems . . . . . . . . . . . . . . . . . . . . Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vii 337 337 343 349 352 368 371 371 379 381 385 388 396 397 397 404 407 409 412 419

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

10 Embedding an Aﬃne Space in a Vector Space 10.1 The “Hat Construction”, or Homogenizing . . . 10.2 Aﬃne Frames of E and Bases of E . . . . . . . 10.3 Extending Aﬃne Maps to Linear Maps . . . . . 10.4 From Multiaﬃne Maps to Multilinear Maps . . 10.5 Diﬀerentiating Aﬃne Polynomial Functions . . . 10.6 Problems . . . . . . . . . . . . . . . . . . . . . .

11 Tensor Products and Symmetric Tensor Products 11.1 Tensor Products . . . . . . . . . . . . . . . . . . . . 11.2 Symmetric Tensor Products . . . . . . . . . . . . . 11.3 Aﬃne Symmetric Tensor Products . . . . . . . . . 11.4 Properties of Symmetric Tensor Products . . . . . . 11.5 Polar Forms Revisited . . . . . . . . . . . . . . . . 11.6 Problems . . . . . . . . . . . . . . . . . . . . . . . .

Part IV Appendices

A Linear Algebra A.1 Vector Spaces . . . . . . . . . . A.2 Linear Maps . . . . . . . . . . . A.3 Quotient Spaces . . . . . . . . . A.4 Direct Sums . . . . . . . . . . . A.5 Hyperplanes and Linear Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

423

425 425 432 436 437 445 447 447 453 456 460 467 467 471 472

B Complements of Aﬃne Geometry B.1 Aﬃne and Multiaﬃne Maps . . . . . . . . . . B.2 Homogenizing Multiaﬃne Maps . . . . . . . . B.3 Intersection and Direct Sums of Aﬃne Spaces B.4 Osculating Flats Revisited . . . . . . . . . . .

C Topology C.1 Metric Spaces and Normed Vector Spaces . . . . . . . . . . . . . . . . . . . . C.2 Continuous Functions, Limits . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Normed Aﬃne Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

viii

CONTENTS

D Diﬀerential Calculus 475 D.1 Directional Derivatives, Total Derivatives . . . . . . . . . . . . . . . . . . . . 475 D.2 Jacobian Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

• Part I provides an introduction to aﬃne geometry. or else rather specialized and application-oriented. Such a point of view if of course very relevant to computer science. books dealing with the relevant geometric material are either too theoretical. we provide an introduction to aﬃne geometry. Readers 1 . geometric modeling. In this respect. we are more interested in dealing with curves and surfaces from an algorithmic point of view . triangulations). Although we will touch some of the topics covered in computational geometry (for example. computer vision. we are writing about Geometric Modeling Methods in Engineering We refrained from using the expression “computational geometry” because it has a well established meaning which does not correspond to what we have in mind. This material provides the foundations for the algorithmic treatment of polynomial curves and surfaces. This book consists of four parts. mechanical engineers). We present a coherent view of geometric methods applicable to many engineering problems at a level that can be understood by a senior undergraduate with a good math background. mathematicians. just to mention some key areas. we are ﬂirting with the intuitionist’s ideal of doing mathematics from a “constructive” point of view. this book should be of interest to a wide audience including computer scientists (both students and professionals). and engineers interested in geometric methods (for example. We present some of the main tools used in computer aided geometric design (CAGD). but in our opinion. In particular. but our goal is not to write another text on CAGD. This is also useful to establish the notation and terminology.Preface This book is primarily an introduction to geometric concepts and tools needed for solving problems of a geometric nature with a computer. and motion planning. This ensures that readers are on ﬁrm grounds to proceed with the rest of the book. which is a main theme of this book. in particular the study of curves and surfaces. Our main goal is to provide an introduction to the mathematical concepts needed in tackling problems arising notably in computer graphics. Thus. This book is an attempt to ﬁll this gap. Many problems in the above areas require some geometric knowledge. In brief.

just to mention some key areas. Hilbert and Cohn-Vossen [42]. certain technical proofs that were omitted earlier. we are far from giving a comprehensive treatments of these topics. Dieudonn´ [25]. Luckily.2 CONTENTS proﬁcient in geometry may omit this section. Pedoe [59]. 6]. Pedoe [59]. we highly recommend Berger [5. Several sections of this book are inspired by the treatment in one of several of the above texts. • Part II deals with an algorithmic treatment of polynomial curves (B´zier curves) and e spline curves. we only provide a cursory coverage of CAGD methods. These readers are advised do some extra reading in order to assimilate some basic knowledge of geometry. • Part III deals with an algorithmic treatment of polynomial surfaces (B´zier rectangular e or triangular surfaces). 86]. Samuel [69]. 6]. This is in complete agreement with de Casteljau’s original spirit. Similarly. This part has been included to make the material of parts I–III self-contained. but as Ramshaw. computer vision. Sidler [76]. from the short movie Geri’s game. “Blossoming: A connect–the–dots approach to splines” [65]. we highly recommend Berger [5. and differential calculus. Fiorot and Jeannin [35. On the other hand. As it turns out. We also include a section on subdivision surfaces. including Bartels. Farin [32. Beatty. a tool extensively used in CAGD. we are more explicit . We have happily and irrevocably adopted the view that the most transparent manner for presenting much of the theory of polynomial curves and surfaces is to stress the multilinear nature (really multiaﬃne) of these curves and surfaces. one of the most spectacular application of these concepts is the treatment of curves and surfaces in terms of control points. For such a treatment. and Piegl and Tiller [62]. Samuel [69]. or use it by need . Our advice is to use it by need ! Our goal is not to write a text on the many specialized and practical CAGD methods. Riesler [68]. Hoschek and Lasser [45]. radically changed our perspective on polynomial curves and surfaces. as attested by several papers in SIGGRAPH’98. an exciting and active area of research in geometric modeling and animation. and motion planning. and Tisseron [83]. Our main goal is to provide an introduction to the concepts needed in tackling problems arising in computer graphics. and spline surfaces. Lyle Ramshaw’s remarkably elegant and inspirational DEC-SRC Report. Berger and Gostiaux [7]. Tisseron [83]. • Part IV consists of appendices consisting of basics of linear algebra. 31]. readers totally unfamiliar with this material will probably have a hard time with the rest of the book. there are excellent texts on CAGD. Boehm and Prautzsch [11]. and Barsky [4]. and we are happy to thank the authors for providing such inspiration. although we cover aﬃne geometry in some detail. This is why many pages are devoted to an algorithmic treatment of curves and surfaces. especially the paper by DeRose et al [24] on the animated character Geri. and Veblen e and Young [85. For example. complements of aﬃne geometry. However. a great classic. analysis. do Carmo [26]. geometric modeling. 36].

Again. readers are referred to the excellent texts by Gray [39]. background material or rather technical proofs are relegated to appendices. Loop). and solid modeling. We will see how this can be done using polynomial curves or surfaces (also called B´zier e curves or surfaces). and Metaxas [53] for physics-based deformable models. Catmull-Clark. There are other interesting applications of geometry to computer vision. For further information on these topics. The tools and techniques developed for solving the approximation problem will be very useful for solving the other two problems. computer graphics. In fact. New Results This books provides an introduction to aﬃne geometry. The material presented in this book is related to the classical diﬀerential geometry of curves and surfaces. and Ciarlet [19]. Strang [81]. it is very helpful to be aware of eﬃcient methods for numerical matrix analysis. There is also no reasonably thorough textbook presentation of the main surface subdivision schemes (DooSabin. much of the algorithmic theory of polynomial curves and surfaces is captured by the three words: Polarize. • Interpolating a set of points. we will see how this can be done using spline curves or spline surfaces. Thus.CONTENTS 3 in our use of multilinear tools. . As the reader will discover. spline curves or surfaces. Generally. Hoﬀman [43] for solid modeling. by a curve or a surface. homogenize. and a technical discussion of convergence and smoothness. New Treatment. • Drawing a curve or a surface. Some great references are Koenderink [46] and Faugeras [33] for computer vision. and to numerical methods in matrix analysis. it is often possible to reduce problems involving certain splines to solving systems of linear equations. Novelties As far as we know. tensorize! We will be dealing primarily with the following kinds of problems: • Approximating a shape (curve or surface). Strang’s beautiful book on applied mathematics is also highly recommended as a general reference [80]. there is no fully developed modern exposition integrating the basic concepts of aﬃne geometry as well as a presentation of curves and surfaces from the algorithmic point of view in terms of control points (in the polynomial case).

but we always keep the algorithmic nature of the mathematical objects under consideration in the forefront. and we propose many challenging programming projects. Open Problems . this is the ﬁrst textbook presentation of three popular methods due to Doo and Sabin [27. but in the context of wavelets and multiresolution representation. A clean and elegant presentation of control points is obtained by using a construction for embedding an aﬃne space into a vector space (the so-called “hat construction”. and Salesin [79]. we are primarily interested in the repesentation and the implementation of concepts and tools used to solve geometric problems. Subdivision surfaces are also brieﬂy covered in Stollnitz. The approach (sometimes called blossoming) consists in multilinearizing everything in sight (getting polar forms). They provide an attractive alternative to spline surfaces in modeling applications where the topology of surfaces is rather complex. we try to be rigorous. 29. Subdivision surfaces form an active and promising area of research. Many problems and programming projects are proposed (over 200). originating in Berger [5]). some are (very) diﬃcult. we provide Mathematica code for most of the geometric algorithms presented in this book. etc. We even include an optional chapter (chapter 11) covering tensors and symmetric tensors to provide an in-depth understanding of the foundations of blossoming and a more conceptual view of the computational material on curves and surfaces. and Charles Loop [50]. DeRose. which yields both geometric and computational insights into the subtle interaction of knots and de Boor control points. We e present many algorithms for subdividing and drawing curves and surfaces. A a general rule. Catmull and Clark [17]. not just triangles or rectangles. Subdivision surfaces are the topic of Chapter 9 (section 9. Thus. surfaces. We discuss Loop’s convergence proof in some detail. we give a crash course on discrete Fourier transforms and (circular) discrete convolutions. We also urge the reader to write his own algorithms. which leads very naturally to a presentation of polynomial curves and surfaces in terms of control points (B´zier curves and surfaces). Some are routine. triangulations.4 CONTENTS We give an in-depth presentation of polynomial curves and surfaces from an algorithmic point of view. The continuity conditions for spline curves and spline surfaces are expressed in terms of polar forms. all implemented in Mathematica. 28]. As a matter of fact. which implies that we give precise deﬁnitions and prove almost all of the results in this book. Many algorithms and their implementation Although one of our main concerns is to be mathematically rigorous. and for this. A glimpse at subdivision surfaces is given in a new Section added to Farin’s Fourth edition [32]. and where the initial control polyhedron consists of various kinds of faces. These algorithms were used to prepare most of the illustrations of this book. we devote a great deal of eﬀorts to the development and implemention of algorithms to manipulate curves.4). As far as we know.

Deepak Tolani. Rich Pito. Bond-Jay Ting. and wavelets. Ioannis Kakadiaris. methods for rendering implicit curves and surfaces. Jeﬀ Nimeroﬀ. but whenever possible. for sharing some of their geometric secrets with me. Also thanks to Norm Badler for triggering my interest in geometric modeling. we have omitted rational curves and rational surfaces. Herman Gluck. Hany Farid. we describe very clearly the problem of ﬁnding an eﬃcient way to compute control points for C k -continuous triangular surface splines. and most of all Raj Iyer. We are also writing a text covering these topics rather extensively (and more). we state some open problems. and Salesin [79]. a remarkably clear presentation of wavelets is given in Stollnitz. What’s not covered in this book Since this book is already quite long. many thanks to Eugenio Calabi for teaching me what I know about diﬀerential geometry (and much more!). We also have omitted solid modeling techniques. A good reference on these topics is [31]. Dimitris Metaxas. For example. We also discuss some of the problems with the convergence and smoothness of subdivision surface methods. I wish to thank some students and colleagues for their comments. and David Harbater. and a more mathematical presentation in Strang [82]. Gerald Farin. DeRose. including Doug DeCarlo. Ken Shoemake. Chris Croke. who screened half of the manuscript with a ﬁne tooth comb. and projective geometry. Edith Haber. Acknowledgement This book grew out of lectures notes that I wrote as I have been teaching CIS510. Charles Erignac. and to Marcel Berger. and the ﬁnite element method is the subject of so many books that we will not even attempt to mention any references. Steve Frye. Andy Hicks. for the past four years. Hartmut Liefke. David Jelinek. Will Dickinson. The ﬁrst two topics are nicely covered in Hoﬀman [43]. . Dianna Xu. Introduction to Geometric Methods in Computer Science. Ron Donagi. Finally.CONTENTS 5 Not only do we present standard material (although sometimes from a fresh point of view). thus taking the reader to the cutting edge of the ﬁeld. the ﬁnite elements method. Jaydev Desai.

6 CONTENTS .

the type of geometry used is very elegant. starting in the early sixties. except for the initiated. automobile and plane manufacturers realized that it was possible to design cars and planes using computer-aided methods. the amount of geometry decreases to basically disappear in the seventies. Beginning with the ﬁfties. Basically. computer graphics. ship building. mechanics. the intuitions behind these fancy concepts almost always come from shapes that can somehow be visualized. The consequence of the strive for more rigor and the injection of more algebra in geometry is that mathematicians of the beginning of the twentieth century began suppressing geometric intuitions from their proofs. computer vision. Geometry lost some of its charm and became a rather inpenetrable discipline.Chapter 1 Introduction 1. It is interesting to observe that most College textbooks of mathematics included a fair amount of geometry up to the fourties. it was discovered at the end of the nineteenth century that there was a danger in relying too much on visual intuition. balistics. Paradoxically. among others. it is a branch of aﬃne geometry. automobile and aircraft manufacturing. and it is very useful from the point of view of applications. Although not very advanced. After being neglected for decades. and motion planning. B´zier. architecture. civil and mechanical engineering.1 Geometric Methods in Engineering Geometry. stimulated by computer science. in order to put it on ﬁrmer grounds and to obtain more rigorous proofs. e used geometric methods. just to mention some key areas. and Ferguson. and that this could lead to wrong results or fallacious arguments. what a glorious subject! For centuries. and in this century. On the other hand. geometry seems to be making a come-back as a fundamental tool used in manufacturing. but even when the objects are higher-dimensional and very abstract. These methods pioneered by de Casteljau. geodesy. with the advent of faster computers. 7 . What happened then is that mathematicians started using more algebra and analysis in geometry. geometry has played a crucial role in the development of many scientiﬁc and engineering disciplines such as astronomy. there seems to be an interesting turn of events. What makes geometry a unique and particularly exciting branch of mathematics is that it is primarily visual . One might say that this is only true of geometry up to the end of the nineteenth century. Thus.

limbs. INTRODUCTION We are convinced that geometry will play an important role in computer science and engineering in the years to come. we focus on polynomial curves deﬁned in terms of control points. we provide some appendices where this background material is presented. we present the underlying geometric concepts in some detail. since they are the most eﬃcient class of curves and surfaces from the point of view of design and representation. 1. surfaces. organs. there are plenty of opportunities for applying these methods to real-world problems. This book represents an attempt at presenting a coherent view of geometric methods used to tackle problems of a geometric nature with a computer.2 Examples of Problems Using Geometric Modeling The following is a nonexhaustive listing of several diﬀerent areas in which geometric methods (using curves and surfaces) play a crucial role. etc) will be required. We believe that this can be a great way of learning about curves and surfaces. and volumes. but our point of view is algorithmic. animation techniques. since this material relies on some algebra and analysis (linear algebra.8 CHAPTER 1. etc. etc). aﬃne geometry. The demand for technology using 3D graphics. We concentrate on methods for discretizing curves and surfaces in order to store them and display them eﬃciently. directional derivatives. In the next section. is increasing fast. in order to make the book entirely self-contained. virtual oceans • Shape reconstruction • Weather analysis . in order to gain a deeper understanding of this theory of curves and surfaces. In turn. • Manufacturing • Medical imaging • Molecular modeling • Computational ﬂuid dynamics • Physical simulation in applied mechanics • Oceanography. We will need to understand better how to discretize geometric objects such as curves. while having fun. and it is clear that storing and processing complex images and complex geometric models of shapes (face. Thus. Furthermore. virtual reality. we list some problems arising in computer graphics and computer vision that can be tackled using the geometric tools and concepts presented in this book. in particular. However. Our main focus is on curves and surfaces.

. However.. . for all i. The next ﬁgure shows N + 1 = 8 data points. . Even then.. Problem: Given N + 1 data points x0 . . . such that F (ui ) = xi . . . . . . and a C 2 -continuous spline curve F passing through these points. xN (and d0 . the coeﬃcients αi . ﬁnd a C 2 -continuous curve F .) 9 A speciﬁc subproblem that often needs to be solved. = . As stated above. xN and a sequence of N + 1 reals u0 . etc). we can specify the control points d0 and dN . . eﬃciency is the dominant factor. the problem is no longer underdetermined if we specify some “end conditions”. . . γi are easily computed from the uj . dN ) by solving a system of linear equations of the form r0 d0 1 d 1 r1 α1 β1 γ1 d 2 r2 α2 β2 γ2 0 .2. . the problem is still underdetermined. Lagrange interpolants. What happens is that the interpolating B-spline curve is really determined by some sequence of points d−1 . . . . For simplicity. . EXAMPLES OF PROBLEMS USING GEOMETRIC MODELING • Computer graphics (rendering smooth curved shapes) • Computer animation • Data compression • Architecture • Art (sculpture. it can be shown that there is a unique B-spline curve solving the above problem (see section 6. 0 ≤ i ≤ N. the problem is actually underdetermined. Indeed. Then. for example in manufacturing problems or in medical imaging. dN −2 rN −2 0 αN −2 βN −2 γN −2 αN −1 βN −1 γN −1 dN −1 rN −1 rN dN 1 where r0 and rN may be chosen arbitrarily. . it turns out that d1 . . . d8 are also shown. . is to ﬁt a curve or a surface through a set of data points. βi . 0 ≤ i ≤ N − 1. In most cases. .8). . . . there are many different types of curves that solve the above problem (deﬁned by Fourier series. . dN +1 called de Boor control points (with d−1 = x0 and dN +1 = xN ). and ri = (ui+1 − ui−1 ) xi for 1 ≤ i ≤ N − 1 (see section 6. Instead of specifying the tangents at x0 and xN . In this case.1. let us discuss brieﬂy a curve ﬁtting problem. . Other points d−1 .8). 3D images. uN .. and we need to be more speciﬁc as to what kind of curve we would like to use. for a uniform sequence of reals ui . dN −1 can be computed from x0 . . . . . with ui < ui+1 for all i. for instance the tangents at x0 and xN . and it turns out that piecewise polynomial curves are usually the best choice.

this problem can be solved using B-splines. one may want to ﬁnd the contour of some organ. etc. x7 The previous example suggests that curves can be deﬁned in terms of control points. x4 . Again. etc). Many manufacturing problems involve ﬁtting a surface through some data points. x3 . INTRODUCTION d7 d6 x6 x4 d4 x5 d5 x0 = d−1 x7 = d8 Figure 1. but it is now time to review some basics of aﬃne geometry! . in a smooth manner.1: A C 2 interpolation spline curve passing through the points x0 . in medical imaging. x6 . one may want to have a person move from one location to another. In computer animation.10 d2 d1 x1 x3 d0 d3 x2 CHAPTER 1. x5 . ski boots. ship hulls. engine parts. passing through some intermediate locations. fuselage. x1 . Let us mention automobile design. One may do this by ﬁtting a Bspline curve through the data points. given some discrete data. plane design. say the heart. (wings. x2 . We could go on and on with many other examples. Indeed. For example. specifying curves and surfaces in terms of control points is one of the major techniques used in geometric design.

Part I Basics of Aﬃne Geometry 11 .

12 .

when there is really no reason to have a privileged origin. elasticity). Also. independently of any speciﬁc choice of a coordinate system. given an m × n matrix A and a vector b ∈ Rm . translations. it is possible to deal with points. Thus. Aﬃne spaces are the right framework for dealing with motions. One reason is that the point corresponding to the zero vector (0). trajectories.Chapter 2 Basics of Aﬃne Geometry 2. etc. As in physics. surfaces. and physical forces. and other parts of physics (for example. and these two groups are not isomorphic. one is also interested in geometric properties invariant under certain transformations. called the origin. a rigid motion is an aﬃne map. Aﬃne spaces provide a better framework for doing geometry. etc. curves and surfaces are usually considered to be sets of points with some special properties. One could model the space of points as a vector space. aﬃne geometry is crucial to a clean presentation of kinematics. among other things. the set U = {x ∈ Rn | Ax = b} of solutions of the system Ax = b is an aﬃne space. this is highly desirable to really understand what’s going on. are handled in an akward manner. After all. there are more aﬃne maps than linear maps. 13 . coordinate systems have to be chosen to ﬁnally carry out computations. projections. but this is not very satisfactory for a number of reasons. whereas the geometric properties of an aﬃne space are invariant under the group of bijective aﬃne maps. in an intrinsic manner. such as parallelism. but one should learn to resist the temptation to resort to coordinate systems until it is really necessary. But the deeper reason is that vector spaces and aﬃne spaces really have diﬀerent geometries. that is. Of course.1 Aﬃne Spaces Geometrically. but not a linear map in general. rotations. but not a vector space (linear space) in general. plays a special role. The geometric properties of a vector space are invariant under the group of bijective linear maps. dynamics.” Typically. for example. Roughly speaking. In particular. Another reason is that certain notions. curves. living in a space consisting of “points.

Curiously. and that the position of this point x is determined with respect to a “frame” in R3 by a vector. In the standard frame. but it is easy to infer that a frame is a pair (O. b2 . 0. and − = (0. 6]. which coincides with the point itself. b3 − a3 ). we deﬁne aﬃne combinations of points (barycenters). x3 ). b2 − a2 . −2 . Next. Corresponding to linear subspaces. addition being understood as addition in R3 . given any two points a = (a1 . x2 . there is a unique free vector denoted → − → − ab from a to b. the notion of a → → → frame is rarely deﬁned precisely. and Hilbert and Cohn-Vossen [42]. and it is biased towards the algorithmic geometry of curves and surfaces. Tisseron [83]. . given a point − → x = (x1 . Note that → − b = a + ab. we deﬁne aﬃne independence and aﬃne frames. we deﬁne aﬃne maps as maps preserving aﬃne combinations. e e 1 2 3 For example. a2 . a3 ) and b = (b1 . Snapper and Troyer [77]. the standard frame in R3 has origin O = (0. We investigate brieﬂy some simple aﬃne maps. (−1 . Berger [5. We also deﬁne convexity. one ﬁnds out that the particle is modeled as a point. We take advantage of the fact that almost every aﬃne concept is the counterpart of some concept in linear algebra. points and vectors are identiﬁed. − . the reader is referred to Pedoe [59]. Corresponding to linear maps. 1). − = (0. But wait a minute. the vector ab = (b1 − a1 . we characterize aﬃne subspaces in terms of certain vector spaces called their directions. such as Greenwood [40]. Then. corresponding to linear independence and bases. b3 ). 0). Certain technical proofs and some complementary material on aﬃne geometry are relegated to an appendix (see Chapter B). we introduce aﬃne subspaces as subsets closed under aﬃne combinations. The position of a point x is then deﬁned by → → → e1 e2 e3 the “unique vector” from O to x. Samuel [69]. Then. Suppose we have a particle moving in 3-space and that we want to describe the trajectory of this particle. the translations and the central dilatations. For more details. this deﬁnition seems to be deﬁning frames and the position of a point without deﬁning what a point is! Well. the position of x is the vector Ox = (x1 . x2 . Corresponding to linear combinations of vectors. If one looks up a good textbook on dynamics. 1. We show that every aﬃne map is completely deﬁned by the image of one point and a linear map. Our presentation of aﬃne geometry is far from being comprehensive.14 CHAPTER 2. BASICS OF AFFINE GEOMETRY Use coordinate systems only when needed! This chapter proceeds as follows. − )) e e e3 → → → − consisting of an origin O (which is a point) together with a basis of three vectors (− . 0. realizing that we are forced to restrict our attention to families of scalars adding up to 1. x3 ). This allows us to deﬁne a clean notion of parallelism. 0). If so. We begin by deﬁning aﬃne spaces. e ). let us identify points with elements of R3 . 0. stressing the physical interpretation of the deﬁnition in terms of points (particles) and vectors (forces). in the standard frame. 0) and the basis of three vectors − = (1.

λu2 + µv2 . e′3 ) and if the matrix P expressing the vectors ( e′1 . say Ω = (ω1 . it is important to deﬁne points and properties of points that are frame invariant. x3 ) is deﬁned by two position vectors: e e − → → → → Ox = (x .1. x2 − ω2 . e e e This is because − → − → − → − → Ox = OΩ + Ωx and OΩ = (ω1 . − − − → → → − − → → If we choose a diﬀerent basis ( e′1 . we e e2 e → → can deﬁne the linear combination λ− + µ− as the vector of coordinates u v (λu1 + µv1 . − )). ω3 ). −3 ). v2 . Inspired by physics. −3 )). x . v3 ) with respect to the basis (−1 . −′ → → → → e3 ) over the basis (−1 . − . − . ω2 . u3) and (v1 .2. (−1 . ω2 . ω3 ). for any two scalars λ. but such a treatment is not frame invariant. e′2 . It may be computationally convenient to deal with points using position vectors. This gives us evidence that points are not vectors. −2 . First. the point x = (x1 . a3 b3 c3 . e′2 . (− . − . x ) in the frame (O. An undesirable side-eﬀect of the present approach shows up if we attempt to deﬁne linear combinations of points. which has undesirable eﬀets. and e e e 1 2 3 1 2 3 − → → → → Ωx = (x1 − ω1 . let us review → → the notion of linear combination of vectors. u2 . → → → We note that in the second frame (Ω.1: Points and free vectors What if we pick a frame with a diﬀerent origin. λu3 + µv3 ). AFFINE SPACES b → − ab a O 15 Figure 2. but the same basis → → → − vectors (−1 . x3 − ω3 ) in the frame (Ω. −3 ) is e e e a1 b1 c1 P = a2 b2 c2 . −2 . −3 )). points and position vectors are no e e2 e longer identiﬁed. µ. (−1 . e3 )? This time. Given two vectors − and − of coordinates u v → → → (u1 . −2 . x2 .

(−1 . λu′3 + µv3 ) − − − → → → → → of λ− + µ− with respect to the basis ( e′1 . b2 . v2 . since → → → ′ ′ ′ ′ ′ ′ (a1 . e′2 . a3 ) and (b1 . λu′2 + µv2 . λa2 + µb2 . a3 − ω3 ) and (b′1 . b3 ) with respect to the frame (O. a2 − ω2 . ′ v3 v3 and and by linearity. b3 ) of with respect to the frame (Ω.16 CHAPTER 2. BASICS OF AFFINE GEOMETRY − → → → → which means that the columns of P are the coordinates of the e′j over the basis (−1 . u′ ) and (v ′ . ( e1 e2 e3 1 2 3 → → → (a1 . e . ω ). b3 − ω3 ). − . e e e3 since − → − → − → − → − → − → → → → → → → ′ ′ ′ u1 −1 + u2 −2 + u3−3 = u′1 e′1 + u′2 e′2 + u′3 e′3 and v1 −1 + v2 −2 + v3 −3 = v1 e′1 + v2 e′2 + v3 e′3 . − )) to e e e3 − → − . − )). a2 . b2 . λa′2 + µb′2 . −2 . − ). e′ ) by the matrix equations v 1 2 3 ′ u1 u1 u2 = P u′2 u′3 u3 From the above. ′ u3 v3 λu3 + µv3 λu′3 + µv3 Everything worked out because the change of basis does not involve a change of origin. if we consider the change of frame from the frame (O. given two points a and b of coordinates → → → the frame (Ω. a2 . a3 ) and (b1 . u2 . but the coordinates (λa′1 + µb′1 . (−1 . ( e1 e2 e3 (a′1 . −3 )) and of coordinates e e e − . b′2 . v ′ . ′ v3 v3 ′ v1 v1 ′ v2 = P −1 v2 . e′3 ) are given by u v ′ ′ u1 v1 λu1 + µv1 λu1 + µv1 ′ λu′2 + µv2 = λP −1 u2 + µP −1 v2 = P −1 λu2 + µv2 . u′ . b′3 ) = (b1 − ω1 . (−1 . −3 )) are e e2 e (λa1 + µb1 . − . − ) are given in terms of the coordinates (u′ . b2 − ω2 . − . where OΩ = (ω . −2 . → → → On the other hand. the coordinates ′ ′ ′ (λu′1 + µv1 . u3 ) and (v1 . λa′3 + µb′3 ) . ω . e e e e e e → → it is easy to see that the coordinates (u1. a′3 ) = (a1 − ω1 . −2 . − . a′2 . v ′ ) of − → → → → the basis ( e1 e2 e3 u 1 2 3 1 2 3 −′ −′ − → → → → and − with respect to the basis ( e . λa3 + µb3 ). v3 ) of − and − with respect to u v − . → → → the coordinates of λa + µb with respect to the frame (O. we get ′ u1 u1 u′2 = P −1 u2 u3 u′3 and ′ v1 v1 ′ v2 = P v2 . − )).

a3 ) and any vector − = (v1 . λa3 + µb3 − ω3 ). λa2 + µb2 − (λ + µ)ω2. it is natural that E is a vector space. A clean way to handle the problem of frame invariance and to deal with points in a more intrinsic manner is to make a clearer distinction between points and vectors. Since − → translations can be composed. − . The eﬀect − → of applying a force (free vector) u ∈ E to a point a ∈ E is a translation. We can v − is placed such that its origin coincides with a and that its tip coincides with → imagine that v b. but the notion of linear combination of points is frame dependent. − → a + 0 = a. there is a unique free vector ab such that → − b = a + ab. AFFINE SPACES → → → of λa + µb with respect to the frame (Ω. Furthermore. In order to salvage the notion of linear combination of points. we make explicit the important fact that the vector space R3 acts → on the set of points R3 : given any point a = (a1 . we can think of the − → elements of E as forces moving the points in E. λa3 + µb3 − (λ + µ)ω3 ) which are diﬀerent from (λa1 + µb1 − ω1 . a2 + v2 .2.1. → → → → (a + − ) + − = a + (− + − ). and the second copy corresponding to free vectors. v we obtain the point → a + − = (a1 + v1 . v3 ). b. This action + : R3 × R3 → R3 satisﬁes some crucial properties. v2 . a3 + v3 ). By this. the ﬁrst copy corresponding to points. Intuitively. u v u v → − and for any two points a. the action of the force u is to “move” every point a ∈ E to the point a + u ∈ E obtained by the translation corresponding to u viewed as a vector. v → which can be thought of as the result of translating a to b using the vector − . unless λ + µ = 1. . some restriction is needed: the scalar coeﬃcients must add up to 1. −3 )) are e e2 e (λa1 + µb1 − (λ + µ)ω1 . λa2 + µb2 − ω2 . 17 Thus. considered as physical particles. we mean − → that for every force u ∈ E . where E is a set of points (with no structure) and − → E is a vector space (of free vectors) acting on the set E. For example. where we forget the vector space structure. It turns out that the above properties. a2 . We duplicate R3 into two copies. although trivial in the case of R3 . we discovered a major diﬀerence between vectors and points: the notion of linear combination of vectors is basis independent. (−1 . where the vector space structure is important. are all that is needed to deﬁne the abstract notion of aﬃne space (or aﬃne structure). The basic idea is − → to consider two (distinct) sets E and E .

It is also assumed that all families of vectors and scalars are ﬁnite. we can choose to look at the points in E. since a(a + v) is the unique vector such that a+v = a+ a(a + v). E . Note that − → − → The dimension of the aﬃne space E. there is a unique u ∈ E such that a + u = b. + can be interpreted intuitively as saying − → that E and E are two diﬀerent ways of looking at the same object. for every a ∈ E. forgetting that every pair (a. . a vector space E (of translations. we also write → − b = a + ab (or even b = a + (b − a)). − → E . for every a ∈ E. Did you say “A ﬁne space”? − → Deﬁnition 2.18 CHAPTER 2. BASICS OF AFFINE GEOMETRY For simplicity. point that can be viewed as an origin − → in E. The formal deﬁnition of an aﬃne space is as follows. v ∈ E . − → This can be formalized by deﬁning two maps between E and E . (AF1) a + 0 = a. satisfying the following conditions. the null vector. b) of points deﬁnes a − → − → unique vector ab in E . or sometimes by b − a. − → (AF3) For any two points a. E . − → (AF2) (a + u) + v = a + (u + v). b = a + v is equivalent to ab = v. but wearing diﬀerent sets of glasses. the second set of glasses depending on the choice of an “origin” in E. or we can choose to look at the vectors u in E . − → The axioms deﬁning an aﬃne space E. Thus. + is the dimension dim( E ) of the vector space −− − − −→ a(a + v) = v −− − − −→ −− − − −→ − → for all a ∈ E and all v ∈ E . and every u. An aﬃne space is either the empty set. + consisting − → of a nonempty set E (of points). For simplicity. It is natural to think of all vectors as having the same origin. if we also pick any point a in E. → − Thus. or free vectors). and an − → action + : E × E → E. Indeed. Furthermore. or a triple E. The following diagram gives an intuitive picture of an aﬃne space. it is assumed that all vector spaces under consideration are deﬁned over the ﬁeld R of real numbers.1. it is denoted as dim(E). forgetting the points in E. E . The unique → − − → vector u ∈ E such that a + u = b is denoted by ab. b ∈ E. then we can recover all the points in E as the translated points a + u for all u ∈ E .1.

in view of (AF3). these compositions are the identity from E to E and the identity from E to E. However.2. points are points. The vector space E is called the vector space associated with E. + as (E. rather than reducing E to some isomorphic copy of Rn . E . we urge the reader to − → think of E as a physical set of points and of E as a set of forces acting on E. Nevertheless. Thus. consider the mapping from E to E: u → a + u. The composition of the second with the ﬁrst mapping is → − → − b → ab → a + ab. as soon as we commit to an origin a in E. − → − → where u ∈ E . we will often denote an aﬃne space E. we say that we consider E as the vector space obtained by taking a as the origin in E. an − → aﬃne space E.2: Intuitive picture of an aﬃne space − → For every a ∈ E. E . After all. where b ∈ E. yields u. and consider the mapping from E to E : → − b → ab. Thus. . E ). − → − → which. and the mappings are both bijections. in view of (AF3). we can view E as the vector space Ea . and not vectors! For − → − → notational simplicity. AFFINE SPACES E b=a+u u a c=a+w v w − → E 19 Figure 2. without making a commitment to a ﬁxed origin in E.1. yields b. or even as − → E. which. + is a way of deﬁning a vector space structure on a set of points E. The composition of the ﬁrst mapping with the second is −− − − −→ u → a + u → a(a + u). → − − → When we identify E to E via the mapping b → ab. and we denote it as Ea .

. Thus. and − → letting + be addition in the vector space E . the notation b − a for the unique vector u such that b = a + u. 2. In this respect. = (a1 + u1 .2 Examples of Aﬃne Spaces Let us now give an example of an aﬃne space which is not given as a vector space (at least. . We will refer to this aﬃne structure on a vector − → space as the canonical (or natural) aﬃne structure on E . 1 − x) + u = (x + u. but addition of points a + b does not make sense. . The set L is the line of slope −1 passing through the points (1. since it suggests that points can be substracted (but not added!). 1 − x − u). Yet. (x. and even mixed linear combinations of points and vectors. . 1 − x) on L and any u ∈ R. It immediately veriﬁed that this action makes L into an aﬃne space. − → − → Any vector space E has an aﬃne space structure speciﬁed by choosing E = E . In order to distinguish between the double role played by members of Rn . the translate a + u of a point a ∈ E by a vector u ∈ E is also well-deﬁned. the vector space Rn can be viewed as an aﬃne space denoted as An . . y) satisfying the equation x + y − 1 = 0. The line L can be made into an oﬃcial aﬃne space by deﬁning the action + : L × R → L of R on L deﬁned such that for every point (x. the action of the vector space Rn over the set Rn simply viewed as a set of points. we will consider n = 1. we will denote points as row vectors. (a1 . Note that the vector space R is isomorphic to the line of equation x + y = 0 passing through the origin. not in an obvious fashion). 1 − b1 ) on L. 1). points and vectors. for any two points a = (a1 . 0) and (0. . an + un ). as in u + v. In particular. 3. BASICS OF AFFINE GEOMETRY One should be careful about the overloading of the addition symbol +. Addition is well− → deﬁned on vectors. and vectors as column vectors. .1 that it is possible to make sense of linear combinations of points. an ) + . is somewhat confusing. . . we will see in section 10. is given by u1 . For example. In most cases. . 1 − a1 ) and b = (b1 . 2. Consider the subset L of A2 consisting of all points (x.20 CHAPTER 2. the unique (vector) u ∈ R such that b = a + u is u = b1 − a1 . un The aﬃne space An is called the real aﬃne space of dimension n.

y. y. y. The set P is paraboloid of revolution. 0). (x + u)2 + (y + v)2 ). with axis Oz. This should dispell any idea that aﬃne spaces are dull. . consider the subset P of A3 consisting of all points (x. y. 1 − x − u − y − v). and (0. x2 + y 2 ) on P and any v (x. y. The set H is the plane passing through the points (1. 0. 0. (0. EXAMPLES OF AFFINE SPACES 21 L Figure 2. For a slightly wilder example. every point (x. The surface P can be made into an oﬃcial aﬃne space by deﬁning the action + : P × R2 → P of R2 on P deﬁned such that for u ∈ R2 . H deﬁned such that for every point (x.2. 1). y. Aﬃne spaces not already equipped with an obvious vector space structure arise in projective geometry. x2 + y 2) + u v = (x + u. The plane H can be made into an oﬃcial aﬃne space by deﬁning the action + : H × R2 → H of R2 on u ∈ R2 . 1.2. z) satisfying the equation x + y + z − 1 = 0. y + v.3: An aﬃne space: the line of equation x + y − 1 = 0 Similarly. consider the subset H of A3 consisting of all points (x. 1 − x − y) on H and any v (x. 0). z) satisfying the equation x2 + y 2 − z = 0. y + v. 1 − x − y) + u v = (x + u.

b. → Since a = a + − and by (AF1).4 Aﬃne Combinations. since c = a + − b = a + ab. at the risk of boring . also called a barycenter . which is known as Chasles’ identity. and thus.22 E CHAPTER 2. by (AF2). we get → − → − ba = −ab. letting a = c in Chasles’ identity. by (AF3). by (AF3). there is a problem with the naive approach involving a coordinate system. a = a + 0.4: Points and corresponding vectors in aﬃne geometry 2.3 Chasles’ Identity → − → − → − → → − − c = b + bc = (a + ab) + bc = a + ( ab + bc) → → − − − ab + bc = → ac. Given any four points a. as we saw in section 2. d ∈ E. c ∈ E. 2. Barycenters A fundamental concept in linear algebra is that of a linear combination. b. and c = b + bc. → − − → − → − → we have ab = dc iﬀ bc = ad (the parallelogram law ). c. However. The corresponding concept in aﬃne geometry is that of an aﬃne combination. since by Chasles’ identity → → − − − − → → → ab + bc = ad + dc = − ac. BASICS OF AFFINE GEOMETRY − → E b ab a c bc ac Figure 2. Since this problem is the reason for introducing aﬃne combinations. → − → − → Given any three points a. we get aa − = 0. we get ac. → aa Thus.1.

5: Two coordinates systems in R2 certain readers. Thus. λa2 + µb2 ). This time. we give another example showing what goes wrong if we are not careful in deﬁning linear combinations of points. However. For any two points a. Thus. and let (λi )i∈I be a family of scalars. let us now consider the new coordinate system with respect to the origin c = (1. 2). b2 ). AFFINE COMBINATIONS. Consider R2 as an aﬃne space.1. the point a + b is the point c = (1.4. 1). a + b corresponds to two diﬀerent points depending on which coordinate system is used for its computation! Thus. it is clear that the point d is identical to the origin O = (0. −1) and b = (2. the following properties hold: (1) If i∈I λi = 1. −2). 1). Lemma 2. the deﬁnition is intrinsic. then → λi − i = aa i∈I i∈I − → λi bai . and the coordinates of b are (1. the coordinates of a are (−2. Given any two 0 1 points a = (a1 . i i i i i∈I i∈I (2) If i∈I λi = 0. let (ai )i∈I be a family of points in E. 0) and basis vectors and . However. when a = (−1. as the following lemma shows. 0) of the ﬁrst coordinate system. under its natural 1 0 coordinate system with origin O = (0. . some extra condition is needed in order for aﬃne combinations to make sense. it is natural to deﬁne the aﬃne combination λa + µb as the point of coordinates (λa1 + µb1 . Given an aﬃne space E. 1) (and the same basis vectors). It turns out that if the scalars sum up to 1.2. BARYCENTERS 23 b c O=d a Figure 2. −1). a2 ) and b = (b1 . and the point a + b is the point d of coordinates (−1. b ∈ E. then − → → a+ λ − = b+ aa λ ba .4.

which is just a pair (a. and λ ∈ R is a scalar. aa .3). we have a+ i∈I → λi − i = a + aa i∈I → → − − λi ( ab + bai ) → − λi ) ab + − → λi bai i∈I i∈I =a+( → − = a + ab + = b+ i∈I i∈I − → λi bai since i∈I λi = 1 − → λi bai → − since b = a + ab. and it is denoted as λi ai . λi ))i∈I .24 CHAPTER 2.4. we also say that the point i∈I λi ai is the barycenter of the family of weighted points ((ai . the point x=a+ i∈I → λi − i aa is independent of the choice of the origin a ∈ E. by lemma 2. for any family (λi )i∈I of scalars such that i∈I λi = 1. λ). Thus. where a ∈ E is a point. it is convenient to introduce the notion of a weighted point.1. given a family of weighted points ((ai . The unique point x is called the barycenter (or barycentric combination. (1) By Chasles’ identity (see section 2. i∈I =( i∈I − → λi bai = i∈I since i∈I λi = 0. Then. Note that the barycenter x of the family of weighted points ((ai . i∈I In dealing with barycenters. λi ))i∈I . λi ))i∈I is the unique point such that − = → ax i∈I → λi − i for every a ∈ E. where i∈I λi = 1. for any family of points (ai )i∈I in E. or aﬃne combination) of the points ai assigned the weights λi . BASICS OF AFFINE GEOMETRY Proof. (2) We also have → λi − i = aa i∈I i∈I → → − − λi ( ab + bai ) → − λi ) ab + − → λi bai .

c. and (c. i∈I i i∈I i i The ﬁgure below illustrates the geometric construction of the barycenters g1 and g2 of the weighted points a. d) are called its control points. F (t) = (1 − t)3 a + 3t(1 − t)2 b + 3t2 (1 − t) c + t3 d. and (a. and (a.4.1 to deﬁne a vector space in which linear combinations of both points and vectors make sense. c) is the middle of the segment (a. Thus. 2 2 2 2 The point g2 can be constructed geometrically as the point such that the middle 1 b + 1 c of 2 2 the segment (b. it is easy to prove that the barycenter of m weighted points can be obtained by repeated computations of barycenters of two weighted points. regardless of the value of i∈I λi . AFFINE COMBINATIONS. −1). 1). b). g2 ). b. For example. Then. we will see that a polynomial curve can be deﬁned as a set of barycenters of a ﬁxed number of points. Remarks: (1) For all m ≥ 2. → (2) When λ = 0. since the sum on the left-hand side is obtained by expanding (t + (1 − t))3 = 1 using the binomial formula. b. the point x is the unique point such that → λ − = 0. (b. Note that e the curve passes through a and d.2. 1 . 1). since 2 g1 = 1 1 1 1 a + b + c. b. since g2 = −a + 2 1 1 b+ c . λi ))i∈I (where the masses have been normalized. xa i i i∈I 25 In physical terms. We will see in the next chapter how any point F (t) on the curve can be constructed using an algorithm performing three aﬃne interpolation steps (the de Casteljau algorithm). BARYCENTERS and setting a = x. and negative masses are allowed). 2 2 Later on. so that i∈I λi = 1. d) be a sequence of points in A2 . the vector λ − does not depend on the point a. but generally not through b and c. and we may aa denote it as i∈I λi ai . (1 − t)3 a + 3t(1 − t)2 b + 3t2 (1 − t) c + t3 d . 1 . This observation will be used in Chapter 10. let (a. and c. we can deﬁne the curve F : A → A2 such that Such a curve is called a B´zier curve. c. 4 4 2 The point g1 can be constructed geometrically as the middle of the segment joining c to 1 the middle 2 a + 1 b of the segment (a. Observe that (1 − t)3 + 3t(1 − t)2 + 3t2 (1 − t) + t3 = 1. is a well-deﬁned aﬃne combination. the barycenter is the center of mass of the family of weighted points ((ai . 1 .

g1 = 4 a + 1 b + 2 c. g2 = −a + b + c. BASICS OF AFFINE GEOMETRY c g1 a b c g2 a b 1 1 Figure 2. 4 .6: Barycenters.26 CHAPTER 2.

yi ) ∈ U and any m scalars λi such that λ1 + · · · + λm = 1. and every intersection of aﬃne subspaces is an aﬃne subspace. It is natural to deﬁne an aﬃne subspace as a subset of an aﬃne space closed under aﬃne combinations. (xi . According to deﬁnition 2. Given any m points (xi . we claim that m i=1 λi (xi . yi ) ∈ U means that axi + byi = c. and if we multiply both sides of this equation by λi and add up the resulting m equations.5 Aﬃne Subspaces In linear algebra.e. we get m m (λi axi + λi byi ) = i=1 i=1 λi c. we get m m m a i=1 λi xi +b i=1 λi y i = i=1 λi c = c. the empty set is trivially an aﬃne subspace. yi ) ∈ U. the notion corresponding to the notion of (linear) subspace is the notion of aﬃne subspace. the barycenter i∈I λi ai belongs to V . y) ∈ R2 | ax + by = c}.1. Indeed. where it is assumed that a = 0 or b = 0. . Given an aﬃne space E. consider the subset U of A2 deﬁned by U = {(x. − → Deﬁnition 2. a subset V of E is an aﬃne subspace if for every family of weighted points ((ai . An aﬃne subspace is also called a ﬂat by some authors. i=1 i=1 λi y i = i=1 λi (xi . AFFINE SUBSPACES 27 2.5. which shows that m m m λi xi .1. λi ))i∈I in V such that i∈I λi = 1. a (linear) subspace can be characterized as a nonempty subset of a vector space closed under linear combinations.5. i. In aﬃne spaces.5. + . As an example. E .2. and since λ1 + · · · + λm = 1. yi ) ∈ U. the set of solutions of the equation ax + by = c.

y) ∈ U. where − → − → (x0 . This line can be identiﬁed with a line passing through the origin of A2 . y0 ) + U ⊆ U. yi ) ∈ U . It turns out that U is closely related to the subset of R2 deﬁned by − → U = {(x.28 CHAPTER 2. and U = (x0 . by subtraction. since the right-hand side of the equation is − → − → null. y0) + U . U is a subspace of R2 . given any point (x0 . i. since ax0 + by0 = c and au1 + bu2 = 0 for all (u1 . y) ∈ (x0 . y − y0 ) ∈ U . (x0 . y0) + U = {(x0 + u1 . line which is parallel to the line U of equation ax + by = c. Thus. y0 ) + U . if (x. In fact.e. The above example shows that the aﬃne line U deﬁned by the equation ax + by = c − → is obtained by “translating” the parallel line U of equation ax + by = 0 passing through the origin. and it is just a usual line in R2 . BASICS OF AFFINE GEOMETRY Thus. and thus (x. the set of solution of the homogeneous equation ax + by = 0 obtained by setting the right-hand side of ax + by = c to zero. Second. we get a(x − x0 ) + b(y − y0 ) = 0. it is just a usual line in A2 . y) ∈ R2 | ax + by = 0}. y0 ) ∈ U. Now. and since we also have ax0 + by0 = c. the same calculation as above yields that m i=1 − → λi (xi . U is one-dimensional. if (x0 . − → − → which shows that (x − x0 . . y0 + u2 ) | (u1 . − → − → First. we also have − → − → U ⊆ (x0 . for any m scalars λi . u2 ) ∈ U }. Indeed. In fact. y0 ) is any point in U. U is an aﬃne subspace of A2 . In fact. y0 ) + U . Hence. this time without any restriction on the λi . then ax + by = c. u2 ) ∈ U . y0 ) + U . we claim that − → U = (x0 . y0 ) + U . − → U = (x0 .

(an . . 1 − λi )). and for any x0 ∈ U.5. λn ) of scalars. . Aﬃne subspaces can be characterized in terms of subspaces of − → E . λ1 ). for any family (λ1 . an ) in V . n x=a+ i=1 → λi − i aa is the barycenter of the family of weighted points n ((a1 . This is a general situation. for every point a ∈ V . . . . . it is easy to prove the following fact. observe that for every x ∈ E. . Let V be a nonempty subset of E. For every family (a1 . . we have − → U = x0 + U . the subset U of An deﬁned by U = {x ∈ Rn | Ax = c} is an aﬃne subspace of An . λn ). the set − → U = {x ∈ Rn | Ax = 0} is a subspace of Rn . Furthermore. (a. . AFFINE SUBSPACES 29 U U Figure 2. if we consider the corresponding homogeneous equation Ax = 0. . .7: An aﬃne line U and its direction More generally. Given any m × n matrix A and any vector c ∈ Rm . . i=1 .2.

− → Lemma 2. the set V = a + V is an aﬃne subspace. then V is closed under barycentric combinations. . λ1 ). i=1 − → Given any point a ∈ E and any subspace V of E . + be an aﬃne space. . → − → − Proof. → V = {− | x.30 since n CHAPTER 2. Conversely. − = → ax iﬀ x is the barycenter n n − → is a subspace of E . for every family of weighted points. it is clear − → that Va is closed under linear combinations. 0 ∈ V . V = a + Va . ((a + vi . we have V ⊆ Va . Thus. the set → V = {− | x ∈ V } ax a − → is a subspace of E and Va = V for all a ∈ E. Thus. . (1) Clearly. E . Since V = → → {− | x. and λ1 + · · · + λn = 1. − → (2) For any subspace V of E . xy ax since − =− −− → → → xy ay ax. then. where a ∈ V . . for any a ∈ E. . and thus. 1 − x=a+ i=1 −−− −−→ λi a(a + vi ) = a + n λi vi i=1 − → is in V . (1) A nonempty subset V of E is an aﬃne subspace iﬀ. where vi ∈ V . it is clear that Va ⊆ V . λn ). Let E. y ∈ V } xy → λi − i aa n i=1 i=1 λi ai + (1 − λi )a i=1 n i=1 λi )).2. − → (2) If V = a + V . V = Va . the barycenter x being given by n of the family of weighted points ((a1 . for every point a ∈ V . since V is a subspace of E . it is a subspace of E . If V is an aﬃne subspace. for every a ∈ V . y ∈ V } and Va = {− | x ∈ V }. − → and since Va is a subspace of E . V = a + V . Furthermore. (an . and by the remark before the lemma. let a + V denote the following subset of E: a + V = {a + v | v ∈ V }. BASICS OF AFFINE GEOMETRY n i=1 λi + (1 − λi ) = 1. for every x ∈ E. Consequently.5. Then. λi ))1≤i≤n . (a. where V is a subspace of E .

The subspace V associated with an aﬃne subspace V is called the direction of V .e. for a subspace U of E. are linearly dependent. By the dimension of the subspace V . the direct sum of F and G. It is − → also clear that the map + : V × V → V induced by + : E × E → E confers to V. since U = V . a plane is the set of all points of the form a + λu + µv. be characterized a little later.2 shows that every aﬃne subspace of E is of the form u + U. we mean the dimension of V . We say that three points a.2. lemma 2. if the vectors ab. V. − → By lemma 2.5. We say that four points → − − − → a. for λ ∈ R. c → − → are collinear .2. d are coplanar . Equivalently. We say that two aﬃne subspaces U and V are parallel if their directions are identical. b. If two of the points a. for any a ∈ U and any b ∈ V .8: An aﬃne subspace V and its direction V In particular. Given an aﬃne space E. we have U = a + U.5. → ab − → A plane is speciﬁed by a point a ∈ E and two linearly independent vectors u. the set V of barycenters i∈I λi ai (where i∈I λi = 1) is the smallest aﬃne subspace containing .3. for any family (ai )i∈I of points in E. such that − = λ ab. Hyperplanes will ac. − → Lemma 2. and thus. c. and V = b + U. i. i. → and ad. V is obtained from U by the translation → − ab. An aﬃne subspace of codimension 1 is called a hyperplane (recall that a subspace F of a vector space E has codimension 1 iﬀ there is some subspace G of dimension 1 such that E = F ⊕ G. b. µ ∈ R. if the vectors ab and − are linearly dependent. An aﬃne subspace of dimension 1 is called a line. a line is speciﬁed by a point a ∈ E and a nonzero vector v ∈ E . + . AFFINE SUBSPACES E − → E 31 a V =a+V V − → Figure 2.e. The subspaces of E are the aﬃne subspaces that contain 0. when E is the natural aﬃne space associated with a vector space E. E . and we deﬁne the ac → − ac ratio − = λ.5. say a = b. v ∈ E . + an aﬃne structure.5. then there is a unique λ ∈ R. see Appendix A). and an aﬃne subspace of dimension 2 is called a plane. for λ. c are ac → − → distinct. a line is the set of all points of the form a + λu. b.

b ∈ V . a− j ia Let k ∈ I with k = i. Given a family (ai )i∈I of points in an aﬃne space E. Proof. let (ai )i∈I be a family of points in E. or even (a.6 Aﬃne Independence and Aﬃne Frames Corresponding to the notion of linear independence in vector spaces. the following lemma a− j ia shows that it suﬃcient to consider only one of these families. CHAPTER 2. Given a nonempty subset S of E. Given an aﬃne space E. then the smallest aﬃne subspace containing (ai )i∈I must contain the set V of barycenters i∈I λi ai . BASICS OF AFFINE GEOMETRY Proof. λ ∈ R. a nonempty subset V of E is an aﬃne subspace iﬀ for every two points a. Remark: Since it can be shown that the barycenter of n weighted points can be obtained by repeated computations of barycenters of two weighted points. which is immediately veriﬁed. the set V contains the line determined by a and b. 2. then (−→)j∈(I−{i}) is linearly a− j a− j ia ia independent for every i ∈ I. b . because of the condition i∈I λi = 1. the set V contains all barycentric combinations of a and b. b ∈ V . If (ai )i∈I is nonempty. E . and assume that there are some scalars (λj )j∈(I−{k}) such that − → a− j λj − → = 0 .6. the set of all points (1 − λ)a + λb. a− j a− i a− j ka ka ia . then V = ∅. For example. we have the notion of aﬃne independence. + . First. and similarly for planes. etc. V is an aﬃne subspace iﬀ for any two distinct points a. that is. a line speciﬁed by two distinct points a and b is denoted as a. If V contains at least two points. it is enough to show that V is closed under aﬃne combinations. If (ai )i∈I is empty. and thus. If the family (−→)j∈(I−{i}) is linearly independent for some i ∈ I.32 (ai )i∈I . we will reduce the notion of (aﬃne) independence of these points to the (linear) independence of the families (−→)j∈(I−{i}) of vectors obtained by chosing any ai as an origin. Assume that the family (−→)j∈(I−{i}) is linearly independent for some speciﬁc i ∈ I. − → Lemma 2.1. the smallest aﬃne subspace of E generated by S is often denoted as S . ka j∈(I−{k}) Since − → = −→ + −→. b).

+ . a family (ai )i∈I of points in E is aﬃnely independent if the family (−→)j∈(I−{i}) is linearly independent for some i ∈ I. E .3.6. A similar result holds for aﬃnely independent points. a− j ia j∈(I−{i. the family i=0 i=0 m −→ − −→ − (λ0 . .6. .k}) j∈(I−{k}) and thus j∈(I−{i. a− j ia λj −→. am ) be a family of m + 1 points in E. E . a− i 0a i=1 λi = 1. . However. . . We deﬁne aﬃne independence as follows. a− k ia λj −→. the independence of the family a− j a (−→)j∈(I−{i}) does not depend on the choice of ai . AFFINE INDEPENDENCE AND AFFINE FRAMES we have λj − → = a− j ka j∈(I−{k}) j∈(I−{k}) 33 λj −→ + a− i ka j∈(I−{k}) λj −→. it is a well known result of linear algebra that the family where (λ1 . .6. . where m λi = 1. k}) and j∈(I−{k}) λj = 0. A crucial property of linearly independent i → → → vectors (−1 . − ) is that if a vector − is a linear combination u um v − = → v m a− j λj −→ − ia j∈(I−{k}) − → λj −→ = 0 . a− k ia → λi −i u i=1 → of the −i . Given an aﬃne space E. . − → Deﬁnition 2. . a0 am ) is linearly independent. Let x ∈ E. . . . Recall that x= i=0 m i=0 m λi ai iﬀ − x = a→ 0 m λi −→.6.6. . we must have λj = 0 for all j ∈ a− j ia (I − {i. . and assume that x = m λi ai . then the λi are unique. Then. .1. . let (a0 .k}) = j∈(I−{k}) λj −→ + a− i ka λj −→ − a− j ia = j∈(I−{i. Proof. . since by Lemma 2.2 is reasonable. + .2. λm ) such that −x = a→ 0 m λi −→ a− i 0a i=1 . u − → Lemma 2.2. which implies that λj = 0 for all j ∈ (I − {k}). . Given an aﬃne space E. a− j ia Deﬁnition 2.k}) Since the family (−→)j∈(I−{i}) is linearly independent. . . λm ) such that x = i=0 λi ai is unique iﬀ the family (a0 a1 .

. . . . such that − a0 → a− 1 x = a0 + x1 − → + · · · + xm − am . . . if (− →. . (− →. . . Aﬃne frames are the aﬃne analogs − → of bases in vector spaces. . . . . 1 ≤ i ≤ m. am ) determines the family of m − → − vectors (− →. . . . um) in E . E . since x = a0 + − x. . given a point a0 in E and a family of m vectors a− 1 a0 → 0a − → (u1 . − am ) in E . . . − am ) is a basis of E . . − am ) is linearly independent. Let E. . . . . λm ) a− 1 a0 → 0a is unique. xm ) are coordinates with respect to (a0 . 0a m − The scalars (x1 . . . . Since a− 1 a0 → 0a m x = a0 + i=1 xi −→ iﬀ x = (1 − a− i 0a m xi )a0 + i=1 i=1 xi ai . . λm ) such that i=0 −x = a→ 0 m λi −→. .10. where ai = a0 + ui . . The family (a0 . am ) be a family of m + 1 points in E. . . . am ) in − → E. for any m ≥ 1. λ0 is also unique. Lemma a− 1 a0 → 0a − A. . + be a nonempty aﬃne space. . . . (λ1 . . . . .1. . . um )). . . λm ) such that x = m λi ai implies the uniqueness of (λ1 . . a− i 0a i=1 − and by lemma A.1. . . (u1. for every x ∈ E. Conversely.10). .9: Aﬃne independence and linear independence − is unique iﬀ (− →. − am ) is linearly independent (for a proof. by lemma A. . . . then.3 suggests the notion of aﬃne frame. . . . and let (a0 . . . Thus. . Conversely. and since λ0 = 1 − m λi . . it is equivalent to consider a family of m + 1 points (a0 . Thus. there a− 1 a0 → a→ 0a 0 is a unique family (x1 . . a− 1 a0 → 0a Lemma 2.34 E a2 CHAPTER 2. see Chapter A. − → − When (− →. − am ) is linearly independent. xm ) of scalars.10 again. we obtain the family of m+ 1 points (a0 . .1. (− →. . where the ui are vectors in E . . .6. . . am ) in E. BASICS OF AFFINE GEOMETRY − → E a0 a2 a0 a1 a0 a1 Figure 2. − am )). . . the uniqueness of i=1 (λ0 . . and a pair (a0 .

the aﬃne subspace generated by (a. . AFFINE INDEPENDENCE AND AFFINE FRAMES x ∈ E can also be expressed uniquely as m 35 x= i=0 λi ai with m λi = 1. The ﬁgure below shows aﬃne frames for |I| = 0. for 1 ≤ i ≤ m. . we can consider the set of points λ0 a0 + · · · + λn an . . The scalars i=1 i=0 (λ0 . a1 . . . . am ) of m + 1 points in E such that (− →. . b. every x ∈ E can be a− a a− 0 0 1 0 m 0 expressed as − x = a0 + x1 − → + · · · + xm − am a− 1 a0 → 0a for a unique family (x1 . b) in E is aﬃnely independent iﬀ ab = 0. . + . ac. c. . . c. including a0 and a1 . .t. b. − and ad are linearly independent. . . which is the unique plane containing a. Given an aﬃne space E. which means that a. and d. an ) in E. the aﬃne subspace generated by a and b is the set of all points (1 − λ)a + λb. . (− →. which means that a. c) is the set of all points (1 − λ − µ)a + λb + µc. b. an )). λm ) are related by the equations λ0 = 1 − m xi and λi = xi . called the coordinates of x w. Such aﬃne combinations are called convex combinations. A family of → − → − → four points (a. where λ0 + · · · + λn = 1 and λi ≥ 0 (λi ∈ R). . → − A family of two points (a. b. . When n = 1. . The pair a− 1 a0 → 0a → (a . . d) in E is aﬃnely independent iﬀ ab. λm ) are also certain kinds of coordinates with respect to (a0 . an ) (or n-simplex spanned by (a0 . . All this is summarized in the following deﬁnition. . . In this case.r. . In this case. . and λi = xi for 1 ≤ i ≤ m. xm ) and the barycentric coordinates (λ0 . iﬀ a = b. and where λ0 = 1 − m xi . and d are not in a same plane (they are not coplanar). . . − → Deﬁnition 2. The coordinates (x1 . − am ) is a basis of E . .6. am ). A family of three points (a. . − a )) is also called an aﬃne frame with origin a . and c are not on a same line ac (they are not collinear). . a. This set is called the convex hull of (a0 . . Given n+1 aﬃnely independent points (a0 . b. . − am )). . λm ) of scalars such that λ0 +· · ·+λm = 1 called the barycentric coordinates of x with respect to the aﬃne frame (a0 . we get the interior of the triangle whose vertices are a0 . an aﬃne frame with origin a0 is a − → − family (a0 . . are the vertices of a tetrahedron. .2. . . c. the aﬃne frame − (a0 . xm ) of scalars. . . .6. . . am ). 2. 3. An aﬃne frame is called an i=1 aﬃne basis by some authors. . we get the line segment between a0 and a1 . . 1. . . . which is the unique line passing through a and b. every x ∈ E can be written as a− 1 a0 → 0a x = λ0 a0 + · · · + λm am for some unique family (λ0 . (− →. and c. Furthermore. . b. .4. b. Then. E . If a = b. . . When n = 2. c) in E is aﬃnely independent → − → iﬀ ab and − are linearly independent. . . . . a2 . . . . .

a2 d a0 a1 Figure 2. More generally. . b. a1 . we get the interior of the tetrahedron whose vertices are a0 . Let a. a3 . BASICS OF AFFINE GEOMETRY a2 a0 a0 a1 a3 a0 a1 a0 a2 a1 Figure 2. an ). a− 1 a− n 0a 0a is called the parallelotope spanned by (a0 . we have c ∈ V for every point c = (1 − λ)a + λb. . a2 . . Any point x in the plane (a. with 0 ≤ λ ≤ 1 (λ ∈ R). c) can . a parallelepiped . c be three aﬃnely independent points in A3 . b. When n = 3.10: Examples of aﬃne frames. Points are not vectors! The following example illustrates why treating points as vectors may cause problems. and when E has dimension 3. . a parallelotope is also called a parallelogram. a1 . When E has dimension 2. including boundary points (faces and edges).11: it consists of the points inside of the parallelogram (a0 . a2 . A parallelotope is shown in ﬁgure 2. d).36 CHAPTER 2. The set {a0 + λ1 − → + · · · + λn − → | where 0 ≤ λi ≤ 1 (λi ∈ R)}. including its boundary. b ∈ V . we say that a subset V of E is convex if for any two points a.11: A paralellotope including boundary points (the edges).

Aﬃne maps can be obtained from linear maps as follows. E ′ . E . b2 . b. c = (c1 . Given two aﬃne spaces E. c2 . a3 ). we claim that the map f : E → E ′ deﬁned such that f (a + v) = b + h(v) is an aﬃne map.7. 37 where λ0 + λ1 + λ2 = 1. λ2 ? Letting a = (a1 .7. i∈I i∈I In other words. It can be shown that barycentric coordinates correspond to various ratios of areas and volumes. a2 . there is a problem when the origin of the coordinate system belongs to the plane (a. λ1 . since v −−− −−→ λi vi . and any linear map h : E → E ′ . since in this case. How can we compute λ0 . x3 ) be the coordinates of a. − → − → Deﬁnition 2. b = (b1 . x in the standard frame of A3 . and x = (x1 . b3 ). AFFINE MAPS be expressed as x = λ0 a + λ1 b + λ2 c. for any . c. see the Problems. a3 b3 c3 λ2 x3 However. f preserves barycenters. we have f( λi ai ) = λi f (ai ). An alternative is to use certain well chosen cross-products. it is tempting to solve the system of equations a1 b1 c1 λ0 x1 a2 b2 c2 λ1 = x2 . c3 ). + and E ′ . λi (a + vi ) = a + λi a(a + vi ) = a + i∈I i∈I i∈I i∈I λi = 1. b. c). For simplicity of notation. where O is any point not in the plane (a. the matrix is not invertible! What we should really be doing is to solve the system − → − → − → − → λ0 Oa + λ1 Ob + λ2 Oc = Ox. λi ))i∈I of weighted points in E such that i∈I λi = 1. x2 . c).7 Aﬃne Maps Corresponding to linear maps. we have the notion of an aﬃne map. a function f : E → E ′ is an aﬃne map iﬀ for every family ((ai . the same symbol + is used for both aﬃne spaces (instead of using both + and +′ ). − → − → Given any point a ∈ E. for any family (λi )i∈I of scalars such that → family (−i )i∈I . b.1. 2.2. +′ . An aﬃne map is deﬁned as a map preserving aﬃne combinations. any point b ∈ E ′ . Indeed.

1) in deriving that λi (a + vi ) = a + i∈I i∈I λi = 1 was implicitly used (in a hidden call to Lemma λi vi and i∈I λi (b + h(vi )) = b + i∈I λi h(vi ). c. d) is the parallelogram (a′ .12: The eﬀect of a shear −−−− −−−→ λi b(b + h(vi )) = b + i∈I i∈I and λi (b + h(vi )) = b + i∈I λi h(vi ). the map x1 x2 → 1 2 0 1 x1 x2 + 3 1 deﬁnes an aﬃne map in A2 . we have f( i∈I λi (a + vi )) = f (a + i∈I λi vi ) λi vi ) i∈I = b + h( = b+ i∈I λi h(vi ) λi (b + h(vi )) = i∈I = i∈I λi f (a + vi ). The map x1 x2 → 1 1 1 3 x1 x2 + 3 0 . b. BASICS OF AFFINE GEOMETRY d′ c′ d c a′ a b′ b Figure 2. Let us consider one more example. Note that the condition 2. i∈I As a more concrete example. b′ . d) is shown in ﬁgure 2. The eﬀect of this shear on the square (a. b. c. d′ ).12.4.38 CHAPTER 2. The image of the square (a. It is a “shear” followed by a translation. c′ .

2.13. Given an aﬃne map f : E → E ′ . The eﬀect of this map on the square (a. followed by a translation. d) is shown in ﬁgure 2.7. We simply sketch the main ideas. d) is the parallelogram (a′ . If a linear map f : E → E ′ satisfying the condition of the lemma exists.1. − → − → Lemma 2.7. . The proof is not diﬃcult.7. but very technical. Section − → − → B. The following lemma shows the converse of what we just showed. Since we can write 1 1 1 3 = √ √ a 2 2 2 √ 2 2 − √ 2 2 √ 2 2 1 2 .13: The eﬀect of an aﬃne map is an aﬃne map. c. We then have to check that the map deﬁned in such a way is linear and that its deﬁnition does not depend on the choice of a ∈ E. Let a be any point in E. b. − → for every a ∈ E and every v ∈ E . such that f (a + v) = f (a) + f (v). The image of the square (a. c′ . 0 1 this aﬃne map is the composition of a shear. b. AFFINE MAPS c d′ ′ 39 d c b′ b a′ Figure 2. Proof. b′ . − → − → The unique linear map f : E → E ′ given by lemma 2. c.2 is called the linear map associated with the aﬃne map f . there is a unique linear map f : E → E ′ . d′ ). It can be found in Appendix B. Every aﬃne map is determined by the image of any point and a linear map. followed by a rotation of angle π/4. followed by √ a magniﬁcation of ratio 2. this map must satisfy the equation −− − − − − − − −→ f (v) = f (a)f (a + v) − → for every v ∈ E .2.

x ∈ E. Lemma 2. or f (a)f (x) = f (− ax). Indeed.40 CHAPTER 2. .14: An aﬃne map f and its associated linear map f Note that the condition f (a + v) = f (a) + f (v). for all a. −→ → −→ → −− −→ − → → → → −− → −− f (x) = f (a) + f (− = f (a) + − = x + − + af (a) + − = x + − + af (a) − − = x + af (a). for any a ∈ E). if f = id. − → for every a ∈ E and every v ∈ E can be stated equivalently as −−− −−→ → → f (x) = f (a) + f (− ax).7. ax) ax xa ax xa xa and so −− −→ −− −→ xf (x) = af (a). − → − → for all v ∈ E (just let b = f (a). Aﬃne maps for which f is the identity − → map are called translations. −− −→ which shows that f is the translation induced by the vector af (a) (which does not depend on a).2 shows that for any aﬃne map f : E → E ′ . and a unique linear map f : E → E ′ . such that f (a + v) = b + f (v). b ∈ E ′ . BASICS OF AFFINE GEOMETRY E a a+v v − → E f f E′ f (a) f (a) + f (v) = f (a + v) f (v) −′ → E − → Figure 2. there are points − → − → a ∈ E.

for any other aﬃne space F . or a plane. given aﬃne maps f : E → E ′ and g : E ′ → E ′′ .15: An aﬃne map mapping a0 . for 0 ≤ i ≤ m. we have g(f (a + v)) = g(f (a) + f (v)) = g(f (a)) + g(f (v)). The following diagram illustrates the above result when m = 2. . a1 . AFFINE MAPS b1 b2 41 a2 λ0 b0 + λ1 b1 + λ2 b2 λ0 a0 + λ1 a1 + λ2 a2 a0 a1 b0 Figure 2. b1 . So. a line. there is a unique aﬃne map f : E → F such that f (ai ) = bi . . which shows that (g ◦ f ) = g ◦ f . a1 . for any sequence (b0 . aﬃne maps can be represented in terms of matrices. and this deﬁnes a unique aﬃne map on the entire E. Also. the image of a line is a point or a line. . . . Using aﬃne frames. Since an aﬃne map preserves barycenters. . an ) in E. . . the more . . . where λ0 + · · · + λm = 1. . . It is easily veriﬁed that the composition of two aﬃne maps is an aﬃne map. a2 to b0 .7. a1 . − → − → An aﬃne map f : E → E ′ is constant iﬀ f : E → E ′ is the null (constant) linear map equal − → to 0 for all v ∈ E . Indeed. for example. . since (a0 . If E is an aﬃne space of dimension m and (a0 . b1 . . f must be such that f (λ0 a0 + · · · + λm am ) = λ0 b0 + · · · + λm bm . am ) is an aﬃne frame for E. the image f (V ) of V is an aﬃne subspace in E ′ . the image of a plane is either a point. . and that f : E → E ′ is surjective iﬀ f : E → E ′ is surjective.2. am ) is an aﬃne frame for E. We explain how an aﬃne map f : E → E is represented with respect to a frame (a0 . . b2 . and since an aﬃne subspace V is closed under barycentric combinations. bm ) of m + 1 points in F . It is easy to show that an aﬃne map f : E → E ′ is injective − → − → − → − → iﬀ f : E → E ′ is injective.

there is a point a0 such that f (a0 ) = a0 . . and a0 f (a0 + − ). The vector b is the “translation part” of the aﬃne map. . an ) in E and (b0 . followed by a . . . Since − → → → f (a0 + − ) = f (a0 ) + f (− ) x x → → − for all − ∈ E . . . Thus. . xn ). . and by a factor of 1/2 along the y-axis). . and (b1 . . . bm ) in F being analogous. . f is generally not a linear transformation. The aﬃne map √ 1 − 3 x1 x1 1 → √3 + 1 x2 x2 1 4 4 can also be written as x1 x2 → 2 0 1 0 2 1 2 √ 3 2 √ 1 2 3 2 − x1 x2 + 1 1 which shows that it is the composition of a rotation of angle π/3. can be expressed as x x − = x − → + · · · + x − →. x x −− − − − − − − −→ −− → −−→ → Since − .e. a− 1 a− n 0a 0a −− − − − − − − −→ → a0 f (a0 + − ) = y1 − → + · · · + yn − →. nonnull translations have no ﬁxed point. . letting x. bn ).. (y1 . a0 f (a0 ).42 CHAPTER 2. . x a− 1 a− n 0a 0a − → a− n a− 1 if A = (ai j ) is the n×n-matrix of the linear map f over the basis (− →. . Note that b = 0 unless f (a0 ) = a0 . 0a 0a y. 0 This map is a reﬂection about the x-axis followed by a translation along the x-axis. . → − − x 1 a0 a1 n a0 an −−→ −− a0 f (a0 ) = b1 − → + · · · + bn − →. unless it has a ﬁxed point. we have x −− − − − − − − −→ − − → − −− → → → a0 f (a0 + − ) = a0 f (a0 ) + f (− ). i. yn ). A less trivial example is given by the aﬃne map x1 x2 → 1 0 0 −1 x1 x2 + 1 . − →). followed by a stretch (by a factor of 2 along the x-axis. . . Obviously. . . Aﬃne maps do not always have a ﬁxed point. −− − − − − − − −→ − − → − −− → → → a0 f (a0 + − ) = a0 f (a0 ) + f (− ) x x is equivalent to y = Ax + b. . BASICS OF AFFINE GEOMETRY general case where an aﬃne map f : E → F is represented with respect to two aﬃne frames (a0 . . . and b denote the column vectors of components (x1 . .

c in E. The proof is rather long (see Berger [5] or Samuel [69]). where A is a rotation matrix. which is simpler to state when the ground ﬁeld is K = R. For more and the second matrix is a rotation of angle θ such that cos θ = on ﬁxed points of aﬃne maps. where a = c. b. Given three collinear points where a. If f : E → E ′ is a bijective aﬃne map. since f preserves barycenters. we have b = (1 − β)a + βc for some unique β. b. and form the (n + 1) × (n + 1)-matrix A b 0 1 so that y = Ax + b is equivalent to y 1 = A b 0 1 x . AFFINE MAPS 43 translation. and we deﬁne the ratio of the sequence a. b. c. if f maps any three collinear points to collinear points. There is a useful trick to convert the equation y = Ax + b into what looks like a linear equation. 4 5 3 and sin θ = 5 . c as −ratio(a. given any three collinear points a.2. the aﬃne map 8 6 −5 x1 1 x1 5 → 3 + 2 x2 1 x2 10 5 has no ﬁxed point. There is a converse to this property. i. Such aﬃne maps are called rigid motions. even though 8 5 3 10 −6 5 2 5 = 2 0 1 0 2 4 5 3 5 −3 5 4 5 . We add 1 as the (n + 1)th component to the vectors x. see the problems.7. and b. On the other hand. we agree that ratio(a. It is easy to show that this aﬃne map has a unique ﬁxed point. c = (1 − λ)a + λb. c) = ∞. b. b. we have f (c) = (1 − λ)f (a) + λf (b). it is clear that aﬃne maps preserve the ratio of three points. which shows that f (a). as → − β ab ratio(a. f (b). c. b. → (1 − β) bc provided that β = 1. f (c) are collinear in E ′ .e. b. where say. c) = =−. We warn − → ba our readers that other authors deﬁne the ratio of a. The trick is to consider an (n + 1) × (n + 1)-matrix. 1 This trick is very useful in kinematics and dynamics. that b = c. . c) = − . y. then f is aﬃne. When b = c. with a = b. Since aﬃne → bc maps preserves barycenters. The converse states that given any bijective function f : E → E ′ between two real aﬃne spaces of the same dimension n ≥ 2.

When λ = 1. for any aﬃne bijection f ∈ GA(E). Choose some origin a in E. and any scalar λ ∈ R. Then. we have → − → − f (b) = f (a + ab) = f (a) + λ ab . It turns out that it is the disjoint union of the translations and of the dilatations of ratio λ = 1.16 shows the eﬀect of a central dilatation of center d. Since e dilation is shorter than dilatation and somewhat easier to pronounce. c) is magniﬁed to the triangle (a′ . The terms aﬃne dilatation and central dilatation are used by Pedoe [59]. it is clear that Ha. the map f → f deﬁnes a group homomorphism L : GA(E) → GL(E). c′ ). and when λ = 0 and x = a.λ = λ idE .µ = Ha. BASICS OF AFFINE GEOMETRY 2.λ is an aﬃne bijection. is a subgroup of GL(E). It is immediately veriﬁed that Ha. for every x ∈ E.λ ◦ Ha. b′ . the set of aﬃne bijections f : E → E is clearly a group. b. called the aﬃne group of E. a direct translation of the French “homoth´tie” [69]. Note that Ha.1 is the identity. Given any aﬃne space E. Ha. The subset of all linear maps of the form λ idE . and is obtained by “scaling” − by λ. perhaps we use use that! Observe that Ha. for some λ ∈ R∗ with λ = 1. Recall that the group of bijective linear maps of the vector space E is denoted as GL(E). We have the following useful result. Lemma 2. then there is a unique point c ∈ E such that f = Hc. if f = λ idE .λ. Remark: The terminology does not seem to be universally agreed upon. The subgroup DIL(E) = L−1 (R∗ idE ) of GA(E) is particularly interesting.λ deﬁned such that → Ha.44 CHAPTER 2. and R∗ = R − {0}).8. The kernel of this map is the set of translations on E. The triangle (a. Given any point a ∈ E. and denoted as GA(E).8 Aﬃne Groups We now take a quick look at the bijective aﬃne maps.λµ . Samuel uses homothety for a central dilatation. where λ ∈ R − {0}. and is denoted as R∗ idE (where λ idE (u) = λu. Ha. a dilatation (or central dilatation or homothety) of center a and ratio λ is a map Ha. When λ = 0. Given an aﬃne space E.1. Note how every line is mapped to a parallel line. The elements of DIL(E) are called aﬃne dilatations. Since f is aﬃne. ax Figure 2. Snapper and Troyer use the term dilation for an aﬃne dilatation and magniﬁcation for a central dilatation [77].λ (x) = a + λ− ax.λ (x) is on the line deﬁned by → a and x.λ (a) = a. Proof.

am ). . . which shows that f = Hc. . . . 1−λ 1−λ with the aﬃne space E. Thus.2.8. the group of aﬃne dilatations DIL(E) is the disjoint union of the translations and of the dilatations of ratio λ = 0. −→ → −− (1 − λ)− = af (a). Another point worth mentioning is that aﬃne bijections preserve the ratio of volumes of − → → → parallelotopes. we can . Thus.λ . 1−λ → − Taking this unique point c as the origin. ac −→ 1 −− af (a). Clearly. . Aﬃne dilatations can be given a purely geometric characterization.16: The eﬀect of a central dilatation for all b ∈ E. there is a point c ∈ E such that f (c) = c iﬀ → c = f (a) + λ− ac. AFFINE GROUPS a ′ 45 a d b c b′ c′ Figure 2. c= −→ → af (a) − = − − + λ− → ac ac. Indeed. the aﬃne map f is a translation. iﬀ iﬀ iﬀ → − = ac that is. 1. − ) of the vector space E associated u u 1 m λ 1 f (a) − a. given any basis B = (− . . . given any m + 1 aﬃnely independent points (a0 . we have f (b) = c + λ cb for all b ∈ E. if f = idE .

46 CHAPTER 2. .r. . . We can interpret the equation λ1 x1 + · · · + λm xm = µ in terms of the map f : Rm → R deﬁned such that f (x1 . . . . . In section 2. in fact a line (provided that a and b are not both null). . More generally. . .e. − am ) is the volume of the parallelotope a− 1 a0 → 0a spanned by (a0 . . . . . In particular.9 Aﬃne Hyperplanes We now consider aﬃne forms and aﬃne hyperplanes. .12). the basis B. − am ) w. in fact a plane (provided that a.t. . . . . . we see that aﬃne bijections u u preserve the ratio of volumes of parallelotopes. . − am ) a0 a1 a0 a− 1 a0 → 0a − → and the determinant of a linear map is intrinsic (i. . . and not on the particular basis B). − m ) has unit volume (see Berger [5]. . − a ) − − → detB (a0 a1 a0 m − is independent of the basis B. since − − → − − → → − → − detB ( f (− →). . where the parallelotope spanned by any point a and the vectors → → (− 1 . xm ) = λ1 x1 + · · · + λm xm − µ . . In fact. . . 2. we conclude that the ratio − − → − − → → − → detB ( f (− →). the set H of solutions of an equation λ1 x1 + · · · + λm xm = µ is an aﬃne subspace of Am . It would be equally easy to show that the set P of solutions of an equation ax + by + cz = d is an aﬃne subspace of A3 of dimension 2. . c are not all null). .5. λm are not all null. . and if λ1 . . . we observed that the set L of solutions of an equation ax + by = c is an aﬃne subspace of A2 of dimension 1. . . . .. it turns out that it is a subspace of dimension m − 1 called a hyperplane. . These aﬃne maps form a subgroup SA(E) of GA(E) called the special aﬃne group of E. the aﬃne bijections f ∈ GA(E) such − → that det( f ) = 1 preserve volumes. . am ). Since detB (− →. BASICS OF AFFINE GEOMETRY − compute the determinant detB (− →. . f (− am )) a0 a1 a0 = det( f ) − →. b. For any bijective aﬃne a− 1 a0 → 0a map f : E → E. Section 9. this ratio is independent of the choice of the parallelotopes of unit volume. f (− am )) = det( f )detB (− →. only depends on f .

by a previous observation. Since f (a + v) = f (v) for all v ∈ E . (a) Since f : E → R is nonconstant. Given an aﬃne map f : E → R. − → Thus.1. The relationship between aﬃne hyperplanes and aﬃne forms is given by the following lemma. (c) This follows easily from the proof of (b). letting f : E → R be the aﬃne form deﬁned such that. and since by lemma A. we have − → f (a + v) = 0 iﬀ f (v) = 0. f : E → R is not identically null. . it is interesting to consider aﬃne forms.5. for which Ker f ∗ is never empty (since it always contains the vector 0). .9. we have H = f −1 (0).2. we have H = a+ H. . It is immediately veriﬁed that this map is aﬃne. xm ). (b) If H is an aﬃne hyperplane. . its kernel H = Ker f is a hyperplane. AFFINE HYPERPLANES 47 for all (x1 . − → where H is a hyperplane of E . or kernel.9. there is some λ ∈ R such that g = λf (with λ = 0). (b) For any hyperplane H in E. in the sense that H = f −1 (0) = {x ∈ Am | f (x) = 0}. . for all a ∈ E. . and since f is a linear form. of the aﬃne map f : Am → R. f −1 (0) = a + H is a hyperplane H is E. since f ∗ is nonnull. (c) Given any hyperplane H in E and any (nonconstant) aﬃne form f : E → R such that H = Ker f .5.5. and the set H of solutions of the equation λ1 x1 + · · · + λm xm = µ is the null set. For any other aﬃne form g : E → R such that H = Ker g. f (a + v) = f ∗ (v). for some λ ∈ R. clearly. for an aﬃne form f . . and we call it the kernel of f . .2. Recall that an (aﬃne) hyperplane is an aﬃne subspace of codimension 1. for any a ∈ H. The following properties hold: (a) Given any nonconstant aﬃne form f : E → R. . it is surjective. it is possible that f −1 (0) = ∅. every hyperplane H ′ parallel to H is deﬁned by a nonconstant aﬃne form g such that g(a) = f (a) − λ. there is a nonconstant aﬃne form f : E → R such that H = Ker f .1 (c). Let E be an aﬃne space.1. By lemma A. where x = (x1 . there is some a ∈ E such that f (a) = 0. which implies that f is surjective. Thus. Unlike linear forms f ∗ . then by lemma 2.1. Ker f is a hyperplane H in E . and f is non constant. The second part of (b) is as in lemma A.5. and is left an exercise. which are just aﬃne maps f : E → R from an aﬃne space to R. H = Ker f ∗ for some nonnull linear form f ∗ . xm ) ∈ Rm . Lemma 2. we also denote f −1 (0) as Ker f . and thus. − → Proof.

Problem 2 (20 pts). Given a triangle (a. 1/4).d . xn ) are the coordinates of x with respect to the aﬃne u u → → frame (a0 . 1/4) and (gd . and (c. the map Φa : E → E deﬁned such that for every b ∈ E. xn ) = λ1 x1 + · · · + λn xn + µ. Let E be a nonempty set. and assume that → − − → there is a function Φ : E × E → E . (a) Given a tetrahedron (a. λn ∈ R. and E a vector space.10 Problems Problem 1 (10 pts). 1/3) then g is the barycenter of (d. denoting f (a0 + x) as f (x1 . and (d. Prove that the barycenter g of the weighted points (a. 1/4). . . u u Also recall that every linear form f ∗ is such that f ∗ (x) = λ1 x1 + · · · + λn xn . 1/4). b. given an aﬃne frame (a0 . xn ). . an hyperplane is the set points whose coordinates (x1 . d). . (ma.48 CHAPTER 2. 3/2).b . 1/4). and (c. . give a geometric construction of the barycenter of the weighted points (a. . is the common intersection of the line segments (ma. let let mx. y). is a bijection. . . . 3/4).y be the middle of the edge (x. the following properties hold: → → → − − (1) ab + bc = − for all a.c .d ).c ). . . such that if we denote Φ(a. (c. . . .d ). (b. Give a geometric construction of the barycenter of the weighted points (a. and (ma. . Φa (b) = ab. b. . . . c. 1/2). − → − → Let Ψa : E → E be the inverse of Φa : E → E . . . for every → → u x = x1 −1 + · · · + xn −n . (b. . c ∈ E. ac. c). mb. Since an aﬃne form f : E → R satisﬁes the u property f (a0 + x) = f (a0 ) + f (x). . λn ∈ R. (−1 . . where µ = f (a0 ) ∈ R. Show that if gd is the barycenter of the weighted points (a. b. y ∈ {a. mc. −n )). given any two distinct points x.6. → − − → (2) For every a ∈ E. where (x1 . . we see that we have f (x1 . 1/3). b) as ab. . c. . . b. (−1 . . mb. (c. (b. 1/4). for some λ1 . 3/2).4 that every point of E can be expressed uniquely as x = → → a0 + x1 −1 + · · · + xn −n . − → Problem 3 (20 pts). . −2). . d}. − → Prove that the function + : E × E → E deﬁned such that a + u = Ψa (u) . recall from deﬁnition 2. 2. BASICS OF AFFINE GEOMETRY → → When E is of dimension n. and λ1 . −n )) of E with origin u u a0 . Thus. (b. We are now ready to study polynomial curves. . 1/4). xn ) satisfy the (aﬃne) equation λ1 x1 + · · · + λn xn + µ = 0. 1/3). .

b1 . b. with respect to the standard aﬃne frame for A2 .10. PROBLEMS 49 − → − → for all a ∈ E and all u ∈ E . b2 ). we obtain an equivalent characterization of aﬃne spaces. prove that a. d in the aﬃne space A3 . be the coordinates of a. and (c1 . Letting (a0 . +) into an aﬃne space. b. the determinant is null. b. d are coplanar iﬀ a0 a1 a2 a3 b0 b1 b2 b3 c0 c1 c2 c3 d0 d1 =0 d2 d3 Problem 5 (10 pts). c2 . b1 . (b1 . be the coordinates of a. − → Note: We showed in the text that an aﬃne space (E. (b0 . and (c0 . b. c. be the barycentric coordinates of a. with respect to the standard aﬃne frame for A3 . +) satisﬁes the properties stated above. (b0 . c are collinear iﬀ a0 b0 c0 a1 b1 c1 = 0 a2 b2 c2 Given any four points a. c2 )..e. a1 . with respect to the standard aﬃne frame for A3 . b. Problem 4 (20 pts). a2 ). c3 ). and (d0 . c are collinear iﬀ a1 b1 c1 a2 b2 c2 = 0 1 1 1 i.e. a2 ). a1 .. b. (c1 . (b1 . prove that a. Thus. c. a3 ). d2 . c in the aﬃne plane A2 . c1 . b3 ). The function f : A → A3 . letting (a1 . the determinant is null. b. b. c. d1. c3 ). c. prove that a. c. E . Given any three points a. d. t3 ). b2 . d2 . prove that a. b. d3 ). b. t2 . be the barycentric coordinates of a. given by t → (t. b2 . (c0 . a2 . Letting (a0 .2. . c. c2 . E . letting (a1 . with respect to the standard aﬃne frame for A2 . c. c1 . d. d3 ). a3 ). b2 ). and (d1 . c2 ). a2 . b3 ). d are coplanar iﬀ a1 b1 c1 d1 a2 b2 c2 d2 =0 a3 b3 c3 d3 1 1 1 1 i. makes (E.

uv ′ − vu′ ). prove that the points f (t1 ). or u = w. t3 . and f (t4 ). a2 ) and (b0 . or v = w.50 CHAPTER 2. t4 . show that the equation of the line a. let u v w d = u′ v ′ w ′ = vw ′ − wv ′ + wu′ − uw ′ + uv ′ − vu′ . v. a1 . f (t3 ). b in A2 of barycentric coordinates (a0 . A triple (u. and that when it exists. BASICS OF AFFINE GEOMETRY deﬁnes what is called a twisted cubic curve. a2 b2 z or equivalently (a1 b2 − a2 b1 )x + (a2 b0 − a0 b2 )y + (a0 b1 − a1 b0 )z = 0. v. Given two lines D and D ′ in A2 deﬁned by tangential coordinates (u. b determined by a and b is a0 b0 x a1 b1 y = 0. f (t2 ). wu′ − uw ′. Problem 7 (30 pts). where (x. 1 1 1 (a) Prove that D and D ′ have a unique intersection point iﬀ d = 0. w) for some λ ∈ R (with λ = 0). Given any two distinct points a. w ′) (as deﬁned in problem 6). Prove that the equation of a line in barycentric coordinates is of the form ux + vy + wz = 0. t2 . b1 . or v = w. w ′ ) = λ(u. w) and (u′ . where u = v. or u = w. Have you heard of the Vandermonde determinant? Problem 6 (20 pts). Given any four pairwise distinct values t1 . are not coplanar. y. d . j). Hint. w) where u = v. v ′ . i. b . v. is called a system of tangential coordinates of the line deﬁned by the equation ux + vy + wz = 0. z) are the barycentric coordinates of the generic point on the line a. Show that two equations ux + vy + wz = 0 and u′ x + v ′ y + w ′ z = 0 represent the same line in barycentric coordinates iﬀ (u′ . the barycentric coordinates of this intersection point are 1 (vw ′ − wv ′. v ′. b2 ) with respect to any given aﬃne frame (O.

The triple (x. D ′ . (u′. C) be a triangle in A2 . the aﬃne frame (A. or u = w. w). and D ′′ . uv ′ − vu′ ). v ′ . if D = D ′ . m′′ ). (a) Assuming that M = C. v ′′. N. n′′ ).t. and deﬁned by tangential coordinates (u. N = A. w ′′ ). z) such that x + y + z = 0 is called the barycentric coordinates of the vector − → − → y Oi + z Oj w. at least two of which are distinct. w. In this case. N. and P = B. C). (n. z). PROBLEMS 51 (b) Letting (O. and AB. P are collinear iﬀ m′′ np′ + m′ n′′ p = 0. m′ . y. z) (where x + y + z = 1) has for direction the set of vectors of barycentric coordinates (x. prove that for u = v. the vector − → → − → − xaO + y ai + z aj is independent of a and equal to − → − → y Oi + z Oj = (y.10. Given any aﬃne frame (O. i. and (u′′ . P be three points respectively on the line BC. CA. .r. show that the common direction of D and D ′ is deﬁned by the vector of barycentric coordinates (vw ′ − wv ′ . D ′ . show that − → −→ − − − → MB NC P A m′′ np′ = − ′ ′′ . u′′ v ′′ w ′′ Problem 8 (30 pts). i.r. y. − → −→ − − − − → mn p MC NA P B (b) Prove Menelaus’ theorem: the points M. Let (A. j). the aﬃne frame (O. Prove that D and D ′ are parallel iﬀ d = 0. (c) Given three lines D. y.t. or v = w. of barycentric coordinates (0. for any point a. recall that when x + y + z = 0. 0).2. p′ . wu′ − uw ′. 0. j) be any aﬃne frame for A2 . j). the line of equation ux + vy + wz = 0 in barycentric coordinates (x. B. w ′ ). i.e. and D ′′ are parallel or have a unique intersection point iﬀ u v w u′ v ′ w ′ = 0. and (p. prove that D. Let M. m′ n′′ p = 0. z) such that ux + vy + wz = 0 (where x + y + z = 0). B. i. v.

deﬁne N = (n. let M denote a nonnull vector deﬁning the common ′ direction of D0 and D0 . 7. BN. In either case. and P = B. N = A. y. and (D2 . y. are the normalized barycentric coordinates of M. m′ . let (m. CP have a unique intersection point or are parallel iﬀ m′′ np′ − m′ n′′ p = 0. n ) as the intersection of D1 and D1 . n . Then. in both cases of barycentric coordinates (vw ′ − wv ′ . D1 ). any triple (x. y. and P = B. wu′ − uw ′. this −→ − MB −→ − MC is equivalent to −→ − − → NC P A −→ − = −1. − − → NA P B Problem 9 (20 pts).52 CHAPTER 2. z) of a point M. This problem uses notions and results from problems 6. N = A. and if D0 and D0 are parallel. When M = C. b. D0 ). ′ as explained at the beginning of the problem. z) such that x + y + z = 0 is also called a system of barycentric coordinates for the point of normalized barycentric coordinates 1 (x. Prove that m n p m′ n′ p′ = 0 m′′ n′′ p′′ . z). If D0 and D0 have a unique intersection point. let M be ′ this point. we will say that the barycentric coordinates (x. c) in A2 . m′′ ) be the barycentric coordinates of M. where x + y + z = 1. BASICS OF AFFINE GEOMETRY When M = C. and 8. such that the four lines belonging to any union of two of the above pairs are neither parallel not concurrent ′ (have a common intersection point). ′ ′′ ′ ′ ′′ Similarly. D2 ) be three pairs of six distinct lines. x+y+z With this convention. ′ ′ ′ Let (D0 . the intersection of the two lines D and D ′ is either a point or a vector. (D1 . p . p ) as the ′ intersection of D2 and D2 . Given any aﬃne frame (a. − − − → MC NA P B (c) Prove Ceva’s theorem: the lines AM. it is natural to extend the notion of barycentric coordinates of a point in A2 as follows. this is equivalent to − → −→ − − − → MB NC P A − → −→ − = 1. and P = (p. When the above is a vector. In view of (a) and (b) of problem 7. We call M the intersection of D0 and D0 . we can think of it as a point at inﬁnity (in the direction of the line deﬁned by that vector). uv ′ − vu′ ).

Di ) (i = 0. Problem 12 (30 pts). BB ′ . 1) γ β λ y = 0. B. then the lines AA′ . and (D2 . y. δ λ µ 1 0 0 C = 0 1 0 1 1 1 x X = y . B. (D1 . If no three of these points are collinear. B ′ . C ′ A′ ). then the intersection points (in the sense problem 7) of the pairs of lines (BC ′ . and these two intersection points are distinct and determine a line ′ parallel to the lines of the pair (Di . P are distinct and collinear. BA′ ) are collinear in the sense of problem 9. D1 ). If these points are all distinct from the intersection of D and D ′ (if it exists). B ′ . Di ) are parallel. and (AB. C. δ λ µ 1 x 1 0 0 x y = 0 1 0 y . D2 ) are pairs of parallel lines. C ′ be six distinct points of A2 . or ′ (iii) Each pair (Di . A′ . y. z) (where x + y + z = 1). C. where α = 0. C ′ be distinct points respectively on D and D ′ . (CA′ . Dj ) (with j = i) has a unique intersection point. CB ′ ). a conic is the set of points of coordinates (x. The purpose of this problem is to prove Pascal’s Theorem for the nondegenerate conics. and (AB ′ . z If we now use barycentric coordinates (x. PROBLEMS iﬀ either ′ ′ ′ (i) (D0 . 2) has a unique intersection point. D0 ). y) such that αx2 + βy 2 + 2γxy + 2δx + 2λy + µ = 0. We can write the equation of the conic as x α γ δ (x. and let A. P (in the sense of problem 7) of the pairs of lines (BC. Prove the following version of Pappus’ Theorem. AC ′ ). and these points M. 1. N. or 53 ′ ′ (ii) The lines of some pair (Di . Problem 10 (20 pts). and A′ . Problem 11 (20 pts).10. Let D and D ′ be distinct lines. Prove the following version of Desargues’ Theorem. Let A. we can write and . N. 1 1 1 1 z Let α γ δ B = γ β λ . A′ B ′ ) are collinear in the sense of problem 9. or β = 0. or γ = 0. (CA. and CC ′ are parallel or collinear iﬀ the intersection points M. Di ).2. B ′ C ′ ). each pair (Dj . In the aﬃne plane A2 .

Problem 13 (10 pts). . Use the aﬃne frame (A. cb′ . λ ∈ R. C). (ab′′ . The equation X ⊤ AX = 0 is called the homogeneous equation of the conic. (b. 1/3). the conic is the union of two lines. Assume that K is a ﬁeld such that 2 = 1 + 1 = 0. 1/3). c′′ a′ ). for . Show that this condition does not depend on the choice of the aﬃne frame.54 CHAPTER 2. such that λi = 1. N. BASICS OF AFFINE GEOMETRY (a) Letting A = C ⊤ BC. AC ′ ). 1). an ) be any n ≥ 3 points in E. (c′ a. CB ′ ). b. with λ1 + · · · + λn = 1. y ∈ V . 4). and show that M. We say that a conic of homogeneous equation X ⊤ AX = 0 is nondegenerate if det(A) = 0. Deduce from the above that a nonempty subset V of E is an aﬃne subspace iﬀ whenever V contains any two points x. Problem 14 (20 pts). and degenerate if det(A) = 0. To simplify the notation. From this. If an aﬃne map takes the vertices of triangle ∆1 = {(0. C has an equation of the form ayz + bxz + cxy = 0. . . B ′ . 0). Show that the barycenter λ1 a1 + · · · + λn an can be obtained by ﬁrst determining the barycenter b of the n − 1 points a2 . C. . . that det(A) = det(B). B. if no three of the above points are collinear. an assigned some appropriate weights. b′ . prove that the equation of the conic becomes X ⊤ AX = 0. does it also take the centroid of ∆1 to the centroid of ∆2 ? Justify your answer. assume that λ1 = 1. a′′ b′′ ). B ′ . . Hint. . λn ) be any n scalars in R. . 9)} to the vertices of triangle ∆2 = {(1. and (AB ′ . and then the barycenter of a1 and b assigned the weights λ1 and λ2 + · · · + λn . and that X ⊤ AX is homogeneous of degree 2. C ′ . Show that there must be some i. C ′ respectively. P (in the sense of problem 7) of the pairs of lines (BC ′ . The centroid of a triangle (a. c′ a′ . Problem 15 Extra Credit (20 pts). a′′ ). Let E be an aﬃne space over R. (3. B. N. a′′ b′ . and let (a. . and let (a1 . Prove that A is symmetric. Prove that a conic containing more than one point is degenerate iﬀ it contains three distinct collinear points. B. be the barycentric coordinates of A′ . P have barycentric coordinates (bc. show that the barycenter of any n ≥ 3 points can be determined by repeated computations of barycenters of two points. Given any six distinct points A. In this case. prove that any conic passing through A. (c) Prove Pascal’s Theorem. . and (c. 1/3). b′′ ). BA′ ). c′ . . (c. then a nondegenerate conic passes through these six points iﬀ the intersection points M. and let E be an aﬃne space over K. (b. . 1 ≤ i ≤ n. (0. 1)}. c) is the barycenter of (a. (CA′ . (6. (b) Given any aﬃne frame (A. c′′ ). (5. then V contains the entire line (1 − λ)x + λy. c′′ b). In the case where λ1 + · · · + λn = 1 and λi = 1. C). A′ . B. are collinear in the sense of problem 9. 0). a′ . Let (λ1 .

bd) λ0 = − → − . a. λ ∈ K. and λi = 1. λ2 . det( ab. → → − − . ad) det( ab. Oc) (iii) Let (a. y ∈ V . λ2 are certain signed ratios of the areas of the triangles (a. Since there is some µ ∈ K such that µ = 0 and µ = 1. Ob. λ1 . c). Oc) det(Oa. c). → −. b.2. Prove that a nonempty subset V of E is an aﬃne subspace iﬀ whenever V contains any two points x. λ2 = → → → − − − . assume that the ﬁeld K contains at least three elements (thus. ac) det( ab. λ2 ) are the barycentric coordinates of x with respect to (a. c). ad) det( ab. show that → − → → − − → → ac) det(− − ax. prove that − − − → → → − − − → → → − − − → → → det(Ox. 1−µ 1−µ Problem 16 (20 pts). bc) λ1 = λ2 = λ0 = → − − → . if x = λ0 a + λ1 b + λ2 c. for 1 ≤ i ≤ n. λ3 = → − → − → − . if x = λ0 a + λ1 b + λ2 c + λ3 d. bc. b. ac) Conclude that λ0 . − − ac. show that n must be odd. λ1 = → − → → − → − → − . c). ac. → det( ab. Hint. and that the problem reduces to computing the barycenter of three points in two steps involving two barycenters. b. λ1 . λ3 ) are the barycentric coordinates of x with respect to (a. λ1 + · · · + λn = 1. Prove that the barycenter of any n ≥ 3 points can be determined by repeated computations of barycenters of two points. Oc) det(Oa. ad) det( ab. det( ab. Oc) det(Oa. c) are not collinear. c. λ2 = → → → − − − . d) be four points in A3 . then V contains the entire line (1 − λ)x + λy. c) be three points in A2 . b. For any point x in the plane determined by (a. λ1 = → → → − − − . ac) det( ab. → → → det(Oa. b. ad) . and use the fact that −µ 1 + = 1. (ii) Let (a. b. c. Ob. When 2 = 0. For any point x ∈ A3 . d). and assume that (a. − det(− − ad) ax. ac. and assume that (a. b. λ1 . show that the barycenter a1 + a2 + · · · + an can still be computed by repeated computations of barycenters of two points. a. where (λ0 . PROBLEMS 55 1 ≤ i ≤ n and n ≥ 3. → det( ab.10. if x = λ0 a + λ1 b + λ2 c. c). b. d) are not coplanar. det( ab. but 2 = 1 + 1 = 0 is possible). Oc) det(Oa. b). ac. b. Ox) λ0 = − − − . λ2 ) are the barycentric coordinates of x with respect to (a. → −. (x. ac. and assume that (a. (x. b. where (λ0 . where (λ0 . c). c) are not collinear. (i) Let (a. Ob. there is some µ ∈ K such that µ = 0 and µ = 1. − ad) ax. and (x. ab × → ac ab × → ac ab × → ac Given any point O not in the plane of the triangle (a. → − − → . − ax) det(xb. Ob. show that → → − − → → − − − ×− → ac ax → ab × ax xb × bc λ1 = − λ2 = − λ0 = − → −. c. Ob. b. c). b. Finally. note that µ−1 and (1 − µ)−1 both exist. show that → − → − → − → → − → − → → − → → → ac. c) be three points in A3 . Ox. For any point x ∈ A2 . b. ax) det(xb. λ1 .

λ1 . . . . . . λ3 are certain signed ratios of the volumes of the ﬁve tetrahedra (a. b. 2 √ 3 1 ′ . − ai+1 . . where 0 ≤ i ≤ m. . translation. − am ) a− 1 a0 − a− i a0 − a0 → 0a 0 for every i. − am ) a− 1 a0 − a→ a0 − a0 → 0a 0 λi = −→ a −→ − det(− →. . . . (iv) Let (a0 . − →. consider the three geometric transformations f1 . −→. . b. scaling?) (b) Given any polygonal line L. − ai−1 . . − am ) a− 1 a− i a0 → 0a 0a Conclude that λi is the signed ratio of the volumes of the simplexes (a0 . det(− →. ai . . . (x. 1 ≤ i ≤ m. . show that −→ −→ − det(− →. . 4 1 x′ = x. . . − ai+1 . d). c. . . λm ) are the barycentric coordinates of x with respect to (a0 . − ai−1 . f2 . . With respect to the standard aﬃne frame for the plane A2 . BASICS OF AFFINE GEOMETRY Conclude that λ0 . c. c. . d). λ2 . c). am ) and (a0 . . am ) be m+1 points in Am . (x. . . . . y′ = 4 4 4 √ 1 3 x =− x+ y− 4 4 √ 3 1 x− y+ y′ = − 4 4 ′ 3 . f3 deﬁned by √ 3 1 3 ′ x =− x− y+ . . d). . . . a. where (λ0 . x. . . − am ) 1 − . − x. . . . Sn+1 = f1 (Sn ) ∪ f2 (Sn ) ∪ f3 (Sn ). . . . 4 √4 √4 3 1 3 x− y+ . . deﬁne the following sequence of poygonal lines: S0 = L. −→. if x = λ0 a0 + · · · + λm am . am ). . 4 √ 3 .56 CHAPTER 2. . and λ0 = − → a a1 → xa a− 2 det(− 1 . . b. . and (x. . d). . . a. Problem 17 (30 pts). am ). . . . b. a. . . For any point x ∈ Am . . (x. and assume that they are aﬃnely independent. . . Can you describe geometrically what their action is (rotation. y = y+ 2 2 (a) Prove that these maps are aﬃne.

2. (2) Consider aﬃne maps of the form x1 x2 → λ cos θ −λ sin θ µ sin θ µ cos θ x1 x2 + b1 . and where z = x − iy if z = x + iy. (c) Consider the set of geometric transformations of the form z → az + b or z → az + b. (3) Prove that the aﬃne map x1 x2 → 8 5 3 10 6 −5 2 5 x1 x2 + 1 1 . Describe what these maps do geometrically. The purpose of this problem is to study certain aﬃne maps of A2 . Problem 19 (20 pts). these aﬃne maps are represented by rotation matrices. Prove that these maps are aﬃne and that this set of maps is a group under composition. 0). 0)). a point of coordinates (x. there is some angle θ for which either there is no ﬁxed point. Show that these are rotations of center c.10. Prove that if λµ = 1 and λ > 0. (1. b are complex numbers such that a = 0. b2 Prove that such maps have a unique ﬁxed point iﬀ (λ + µ) cos θ = 1 + λµ. b2 Prove that such maps have a unique ﬁxed point c if θ = 2kπ. (1) Consider aﬃne maps of the form x1 x2 → cos θ − sin θ sin θ cos θ x1 x2 + b1 . 57 Can you ﬁgure out what Sn looks like in general? (you may want to write a computer program). where a. y) can be represented as the complex number z = x + iy. with respect to the standard aﬃne frame. for all integers k. (a) Prove that these maps are aﬃne. where a. PROBLEMS Construct S1 starting from the line segment L = ((−1. b are complex numbers such that a = 0. or there are inﬁnitely many ﬁxed points. which means that with respect to a frame with origin c (the unique ﬁxed point). (b) Prove that the above set of maps is a group under composition. In the plane A2 . Describe what these maps do geometrically. Do you think that Sn has a limit? Problem 18 (20 pts). Consider the set of geometric transformations of the form z → az + b.

E) be any aﬃne space of ﬁnite dimension For every aﬃne map f : E → E. Show that −− −→ − −− → −−→ − → − → Ωf (a) − Ωa = Ωf (Ω) + f (Ωa) − Ωa. b.58 has no ﬁxed point.. . Hint. . Investigate whether there is a closed polygon with n vertices (a1 . let F ix(f ) = {a ∈ E | f (a) = a} be the set of ﬁxed points of f . and assume that they are not collinear. Hint. Problem 22 (20 pts). a ∈ E. Let H be the plane of equation αx + βy + γz + δ = 0. an ) such that ci is the middle of the edge (ai . BASICS OF AFFINE GEOMETRY (4) Prove that an arbitrary aﬃne map x1 x2 → a1 a2 a3 a4 x1 x2 + b1 b2 has a unique ﬁxed point iﬀ the matrix a1 − 1 a2 a3 a4 − 1 is invertible. CHAPTER 2. The parity (odd or even) of n plays an important role. for any two points Ω. there are no solutions or inﬁnitely many solutions. a0 ). Let (E. (i) Prove that if F ix(f ) = ∅. b. c)? . Problem 21 (20 pts). . Let (c1 . there is a unique solution. . and cn is the middle of the edge (an . be any distinct points in A3 . c. b. (i) What is the intersection of the plane H and of the solid triangle determined by a. then F ix(f ) is an aﬃne subspace of E such that for every b ∈ F ix(f ). and when n is even. . When n is odd. . (ii) Prove that F ix(f ) contains a unique ﬁxed point iﬀ Ker (f − id) = {0}. . . − → i. f (u) = u iﬀ u = 0. Let a.e. Clarify under which conditions there are inﬁnitely many solutions. F ix(f ) = b + Ker (f − id). c (the convex hull of a. cn ) be n ≥ 3 points in Am (where m ≥ 2). Problem 20 (20 pts). ai+1 ) for every i with 1 ≤ i ≤ n − 1.

Mathematica. . b.10. etc). Maple. PROBLEMS 59 (ii) Give an algorithm to ﬁnd the intersection of the plane H and of the triangle determined by a. (iii) (extra credit 20 pts) Implement the above algorithm so that the intersection can be visualized (you may use.2. Matlab. c.

BASICS OF AFFINE GEOMETRY .60 CHAPTER 2.

Part II Polynomial Curves and Spline Curves 61 .

62 .

Oversimplifying a bit. or several pieces joined together? We can model the entire shape S via a single system of equations. Parametric or Implicit Model? Mathematically. Later on.e. and unsuitable to tackle problems for which it may be necessary to modify certain parts and leave the other parts unchanged. we have to choose some mathematical model for deﬁning curves and surfaces. with some degree of smoothness. and we will now concentrate on modelling a single curve or surface. Given that we adopt such a model. Nevertheless. or as the zero locus of this function (i. since composite shapes are decomposed into simpler pieces. we model composite shapes with splines. manipulate. possibly composite. when a shape S is modeled by a system of equations. the shape S lives in some object space E of some dimension n (typically.Chapter 3 Introduction to the Algorithmic Geometry of Polynomial Curves 3. we face a number of questions which are listed below. In CAGD jargon. the set of points that are mapped to “zero” under F ). Such design problems are usually handled by breaking the curve or surface into simpler pieces.1 Why Parameterized Polynomial Curves? In order to be able to design. The kind of model that we will adopt consists of specifying a curve or surface S in terms of a certain system of equations. and by specifying how these pieces join together. the aﬃne plane A2 . A single piece.. we will come back to splines. But for complex shapes. and the shape has some dimension s ≤ n (s = 1 for a curve. which is used to determine which points lie on S and which do not. s = 2 for a surface). Furthermore. and render curves and surfaces. and the shape S is viewed either as the range of this function. such an approach is not modular. we view these equations as deﬁning a certain function F . a combinatorial explosion usually occurs which makes this approach impractical. or the 3D aﬃne space A3 ). The two models just mentioned deﬁne S either in terms of 63 . it is very important to know how to deal with these simpler building blocks eﬀectively. This is usually mathematically simpler. and it works well for very simple shapes.

64 CHAPTER 3. For example.1: A parabola a function F : P → E. the parameter space P also has dimension s ≤ n. a shape S of dimension s speciﬁed by a function F : P → E. F2 (t) = t2 . where A2 denotes the aﬃne plane). F2 (t) = t − 1. Thus. the function F : A → A2 deﬁned such that F1 (t) = 2t + 1. represents a straight line in the aﬃne plane. and P = A2 for a surface. INTRODUCTION TO POLYNOMIAL CURVES Figure 3. or a function F : E → P . where A denotes the aﬃne line. is deﬁned as the range F (P ) of the function F . . we say that we have a parametric model . for some parameter value a ∈ P (possibly many parameter values). where E is of dimension n ≥ s. represents a parabola in the aﬃne plane. In the parametric model . The function F : A → A2 deﬁned such that F1 (t) = 2t. in which case P doesn’t have a standard name. and in the second case where F : E → P . In the ﬁrst case where F : P → E. we say that we have an implicit model . Let us examine each model. Every point lying on the shape S is represented as F (a). where P is another space called the parameter space (typically P = A for a curve.

represents what is known as a hyperbolic paraboloid . F2 (t) = t2 . the function F : A → A3 deﬁned such that F1 (t) = t. For an example of a surface. v) = u.3. F2 (u. Roughly speaking. v) = 2u2 + v 2 . v) = v. v) = u.1.2: A hyperbolic paraboloid For a fancier example of a space curve. it looks like a saddle (an inﬁnite one!). F3 (t) = t3 . WHY PARAMETERIZED POLYNOMIAL CURVES? y 0 -1 -2 4 2 -2 1 x -1 0 1 2 65 2 z 0 -2 -4 Figure 3. the function F : A2 → A3 deﬁned such that F1 (u. represents a curve known as a twisted cubic. . v) = v F3 (u. in the 3D aﬃne space A3 . The function F : A2 → A3 deﬁned such that F1 (u. F2 (u. v) = u2 − v 2 . represents what is known as an elliptic paraboloid . F3 (u.

a shape S of dimension s speciﬁed by a function F : E → P . since we are primarily interested in the real part of shapes (curves and surfaces). is deﬁned as the zero locus F −1 (0) of the function F . since the equation x2 + y 2 = −1 has no real solutions. it possible that F −1 (0) = ∅. F3 (u. an algebraically closed ﬁeld). In the implicit model . F (a) = 0}. F2 (u. Thus. For example. Of course. F deﬁnes the empty curve. but does not help us much for visualizing the shape. v) = v. In this case. INTRODUCTION TO POLYNOMIAL CURVES 2 y 0 -1 -2 4 1 3 z 2 1 0 -2 -1 0 x 1 2 Figure 3. if F : A2 → A is the function deﬁned such that F (x. where E is of dimension n ≥ s. that is. we will make the working assumption that we are only considering functions that deﬁne nonempty shapes.3: An elliptic paraboloid For a more exotic example. In order to avoid such situations. the space P is a vector space. v) = u. This would have certain mathematical advantages. as the set of zeros of the function F : S = F −1 (0) = {a | a ∈ E.66 CHAPTER 3. and it has some dimension d ≥ n − s. we could assume that our spaces are deﬁned over the ﬁeld of complex numbers (or more generally. represents what is known as the monkey saddle. . v) = u3 − 3v 2 u. y) = x2 + y 2 + 1. the function F : A2 → A3 deﬁned such that F1 (u.

4: A monkey saddle There are some serious problems with such an assumption. for all x.5 -1 2 -1 1 0. z) = y − x2 . As a simple example of a curve deﬁned implicitly. F2 (x. deﬁnes a straight line (in fact.3. z) = z − xy. y. since we immediately see that y = x2 /4 for every point on this parabola. WHY PARAMETERIZED POLYNOMIAL CURVES? y 0 -0. y. the same line as deﬁned above parametrically). Although this is not entirely obvious. where implicit equations of shapes are directly available. deﬁnes the same parabola as the above parametric deﬁnition. y ∈ A. y) = 2x2 + y 2 − 1. the twisted cubic is deﬁned implicitly by the function F : A3 → A2 . it is not clear that it can be decided whether an arbitrary algebraic equation has real solutions or not. the implicit model is more natural to deal with certain classes of problems. The function F : A2 → A deﬁned such that F (x.5 x -0. . For example.1. However. These complications are one of the motivations for paying more attention to the parametric model. y) = 2y − x + 3 for all x.5 1 67 1 z 0 -1 -2 Figure 3. for all x. the function F : A2 → A deﬁned such that F (x. deﬁned such that F1 (x. y) = 4y − x2 . y ∈ A. y ∈ A. The function F : A2 → A deﬁned such that F (x.5 0 0. deﬁnes an ellipse in the aﬃne plane.

and turns out to be suﬃcient for most purposes. z) = z − 2x2 − y 2 . The elliptic paraboloid discussed in the parametric model is deﬁned by the function F (x. From a practical point of view. we may want to use a simpler class of functions. dealing with rational fractions turns out to be largely reduced to dealing with polynomials. instead of saying that S is the zero locus of the function F : E → P . z) = z − x2 + y 2 .68 CHAPTER 3. to yield shapes that are reasonably smooth. we can turn to the class of functions deﬁnable by rational funtions (fractions of polynomials). the unit circle is deﬁned implicitly by the equation x2 + y 2 − 1 = 0.. This last example leads us to another major question: What Class of Functions for F ? Although trigonometric functions are perfectly ﬁne. for computational (algorithmic) reasons. using polynomials is rarely a restriction (continuous functions on reasonable domains can . y. we should only consider continuous functions which are suﬃciently diﬀerentiable. . . . or that S is the zero locus of the above system of equations. . z) = x2 + y 2 + z 2 − 1. The class of functions deﬁnable by polynomials is very well-behaved. which is suﬃcient for most computational applications. deﬁned such that F (x. When polynomials are insuﬃcient. Fd ). INTRODUCTION TO POLYNOMIAL CURVES The unit sphere is deﬁned implicitly by the function F : A3 → A. F2 = 0. y. we usually say that S is deﬁned by the set of equations F1 = 0. since the function F corresponds to d scalar-valued functions (F1 . and it has the parametric representation x = cos θ. Certainly. Fd = 0. As a matter of fact. y. For another familiar example. The hyperbolic paraboloid discussed in the parametric model is deﬁned by the function F (x. y = sin θ.. . If P has dimension d ≥ n − s.

In fact. degree depends on how many pieces are involved and how complex each pieces joined small pieces. the function F : P → E provides immediate access to points on the shape S: every parameter value a ∈ P yields a point F (a) lying on the shape S. since polynomials are diﬀerentiable at any order. it is easier to “carve out” portions of the shape.1. given a parametric deﬁnition F : P → E for a shape S. to determine whether b ∈ S usually requires solving a system of algebraic equations. there is one more question. Given a point b ∈ E. as we shall see very soon. Thus. Also. it is often useful to ﬁnd an implicit deﬁnition G : E → P for S. In general. In the parametric model. Bold readers are urged to consult Fulton [37] or Harris [41]. venerable. studying shapes S deﬁned by systems of polynomial equations is essentially the prime concern of algebraic geometry. For example. which may be very diﬃcult.3. It should also be noted that if we consider parametric curves F : A → E deﬁned by functions that are more general than polynomial or rational functions. for example. there are some subtleties regarding over which ﬁeld we view the curves or surfaces as being deﬁned. it can be shown that it is always possible to ﬁnd an algebraic implicit deﬁnition G for S. This is not so for the implicit model. and for m = 3 for rational functions. and an even more modest use of very elementary notions of algebraic geometry.1 This is called implicitization. studying shapes S deﬁned by systems of parametric polynomials (or rational fractions) is in some sense subsumed by diﬀerential geometry. where the function F : E → P does not provide immediate access to points in S. the degree could be quite high. we will be dealing with polynomial functions (and rational functions). the degree m = 2 or m = 3 is suﬃcient for the However. Having decided that we will use polynomial (or rational) functions. We will make a very modest use of elementary notions of diﬀerential geometry. what we use primarily is some elements of multilinear algebra. In the case where F is given by rational functions. way beyond the scope of this course. Because the study of shapes modelled as zero loci of polynomial equations is quite diﬃcult. There are other advantages in dealing with the parametric model. the choice of piece is. another venerable subject. and very diﬃcult subject. and is done using the algebraic concept of a resultant. The discrepancy shows up for m = 2 for polynomial functions. by simply considering subsets of the parameter space. 1 . In the implicit model. Nevertheless. WHY PARAMETERIZED POLYNOMIAL CURVES? 69 be approximated by polynomial functions). What Degree for F ? In most practical applications involving many small together (splines). then some unexpected objects show up as the traces of Actually. functions that are only continuous. we will focus primarily on the study of shapes modelled parametrically. This is a fascinating. It should be noted that it is not always possible to go from an implicit algebraic deﬁnition G : E → P for S to a parametric algebraic deﬁnition F : P → E for S. for a single piece.

Polynomials certainly qualify! Before we launch into our study of parametric curves. y) = 0. we believe that it may be useful to review brieﬂy what kind of plane curves are deﬁned in the implicit model. and we brieﬂy mention the classical bifocal deﬁnition. of equation y 2 = 4ax. that is. x2 y 2 + 2 =1 a2 b (Without loss of generality. y) is a polynomial in x. with a plane). Hyperbolas. and the line D of equation x = −a (parallel to the y-axis). of total degree m ≤ 2. For any point M in the plane. with real coeﬃcients.e. of equation The above deﬁnitions are algebraic. y. For m = 1. i. 1] → A2 whose trace is the entire unit square (including its interior)! See the problems. Except for some degenerate cases. if H is the intersection of the perpendicular through M to D. Such an equation deﬁnes a (plane) conic (because it is the curve obtained by intersecting a circular cone. 2 . The general curve of degree 2 is deﬁned by an equation of the form ax2 + bxy + cy 2 + dx + ey + f = 0. is called the directrix of the parabola. of equation x2 y 2 − 2 = 1. Let us begin with the parabola. what sort of curves are deﬁned by polynomial equations f (x. which deﬁnes a straight line. 0) is called the focus of the parabola. It is possible to give more geometric characterizations of the conics. For example. a2 b Ellipses. Peano and Hilbert (among others) showed that there are space ﬁlling curves. we can assume a ≥ b). then the parabola of equation y 2 = 4ax is the set of points in the plane such that MH = MF . where f (x.70 CHAPTER 3.. This is a good motivation for assuming that the functions F are suﬃciently diﬀerentiable. and AB denotes the Euclidean length of the line segment AB. continuous curves F : [0. we have the equation ax + by + c = 0. INTRODUCTION TO POLYNOMIAL CURVES curves. The point F of coordinates (a.2 The above deﬁnition of the conics assumes a Euclidean structure on the aﬃne plane. the conics can be classiﬁed in three types (after some suitable change of coordinates): Parabolas. It is very easy to see that straight lines are also deﬁnable in the parametric model.

Then. one can draw the ellipse. one can take a string. WHY PARAMETERIZED POLYNOMIAL CURVES? D H M 71 F Figure 3. using a stick. the parabola of equation y 2 = 4x has focus F = (1. 0).3. the ellipse deﬁned by x2 y 2 + 2 =1 a2 b is the set of points in the plane such that MF + MF ′ = 2a (note that c ≤ a). make two knots at distance 2a from each other. F ′ is a focus of the ellipse. Indeed. since we are assuming that a ≥ b. and drive a nail through each knot in such a way that the nails are positioned on the foci F and F ′ . Let F and F ′ be the points of coordinates (−c.1. on the ground. let c = a2 − b2 (so that a2 = b2 + c2 ). by moving the stick along the string (perpendicular to the ground) in such a way that the string is kept stiﬀ. and directrix D of equation x = −1: √ In the case of an ellipse. 0). 0) and (c. This is the “gardener’s deﬁnition” of an ellipse. Each of F.5: A Parabola For example. Then. .

a = b.72 CHAPTER 3. and F ′ = ( 2. 0). and thus. and the foci are F = √ √ (− 2. that is. parabola. Each of F. F ′ is a focus of the hyperbola. the hyperbola x2 − y 2 = 1 √ √ √ is such that a = b = 1. The foci are F = (−4. the constant c e= >0 a .6: An Ellipse For example. and F ′ = (4. and thus c = a2 − b2 = 25 − 9 = 16 = 4. the hyperbola deﬁned by x2 y 2 − 2 =1 a2 b is the set of points in the plane such that | MF − MF ′ | = 2a (note that c > a). √ In the case of an hyperbola. 0): The case where c = 0. 0): In the case of an ellipse. c = a2 + b2 = 1 + 1 = 2. we let c = a2 + b2 (so that c2 = a2 + b2 ). 0) and (c. the ellipse x2 y 2 + =1 25 9 √ √ √ is such that a = 5. INTRODUCTION TO POLYNOMIAL CURVES M F F′ Figure 3. or hyperbola (where c > 0). Then. 0). For example. corresponds to a circle. Let F and F ′ be the points of coordinates (−c. 0). b = 3.

WHY PARAMETERIZED POLYNOMIAL CURVES? 73 M F F′ Figure 3. y) + ϕ2 (x.3.1. 2. y) + ϕ1 (x. For more details. involving the exentricity. The curve deﬁned by such an equation is called a (plane) cubic. It can be shown that the cubics that have rational representations are characterized by the fact that ϕ1 (x. We will also characterize those cubics that can be deﬁned parametrically in terms of polynomials. all the conics can be deﬁned parametrically using rational fractions. We will see very soon that only the parabolas can be deﬁned parametrically using polynomials. a plane cubic cannot be deﬁned parametrically using rational functions (and a fortiori. y) is a homogenous polynomial of total degree i. There is also a monofocal deﬁnition of ellipses. Berger or Pedoe. 3.7: A Hyperbola is called the exentricity of the conic. where each ϕi (x. y) is the null polynomial. things become a lot tougher! The general curve of degree 3 is deﬁned by an equation of the form ϕ3 (x. with i = 1. and ϕ0 is a scalar. using polynomials). For m = 3. . y) = 0. and the equation of the cubic becomes ϕ3 (x. the reader is referred to standard geometry texts. parabolas. In this case ϕ0 = 0. for example. y) + ϕ1 (x. On the other hand. In general. we can pick any point of the cubic as the origin. and hyperbolas. y) + ϕ2 (x. y) + ϕ0 = 0. Since we assumed that we are only considering nonempty curves.

. blossoming. . INTRODUCTION TO POLYNOMIAL CURVES After there general considerations. which may seem unusual. getting the implicit equation a1 y − b1 x + a0 b1 − a1 b0 = 0. . Given any aﬃne space E of ﬁnite dimension n and any aﬃne frame → → (a0 . and it will be convenient to “raise” the degree of some of these curve segments to a common degree. We will now try to gain some insight into polynomial curves by determining the shape of the traces of plane polynomial curves (curves living in E = A2 ) of degree m ≤ 3. Fn deﬁning a polynomial curve F of degree m. then d = m is possible. On the way. in most cases. many diﬀerent parametric representations may yield the same trace. For example. .1. − )) for E. . Intuitively. Given any aﬃne frame (r. will in fact be convenient later on for CAGD applications. Deﬁnition 3. we view t ∈ A as the real number t ∈ R.2 Polynomial Curves of degree 1 and 2 x(t) = F1 (t) = a1 t + a0 . A polynomial curve F of degree ≤ 1 is of the form If both a1 = b1 = 0. y(t) = F2 (t) = b1 t + b0 .74 CHAPTER 3. and we begin with a rigorous deﬁnition. . we are more interested in the trace of a curve than in its actual parametric representation. a polynomial curve is obtained by bending and twisting the aﬃne line A using a polynomial map. it is now time to focus on the parametric model for deﬁning curves. Otherwise. it is preferable to consider the parameter space R as the aﬃne line A. As a matter of fact. For reasons that will become clear later on. This decision. the trace of F reduces to the single point (a0 . → → F (t) = a + F (t)− + · · · + F (t)− . such that for every t ∈ A. sometimes called the geometric curve associated with F : A → E. (−1 . we will need to join curve segments of possibly diﬀerent degrees. a (parameterized) polynomial curve segment F [r. and every Fi (X) is a polynomial in R[X] of degree ≤ m. s) for A with r < s. s]. and we can eliminate t between x and y. The set of points F (A) in E is called the trace of the polynomial curve F . a1 = 0 or b1 = 0. we will introduce a major technique of CAGD. e e 0 1 1 n n where t = (1 − t)0 + t1.1. . and it is only required that d ≤ m. For simplicity of notation. a (parameterized) polynomial curve of degree at most m is a map e en F : A → E. Recall that every point t ∈ A is expressed as t = (1 − t)0 + t1 in terms of the aﬃne basis (0. . s] → E of a polynomial curve F : A → E of degree at most m. s] of degree (at most) m is the restriction F : [r. We begin with m = 1. It should be noted that if d is the maximum degree of the polynomials F1 . 1 ≤ i ≤ n. and write F (t) instead of F (t). Also. the set of points F ([r. A parameterized polynomial curve is deﬁned as follows. 3. s]) in E is called the trace of the polynomial curve segment F [r. b0 ). . 1). and similarly.

quadratic curves. y The eﬀect of this rotation is that the curve now “stands straight up” (since ρ > 0). with t0 = − (a1 a2 +b1 b2 ) . If a2 = 0 and b2 = 0. If a1 b2 = a2 b1 . it is convenient to make a change of parameter. we can always assume that either a2 = 0 (or b2 = 0). 75 Let us now consider m = 2.2. Thus. y(t) = F2 (t) = b2 t2 + b1 t + b0 . t= u− 2ρ2 . then we have a degenerate case where x1 (t) is equal to a constant and y1 (t) ≥ y1 (t0 ). POLYNOMIAL CURVES OF DEGREE 1 AND 2 which is the equation of a straight line. and 2 2 consider the matrix R given below: R= b2 ρ a2 ρ − aρ2 b2 ρ Under the change of coordinates x1 y1 we get x1 (t) = a1 b2 − a2 b1 a0 b2 − a2 b0 t+ . Note that the 2ρ2 implicit equation a0 b2 − a2 b0 x1 = ρ gives too much! The above equation yields the entire line. A polynomial curve F of degree ≤ 2 is of the form x(t) = F1 (t) = a2 t2 + a1 t + a0 . y1 (t) = ρt2 + ρ ρ =R x . However. let ρ = a2 + b2 . to suppress the term of degree 1 in t in y1 (t). ρ ρ a0 a2 + b0 b2 a1 a2 + b1 b2 t+ . let us assume that a2 = 0 or b2 = 0. that is.3. whereas the parametric representation yields the upper half line. before doing so. Since we already considered the case where a2 = b2 = 0. there is a mismatch between the implicit representation and the parametric representation. We will come back to this point later on. then we can eliminate t between x1 and y1 . which corresponds to a half line. We ﬁrst show that by a change of coordinates (amounting to a rotation). by letting (a1 a2 + b1 b2 ) . If a1 b2 − a2 b1 = 0.

ellipses and hyperbolas are not deﬁnable as polynomial curves of degree 2. The diagram below shows the parabola deﬁned by the following parametric equations F1 (t) = 2t. and having the Y -axis as axis of symmetry. the nondegenerate polynomial curves of true degree 2 are the parabolas. we have a parametric representation of the form x1 (u − µ) = au + a′0 . . hyperbolas) are precisely the curves deﬁnable as rational curves of degree 2 (parametric deﬁnitions involving rational fractions of quadratic polynomials). Y (u) = bu2 . and we get a parametric representation of the form X(u) = au. Finally. we can change coordinates again (a translation). every parabola is deﬁned by the implicit equation Y = aX 2 . The corresponding implicit equation is Y = b 2 X . Y (u) = au2 . since by an appropriate change of coordinates. letting X(u) = x1 (u − µ) − a′0 . Y (u) = y1 (u − µ) − b′0 . it can be shown easily that ellipses and hyperbolas are not deﬁnable by polynomial curves of any degree. In summary. a2 This is a parabola. On the other hand. with b > 0. Intuitively. In fact. F2 (t) = t2 . every parabola can be deﬁned as the parametric polynomial curve X(u) = u.76 CHAPTER 3. passing through the origin. Thus. INTRODUCTION TO POLYNOMIAL CURVES Then. = ∞. it will be shown later that the conics (parabolas ellipses. with b > 0. y1 (u − µ) = bu2 + b′0 . the previous degenerate case corresponds to b a2 Conversely.

3. Given any aﬃne frame (r. since every polynomial has roots (possibly complex numbers). The parametric deﬁnition of a straight line F : A → A3 . we must have t = (1 − λ)r + λs = r + λ(s − r). x3 (t) = a3 t + b3 . the mismatch between the parametric representation and the implicit representation can be resolved. if we view our curves as the real trace of complex curves. let us begin with straight lines. In fact. We now show that there is another way of specifying quadratic polynomial curves which yields a very nice geometric algorithm for constructing points on these curves. Thus. FIRST ENCOUNTER WITH POLAR FORMS (BLOSSOMING) 77 Figure 3. Observe that each function t → ai t + bi is aﬃne.8: A parabola Remark: In the degenerate case of a half line. 3.3 First Encounter with Polar Forms (Blossoming) As a warm up. every t ∈ A can be writen uniquely as t = (1 − λ)r + λs. s) for A. . where r = s. The general philosophy is to linearize (or more exactly. 2. F : A → A3 is itself an aﬃne map. 3. where i = 1. In this case. multilinearize) polynomials. is of the form x1 (t) = a1 t + b1 . x2 (t) = a2 t + b2 .3. the mismatch goes away.

Thus. Furthermore. we know that −− −→ −− −→ −− −→ bF (t) = (1 − λ)bF (r) + λbF (s). since F is aﬃne. as illustrated in the following diagram. every point F (t) on the line deﬁned by F is obtained by a single interpolation step F (t) = s−t s−r F (r) + t−r s−r t−r s−r = 1: 3 F (s). since F (t) is the barycenter of F (r) and F (s) assigned the weights 1 − λ and λ. given any aﬃne frame (r. and picking b = F (r).25. that is. and t = 0. s) for A. it is ﬁrst necessary to turn the polynomials involved in the deﬁnition of F into multiaﬃne maps. in the case of an aﬃne map F : A → A3 . t−r which shows that F (t) is on the line determined by F (r) and F (s). For this. we have F (t) = F ((1 − λ)r + λs). when r ≤ t ≤ s. then F (0. s−r Now.78 and so.25) is a fourth of the way from F (0) between F (0) and F (1). λ = t−r s−r CHAPTER 3. We now show how to turn a quadratic polynomial into a biaﬃne map. for every point b. = (1 − λ) F (r) + λ F (s). if r = 0. F (t) is indeed between F (r) and F (s). to determining the point F (t) on a polynomial curve F . This means that F (t) is completely determined by the two points F (r) and F (s). at “ s−r of the way from t−r F (r)” (in particular. maps that are aﬃne in each of their arguments. by several interpolation steps from some (ﬁnite) set of given points related to the curve F . For example. and the ratio of interpolation λ. Substituting the value of λ in the above. where We would like to generalize the idea of determining the point F (t) on the the line deﬁned by F (r) and F (s) by an interpolation step. where r = s. . INTRODUCTION TO POLYNOMIAL CURVES (and 1 − λ = s−t ). at “ s−r of the way from F (r)”). we have −− −→ −−− −− −→ −−− F (r)F (t) = λF (r)F (s). we have −− −→ −−− F (r)F (t) = t−r s−r −− −→ −−− F (r)F (s). s = 1.

It turns out that requiring f to be symmetric is just what’s needed.3. in the sense that F (X) = f1 (X. simply form f (x1 . Observe that the function of two variables f1 (x1 . x2 ) + f1 (x2 . We say that a function f of two arguments is symmetric iﬀ f (x1 . x2 . or polar form. x2 ) = x1 x2 + x1 + x2 − 3 is called the (aﬃne) blossom. It would be tempting to say that f1 is linear in each of x1 and x2 . for all X ∈ R. x2 ) = x1 x2 + 2x1 − 3 gives us back the polynomial F (X) on the diagonal. of F . x1 ). for all X ∈ R. such a function should satisfy some additional property. and of course. but this is not true. Note that f2 (x1 . for all X ∈ R. 2 The symmetric biaﬃne function f (x1 .9: Linear Interpolation As an example. x2 ) = f1 (x1 . X). for all x1 .3. X). To make f1 (and f2 ) symmetric. For an arbitrary polynomial F (X) = aX 2 + bX + c . FIRST ENCOUNTER WITH POLAR FORMS (BLOSSOMING) F (s) 79 F (t) F (r) Figure 3. X). and f1 is only biaﬃne. x1 ) = x1 x2 + x1 + x2 − 3. and F (X) = f2 (X. consider the polynomial F (X) = X 2 + 2X − 3. It would be nicer if we could ﬁnd a unique biaﬃne function f such that F (X) = f (X. x2 ) = x1 x2 + 2x2 − 3 is also biaﬃne. due to the presence of the term 2x1 and of the constant −3. but f1 is also aﬃne in each of x1 and x2 . x2 ) = f (x2 .

two distinct points r. (we can if we wish. s) and f (s. s). as it is easily veriﬁed by expanding the product (1 − λ1 + λ1 )(1 − λ2 + λ2 ) = 1. or blossom.80 CHAPTER 3. s−r s−r f (t1 . given by three quadratic polynomials F1 . INTRODUCTION TO POLYNOMIAL CURVES of degree ≤ 2. This had to be expected. but this is not necessary). for all X ∈ R. assume that r < s. called the polar form. and they add up to 1. (1 − λ2 )r + λ2 s) = (1 − λ1 )(1 − λ2 ) f (r. Since λi = ti −r . Since f is symmetric and biaﬃne. t2 ) = s − t2 s−r f (r. we get s − t1 s − t2 f (r. (1 − λ2 )r + λ2 s). s) . Thus. for all X ∈ A. f3 as we just explained. This is all ﬁne. assume for simplicity that we have a quadradic curve F : A → A3 . r). we can show that every quadratic curve is completely determined by three points. say t = (1 − λ)r + λs. s) + λ1 λ2 f (s. (1 − λ2 )r + λ2 s) + λ1 f (s. s ∈ A. X). Let us compute f (t1 . where λ ∈ R. We can compute their polar forms f1 . s) are obviously symmetric biaﬃne functions. since f being biaﬃne preserves barycentric combinations in each of its arguments. f (r. such that F (X) = f (X. (1 − λ2 )r + λ2 s) = (1 − λ1 ) f (r. r) s−r s−r t2 − r t1 − r s − t1 + + s−r s−r s−r t1 − r t2 − r + f (s. s−r for i = 1. The coeﬃcients of f (r. x2 is irrelevant). r) + ((1 − λ1 )λ2 + λ1 (1 − λ2 )) f (r. t2 ) = f ((1 − λ1 )r + λ1 s. 2. X). but what have we gained? What we have gained is that using the fact that a polar form is symmetric and biaﬃne. t2 ) = f ((1 − λ1 )r + λ1 s. biaﬃne map x1 + x2 f (x1 . f2 . that is. Let us pick an aﬃne frame for A. As we said already. every t ∈ A can be expressed uniquely as a barycentric combination of r and s. we get f (t1 . F3 . there is a nice algorithm for determining any point on the curve from these control points. we obtain a unique symmetric. and we get a symmetric biaﬃne map f : A2 → A3 . simply using three linear interpolation steps. Note that the fact that f is symmetric allows us to view the arguments of f as a multiset (the order of the arguments x1 . s). F2 . of F . x2 ) = ax1 x2 + b +c 2 such that F (X) = f (X. called control points. and that furthermore.

4. where r = s are elements of A. The polynomials (1 − t)2 . t) is computed as follows: . or B´zier control points. The points f (r. s) and f (s. f (r. (1 − λ2 )r + λ2 s). it is better to observe that the computation of f (t1 . t) = (1 − t)2 f (0. s). s) = c. b2 . c ∈ A3 . the map (t1 . and f (1. are called control points. we will show how to construct geometrically the point F (t) = f (t. the plane determined by the control points b0 . F (t) is also determined by the control points f (0. t) on the polynomial curve F . s) and b2 = f (s.3. However. Incidently. t2 are known as the Bernstein polynomials of degree 2. s) in A3 . s) = b. f (r. 0). Then. r) = a. b1 = f (r. t2 ) → s − t2 s − t1 a s−r s−r s − t1 t2 − r + + s−r s−r t2 − r t1 − r c + s−r s−r t1 − r s−r s − t2 s−r b is symmetric biaﬃne. f (s. r). 1). Given any t ∈ A. FIRST ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 81 Thus. e and as we shall see. b. it is clear that given any sequence of three points a. r). Thus. t2 ) = f ((1 − λ1 )r + λ1 s. or equivalently as we just showed. this also shows that a quadratic curve is necessarily contained in a plane. f (t. b1 . 2(1 − t)t. s). r). then t1 = λ1 and t2 = λ2 . the polynomial function corresponding to f (t1 . f (0.4 First Encounter with the de Casteljau Algorithm Let us assume that we have a quadratic polynomial curve F given by its polar form f : A2 → A3 . s) and f (s. we get F (t) = f (t. and thus. and that f (r. f (r. 3. and the Bernstein polynomials. known as the de Casteljau algorithm. that we performed above. 1). Let t = (1 − λ)r + λs. Conversely. by the three control points b0 = f (r. 1). they play a major role in the de Casteljau algorithm and its extensions. t2 ) being obtained by letting t1 = t2 = t. If we let r = 0 and s = 1. 0) + 2(1 − t)t f (0. can be turned into an algorithm. we showed that every symmetric biaﬃne map f : A2 → A3 is completely determined by the sequence of three points f (r. 1) + t2 f (1.

r). s) and f (s. s) is not. s) + λ f (s. f (r. s) = (1 − λ) f (r. INTRODUCTION TO POLYNOMIAL CURVES 0 f (r. s). s)). r) + λ f (t. s) and f (t. where f (r. t) 2 f (t. . We will give a geometric interpretation of the polar value f (r. s). s) is computed from the two control points f (r. the algorithm consists of a diagram consisting of two polylines. and f (t. s) = f ((1 − λ)r + λs. s). s) 1 f (r. s)) and (f (r. f (r. f (s. r) + λ f (r. we compute the two points f (r. t) = f (t. t) is computed from the two control points f (r. s) The algorithm consists of two stages. r) and f (t. by linear interpolation. the ﬁrst one consisting of the two line segments (f (r. (1 − λ)r + λs) = (1 − λ) f (t. t) = f (t. During the ﬁrst stage. r) f (r. Geometrically. (1 − λ)r + λs) = (1 − λ) f (r. r). the ratio of interpolation being t−r .82 CHAPTER 3. r) and f (r. s). If r ≤ λ ≤ s. we obtain the point F (t) on the curve. then only convex combinations are constructed. and the second one of the single line segment (f (t. s)). but f (r. during the second stage. Note that the two control points f (r. s) computed during the ﬁrst stage. we compute the point f (t. from the points f (t. t) = f (r. s). λ= s−r Since by symmetry. s) = F (s) are on the curve. r) = F (r) and f (s. s) in a moment. f (t. t) f (t. s) f (s. by three linear interpolation steps. r). the ratio of interpolation also being t−r λ= . s−r Thus.

The ﬁrst polyline is also called a control polygon of the curve. s) with the desired point f (t. r) Figure 3. t2 ) = −t1 t2 . F2 (t) = −t2 . on the curve F . s) CASTELJAU ALGORITHM 83 f (t. t) determined by λ. when t is outside [r. Actually. This example also shows the construction of another point on the curve. assuming diﬀerent control points. The example below shows the construction of the point F (t) corresponding to t = 1/2. t) f (t. Each polyline given by the algorithm is called a shell . s]. The polar forms are f1 (t1 .3.4. r) f (t. we still obtain two polylines and a de Casteljau diagram. s = 1. for r = 0. and the resulting diagram is called a de Casteljau diagram. but the shells are not nicely nested. Note that the shells are nested nicely. f2 (t1 . FIRST ENCOUNTER WITH THE DE f (r. t2 ): . t2 ) = t1 + t2 . The parabola of the previous example is actually given by the parametric equations F1 (t) = 2t.10: A de Casteljau diagram f (s. The de Casteljau algorithm can also applied to compute any polar value f (t1 . s) f (r.

During the ﬁrst stage.11: The de Casteljau algorithm 1 f (r. by linear interpolation. to compute the two points f (r. s). and f (t1 . INTRODUCTION TO POLYNOMIAL CURVES f (r. r) F (s) = f (s. t2 ) = f (t1 . t1 ) = f (r. r) + λ1 f (r. t) f (t. t1 ) is computed from the two control points f (r. s) and f (s. r) + λ2 f (t1 . s) = (1 − λ1 ) f (r. s) = f ((1 − λ1 )r + λ1 s. s) and f (t1 . (1 − λ2 )r + λ2 s) = (1 − λ2 ) f (t1 . s). s).84 f (r. t2 ) The only diﬀerence is that we use diﬀerent λ’s during each of the two stages. s) CHAPTER 3. we use the scalar λ1 such that t1 = (1 − λ1 )r + λ1 s. s) Figure 3. where f (r. s) is computed from the two control points f (r. t1 ) f (r. s) f (t1 . to compute . s) 2 f (t1 . λ1 = s−r f (t1 . we use the scalar λ2 such that t2 = (1 − λ2 )r + λ2 s. r) and f (r. r) f (r. s) f (s. t) f (t. (1 − λ1 )r + λ1 s) = (1 − λ1 ) f (r. the ratio of interpolation being t1 − r . During the second stage. s) F (r) = f (r. s) + λ1 f (s. s).

We recommend reading de Casteljau’s original presentation in de Casteljau [23]. t2 ) of the polynomial function deﬁning a parabola gives precisely the intersection point of the two tangents at F (t1 ) and F (t2 ) to the parabola. that is. t1 ) and f (t1 . A nice geometric interpretation of the polar value f (t1 . a(y − bt2 ) − 2bt(x − at) = 0. Turning this property around. It is in this sense that the term blossom is used: by forming the blossom of the polynomial function F . Thus. the coordinates of the point of intersection of any two tangents to the parabola are given by the polar forms of the polynomials expressing the coordinates of the parabola. we solve the system of linear equations ay − 2bt1 x + abt2 = 0 1 ay − 2bt2 x + abt2 = 0. There is a natural generalization of this nice geometric interpretation of polar forms to cubic curves. t2 ). s) computed during the ﬁrst stage. some hidden geometric information is revealed. To ﬁnd the intersection of the two tangents to the parabola corresponding to t = t1 and t = t2 . Let us consider the parabola given by x(t) = at y(t) = bt2 . FIRST ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 85 from the points f (t1 . we need to look closely at the intersection of two tangents to a parabola.3. the ratio of interpolation being t2 − r λ2 = . the polar values f (t1 . 2 and we easily ﬁnd that x=a t1 + t2 . t2 ) can be obtained. s−r Thus. r) = f (r. can be viewed as meaningful labels for the node of de Casteljau diagrams. but unfortunately. . we can say that the polar form f (t1 . y(t)) is x′ (t)(y − y(t)) − y ′ (t)(x − x(t)) = 0. or ay − 2btx + abt2 = 0. For this.4. also called blossom values. it does not work in general. 2 y = bt1 t2 . The equation of the tangent to the parabola at (x(t).

also has the property that the line determined by f (r. F2 (t) = t2 . b2 = (2.4). Consider the parabola given by F1 (t) = 2t. 1). to the middle of the segment (b1 . t2 ) = t1 t2 . is the middle of the line segment joining the middle of the segment (b0 . cubic curves. s) is the tangent at F (r). b1 = (1. in addition to having the nice property that the line determined by F (r) and f (r. 0). t2 ) = t1 + t2 . Example. y(t) = F2 (t) = b3 t3 + b2 t2 + b1 t + b0 . and b2 = f (1. As in the case of quadratic curves. for curves not contained in a plane (it involves intersecting the osculating planes at three points on the curve). 0). For t = 1/2.5 Polynomial Curves of Degree 3 x(t) = F1 (t) = a3 t3 + a2 t2 + a1 t + a0 . The polar forms of F1 and F2 are f1 (t1 . t) and f (s.86 CHAPTER 3. the point F (1/2) = (1. 1/4) on the parabola. 0). The de Casteljau algorithm. The control points b0 = f (0. b2 ). Let us give an example of the computation of the control points from the parametric deﬁnition of a quadratic curve. 1). 3. let us assume that a3 = 0 or b3 = 0. we ﬁrst show that by a change of coordinates . INTRODUCTION TO POLYNOMIAL CURVES and when it does. b1 ). Let us now consider m = 3. f2 (t1 . t) is the tangent at F (t) (this will be shown in section 5. have coordinates: b0 = (0. that is. and that the line determined by F (s) and f (r. 1). s) is the tangent at F (s). b1 = f (0. A polynomial curve F of degree ≤ 3 is of the form Since we already considered the case where a3 = b3 = 0.

and we get the straight line a0 b3 − a3 b0 X= . ρ . and consider the matrix R given below: 3 3 R= b3 ρ a3 ρ − aρ3 b3 ρ Under the change of coordinates x1 y1 =R x . we get y x1 (t) = a2 b3 − a3 b2 2 a1 b3 − a3 b1 a0 b3 − a3 b0 t + t+ . a2 b3 = a3 b2 . since its leading term is ρt3 .12: A parabola (amounting to a rotation). let ρ = a2 + b2 .5. If a1 b3 = a3 b1 also holds. POLYNOMIAL CURVES OF DEGREE 3 87 F (1/2) b0 b1 b2 Figure 3. Then we have a degenerate case where x1 (t) is equal to a linear function. ρ ρ ρ a0 a3 + b0 b3 a2 a3 + b2 b3 2 a1 a3 + b1 b3 t + t+ . then x1 (t) is a constant and y1 (t) can be arbitrary. y1 (t) = ρt3 + ρ ρ ρ The eﬀect of this rotation is that the curve now “stands straight up” (since ρ > 0).3. Case 1. If a3 = 0 and b3 = 0. we can always assume that either a3 = 0 (or b3 = 0).

a2 b3 − a3 b2 = 0. where Y = y − c. and 0 is a double root of Y ′ . This curve is symmetric with respect to the origin. with a > 0. Case 2.88 CHAPTER 3. 3a Then. and we get an implicit equation of the form y = a′ x3 + b′ x2 + c′ x + d′ . This is the reason why we get a parametric representation. then Y ′ (0) = 0. Then. and increasing again when X varies from X2 to +∞. with a > 0. and Y (X) is strictly increasing with X. and Y ′′ (0) = 0. INTRODUCTION TO POLYNOMIAL CURVES If a1 b3 − a3 b1 = 0. It has a ﬂat S-shape. decreasing when X varies from X1 to X2 . 3a X2 = − −b . In all three cases. the origin is an inﬂexion point. then Y ′ (X) is always strictly positive. By one more change of coordinates. If b < 0. The curve has an S-shape. the slope b of the tangent at the origin being positive. the slope b of the tangent at the origin being negative. Its shape will depend on the variations of sign of its derivative Y ′ = 3aX 2 + b. Also. the other case being similar. If b = 0. let us assume that a1 b3 − a3 b1 > 0. we can suppress the term b′ X 2 by the change of coordinates b′ x = X − ′. If b > 0. with a′ > 0. note that a line parallel to the Y -axis intersects the curve in a single point. The following diagram shows the cubic of implicit equation y = 3x3 − 3x. Y (X) is increasing when X varies from −∞ to X1 . 3a We get an implicit equation of the form y = aX 3 + bX + c. we can eliminate t between x1 (t) and y1 (t). which means that the origin is an inﬂexion point. As in the case of quadratic curves. then Y ′ (X) has two roots. . The curve still has a ﬂat S-shape. X1 = + −b . since Y ′′ = 6aX. we get the implicit equation Y = aX 3 + bX. and the tangent at the origin is the X-axis.

First. We can now eliminate t between x1 (t) and y1 (t) as follows: ﬁrst. 2 and express t2 in terms of x1 (t) from x1 (t) = a2 t2 . square y1 (t).3. we say that we have a nondegenerate cubic (recall that ρ > 0). and by a change of coordinates. by a change of parameter. We now apply a bijective aﬃne transformation that will suppress the term b2 t2 in y(t). with b3 > 0. as in the quadratic case. POLYNOMIAL CURVES OF DEGREE 3 89 Figure 3. getting (y1(t))2 = a2 t2 (b3 t2 + b1 )2 . which yields parametric equations of the form x(t) = F1 (t) = a2 t2 . we can make the constant terms disapear. y1 (t) = a2 t(b3 t2 + b1 ). . y b3 x1 + b1 a2 2 .5. with b3 > 0.13: “S-shaped” Cubic In this case. getting the implicit equation (y1 ) = a2 x1 2 1 0 −b2 a2 =S x . we can suppress the term of degree 1 in t in x1 (t). Consider the matrix S below S= and the change of coordinates x1 y1 We get x1 (t) = a2 t2 . y(t) = F2 (t) = b3 t3 + b2 t2 + b1 t.

i. then the curve deﬁned by the above implicit equation is equal to the trace of the polynomial curve F . In fact. y. 0). Y ) = (0. it is preferable to make the change of coordinates (translation) x=X− b1 a2 . we have the implicit equation (a2 y − b2 x)2 = a2 x b3 x + b1 a2 2 . excluding the origin (X.90 CHAPTER 3. Given any nondegenerate cubic polynomial curve F . y(t) = F2 (t) = b3 t3 + b2 t2 + b1 t. any polynomial curve of the form x(t) = F1 (t) = a2 t2 . after the translation of the origin given by x=X− b1 a2 . b3 b1 b2 y=Y − . is equal to the trace of the polynomial curve F . The origin (X.e. we can show the following lemma. Lemma 3. 0) is called a singular point of the curve deﬁned by the implicit equation.. b3 with b3 > 0.1. as it will be clearer in a moment. where b3 > 0. the curve deﬁned by the above implicit equation. Y ) = (0. if b1 ≤ 0. It is straightforward and not very informative. . INTRODUCTION TO POLYNOMIAL CURVES In terms of the original coordinates x. and when b1 > 0.5. b3 the trace of F satisﬁes the implicit equation a2 b2 a2 Y − X b3 b3 2 + b1 a2 2 X = X 3. We leave it as an exercise. b3 Furthermore. b3 and we get the implicit equation a2 b2 a2 Y − X b3 b3 2 + b1 a2 2 X = X 3. Proof. Then. b3 b1 b2 y=Y − .

there is some parametric deﬁnition G of the form X(m) = c(a m − b)2 + cd. with the exception that when d > 0. The line aY −bX = 0 is an axis of symmetry for the curve. the singular point (X. Y ) = (0. 0) must be excluded from the trace of the polynomial curve. we discover a nice parametric representation of the polynomial curve in terms of the parameter m. Y ) = (0. a of the trace of F (also on the axis of symmetry) is vertical. Y ) = (0. Y2 ) such that 2b Y1 + Y2 = X.1 shows that every nondegenerate polynomial cubic is deﬁned by some implicit equation of the form c(aY − bX)2 + cdX 2 = X 3 .5. Y1 ) belongs to the trace of F iﬀ (X. POLYNOMIAL CURVES OF DEGREE 3 91 Thus.5. For every nondegenerate cubic polynomial curve F . Y ) = (0. Furthermore. when d > 0. The tangent at the point bcd (X.1 shows that every nondegenerate polynomial cubic is deﬁned by some implicit equation of the form c(aY − bX)2 + cdX 2 = X 3 . The reason for choosing the origin at the singular point is that if we intersect the trace of the polynomial curve with a line of slope m passing through the singular point. The case where d > 0 is another illustration of the mismatch between the implicit and the explicit representation of curves. 0) intersects the trace of the polynomial curve F in a single point other than the singular point (X. Since every line of slope m through the origin has .2. 0). Y ) = cd. lemma 3. this mismatch can be resolved if we treat these curves as complex curves. Again. 0) must be excluded from the trace of the polynomial curve. Lemma 3. Y (m) = m(c(a m − b)2 + cd).5. unless it is a tangent at the origin to the trace of the polynomial curve F (which only happens when d ≤ 0). the singular point (X. in the sense that for any two points (X. with the exception that when d > 0. every line of slope m passing through the origin (X. Proof. Y2 ) belongs to the trace of F .3. 0). such that F and G have the same trace. Y1 ) and (X. which is also the set of points on the curve deﬁned by the implicit equation c(aY − bX)2 + cdX 2 = X 3 .5. a (X. Lemma 3. excluding the origin (X. Y ) = (0.

by studying the changes of sign of the derivative of Y (m). In this case. getting X 2 (c(a m − b)2 + cd − X) = 0. Y ) = on the trace of F . the slope of the axis of symmetry. b we have X ′ (m) = 2ac(a m − b). we obtain the following classiﬁcation for the nondegenerate polynomial cubic curves deﬁned by X(m) = c(a m − b)2 + cd. to see if it has roots. If X = 0. we have Y ′ (m) = 3a2 c m2 − 4abc m + (b2 c + cd). bcd a . on the trace of F . Thus. or c(a m − b)2 + cd − X = 0. and thus. then X = c(a m − b)2 + cd. We can now specify more precisely what is the shape of the trace of F . we have c(a m − b)2 + cd = 0. distinct from the origin. Since X(m) = c(a m − b)2 + cd. Y (m) = m(c(a m − b)2 + cd).92 CHAPTER 3. Thus.e (a m − b)2 + d = 0. the roots of the equation (a m − b)2 + d = 0 give us the slopes of the tangent to the trace of F at the origin. Y (m) = m(c(a m − b)2 + cd). to ﬁnd the intersection of this line with the trace of the polynomial curve F . i. Y ′ (m) has roots iﬀ b2 − 3d ≥ 0. we substitute mX for Y in the implicit equation. Otherwise. This value of m corresponds to the point (X. INTRODUCTION TO POLYNOMIAL CURVES the equation Y = mX. we get a unique point X(m) = c(a m − b)2 + cd. which is a double root. Now. cd. either X = 0. X ′ (m) = 0 for m = a . The fact that the line aY − bX = 0 is an axis of symmetry for the curve results from a trivial computation. We have ∆ = 16a2 b2 c2 − 12a2 c(b2 c + cd) = 4a2 c2 (b2 − 3d). Then. Let us compute the discriminant ∆ of the polynomial Y ′ (m). Since Y (m) = m(c(a m − b)2 + cd) = a2 c m3 − 2abc m2 + (b2 c + cd) m. iﬀ d ≤ 0.

Y ) = (0. Y ′ (m) has a double root m0 = 3a . for X = cd + cb2 . that is. but between the two vertical lines X = cd and X = cd + cb2 . then Y (m) increases when m varies from −∞ to m1 . We also get a kind of “humpy” curve. and there is an inﬂexion point for m = m0 . the polynomial Y ′ (m) is always positive.3. m2 .6. and Y ′ (m) has two roots. 0) is not on the trace of the cubic either. and Y ′ (m) is positive except for m = m0 . and since we assumed c > 0. tangent to the vertical line X = cd at the intersection of this line with the axis of symmetry aY − bX = 0. and only intersecting the X-axis for m = 0. the case c < 0 being similar. the polynomial Y ′ (m) has two roots m1 . for X = cd + cb2 . a .6 Classiﬁcation of the Polynomial Cubics We treat the case where c > 0. When b2 − 3d < 0. Thus. Y ) = (0. tangent to the vertical line X = cd at the intersection of this line with the axis of symmetry aY − bX = 0. the singular point (X. we have b2 − 3d > 0. which are easily computed: m1 = b . In this case. We also get a kind of “humpy” curve. and increases when m varies from m2 to +∞. since d > 0. the polynomial Y ′ (m) has no roots. In this case. We get a kind of “humpy” curve. CLASSIFICATION OF THE POLYNOMIAL CUBICS 93 3. that is. 2b When b2 − 3d = 0. 0) is not on the trace of the cubic. which means that the singular point (X. The cubic of equation 3(Y − X)2 + 6X 2 = X 3 is shown below: Case 2: b2 ≥ 3d > 0. and since we assumed c > 0. In this case. Y (m) increases when m varies from −∞ to ∞. decreases when m varies from m1 to m2 . and only intersecting the X-axis for m = 0. When b2 − 3d > 0. the curve makes two turns. Case 1: 3d > b2 . 3a b m2 = . The cubic of equation 3(Y − 2X)2 + 3X 2 = X 3 is shown below: Case 3: d = 0 (a cuspidal cubic). we must have d > 0. which means that Y (m) is strictly increasing.

94 CHAPTER 3.14: “Humpy” Cubic (3d > b2 ) . INTRODUCTION TO POLYNOMIAL CURVES Figure 3.

6.15: “Humpy” Cubic (b2 ≥ 3d > 0) .3. CLASSIFICATION OF THE POLYNOMIAL CUBICS 95 Figure 3.

The curve is tangential to the axis aY − bX = 0 at the origin (the cusp). then Y (m) . reaching the cusp point. and Y ′ (m) has two roots m1 and m2 . INTRODUCTION TO POLYNOMIAL CURVES Figure 3. X ′ (m2 ) = 0 and Y ′ (m2 ) = 0.96 CHAPTER 3. and intersects the X-axis only at X = b2 c. Y ) = (0. 0) belongs to the trace of the cubic. Furthermore. Y ) = (0. b2 − 3d > 0. which belongs to the trace of the cubic. we note that X(m2 ) = 0. Since d < 0.16: Cuspidal Cubic (d = 0) For m2 . The cubic of equation 3(Y − X)2 = X 3 is shown below: Case 4: d < 0 (a nodal cubic). the singular point (X. which means that the origin is a cusp. Y (m2 ) = 0. and thus. has two distinct roots. Y (t) increases as m varies from −∞ to m1 . the cubic is self-intersecting at the singular point (X. then Y (t) decreases as m varies from m1 to m2 . Since we assumed c > 0. In this case. the polynomial X(m) = c(a m − b)2 + cd. and ﬁnally Y (t) increases as m varies from m2 to +∞. 0). since d < 0. Thus.

that is.3.6. The cubic of equation 3 (Y − X)2 − 3X 2 = X 3 4 is shown below: One will observe the progression of the shape of the curve. and increases when m varies from m2 to +∞. The trace of the cubic is a kind of “loopy curve” in the shape of an α. having the origin as a double point.17: Nodal Cubic (d < 0) increases when m varies from −∞ to m1 . decreases when m varies from m1 to m2 . CLASSIFICATION OF THE POLYNOMIAL CUBICS 97 Figure 3. for X = cd + cb2 . The curve also intersects the X-axis for m = 0. tangent to the vertical line X = cd at the intersection of this line with the axis of symmetry aY − bX = 0. Remark: The implicit equation c(aY − bX)2 + cdX 2 = X 3 . from “humpy” to “loopy”. through “cuspy”.

Y ) = X 3 . x2 ) = f (x2 . Given any polynomial of degree ≤ 3.7 Second Encounter with Polar Forms (Blossoming) First. Y ) = X 3 . Furthermore. the polynomial case is obtained in the special case where ϕ3 (X.. x1 ) = f (x3 . Thus. X. x2 . x1 . x2 . To make this statement precise. where λ = 0. projective geometry is needed). We easily verify that f must be given by f (x1 . x3 . Y ) is a homogeneous polynomial in X and Y of total degree 2 (in the case of a degenerate cubic of equation y = aX 3 + bX 2 + cX + d. Y ). fractions of polynomials of degree ≤ 3) are exactly those cubics whose implicit equation is of the form ϕ2 (X. Elliptic curves are a venerable and fascinating topic. but deﬁnitely beyond the scope of this course! Returning to polynomial cubics. where ϕ2 (X. Note that X 3 itself is a homogeneous polynomial in X and Y of degree 3. 3 3 . 3. x2 . Using some algebraic geometry. Y ) are homogeneous polynomial in X and Y of total degree respectively 2 and 3. that is. Such cubics are elliptic curves. x2 ) = f (x3 . x3 ) = f (x2 . i. and such that F (X) = f (X. X). the polar form of F is a symmetric triaﬃne function f : A3 → A. x3 ) = f (x1 . x1 . such that f (x1 .e. it can be shown that the (nondegenerate) cubics that can be represented by parametric rational curves of degree 3 (i. x3 . for all X ∈ R. For example.e. 1. the cubics deﬁned by the implicit equation Y 2 = X(X − 1)(X − λ). These cubics have a singular point at the origin. x3 . a function which takes the same value for all permutations of x1 . where ϕ2 (X. there are some cubics that cannot be represented even as rational curves. x1 ). Y ) = ϕ3 (X.98 CHAPTER 3. INTRODUCTION TO POLYNOMIAL CURVES of a nondegenerate polynomial cubic (with the exception of the singular point) is of the form ϕ2 (X. x2 . cannot be parameterized rationally. the singular point is at inﬁnity. we need to deﬁne the polar form (or blossom) of a polynomial of degree 3. inspired by our treatment of quadratic polynomials. which is aﬃne in each argument. we would like to extend blossoming to polynomials of degree 3. x3 ) = ax1 x2 x3 + b x1 x2 + x1 x3 + x2 x3 x1 + x2 + x3 +c + d.. F (X) = aX 3 + bX 2 + cX + d. Y ) and ϕ3 (X.

f (r. s. (1 − λ2 )r + λ2 s. and we obtain a symmetric triaﬃne map f : A3 → A3 . r. we showed that every symmetric triaﬃne map f : A3 → A3 is completely determined by the sequence of four points f (r. for all X ∈ A. s). s. X). s) in A3 . let us pick an aﬃne basis (r. s). r). t2 . t3 ) = f ((1 − λ1 )r + λ1 s. Thus. s). s. s) in A. s) + λ1 λ2 λ3 f (s. SECOND ENCOUNTER WITH POLAR FORMS (BLOSSOMING) 99 Then. X. where r = s are elements of A. we get s − t1 s−r + s − t2 s−r s − t3 s−r f (r. f (r. r. s. s). s) + ((1 − λ1 )λ2 λ3 + λ1 (1 − λ2 )λ3 + λ1 λ2 (1 − λ3 )) f (r. and let us compute f (t1 . t2 . (1 − λ3 )r + λ3 s). F2 . r. f (r. r.3. t2 . determined by three polynomials F1 . The coeﬃcients of f (r. Since λi = ti −r . as it is easily veriﬁed by expanding the product (1 − λ1 + λ1 )(1 − λ2 + λ2 )(1 − λ3 + λ3 ) = 1. such that F (X) = f (X. r. r) + ((1 − λ1 )(1 − λ2 )λ3 + (1 − λ1 )λ2 (1 − λ3 ) + λ1 (1 − λ2 )(1 − λ3 )) f (r. r. and f (s. given a polynomial cubic curve F : A → A3 . with r = s. s). s). F3 of degree ≤ 3. s) s − t2 s−r t3 − r s−r t2 − r s−r s − t3 s−r f (t1 . s) t1 − r s−r f (r. r. r. (1 − λ3 )r + λ3 s) = (1 − λ1 )(1 − λ2 )(1 − λ3 ) f (r. s.7. s. f2 . we can determine their polar forms f1 . and they add up to 1. s. Again. s−r for i = 1. we get f (t1 . f3 . . f (r. t3 ) = s − t1 s−r s − t2 s−r t3 − r s−r + + t1 − r s−r s − t2 s−r t2 − r s−r t2 − r s−r s − t3 s−r t3 − r s−r + s − t1 s−r + t1 − r s−r + t1 − r s−r t2 − r s−r t3 − r s−r s − t3 s−r f (s. 3. r) + s − t1 s−r f (r. Since f is symmetric and triaﬃne. (1 − λ2 )r + λ2 s. t3 ) = f ((1 − λ1 )r + λ1 s. 2. r). and f (s. s. s). are obviously symmetric triaﬃne functions.

The points f (r. b. They form a basis of the vector space of polynomials of degree ≤ 3. s. and we get F (t) = f (t. f (r. 0. It is immediately veriﬁed that the above arguments do not depend on the fact that the aﬃne space in which the curves live is A3 . s) = d. d in E. we will assume any aﬃne space E of dimension ≥ 2. s). 1) + 3(1 − t)t2 f (0. INTRODUCTION TO POLYNOMIAL CURVES Conversely. t) = (1 − t)3 f (0. They play a major role in the de Casteljau algorithm and its extensions. Summarizing what we have done. 0) + 3(1 − t)2 t f (0. t2 . s. 0. 1. s). f (r. r. r. s. Lemma 3. s) = c. and f (s. s. or B´zier e control points. r. r) = a. s. 3(1 − t)t2 . r. d ∈ A3 . Note that the polynomial curve deﬁned by f passes through the two points f (r. are called control points. s). 1). so that λ1 = t1 .7. whose polar form f : A3 → E satisﬁes the conditions f (r. t3 . r).100 CHAPTER 3. s). r. f (r. c. and that f (r. t2 . r. the point F (t) on the curve can be expressed in terms of the control points f (r. Given any sequence of four points a. r) and f (s. the map (t1 . we have shown the following result. s. f (r. r. s). λ2 = t2 . s) = b. and f (s. The polynomials (1 − t)3 . f (r. However. are the Bernstein polynomials of degree 3. If we let r = 0 and s = 1. it is more useful to extend the de Casteljau algorithm. and the Bernstein polynomials. and thus. and λ3 = t3 . the polynomial function associated with f (t1 . f (r. c.1. 1) + t3 f (1. t3 ) → + s − t1 s−r s − t2 s−r s − t3 s−r a + s − t1 s−r b t1 − r s−r c s − t2 s−r t3 − r s−r t2 − r s−r s − t3 s−r s − t1 s−r s − t2 s−r t3 − r s−r + + t1 − r s−r s − t2 s−r t2 − r s−r t2 − r s−r s − t3 s−r t3 − r s−r + s − t1 s−r + t1 − r s−r + t1 − r s−r t2 − r s−r t3 − r s−r s − t3 s−r d is symmetric triaﬃne. 3(1 − t)2 t. there is a unique polynomial curve F : A → E of degree 3. Thus. 1. r) = . t. s). s). it is clear that given any sequence of four points a. b. s. t3 ) is obtained by letting t1 = t2 = t3 = t. r). and f (s. but not through the other control points. r.

the computation of F (t) can be arranged in a triangular array. 3. s.8. and f (s. s) = b2 .8 Second Encounter with the de Casteljau Algorithm Let us assume that the cubic curve F is speciﬁed by the control points f (r. t. s) f (t. r. s. r. s. s) = b. s]. r. t. s) f (r. r < s). r. s ∈ A. t. s. t) f (t. s) = b3 (where r. r. r) = b0 . as shown below. f (r. s ∈ A. s) f (s. s) 1 f (r. SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 101 a. s. consisting of three stages: 0 f (r. r = s). s) = d (where r. r. t3 ) = + s − t1 s−r s − t2 s−r s − t3 s−r a + s − t1 s−r b t1 − r s−r c s − t2 s−r t3 − r s−r t2 − r s−r s − t3 s−r s − t1 s−r s − t2 s−r t3 − r s−r + + t1 − r s−r s − t2 s−r t2 − r s−r t2 − r s−r s − t3 s−r t3 − r s−r + s − t1 s−r + t1 − r s−r + t1 − r s−r t2 − r s−r t3 − r s−r s − t3 s−r d. Given any t ∈ [r. s) . the polar form f of F is given by the formula f (t1 . s. It is easy to generalize the de Casteljau algorithm to polynomial cubic curves. f (r. s) = c. t2 . t) 2 3 f (t. and f (s.3. r) f (r. t. s) = b1 . f (r. r) f (r. s) f (t. Furthermore. f (r. s.

s. r) = f (t. s. t). s. from f (r. s) = (1 − λ) f (r. s].1 . r. (1 − λ)r + λs. r. s). r. r. t) is computed by extrapolation. from f (r. (1 − λ)r + λs. and the intermediate points f (r. f (t. t. b2. r). and f (t. s) = f (t. s. s. r) + λ f (t. r. t. s. r) and f (r. and b3.0 . Let us go through the stages of the computation. as b0. b2.1 . s). s) + λ f (s. r. s) = f (r. r. r. r) + λ f (r. t. r. the ratio of interpolation still being λ= t−r . s) = (1 − λ) f (r. let us denote the control points b0 = f (r. f (r.0 . r. r. s). s) as b0. r. t. the ratio of interpolation being λ= t−r . f (r. (1 − λ)r + λs) = (1 − λ) f (t. s. f (r. the ratio of interpolation also being λ= t−r . r. s) = f ((1 − λ)r + λs. but it works just as well for any t ∈ A. we compute the point f (t. from f (t. s. and f (t. t. r) and f (t. s−r In order to describe the above computation more conveniently as an algorithm. (1 − λ)r + λs) = (1 − λ) f (r. s−r During the second stage. s. When t is outside [r. r) = (1 − λ) f (t. r).0 . s) = f (t.102 CHAPTER 3.0 . s]. During the ﬁrst stage. we compute the three points f (r. s−r During the third stage. s. since by symmetry. s). from f (t. t. s) = (1 − λ) f (t. s. s) + λ f (r. t. s). s) and b3 = f (s. s). s) and f (r. t. s). t. r. s). r. we usually say that F (t) = f (t. s). r) = f (t. r) and f (r. s]. t) = f (r.1 . INTRODUCTION TO POLYNOMIAL CURVES The above computation is usually performed for t ∈ [r. s). (1 − λ)r + λs. t. s. r). r) and f (t. s). s). b1. even outside [r. . b1. s. r. t. we compute the two points f (t. b1 = f (r. r. from f (t. t) = f (t. b2 = f (r. t) = f (t. s). s) and f (t. from f (r. s) + λ f (t. s). t. r. r) + λ f (t. s. s) and f (s. s. s.

the above formula generalizes to any degree m. s].8.0 Then. the index j denotes the stage of the computation. and with the point b0. but the shells are not nicely nested. The polyline (b0 .2 b1. b2.1 ).2 . b1.2 ) where 1 ≤ j ≤ 3. b1. (b2 . (b1 .j−1 . geometrically. t) as b0.3 . t. The following diagram illustrates the de Casteljau algorithm for computing the point F (t) on a cubic. s) as b0.j−1 . In this case.2 .3 b1.1 . We have F (t) = b0. (b1.0 b1 = b1. When λ is outside [r. t.3.j lies between bi. called shells. b2 ).2 b2.3 . When r ≤ t ≤ s. b3 ) (b0. b1 ). where r = 0.0 b3 = b3. we still obtain three shells and a de Casteljau diagram.j : bi. f (t. (b2 . and F (t) = b0. Note that the shells are nested nicely. each interpolation step computes a convex combination.1 2 3 b0. Then the triangle representing the computation is as follows: 0 b0 = b0. b1 ). they form the de Casteljau diagram. we have the following inductive formula for computing bi. on the curve F .j . (b1 .0 1 b0. Note that in bi.3 .1 b2 = b2. t. SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 103 the intermediate points f (t.3 . b1.1. b2 ).1 ) (b0. and bi. the algorithm constructs the three polylines (b0 . r). and the point f (t.j = s−t s−r bi. and s = 6: The above example shows the construction of the point F (3) corresponding to t = 3.1 . .j−1 and bi+1.1 b0. As will shall see in section 5.j−1 + t−r s−r bi+1. b3 ) is also called a control polygon of the curve.2 . and 0 ≤ i ≤ 3 − j.

6. 1 b0 b3 Figure 3. 2 b0.18: A de Casteljau diagram f (0. 3. 3 b1. 3) f (3. 6. 3.104 CHAPTER 3. 3. 2 b2 b2.19: The de Casteljau algorithm for t = 3 . 6) f (0. 0. 1 b0. 3) F (3) = f (3. 6. 3. 3) f (0. INTRODUCTION TO POLYNOMIAL CURVES b1. 0. 6) Figure 3. 0. 3) f (6. 6) F (0) = f (0. 0) F (6) = f (6. 6) f (0. 6) f (0. 1 b1 b0.

t1 . s−r λj = The computation can also be represented as a triangle: 0 f (r.2 ). t. s) as b0. b1. t2 .2 are computed during the second stage of the de Casteljau algorithm. b2 = b3 . t2 . the intermediate points f (t1 . s) f (t1 . t3 ) as b0. t1 .2 and b1. b1. s) f (t1 .1 . b1. but the tangents may not be computed as easily as above.1 . s) f (s. r. s) as b0.3. It will be shown in section 5. r) f (r. r) f (r. t2 . f (r. SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 105 The de Casteljau algorithm also gives some information about some of the tangents to the curve. s. s) 1 f (r. s. b3 ). Note that in bi.3 . t2 . t2 . t3 ) f (t1 . t1 ).2 . and f (t1 . t) correctly. that the tangent at b0 is the line (b0 .j . s) As above.1 . s. t3 ) (which is not generally on the curve).4. it is convenient to denote the intermediate points f (r. It is possible for some (even all!) of the control points to coincide. t3 ) = b0. t2 . s). b2. given by tj − r . b1 ).2 . All we have to do is to use a diﬀerent ratio of interpolation λj during phase j.2 . and the tangent at F (t) is the line (b0. t2 . s. r. and b0.2 = b1. f (t1. the tangent at b3 is the line (b2 . the index j denotes the stage of the computation.3 . r. The algorithm still computes f (t. f (t1 . Remark: The above statements only make sense when b0 = b1 . t1 ) 2 3 f (t1 . r). and the point f (t1 . Then the triangle representing the computation is as follows: . t2 . As in the quadratic case.2 .8. r. s) f (r. the de Casteljau algorithm can also be used to compute any polar value f (t1 . where b0.

0 We also have the following inductive formula for computing bi.2 b1.3 b1. Thus. We have f (t1 . and 0 ≤ i ≤ 3 − j.1 b0.j−1 + tj − r s−r bi+1. where 1 ≤ j ≤ 3.0 b3 = b3. Let us give a few examples of the computation of polar forms associated with parametric representation of cubics. and computations of the coordinates of control points. F2 (t) = 3t3 − 3t.3 . t3 ) = b0. The de Casteljau algorithm enjoys many nice properties that will be studied in chapter 5 (section 5. t2 .9 Examples of Cubics Deﬁned by Control Points We begin with example of plane cubics. Example 1. f2 (t1 . there is very little diﬀerence between this more general version of de Casteljau algorithm computing polar values and the version computing the point F (t) on the curve: just use a new ratio of interpolation at each stage.j−1 .0 b1 = b1.2 b2. 3. t3 ) = t1 + t2 + t3 . The polar forms of F1 (t) and F2 (t) are: f1 (t1 .0 1 b0.j = s − tj s−r bi. Consider the plane cubic deﬁned as follows: F1 (t) = 3t. t3 ) = 3t1 t2 t3 − (t1 + t2 + t3 ). t2 .1 2 3 b0.1 b2 = b2.106 CHAPTER 3. INTRODUCTION TO POLYNOMIAL CURVES 0 b0 = b0.1). t2 . .j : bi.

Since F1 (t) = 3t2 − 6t + 9. we get the polar forms f1 (t1 . s = 1. F2 (t) = 3t3 − 6t2 + 9t.20: Bezier Cubic 1 With respect to the aﬃne frame r = −1. −4) = (3. t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − 2(t1 + t2 + t3 ) + 9 f2 (t1 . 0) = (−1. 0). 4) = (1. t2 .3.9. t2 . the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. = (−3. Example 2. . F2 (t) = 3t(t − 1)2 + 6t. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 107 Figure 3. The above cubic is an example of degenerate “S-shaped” cubic. Consider the plane cubic deﬁned as follows: F1 (t) = 3(t − 1)2 + 6. t3 ) = 3t1 t2 t3 − 2(t1 t2 + t1 t3 + t2 t3 ) + 3(t1 + t2 + t3 ).

3) = (6. 6). We leave as an exercise to verify that this cubic corresponds to case 1. F2 (t) = 3t3 − 12t2 + 15t. where 3d > b2 . t3 ) = 3t1 t2 t3 − 4(t1 t2 + t1 t3 + t2 t3 ) + 5(t1 + t2 + t3 ). 4) = (6. . F2 (t) = 3t(t − 2)2 + 3t. = (9. t2 . s = 1. we get the polar forms f1 (t1 . t2 . Consider the plane cubic deﬁned as follows: F1 (t) = 3(t − 2)2 + 3. 0) = (7.21: Bezier Cubic 2 With respect to the aﬃne frame r = 0. the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − 4(t1 + t2 + t3 ) + 15 f2 (t1 . INTRODUCTION TO POLYNOMIAL CURVES Figure 3. Since F1 (t) = 3t2 − 12t + 15.108 CHAPTER 3. The axis of symmetry is y = x. Example 3.

0) = (7. = (15. where b2 ≥ 3d > 0. the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. . EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 109 Figure 3. The second “hump” of the curve is outside the convex hull of this new control polygon.3. 5) = (8. s = 2. 10) = (3. s = 1: b′0 b′1 b′2 b′3 = (15. 0) = (11.22: Bezier Cubic 3 With respect to the aﬃne frame r = 0.9. 6). 4) = (3. The axis of symmetry is y = 2x. 6) = (6. 6). We leave as an exercise to verify that this cubic corresponds to case 2. It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0.

0) = (−1. b′2 = b′3 . 0) = (0. The axis of symmetry is y = x. INTRODUCTION TO POLYNOMIAL CURVES This shows that it is far from obvious. we get the polar forms f1 (t1 . where d = 0. This indicates that there is a cusp at the origin. a cubic with a cusp at the origin. t3 ) = 3t1 t2 t3 − 2(t1 t2 + t1 t3 + t2 t3 ) + (t1 + t2 + t3 ). We leave as an exercise to verify that this cubic corresponds to case 3. = (3. Example 5. With respect to the aﬃne frame r = 0. t2 . Consider the plane cubic deﬁned as follows: F1 (t) = 3(t − 1)2 . 1) = (0. It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0. 4 3 F2 (t) = t(t − 1)2 − 3t. 0). Since F1 (t) = 3t2 − 6t + 3. Thus. just by looking at some of the control points. t2 . t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − 2(t1 + t2 + t3 ) + 3 f2 (t1 . the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. to predict what the shape of the entire curve will be! Example 4. −4) = (3. 4 . 2) = (−1. 0) = (1. 6).110 CHAPTER 3. s = 1: b′0 b′1 b′2 b′3 = (3. F2 (t) = 3t3 − 6t2 + 3t. Consider the plane cubic deﬁned as follows: 3 F1 (t) = (t − 1)2 − 3. s = 2. F2 (t) = 3t(t − 1)2 .

EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 111 Figure 3.23: Bezier Cubic 4 .3.9.

t2 . where d < 0. and even fun. 0) = (−4. Note that b0 = b3 . and s = 3). s = 1: 9 b′0 = (− . the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. 0). We leave as an exercise to verify that this cubic corresponds to case 4. − ) 4 b′2 = (−3. The two tangents at the origin are y = −x. b3 ) determine the nature of the plane cubic that it deﬁnes. t2 . and y = 3x (this explains the choice of r = −1. s = 3. to predict what the shape of the entire curve will be! The above examples suggest that it may be interesting. The axis of symmetry is y = x. b2 . 2 4 1 9 1 f1 (t1 . As in example 3. t3 ) = t1 t2 t3 − (t1 t2 + t1 t3 + t2 t3 ) − (t1 + t2 + t3 ). just by looking at some of the control points. a cubic with a node at the origin. . Here is a more global view of the same cubic: It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0. t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − (t1 + t2 + t3 ) − 4 2 4 3 1 3 f2 (t1 . 0) 4 3 ′ b1 = (−1. −2) b′3 = (−3. 4) = (−4. INTRODUCTION TO POLYNOMIAL CURVES 3 F1 (t) = t2 − 4 3 3 F2 (t) = t − 4 we get the polar forms 3 9 t− . b1 . −12) = (0. 2 4 3 2 9 t − t. this example shows that it is far from obvious. to investigate which properties of the shape of the control polygon (b0 . −3). 4 2 4 With respect to the aﬃne frame r = −1.112 Since CHAPTER 3. Try it! = (0.

3. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 113 Figure 3.9.24: Bezier Cubic 5 .

25: Nodal Cubic (d < 0) . INTRODUCTION TO POLYNOMIAL CURVES Figure 3.114 CHAPTER 3.

EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 115 Challenge: Given a planar control polygon (b0 . we need to investigate some of the basic properties of multiaﬃne maps. of a space curve. s = 1. It can also be shown that any four points on the twisted cubic are aﬃnely independent. this time. 0. z − xy = 0. the coordinates of the control points are: b0 = (0. This curve has some very interesting algebraic properties. F2 (t) = t2 . 0. 0) 3 3 b3 = (1.3. t3 ) = (t1 + t2 + t3 ) 3 1 f2 (t1 . 3). t3 ) = (t1 t2 + t1 t3 + t2 t3 ) 3 f3 (t1 . it is the zero locus (the set of common zeros) of the two polynomials y − x2 = 0. With respect to the aﬃne frame r = 0. 1). to rational curves and also to polynomial and rational surfaces. t3 ) = t1 t2 t3 . 0) 3 2 1 b2 = ( . . In order to do so. This is the object of the next two chapters. Consider the cubic. t2 . known as a twisted cubic (it is not a plane curve). The reader should apply the de Casteljau algorithm to ﬁnd the point on the twisted cubic corresponding to t = 1/2. deﬁned as follows: F1 (t) = t.9. 0) 1 b1 = ( . b2 . Example 6. t2 . b1 . We get the polar forms 1 f1 (t1 . F3 (t) = t3 . t2 . 1. and later on. For example. b3 ). is it possible to ﬁnd the singular point geometrically? Is it possible to ﬁnd the axis of symmetry geometrically? Let us consider one more example. . We would like to extend polar forms and the de Casteljau algorithm to polynomial curves of arbitrary degrees (not only m = 2.

Give a geometric construction of the tangent to the cubic for t = 0. (1) Find the polar forms of x(t) and y(t). over some interval [r. Plot the cubic as well as you can. You may use Mathematica. = (1. s]. s = 1. (2) What are the slopes of the tangents at the origin. INTRODUCTION TO POLYNOMIAL CURVES 3. 6). 6). = (−6. Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/3). −10). Find the control points with respect to the aﬃne frame r = −1.116 CHAPTER 3. F (1/2). assuming that r = 0 and s = 1: b0 b1 b2 b3 = (−4. 6). Remark: This cubic is known as the “Tchirnhausen cubic”. Plot the curve as well as possible (choose some convenient value for p). 0). Consider (in the plane) the cubic curve F deﬁned by the following 4 control points. Consider (in the plane) the cubic curve F deﬁned by the following 4 control points. = (−1. where p is any scalar. 0). Write a computer program implementing the the de Casteljau algorithm for cubic curves. and F (2/3). Problem 3 (30 pts). = (6. Problem 4 (20 pts). 10). y(t) = 9pt(3t2 − 1). assuming that r = 0 and s = 1: b0 b1 b2 b3 = (6. or any other available software in which graphics primitives are available. = (4. Problem 2 (20 pts). = (−6. . −6).10 Problems Problem 1 (40 pts). Consider the cubic deﬁned by the equations: x(t) = 9p(3t2 − 1).

f (t. b. consider the following questions: Does the degree of the curve drop? . In particular. show that [a. d] = − → − → cb db In any aﬃne space E. b2 ). d) forms a harmonic division. t3 ). t3 . Given t1 . t1 ). t2 . d] = Show that [a. More speciﬁcally. f (t. Given a plane cubic speciﬁed by its control points (b0 . c. t3 . f (t. f (t. f (t.3. b. t4 . Explain how to treat a parabola as a degenerate cubic. Construct the points F (1/4) and F (3/4). for any t. explain what happens when two control points are identical. b′2 . we say that (a. b. c.1. Problem 8 (30 pts). b2 specifying a parabola. c. b. α β In this case. Prove that [f (t. c. t4 .5. d) of four distinct points on a line. we deﬁne the cross-ratio [a. b1 . b1 . given any four distinct values t1 . f (t. Problem 5 (25 pts). Prove lemma 3. (1 − α) β 1 1 + = 2. viewed as a cubic. b′3 yielding the same parabola. c. t2 ). f (t. consider the four collinear points (f (t. t3 ). c. t2 . ﬁnd the values of t3 . (The “four tangents theorem”) (i) Given any sequence (a. f (t. t4 )] = −1. Problem 6 (30 pts). PROBLEMS 117 Give a geometric construction of the point F (1/2). b. (ii) Given any parabola F deﬁned by some bilinear symmetric aﬃne map f : A2 → A2 . t4 such that [f (t. f (t. given any sequence (a. b2 . t1 ).10. Plot the curve as well as you can. t2 . determine control points b′0 . d] of these points as → → − − ca da [a. d) of four distinct points. t4 )). b. such that c = (1 − α)a + αb and d = (1 − β)a + βb. t3 ). c. b. given three control points b0 . b′1 . t2 ). t4 )] only depends on t1 . d] = −1 iﬀ α (1 − β) . Problem 7 (20 pts). t1 ). t2 ).

where p is any scalar. Any line D through F intersects the cubic in three points N1 . You can check that you are right if you ﬁnd that the cubic is deﬁned by: x(θ) = 3p + 6p cos θ . Consider the following construction: for every point M on the parabola y 2 = 4px. 0)). Use the representation in polar coordinates. 1]. 0 ≤ i ≤ 3. Problem 10 (20 pts). What is the maximum number of intersection points of two plane cubics? Give the control points of two plane cubics that intersect in the maximum number of points. You may want to use Mathematica to play around with these curves. and that MN is tangent to the cubic at N. Plot the Bernstein polynomials Bi3 (t). (i) Let Hi be the foot of the perpendicular from F to the tangent to the cubic at Ni . Prove that H1 . Let F be the point of coordinates (p. N3 . It is best to use polar coordinates (with pole F = (p. . Show that when M varies on the parabola. does the curve have points where the curvature is null? What happens when three control points are identical? What if the four control points are identical? Problem 9 (20 pts). N3 intersect in three points forming an equilateral triangle. (1 − cos θ)2 (ii) Prove that the tangents to the cubic at N1 . H2 . Consider the cubic of problem 3 (except that a new origin is chosen). y(t) = 9pt(3t2 − 1). (iii) What is the locus of the center of gravity of this triangle. Hint. deﬁned by the equations: x(t) = 27pt2 . Hint.118 CHAPTER 3. N varies on the cubic. N2 . H3 belong to the parabola of equation y 2 = 4px. and let N be the symmetric of F with respect to ω. INTRODUCTION TO POLYNOMIAL CURVES Does the curve have a cusp at some control point? Does the curve have an inﬂexion point at some control point? Assuming that A2 is equipped with its usual Euclidean inner product. N2 . let ω be the intersection of the normal at M to the parabola with the mediatrix of the line segment F M. Problem 11 (80 pts) Challenge. over [0. 0). 1 − cos θ sin θ(1 − 2 cos θ) y(θ) = 2p .

in the case of polynomial maps between vector spaces. showing that they subsume the usual multivariate polynomial functions. An equivalent form of polarization is discussed quite extensively in Cartan [16] (Chapter I. The chapter proceeds as follows.Chapter 4 Multiaﬃne Maps and Polar Forms 4. we prove a generalization of lemma 2. splines. This has applications to curve and surface design. which ﬁrst appeared in 1939. page 4-6).1. going back as early as 1879.2. It should be pointed out that de Casteljau pioneered the approach to polynomial curves and surfaces in terms of polar forms (see de Casteljau [23]). Next. and the de Casteljau algorithm. e This material is quite old. and that the Bernstein polynomials of degree ≤ m form a basis of the vector space of polynomials of degree ≤ m. The uniqueness of the polar form of an aﬃne polynomial function is proved next. Aﬃne polynomial functions and their polar forms are deﬁned. In fact. in a form usually called “blossoming”.1 Multiaﬃne Maps In this chapter. and more speciﬁcally to B´zier curves. A presentation of the polarization of polynomials can be found in Hermann Weyl’s The Classical Groups [87] (Chapter I. This result is quite technical in nature. there is little doubt that the polar approach led him to the discovery of the beautiful algorithm known as the “de Casteljau algorithm”. It is shown how polynomials in one or several variables are polarized. Section 3). and some discussion of the aﬃne case can be found in Berger [5] (Chapter 3. After a quick review of the binomial and multinomial coeﬃcients. The proof can be omitted at ﬁrst reading. characterizing multiaﬃne maps in terms of multilinear maps. 119 . and the equivalence between polynomials and symmetric multiaﬃne maps is established. multilinear and multiaﬃne maps are deﬁned.1. and their characterization in terms of control points and Bernstein polynomials is shown. but it plays a crucial role in section 10. We conclude by showing that the deﬁnition of a polynomial curve in polar form is equivalent to the more traditional deﬁnition (deﬁnition 3. Aﬃne polynomial functions h : E → F are described explicitly in the case where E has ﬁnite dimension.7. Polynomial curves in polar form are deﬁned. we discuss the representation of certain polynomial maps in terms of multiaﬃne maps. and it is not very easily accessible. section 6).1).

. . we deﬁne n! (read “n factorial”) as follows: 0! = 1. we have the empty set which has only one subset. . n} having k elements: those containing 1. n} not containing 1 as there are subsets of k elements from {2. n}. there are two kinds of subsets of {1. MULTIAFFINE MAPS AND POLAR FORMS We ﬁrst review quickly some elementary combinatorial facts. . n−1 . . . / It is immediately shown by induction on n that n k = n! . . . . . n}. . there are as many subsets of k elements from {1. Indeed. because they arise in the expansion of the binomial expression (a + b)n . . When n ≥ 1. n} consisting of k elements. . For every n ∈ N. . n}. and those not containing 1. . Thus. . which is equal to + k k k−1 k coeﬃcients. . . namely itself. .120 CHAPTER 4. . and n (read “n choose k”) as follows: k ∈ Z. = 1. + k−1 k if n ≥ 1. if k ∈ {0. . we deﬁne k n k 0 0 n k = 0. . For n ∈ N. . namely k−1 elements from {1. . . Now. = n−1 n−1 . and there are as many subsets of k of k − 1 elements from {2. The numbers . (n + 1)! = (n + 1)n! It is well known that n! is the number of permutations on n elements. . when n ≥ 0. . Furthermore. . It is easy to see that n n . n} consisting of k elements is namely k n n n−1 n−1 are also called binomial . n} containing 1 as there are subsets n−1 . when n = 0. . k!(n − k)! for 0 ≤ k ≤ n. we can prove by induction that n is the k number of subsets of {1. = n−k k The binomial coeﬃcients can be computed inductively by forming what is usually called . . . . the number of subsets of {1.

. . . the proof is by induction. x i−1 j∈J → → x− x λj −j .1. . . . . For the reader’s convenience. . 1 6 21 . . . k1 . and n ≥ 0. . where m ≥ 1. . Em . . . for every family x x− x− xm i−1 i+1 → (−j )j∈J of vectors in Ei . × Em → F is a multilinear map (or an m-linear map).1. −→. . . n 0 1 1 1 1 1 1 1 1 . . m k1 ! · · · km ! 1 =n k1 +···+km 0≤ki ≤n n! Again. MULTIAFFINE MAPS Pascal’s triangle. where k1 + · · · + km = n. am ∈ R. . −→. km We now proceed with multiaﬃne maps. . 1 3 6 10 15 21 . are called multinomial coeﬃcients. y → x− f (−1 . 121 1 2 3 4 5 6 7 . we recall the deﬁnition of a multilinear map. which is based on the recurrence for n 0 1 2 3 4 5 6 7 . . and they are also denoted as n . . −n ). . iﬀ it is linear in each argument. More generally.. . for every → → i. A function f : E1 × .4. x i+1 i−1 y . .. . b ∈ R. . . −→ ∈ Ei+1 . −→.1. . we have the identity (a1 + · · · + am )n = n! ak1 · · · akm .. . . . 1 4 10 20 35 . . −→ ∈ Ei−1 . . For any a. . . holding the others ﬁxed. k The proof is a simple induction. More explicitly. the following identity holds for all n ≥ 0: n (a + b) = k=0 n n k n−k a b . . 1 5 15 35 . . for any a1 . . . 1 ≤ i ≤ m. . . Deﬁnition 4. and F . n 1 n 2 n 3 n 4 n 5 n : k n 6 n 7 . . . Let E1 .. . . . −j . 1 . m ≥ 2. . . for all −1 ∈ E1 . . . −n ) = y i+1 j∈J → → x x− → x− λj f (−1 . . The coeﬃcients k1 !···km ! . . . − ∈ Em . be vector spaces over R. for every family (λj )j∈J of scalars. . . 1 7 . . −→.

. a. xn ) → λx1 · · · xn . for every family (λj )j∈J of scalars such that j∈J λj = 1. where 1 ≤ k ≤ n. . For any n ≥ 2. . ai−1 . Since R is of dimension 1. . . . we have f (a1 . ai−1 . . . . . that is. ai−1 . . 1 ≤ i ≤ m. . . . but they are sums of homogeneous forms. . An aﬃne form f : A → A must be of the form x → λ1 x + λ2 . xm ). λ2 ∈ R. . and a little thinking shows that a biaﬃne form f : A2 → A must be of the form (x1 . x2 ) → λ1 x1 x2 + λ2 x1 + λ3 x2 + λ3 . A good example of n-aﬃne forms is the elementary symmetric functions. a ∈ Ei . . . . More explicitly. Given n What about an n-aﬃne form f : An → A? . where m ≥ 1. . for some λ ∈ R. and F . . . m}. . be aﬃne spaces over R. xπ(m) ) = f (x1 . am ) = j∈J λj f (a1 . A bilinear form f : R2 → R must be of the form (x1 . not just vector spaces or aﬃne spaces). for some λ1 . for some λ ∈ R. an n-linear form f : Rn → R must be of the form (x1 . . . iﬀ f (xπ(1) . λ3 . every linear form f : R → R must be of the form x → λx.e. . .2. . . the map a → f (a1 . . . . . . . . λ2 . we deﬁne multiaﬃne maps. iﬀ it preserves barycentric combinations. . . Em . ai+1 . . . x2 ) → λx1 x2 . Deﬁnition 4. . am ∈ Em . A function f : E1 × .1. The next lemma will show that an n-aﬃne form can be expressed as the sum of 2n − 1 k-linear forms. Let E1 . . plus a constant. whereas multiaﬃne forms are not. in the simple case where E = A and F = A.122 CHAPTER 4. bj . am ). for all a1 ∈ E1 . is that multilinear forms are homogeneous in their arguments. λ4 ∈ R. MULTIAFFINE MAPS AND POLAR FORMS Having reviewed the deﬁnition of a multilinear map. m} → {1. . . . the aﬃne line associated with R. Let us try to gain some intuition for what multilinear maps and multiaﬃne maps are. . j∈J λj bj . . am ) is an aﬃne map. . It is immediately veriﬁed that a multilinear map is also a multiaﬃne map (viewing a vector space as an aﬃne space). . × Em → F is a multiaﬃne map (or an maﬃne map). . ai−1 ∈ Ei−1 . . for every family (bj )j∈J of points in Ei . for some λ1 . . An arbitrary function f : E m → F is symmetric (where E and F are arbitrary sets. . i. for every i. . . . . ai+1 . we see that the main diﬀerence between multilinear forms and multiaﬃne forms. . ai+1 . ai+1 ∈ Ei+1 . iﬀ it is aﬃne in each argument. for every permutation π : {1. Thus.

an adaptation of Cartan’s use of “successive diﬀerences” allows us to overcome the complications. x.. a2 ) − f (a1 .. σk . Thus. a2 + −2 ) − f (a1 . . v v v v → . n k = n! k!(n−k)! terms of the form xi1 · · · xik . −2 ).n} |I|=k i∈I xi . it is aﬃne in a + − . −2 ). → → → → → → f (a1 +−1 . .4. a2 +−2 ) = f (a1 . a2 + −2 ) = g(−1 . a2 ) + h1 (−1 . let us consider the special case of a biaﬃne map f : E 2 → F . a2 + −2 ) v v v v v → → → is a linear map in − . −2 ) is linear in −2 . . 0 ≤ k ≤ n. σ1 = x1 + · · · + xn .7. −2 )+f (a1 . a2 )−f (a1 .. we deﬁne the k-th elementary symmetric function σk (x1 . v v v v v v Since → → → → v g(−1 . v v v 1 2 2 2 2 But then. .<ik ≤n xi1 · · · xik . for short.2. a2 )+h1 (−1 . . a2 ) = h1 (−1 . we have → → → → v g(−1 . n k x . note that → → → → → f (a1 + −1 . . and as a diﬀerence of aﬃne maps in a + − . a2 + −2 ) = g(−1 . . MULTIAFFINE MAPS 123 variables x1 .. The proof is more complicated than might be expected. characterizing multiaﬃne maps in terms of multilinear maps. we have v v v → → → → → v f (a1 + −1 . a2 + −2 ) − g(−1 .1. a2 + −2 ) − f (a1 . A concise way to express σk is as follows: σk = I⊆{1. xn ).. a2 ) + h1 (−1 . a2 + −2 ) = f (a1 + −1 . x) = Clearly. each σk is symmetric. but luckily. k We will prove a generalization of lemma 2. 1≤i1 <. . xn . v v v v → → → → where h1 (−1 . −2 ). for each k. . . σn = x1 x2 · · · xn . where F is a vector space. Note that σk consists of a sum of consequence. a2 +−2 )−f (a1 . a2 )+f (a1 +−1 . as follows: σ0 = 1. In order to understand where the proof of the next lemma comes from. . As a σk (x. v v v v v → that is.. a2 ). σk = σ2 = x1 x2 + x1 x3 + · · · + x1 xn + x2 x3 + · · · + xn−1 xn . . Because f is biaﬃne.

1.ik }. a2 ) = f (a1 + −1 . which → → → → f (a1 .. Lemma 4. .m}. a2 ). Thus. the uniqueness of h2 and h3 follows easily. a2 ) = ∆v1 f (a1 . we get → → → → ∆v2 ∆v1 f (a1 . Section B.1. . . a2 + −2 ) − f (a1 . . a2 + −2 ) − f (a1 . a2 + −2 ) and and g(−1 . k = |S|. a2 ) = h1 (−1 . . h1 (−1 . k≥1 → → fS (−1 . .. . −k ). The uniqueness of h1 is clear. and as a consequence. we can obtain a more precise characterization in terms of m symmetric k-linear maps. . . . then h is bilinear. . . −2 ).. v v v v v → is bilinear.. m}. . This idea of using successive diﬀerences v v (where at each step. vi vi → → → − for all a1 . a2 + −2 ) − f (a1 + −1 . am ∈ E. a2 ) = f (a1 + −1 . and h2 and h3 are linear. −2 ). It is extremely technical. and f (a + − . 1 ≤ k ≤ m. and can be found in Chapter B. a2 + −2 ) = f (a1 . MULTIAFFINE MAPS AND POLAR FORMS → → → → → → where both g(−1 . The above argument uses the crucial fact that the expression → → → → → v f (a1 + −1 . − ) is linear in − . v where we incremented the second argument instead of the ﬁrst argument as in the previous step. . we move from argument k to argument k + 1) will be central to the proof of the next lemma. . For every m-aﬃne map f : E m → F .. a2 + v2 v2 v1 2 v1 1 2 1 1 2 shows that we can write → → → → → → f (a1 + −1 . and all −1 . . a2 + −2 ) − f (a1 + −1 . a2 ) − f (a1 . . −2 ) + h2 (−1 ) + h3 (−2 ).124 CHAPTER 4. S = ∅.. v v v v → → which is precisely the bilinear map h1 (−1 . a2 + −2 ) − ∆v1 f (a1 . a2 ) are linear in −1 . a ) − f (a . . such that → → f (a1 + −1 . we are led to consider diﬀerences of the form → ∆v1 f (a1 . v The slight trick is that if we compute the diﬀerence → ∆v2 ∆v1 f (a1 . a ) is linear in − . and since we already know that h (− . When f : E m → F is a symmetric m-aﬃne map. . . .. am + − ) = f (a1 . a2 ) + h1 (−1 . − ∈ E . . a2 ). a2 ) + f (a1 . a2 ) + f (a1 ..3. v v v v v v where h1 is bilinear. k=|S| S={i1 . −2 ) is also linear in v v v v v v − . a ) is linear in − . where S ⊆ {1. a2 ). am ) + v vm S⊆{1. . v vm Proof. . there are 2m − 1 unique multilinear − → − → maps fS : E k → F . But → → → → v1 v2 1 v1 v2 1 − ) − f (a .

The above lemma shows that it is equivalent to deal with symmetric m-aﬃne maps. . there are m unique sym− → − → metric multilinear maps fk : E k → F .. . .. such that → → f (a1 + −1 . a symmetric m-aﬃne map is obtained by making symmetric in −1 . . . 4. .. .ik } (−1 . 1 ≤ k ≤ m. . we will use multiaﬃne maps to deﬁne generalized polynomial functions from an aﬃne space to another aﬃne space. . . . am ∈ E. . In the special case where E = An and F = A. − . .. for every sequences i1 .. .. .<ik ≤m → → fk (−1 .. . . . −k ).. the v vm sum fm + fm−1 + · · · + f1 of m symmetric k-linear maps.4. In the next section. xm ). vi vi k=1 S⊆{1. f{i1 .....k} . . and thus... . we have → → f (a1 + −1 . . jk such that 1 ≤ i1 < . .4. 1 ≤ k ≤ m. .ik } → → → − vm for all a1 . . . . v → → Thus. xπ(m) ) = f (x1 . .1.. . AFFINE POLYNOMIALS AND POLAR FORMS 125 Lemma 4. .. . . .. am ∈ E. am ) + v vm m m → → fk (−1 . − ∈ E . v Proof.. letting fk = f{1. .. −k ) = f{j1 . ik and j1 . . . .jk } . . vj vj vj vj which shows that. or with symmetrized sums fm + fm−1 + · · · + f1 of symmetric k-linear maps. . Since f is symmetric. . am + − ) = f (a1 .. . .ik } = f{j1 . π(ik ) = jk . . . . . .jk } (−1 . . . − ∈ E . vi vi k=1 1≤i1 <. −k ). and . The added beneﬁt is that we achieve a “multilinearization”. For every symmetric m-aﬃne map f : E m → F .. .3. for every k. . by the uniqueness of the sum given by lemma 4. . .. . . . . am ) + v vm → → → − vm for all a1 . < ik ≤ m and 1 ≤ j1 < .. . where 1 ≤ k ≤ m.ik } is symmetric.. .. . we must have → → → → f{i1 . . .. this notion is actually equivalent to the notion of polynomial function induced by a polynomial in n variables. ..1. . −k ).. < jk ≤ m. .. and since f (xπ(1) . . am + − ) = f (a1 . .2. . . . 1 ≤ k ≤ m. and all −1 .2 Aﬃne Polynomials and Polar Forms The beauty and usefulness of symmetric aﬃne maps lies is the fact that these maps can be used to deﬁne the notion of a polynomial function from an aﬃne (vector) space E of any dimension to an aﬃne (vector) space F of any dimension..m} S={i1 . . there is a permutation π such that π(i1 ) = j1 ..... and then that each f{i1 . and all −1 . .

or for short an aﬃne polynomial of polar degree m. in particular splines. . a). . − → − → For example. v The deﬁnition of a homogeneous polynomial function of degree m given in deﬁnition 4. xn ) = x2 + x2 + · · · + x2 . v v v m → − → − → → − for all − ∈ E . if E = Rn and F = R.2. deﬁned such that f ((x1 .1.1. is the deﬁnition given by Cartan [16]. such that v − → − → − → there are m symmetric k-linear map fk : E k → F . .2. called the polar form of h. with → → → → → → v v v h(− ) = fm (− . such − → − → that there is some nonnull symmetric m-linear map f : E m → F . sometimes called “blossoming” (a term introduced by Ramshaw. is a map h : E → F . . an aﬃne polynomial function of polar degree m. − ) + fm−1 (− . . Deﬁnition 4. xn ). − ). . 1 2 n is a polynomial of total degree 2 in n variables. .1. . The deﬁnition of a polynomial function of polar degree m given in deﬁnition 4. MULTIAFFINE MAPS AND POLAR FORMS also that we can deﬁne (parameterized) “polynomial curves” in a very elegant and convenient manner. called the m-polar form of h. . we have the bilinear map f : (Rn )2 → R (called inner product). . 1 ≤ k ≤ m. with h(a) = f (a. (y1. . . . .126 CHAPTER 4. . v v v m m−1 → → − for all − ∈ E . Such an approach. . we deﬁne polynomial maps of degree at most m. .2. . and some f0 ∈ F . such that h(x1 . yn )) = x1 y1 + x2 y2 + · · · + xn yn . − ) + · · · + f1 (− ) + f0 . . is almost the deﬁnition given by Cartan [16]. who was among the ﬁrst to introduce it in the context of curve and surface representation). also leads to an elegant and eﬀective presentation of the main algorithms used in CAGD. . is a map h : E → F . . . . The corresponding polynomial h : Rn → R. . . . . except that we allow any of the multilinear maps fi to be null. is a map h : E → F . with → → → h(− ) = f (− . . Thus. such that there is some symmetric m-aﬃne map f : E m → F . m − → − → for all a ∈ E. A polynomial function of polar degree m. whereas Cartan does not. A homogeneous polynomial function of degree m. instead of deﬁning polynomial maps of degree exactly m (as Cartan does). . Given two aﬃne spaces E and F .

4.2. Thus. . then f is also deﬁned by the symmetric m-aﬃne map m −1 m → → → → fk (−1 . . if a map h : E → F is a polynomial function of polar degree m deﬁned by m symmetric k-linear maps fk . This is the deﬁnition commonly used by the CAGD community. . for any e en m vectors − = v − +···+v − ∈ − . z) = xy + yz + xz. − → − → Clearly. . . 0 ). in view of lemma 4. vi vi g(−1 . . for any symmetric multilinear map f : E m → F . and g0 = f ( 0 . j en . .. j e1 n. . Let (− . . . having been suﬃciently forwarned. it is cumbersome to constantly have to say “polar degree” rather than degree. . with → → → h(− ) = f (− .2. where fm . . which is of polar degree 3 but a polynomial of degree 2 in x. . . . . − → − → − → → → for any basis (−1 . Given any vector space E of ﬁnite dimension n. when E is a vector space − → of ﬁnite dimension n. − → Let us see what homogeneous polynomials of degree m are. −k ) + f0 . − ) be a basis of E . a polynomial function h of polar degree m can be − → − → deﬁned by a symmetric m-aﬃne map f : E m → F . . → → → → vj E 1. Nevertheless. and by f0 . may assume for − → − → → → simplicity that F = R). y.2. . AFFINE POLYNOMIALS AND POLAR FORMS However the triaﬃne map f : R3 → R deﬁned such that f (x. . . . . . . and any vector space F .1.. induces the polynomial h : R → R such that h(x) = 3x2 . From the point of view of terminology. . . .<ik ≤m − → − → g0 = f ( 0 . . then h is also deﬁned by the m symmetric k-linear maps gk = v m fk and k 1≤i1 <. . and because it makes the correspondence with multiaﬃne polar forms nicer. v v v → → − for all − ∈ E . . and F is a vector space (readers who are nervous. f1 are the unique (symmetric) multilinear maps associated − → − → with f . although degree is confusing (and wrong. if a map h : E → F is deﬁned by some symmetric − → − → m-aﬃne map f : E m → F . − ) = v vm k k=1 − → − → Conversely. we will usually allow ourselves this abuse of language.4. . − ). from the point of view of algebraic geometry). 127 We adopt the more inclusive deﬁnition of a polynomial function (of polar degree m) because it is more convenient algorithmically. e e 1 n − → − → Lemma 4. − ) of E . 0 ). .

− . .j≤n i1 ∈I1 v1.. . . . . . . .. . − ) = v I1 ∪. i1 ··· vn... MULTIAFFINE MAPS AND POLAR FORMS v1. . .n}m → vi1 . the homogeneous polynomial function h associated with f is given by v → h(− ) = v k1 +···+kn =m 0≤ki .∪In ={1. .. .m} Ii ∩Ij =∅. . where k1 + · · · + kn = m.m} Ii ∩Ij =∅. → Thus.. kn 1 k1 kn Proof. each of carm . . . . . in in ∈In → → → → f (−1 . we can reorder the basis vectors arguments of f . . . and this amounts to choosing n disjoint sets I1 . . which explains the dinality ki . .. Indeed... the homogeneous polynomial function h of degree m in n arguments v1 .. h is the homogeneous .. m}. . − ). . . . i1 I1 ∪. . − ). in in ∈In → → → → f (−1 . which is precisely k1 . . −1 ... i=j 1≤i. . agrees with the notion of polynomial function deﬁned by a homogeneous polynomial.. . ei e→ i Since f is symmetric. . . . . . . . − .. ∪ In = {1. . − ) = v vm (i1 . − ). . kn second formula. we get e → → vm f (−1 . . −m ). −1 .. e e en en |I1 | |In | → → − and for any − ∈ E . . m f (−1 . .. . . 1≤i≤n k k v1 1 · · · vnn ck1 . .2 shows that we can write h(− ) as v → h(− ) = v k1 +···+kn =m 0≤ki . . .kn . ... . . − ). Thus. .. 1 · · · vim . e e en en |I1 | |In | k → → → k When we calculate h(− ) = f (− . . lemma 4. . . i=j 1≤i. .∪In ={1.128 we have → → f (−1 . By multilinearity of f . .im )∈{1.j≤n i1 ∈I1 ··· vn. When F = R. . − ) = v vm CHAPTER 4. . 1≤i≤n m → → → → k v k1 · · · vnn f (−1 . .2. vn .. . .. . − .... . −1 . . . . . e e en en k1 . which are vectors. . we get the same product v1 1 · · · vnn a multiple v v v number of times. . .. where each Ij speciﬁes → which arguments of f are the basis vector −j . In such that I1 ∪ . ... . . . . we have → → f (−1 . . . m − → − → for some “coeﬃcients” ck1 . which is the number of ways of choosing n disjoints sets Ij .kn ∈ F . .

agrees with the notion of polynomial function induced by a polynomial of degree ≤ m in n variables (X1 . Xn ).3. Artin [1]. am + − ) = b + v vm 1≤p≤m I1 ∪. . and lemma 4.. . → → → → vj E 1. or Mac Lane and Birkhoﬀ [52].kn ).2. j e1 n.. . Lemma 4.. ..2.. the aﬃne w v polynomial function h associated with f is given by → h(a + − ) = b + v 1≤p≤m k1 +···+kn =p 0≤ki . ... . we have → → f (a1 + −1 . . we obtain the following useful characterization of multiaﬃne maps f : E → F ...kn ∈ F .4. .. . k k ck1 .kn . Another major diﬀerence . (k1 .. . and some − k1 .1. for any symmetric multiaﬃne map f : E m → F .. . w Lemma 4...kn X1 1 · · · Xnn . i=j 1≤i....p} Ii ∩Ij =∅. we deﬁne directly certain functions that behave like generalized polynomial functions. . We could have taken the form of an aﬃne map given by this lemma as a deﬁnition. − → → → → − for some b ∈ F .|In | ∈ F ... 1≤i≤n k k → v1 1 · · · vnn − k1 .j≤n i1 ∈I1 v1. . kj ≥0 k1 +···+kn =m Using the characterization of symmetric multiaﬃne maps given by lemma 4. one should not confuse such polynomial functions with the polynomials deﬁned as usual. say in Lang [47]... am ∈ E.∪In ={1. ..2. . and − ∈ E ... − ) of E . AFFINE POLYNOMIALS AND POLAR FORMS 129 polynomial function induced by the homogeneous polynomial of degree m in the variables X1 . when E is of ﬁnite dimension. . in in ∈In − → w |I1 |. the notion of (aﬃne) polynomial of polar degree m in n arguments. it is shown how a polynomial deﬁnes a polynomial function.. for any m e en vectors − = v − +···+v − ∈ − .3 shows the crucial role played by homogeneous polynomials.|In| . − → − → Thus. Then. . − → When F is a vector space of dimension greater than one.2. . i1 ··· vn.. and any aﬃne space F .. when E is of ﬁnite dimension.. Xn . or an aﬃne space. . Given any aﬃne space E of ﬁnite dimension n. when E = Rn and F = R. . and for any a ∈ E. w − → → for some b ∈ F . In the present approach..4. and some − |I1 |.2. j en for any points a1 . The standard approach is to deﬁne formal polynomials whose coeﬃcients belong to a (commutative) ring. for − → → → any basis (−1 ..

. A (parameterized) polynomial curve in polar form of degree m is an aﬃne polynomial map F : A → E of polar degree m. in which case. with r < s. For convenience. as given in section 3. we use a letter diﬀerent from the letter used to denote the polynomial map deﬁning the curve).4.130 CHAPTER 4. s ∈ A. a (parameterized) polynomial curve segment F ([r.1. where F is any aﬃne space. f is also deﬁned by a polynomial map of polar degree m − k). Nevertheless. fm−k+1 involved in the unique decomposition of f as a sum of multilinear maps may be identically null. Given any r. where A is the real aﬃne line. Indeed.1 (see deﬁnition 3. as the next example will show. s] → E of an aﬃne polynomial curve F : A → E in polar form of degree m. multiplication does not make any sense. . MULTIAFFINE MAPS AND POLAR FORMS between the polynomial functions of deﬁnition 4.1 and formal polynomials.1). the aﬃne space E is the real aﬃne space A3 of dimension 3. fm−1 .1 when E is of ﬁnite dimension.4 is not the standard deﬁnition of a parameterized polynomial curve. and thus. rather than a polynomial curve in polar form of degree exactly m.4 turns out to be more general and equivalent to deﬁnition 3. .2.1. f . but lower-case letter. s] as F ([r. Remark: When deﬁning polynomial curves. s]). It would then be confusing to denote the aﬃne space which is the range of the maps F and f also as F . . we can deﬁne (parameterized) polynomial curves in polar form. Recall that the canonical aﬃne space associated with the ﬁeld R is denoted as A.2. and the the trace of F [r. we will allows ourselves the abuse of language where we abbreviate “polynomial curve in polar form” to “polynomial curve”. unless confusions arise. s]) in polar form of degree m is the restriction F : [r. Also note that we deﬁned a polynomial curve in polar form of degree at most m.2. and the polar form of F by the same. F = A3 . Typically. Deﬁnition 4. such as F : A → E. this generalization of the notion of a polynomial function is very fruitful. is that formal polynomials can be added and multiplied. . However. deﬁnition 4. in the sense that it could be equivalent to a polynomial map of lower polar degree (the symmetric multilinear maps fm . and E is any aﬃne space (of dimension at least 2). we are led to consider symmetric m-aﬃne maps f : Am → F . deﬁned by its m-polar form.2. Deﬁnition 4. for example. Although we can make sense of addition as aﬃne combination in the case of polynomial functions with range an aﬃne space. Thus. it is convenient to denote the polynomial map deﬁning the curve by an upper-case letter. and it is also more convenient for the purpose of designing curves satisfying some simple geometric constraints. which is some symmetric m-aﬃne map f : Am → E. because an aﬃne polynomial map f of polar degree m may end up being degenerate. We deﬁne the trace of F as F (A). we denote it as E (or at least.

. . .. . . s. . and we saw a pattern emerge... .m} i∈I I∩J=∅. . .. . we get f (t1 .. . s).. . . . . . . and let us compute f (t1 . tm ) = f ((1 − λ1 )r + λ1 s. . . we get m k=0 I∪J={1. . . Since f is symmetric and m-aﬃne. POLYNOMIAL CURVES AND CONTROL POINTS 131 4. . . where F is any aﬃne space. . Let us pick an aﬃne basis (r.3. . Let us now consider the general case of a symmetric m-aﬃne map f : Am → F . s. we considered the case of symmetric biaﬃne functions f : A2 → A3 and symmetric triaﬃne functions f : A3 → A3 .. . . |J|=k s − ti s−r j∈J tj − r s−r of f (r. . . . tm ) = s − ti s−r j∈J tj − r s−r f (r. . . m−k k The coeﬃcient pk (t1 . . . r . . . t2 . Thus. s) in A. r. .4.. .3 Polynomial Curves and Control Points In section 3.m} i∈I I∩J=∅. . . . j∈J m−k k and since λi = ti −r . tm ) + λ1 f (s. (1 − λm )r + λm s).m} i∈I I∩J=∅. . . tm ) = f ((1 − λ1 )r + λ1 s. . . .1. . . s. s−r for 1 ≤ i ≤ m.. .. . . s) m−k k is obviously a symmetric m-aﬃne function. . |J|=k (1 − λi ) λj f (r. . . tm ) = (1 − λ1 ) f (r. s). . . . m−k k where r = s are elements of A. t2 . s. s). . and these functions add up to 1.. as it is easily veriﬁed by expanding the product i=m i=1 s − ti ti − r + s−r s−r = 1.. . t2 . |J|=k f (t1 . tm ) m = k=0 I∪J={1. with r = s. r . . tm ) = I∪J={1. . . by a simple induction. . we showed that every symmetric m-aﬃne map f : Am → F is completely determined by the sequence of m + 1 points f (r. . . r.

.m} i∈I I∩J=∅. . . r . . . . . . . t). 1. . . . . some simpliﬁcations take place. . . . s. r. s). |J|=k s − ti s−r j∈J tj − r s−r ak is symmetric m-aﬃne.. . 0. . The polynomial function associated with f is given by h(t) = f (t. For r = 0 and s = 1. k=0 This is shown using the binomial expansion formula: m m Bk [r. k m−k k . . 1). . . . s](t) k=0 m = k=0 m k s−t s−r m−k t−r s−r k = t−r s−t + s−r s−r m = 1. . . . . MULTIAFFINE MAPS AND POLAR FORMS Conversely. s) m−k k are called control points. . . . . . r.. and as we have already said several times. s]. tm ) → k=0 I∪J={1. m−k k The points ak = f (r. the map m (t1 . . . since ti = λi . and we have f (r. am ∈ F . . s) = ak . m h(t) = k=0 m k s−t s−r m−k t−r s−r k f (r. .132 CHAPTER 4. . . e they play a major role in the de Casteljau algorithm and its extensions. . s. . m−k k The polynomials m Bk [r. s](t) = m k s−t s−r m−k t−r s−r k are the Bernstein polynomials of degree m over [r.. . s. that is. or B´zier control points. These polynomials form a partition of unity: m m Bk [r. . . . s](t) = 1. and the polynomial function h associated with f is given by m h(t) = k=0 m (1 − t)m−k tk f (0. given any sequence of m + 1 points a0 . ..

. and F (t) is given by the formula m F (t) = k=0 m Bk [r. we will come back to polynomial curves and the de Casteljau algorithm and its generalizations. . there is a unique polynomial curve F : A → E of degree m.4. . tm ) = k=0 I∪J={1. . . where the polynomials m Bk [r. we have m m Bk [r. Given any sequence of m + 1 points a0 . s]. . Furthermore. Of course. It is not hard to show that they form a basis for the vector space of polynomials of degree ≤ m. whose polar form f : Am → E satisﬁes the conditions f (r. m−k k (where r. we showed the following lemma. Clearly. |J|=k s − ti s−r j∈J tj − r s−r ak . 4. s](t) = Bk t−r s−r .. s](t) = m k s−t s−r m−k t−r s−r k are the Bernstein polynomials of degree m over [r. . .. r. r = s).4 Uniqueness of the Polar Form of an Aﬃne Polynomial Map Remarkably.1. the polar form f of F is given by the formula m f (t1 . . . We could use Cartan’s proof in the case of polynomial .. Summarizing the above considerations..3. . we can prove in full generality that the polar form f deﬁning an aﬃne polynomial h of degree m is unique. s.4. s) = ak . s ∈ A. am in some aﬃne space E.m} i∈I I∩J=∅. but we hope that the above considerations are striking motivations for using polar forms. s](t) ak . . . UNIQUENESS OF THE POLAR FORM OF AN AFFINE POLYNOMIAL MAP 133 The polynomials m Bk (t) = m (1 − t)m−k tk k are the Bernstein polynomials of degree m (over [0. . . Lemma 4. 1]). .

proposition 2). It is quite technical. x. the polar form is given by the identity f (x1 .1. section §5. .5 Polarizing Polynomials in One or Several Variables We now use lemma 4. . In particular cases. Note that when h(X) is a homogeneous polynomial of degree 2. MULTIAFFINE MAPS AND POLAR FORMS functions. 4. x) for all x ∈ R. then the symmetric m-aﬃne form f is multilinear. even of inﬁnite dimension (for example.4. but they are deeply buried! We now prove a general lemma giving the polar form of a polynomial in terms of this polynomial. such that p(x) = f (x.4. ai .4. All the ingredients to prove this result are in Bourbaki [14] (chapter A. If p(X) ∈ R[X] is a homogeneous polynomial of degree exactly m. there is a symmetric m-aﬃne form f : Rm → R.1. Section B. since it applies to arbitrary aﬃne spaces. for any polynomial function h of degree m. (1) For every polynomial p(X) ∈ R[X]. 2 used for passing from a quadratic form to a bilinear form. you may want to verify that for a polynomial h(X) of degree 2. The expression of lemma 4.1 to show that polynomials in one or several variables are uniquely deﬁned by polar forms which are multiaﬃne maps. Before plunging into the proof of lemma 4.4. a formula giving the polar form for a polynomial h(X) of degree 3.. it is often possible to reduce the number of terms.4.5.4. We ﬁrst show the following simple lemma. You may also want to try working out on your own.I.m} k=|H|. of degree ≤ m.134 CHAPTER 4. since it contains 2m − 1 terms. . k It should be noted that lemma 4..1 is far from being economical. Lemma 4. Hilbert spaces). . Given two aﬃne spaces E and F . am ) = 1 m! (−1)m−k k m h i∈H H⊆{1. .1 is very general. the polar form f : E m → F of h is unique. proposition 3). and is given by the following expression: f (a1 .. .IV. . ..1.1. section §8. . but we can give a slightly more direct proof which yields an explicit expression for f in terms of h. x2 ) = 1 4h 2 x1 + x2 2 − h(x1 ) − h(x2 ) . the above identity reduces to the (perhaps more familiar) identity f (x1 . Lemma 4. k≥1 Proof. x2 ) = 1 [h(x1 + x2 ) − h(x1 ) − h(x2 )] . and [15] (chapter A. and can be found in Chapter B.2.

. and then k2 m − (k1 + · · · + kn−1 ) choices for the last subset In of size kn . . . . . . x). . . . . |Ij |=kj i1 ∈I1 ··· xn. 1 ). (1) It is enough to prove it for a monomial of the form X k . then f is a symmetric multilinear map f : (Rn )m → R. .. m )) = k1 ! · · · kn !(m − d)! m! x1. . and k1 + · · · + kn = d ≤ m. . . xm ) = k!(m − k)! σk m! (2) For every polynomial p(X1 . xn. . we get a multilinear k map. m} consisting of d ≤ m elements into n disjoint subsets I1 . . Xn ) ∈ R[X1 . . . . m − d It is clear that f is symmetric m-aﬃne in x1 . . where k1 + · · · + kn = d ≤ m. . . . and ﬁnally. and that f (x. .4. . the number of such choices is indeed m! = k1 ! · · · kn !(m − d)! m . . .. . The idea is to split any subset of {1. Xn ) ∈ R[X1 . . . . (x1. . There are m! = k1 ! · · · kn !(m − d)! m k1 . it is easy to see that f is multilinear. . . xn. kn . . . . Also.. . m} consisting respectively of k1 .. In . . where ki ≥ 0. for all x = (x1 . . xn ) ∈ Rn .. and when k = m. Xn ] is a homogeneous polynomial of total degree exactly m. . Clearly. . when d = m. xm . . . . 1 . there is a symmetric m-aﬃne form f : (Rn )m → R. where k1 + · · · + kn = d. . k k (2) It is enough to prove it for a homogeneous monomial of the form X1 1 · · · Xnn . . Xn ]. m and m − d elements. . m − d such families of n disjoint sets. of total degree ≤ m. . . i1 I1 ∪. this is the number of ways of choosing n + 1 disjoint subsets of {1. xn ) = f (x.5. where Ij is of size kj (and with k1 + · · · + kn = d). etc. . kn After some simple arithmetic. which consists of = k!(m−k)! terms). . m . . is a symmetric m-aﬃne form satisfying the lemma (where σk is the k-th elementary symmetric m m! function. 1 n m for all x = (x1 . . . . k1 . . . . k ≤ m. j ). of size k2 . x) = xk1 · · · xkn . . f (x1 . . . Indeed. . Let f be deﬁned such that f ((x1. . . x. . n . . . . . . xn. POLARIZING POLYNOMIALS IN ONE OR SEVERAL VARIABLES 135 Proof. . If p(X1 . . j . . i=j. kn . . One can also argue as follows: There are k1 m − k1 choices for the second subset I2 choices for the ﬁrst subset I1 of size k1 . kn . xn ) ∈ R . . . in in ∈In . . . . .m} Ii ∩Ij =∅. . such that p(x1 .. where xj = (x1. .∪In ⊆{1. .

then the function p : Rn → R deﬁned such that p(x1 . . ..5. . . . and the uniqueness of such an f is given by lemma 4. (um . Writing U = X1 and V = X2 . . such that p(x1 . . (2) For every polynomial p(X1 . Furthermore. v2 )) = u1 v2 + u2 v1 + u1 u2 + v1 v2 . For a concrete example involving two variables. V ) = UV + U 2 + V 2 . . Xn ) ∈ R[X1 . of total degree ≤ m. . . . when p(X1 . of total degree ≤ m. there is a unique symmetric m-aﬃne map f : (Rn )m → R. if we get CHAPTER 4. . . . 5 f (x1 . . . in the following sense: (1) If f : (Rn )m → R is a symmetric m-aﬃne map. |J|=k i∈I j∈J vj . observe that the existence of some symmetric m-aﬃne map f : (Rn )m → R with the desired property is given by lemma 4. x. Xn ] is a homogeneous polynomial of total degree exactly m. Theorem 4. . . . .2. . To prove part (2).1. . . .. . xn ) ∈ Rn . .5.136 As an example. Xn ].1. . vm )) = h!k!(m − (h + k))! m! ui I∪J⊆{1. . . we can give an expression which is easier to understand. . . v1 ). . . . x2 . . Proof.4. . . (u2 .. xn ) = f (x. . and conversely. . if p(U. Part (1) is trivial. xn ) = f (x. . . x) for all x = (x1 . Xn ) ∈ R[X1 . . and symmetric m-aﬃne maps f : (Rn )m → R. . . which corresponds to the case of surfaces. . . v1 ). xn ) ∈ Rn . 2 We can now prove the following theorem showing a certain equivalence between polynomials and multiaﬃne maps. . Xn ) ∈ R[X1 . f is a symmetric multilinear map f : (Rn )m → R. . MULTIAFFINE MAPS AND POLAR FORMS p(X) = X 3 + 3X 2 + 5X − 1. is a polynomial (function) corresponding to a unique polynomial p(X1 . x. given the monomial U h V k . . we get f ((u1. x) for all x = (x1 . x3 ) = x1 x2 x3 + x1 x2 + x1 x3 + x2 x3 + (x1 + x2 + x3 ) − 1. to minimize the number of subscripts. Xn ]. . .. with h + k = d ≤ m.m} I∩J=∅ |I|=h. . . There is an equivalence between polynomials in R[X1 . we get f ((u1 . . 3 When n = 2. . . Xn ] of total degree ≤ m. .

. 1 ≤ i ≤ n. . . .1. . .4. tm ) = a0 + f1 (t1 .1.1). . . . . . . 0 ≤ k ≤ m.1. when E is of ﬁnite dimension n.5. r. .1. . we show that a standard polynomial curve of degree at most m in the sense of deﬁnition 3.2. . .1) given in section 3. . tm ) = I∪J={1..i −i . . . we have e en n m F (t) = f (t. t)bk. We will denote f (r.. . Let us introduce the following abbreviations. . First. Let r. in the sense of deﬁnition 3. . . . . is an aﬃne polynomial curve of polar degree m. . . Assume that the aﬃne polynomial curve F of polar degree m is deﬁned by a polar form f : Am → E. . m−k k as f (r m−k sk ). Conversely. using lemma 4. . is a standard polynomial curve of degree at most m. . . . s). tm )−1 + · · · + fn (t1 ..2.4 to the more standard deﬁnition (deﬁnition 3. . POLARIZING POLYNOMIALS IN ONE OR SEVERAL VARIABLES 137 We can now relate the deﬁnition of a (parameterized) polynomial curve in polar form of degree (at most) m given in deﬁnition 4.3. . . . in the sense of deﬁnition 4. tm )− . with r < s. .1 . . . . . where the coeﬃcient pk (t1 . . .n ) denote the → → coordinates of the point bk = f (r m−k sk ) over the aﬃne basis (a0 . . s. .1. t) = b0 + i=1 k=0 → pk (t. . . t).1. m Remark: The abbreviation f (r m−k sk ) can be justiﬁed rigorously in terms of symmetric tensor products (see section 11. in the sense of deﬁnition 4. Indeed. e . Thus. e en is clearly a symmetric aﬃne map such that F (t) = f (t. . s ∈ A. . . deﬁned such that → → f (t1 . bk.1. . the curve F is completely determined by the m+1 points bk = f (r m−k sk ). and the map f : Am → E. |J|=k s − ti s−r j∈J tj − r s−r of f (r m−k sk ).5. m and f (sm ) = f (s. . − )). .4.4. s). and in fact. we show that an aﬃne polynomial curve of polar degree m. every polynomial Fi (t) corresponds to a unique m-polar form fi : Rm → R. tm ) f (r m−k sk ). r). . . . .m} i∈I I∩J=∅. By lemma 4. . if we let (bk. tm ) = k=0 pk (t1 .. . is a symmetric m-aﬃne function. with f (r m ) = f (r.2. (−1 . . we showed that m f (t1 .1.

we have m−i m−i Bj (t) = 1. how polar forms of polynomials simplify quite considerably the treatment of B´zier curves and splines.138 CHAPTER 4. among other things. m−i (1 − t)m−i−j tj . Bm (t) i also form a basis of the polynomials of degree ≤ m . 1]). . e m m We conclude this chapter by proving that the Bernstein polynomials B0 (t). we know that Bj (t) = m−i ti Bj (t). we get m−i ti = j=0 m−i However. we express each t . . we just have to prove that i+j m i m−i j = m i+j i+j . j m−i ti Bj (t) = ti m−i (1 − t)m−i−j tj = j m Since Bi+j (t) = m (1 − t)m−(i+j) ti+j . . Recall that the Bernstein polynomials m Bj (t) form a partition of unity: m m Bj (t) = 1. j=0 Using this identity for m − i (instead of m). where 0 ≤ i ≤ m. We will see later on. . . . this shows that F is a standard polynomial curve of degree at most m. j=0 Multiplying both side by ti . MULTIAFFINE MAPS AND POLAR FORMS and since the pk (t. The veriﬁcation consists in showing that m! (m − i)! m! (i + j)! = . 0 ≤ i ≤ m. (m − i)!i! (m − (i + j))!j! (m − (i + j))!(i + j)! j!i! . in m terms of the Bernstein polynomials Bj (t) (over [0. . For this. i to conclude that m−i (1 − t)m−(i+j) ti+j = j i+j i m i m−i ti Bj (t) = m Bi+j (t). . t) are polynomials of degree ≤ m. and thus. j m−i (1 − t)m−(i+j) ti+j .

. Prove the following statement assumed in the proof of lemma 4. ai1 + −1 . b ∈ R. prove the identity (a1 + · · · + am )n = k1 +···+km 0≤ki ≤n n! ak1 · · · akm . . substituting i+j i m i 139 m−i ti Bj (t) = m Bi+j (t) in ti = m−i m−i ti Bj (t). m k1 ! · · · km ! 1 =n Problem 2 (20 pts). j=0 we get m−i ti = j=0 i+j i m i m Bi+j (t). tm form a basis of the polynomials of degree ≤ m. Show that the Bernstein polynomial m Bk (t) = m (1 − t)m−k tk k . . vi vi Problem 3 (10 pts). . PROBLEMS which is indeed true! Thus. . aik + −k . t. and there are m + 1 of them). .<ik ≤m → → f (a1 . Prove that for any a. . .3: m ∆vm · · · ∆v1 f (a) = (−1)m−k k=0 1≤i1 <. . the following identity holds for all n ≥ 0: n (a + b) = k=0 n n k n−k a b . . the m + 1 Bernstein m m polynomials B0 (t). t2 . . m ≥ 2. .. . k More generally. . . . 4. . . and n ≥ 0. .. . . Since 1. Bm (t) also form a basis of the polynomials of degree ≤ m (since they generate this space.6 Problems Problem 1 (20 pts). for any a1 . am ). . .1.6. am ∈ R. .4.

m Problem 4 (20 pts). Problem 7 (20 pts). 3(w − u)(u − v) 3(w − v)(v − u) 3(v − w)(w − u) Advice: There is no need to do horrendous calculations. if k = 0 and m ≥ 0. (i) Write a computer program taking a polynomial F (X) of degree n (in one variable X). m Alternatively. and returning its m-polar form f . Plot the Bernstein polynomials Bi4 (t). where 1 ≤ k ≤ m.140 reaches a maximum for t = CHAPTER 4. (ii) Let m fk = 1 m k ti I⊆{1. Think hard! Problem 6 (50 pts). w) = 1 27F 24 u+v+w 3 − F (u + v − w) − F (u + w − v) − F (v + w − u) Problem 5 (20 pts). 1i ). MULTIAFFINE MAPS AND POLAR FORMS k . where 0 ≤ i ≤ m. 0 ≤ i ≤ 4. v. You may use Mathematica of any other language with symbolic facilities. v. Estimate the complexity of your algorithm. m and σk = m k m fk . where n ≤ m. Let F : A → E be a polynomial cubic curve. Prove that the polar form f : A3 → E of F can be expressed as f (u. Let F : A → E be a polynomial cubic curve. w) = (w − v)2 F (u) (w − u)2 F (v) (v − u)2F (w) + + . ..m} |I|=k i∈I . 1]. show that fk can be computed directly using the recurrence formula m fk = (m − k) m−1 k m−1 fk + tm fk−1 . otherwise. over [0. Prove that the polar form f : A3 → E of F can be expressed as f (u. m m Can you improve the complexity of the algorithm of question (i) if you just want to compute the polar values f (0m−i ... Prove the following recurrence equations: m−1 m−1 σk + tm σk−1 1 0 m σk = if 1 ≤ k ≤ m..

t3 in terms of the 3 3 3 3 Bernstein polynomials B0 (t). t2 . B1 (t). Show that in general. PROBLEMS 141 Problem 8 (20 pts). B2 (t). B3 (t).4. m Bim (t) = j=i (−1)j−i m j j i tj . Give the matrix expressing the polynomials 1. t.6. .

MULTIAFFINE MAPS AND POLAR FORMS .142 CHAPTER 4.

. . . .8 is generalized to polynomial curves of arbitrary degree m. . r = s. . the de Casteljau algorithm presented earlier for curves of degree 3 in section 3.3.. or B´zier e control points. In preparation for the discussion of spline curves. Some programs written in Mathematica illustrate concretely the de Casteljau algorithm and its version using subdivision. and the conditions for joining polynomial curve segments with C k -continuity are shown. b0 . that an aﬃne polynomial curve F : A → E of degree m deﬁned by its m-polar form f : Am → E. . we are interested in a polynomial curve segment F ([r. bm .1 The de Casteljau Algorithm In this chapter.m} i∈I I∩J=∅. . . where the coeﬃcient pk (t1 . s]). . . tm ) = I∪J={1. . t) on the curve segment F ([r. tm ) = k=0 pk (t1 . b1 . .. The de Casteljau algorithm gives a geometric iterative method for determining any point F (t) = f (t. . The only diﬀerence is that 143 . where bk = f (r m−k sk )..Chapter 5 Polynomial Curves as B´zier Curves e 5. 0 ≤ k ≤ m. speciﬁed by the sequence of its m + 1 control points. Actually. . . .. .1. . . . the de Casteljau algorithm can be used to calculate any point F (t) = f (t. is completely determined by the sequence of m + 1 points bk = f (r m−k sk ). . lemma 4. the formulae giving the derivatives of polynomial curves are given. |J|=k s − ti s−r j∈J tj − r s−r of f (r m−k sk ). is a symmetric m-aﬃne function. Typically. t) on the curve F speciﬁed by the sequence of control points b0 . and we showed that m f (t1 . . The powerful method of subdivision is also discussed extensively. Finally. bm . . tm ) f (r m−k sk ). . .3. for t ∈ A not necessarily in [r. s]. s ∈ A. where r. . the de Boor algorithm is also introduced. We saw in section 4. . b1 . s]).

s. b1 . s) f (s. the computation of the point F (t) on a polynomial cubic curve F can be arranged in a triangular array. Since f is symmetric. . . certain properties holding for the curve segment F ([r. . we can write the arguments in any order we please. When t is outside [r. s) f (t. . s]. t. . even outside [r. we can think of its m arguments as a multiset rather than a sequence. . t. b2 ). In phase m (the last phase). as shown below: 1 f (r. .144 ´ CHAPTER 5. t2 . are arbitrary: f (t. r. . POLYNOMIAL CURVES AS BEZIER CURVES in the more general case. and the idea is to approximate the shape of the polygonal line consisting of the m line segments (b0 . using the fact that f is symmetric and m-aﬃne. . s) f (r. s]. only one interpolation is performed. s]) may not hold for larger curve segments of F . bm ). where r. and t. where in phase j. We strongly advise our readers to look at de Casteljau’s original presentation in de Casteljau [23]. t. . s. t) by repeated linear interpolations. r. s. and the result is the point F (t) on the curve. as shown 1 Actually. bm of m + 1 control points. All that is given is the sequence b0 . but not through the other control points. The following diagram shows an example of the de Casteljau algorithm for computing the point F (t) on a cubic. s) The above computation is usually performed for t ∈ [r. . The computation consists of m phases. but it works just as well for any t ∈ A. t) f (r. t3 ) (which is not generally on the curve). but the algorithm still works ﬁne. . t. . corresponding to the parameter value t ∈ A. As we observed. b1 ). . r) f (t. t. (bm−1 . Let us review this case (polynomial cubic curves). . t) 2 3 The de Casteljau algorithm can also be used to compute any polar value f (t1 . s) f (r. All we have to do is to use tj during phase j. b1 . such as the fact that the curve segment F ([r. We already discussed the de Casteljau algorithm in some detail in section 3. s. . we usually say that F (t) = f (t. s) f (t. some of the points bk and bk+1 may coincide.1 The curve goes through the two end points b0 and bm . m + 1 − j interpolations are performed. (b1 .. and thus. r) f (r. t) is computed by extrapolation. s]. bm . s]) is contained in the convex hull of the control polygon (or control polyline) determined by the control points b0 . r.8. What’s good about the algorithm is that it does not assume any prior knowledge of the curve. The essence of the de Casteljau algorithm is to compute f (t.

. t1 . where r = 0. s) f (s. . t. t1 . s) f (r. s). s) f (t1 . t. f (t3 . . s) f (r. s. r) f (t1 . r. . . t2 . where bk = f (r m−k sk ). r. t3 ) f (t1 . THE DE CASTELJAU ALGORITHM f (r. s) 145 F (r) = f (r.1. 6). t3 ) on a cubic. . t) f (t. The diagram below shows the computation of the polar values f (0. f (0. r. t2 . s) f (r. There are several possible computations. s. and t3 = 4. t) f (r. bm . r. t3 ). f (0. 6). . r. t1 = 2. r. 6). . t3). s. . . The following diagram shows an example of the de Casteljau algorithm for computing the polar value f (t1 . r. t3 ) is also obtained by computing the polar values f (0. f (t1 . t2 ): The polar value f (t1 . s) . We will abbreviate f (t. s. r) f (r. . t2 .5.1: The de Casteljau algorithm below in the case where m = 3: 1 f (r. t2. 0. t3 ): The general case for computing the point F (t) on the curve F determined by the sequence of control points b0 . and f (6. and f (6. 0. . f (0. t1 . t3 . s. f (0. t2 = 3. s) Since control points are polar values. t. t) f (s. t1 . s) f (r. t2 ). r) F (s) = f (s. t) F (t) = f (t. i j k 2 3 f (t1 . s. 6). t. . t2 . . 6. . . 6. s = 6. the de Casteljau algorithm can also be used for computing other control points. t2 . s. t. t1 ) f (r. t1 ). r. This turns out to be very useful. is shown below. s) Figure 5. s) f (r. t2 .

6) f (0. 6) f (0. 6) f (0. for t1 = 2. t3.146 ´ CHAPTER 5. 0.2: The de Casteljau algorithm.3: The de Casteljau algorithm. 6. POLYNOMIAL CURVES AS BEZIER CURVES f (0. 6. t1. 6. t3 ) f (t1 . 6) f (6. t2 . t2 . 6. t1 . 0. t2 . 0) F (6) = f (6. 6. t3 ) f (6. 6) f (0. 6) Figure 5. 6) Figure 5. t1) F (0) = f (0. 6) F (0) = f (0. t3) f (0. 0. t1 . t2 ) f (t1 . 0. t2 = 3. for t1 = 2. t3 = 4 . 0. 6. t2 = 3. t2 . 0. t3 ) f (t3 . t3 ) f (0. 0) F (6) = f (6. t3 = 4 f (0. t2 ) f (0. 6) f (t1 . 6) f (0.

.j = bi if j = 0. we have the following equations: bi. f (rsm−1 ) f (tsm−1 ) f (sm ) In order to make the above triangular array a bit more readable. THE DE CASTELJAU ALGORITHM 147 as f (ti r j sk ). 0 ≤ i ≤ m − j. 0 ≤ i ≤ m. Then....j = s−t s−r bi.. 0 ≤ i ≤ m − j...5.. j−1 m−i−j+1 i f (t r s) f (tj−1r m−i−j si+1 ) f (tm−1 r) ... m−1 m 1 f (tr m−1 ) 2 .. f (tj−1 r m−j+1) f (tj r m−j ) . The point f (tj r m−i−j si ) is obtained at step i of phase j. let us deﬁne the following points bi. for 1 ≤ j ≤ m.. f (t j−1 s−t s−r f (tj−1r m−i−j+1 si ) + j −1 t−r s−r j f (tj−1r m−i−j si+1 ).. f (tj−1 r m−j s) . .j . used during the computation: bi. where i + j + k = m.. f (tj r m−i−j si ) if 1 ≤ j ≤ m...j−1 . . f (tm−1 s) m−j f (tm ) rs ) f (tj sm−j ) f (tj−1 sm−j+1 ) .1.. by the interpolation step f (tj r m−i−j si ) = 0 f (r m ) f (r m−1 s) .j−1 + t−r s−r bi+1.. . f (tj r m−i−j si ) .

.m−2 ). b1.j−1 and bi+1.1 ).1 . the algorithm consists of a diagram consisting of the m polylines (b0. (b2.m .. bi.j lies between bi. b2. (b1. .m−k . and bi.j 1 .1 bm−k.2 . bm−j. bm ) is also called a control polygon of the curve. and with the point b0. (b2.1 ) (b0.1 ).0 . j −1 j . . . . but the shells are not nicely nested. b3. b1.0 . b3 ). (bm−3.0 . .0 ). POLYNOMIAL CURVES AS BEZIER CURVES Such a computation can be conveniently represented in the following triangular form: 0 b0.j . m . . . .j−1 b0..j . each interpolation step computes a convex combination. . (b3.j−1 bi+1. b4 ).m−1 . .2 . .. bm−k−j. . b1 ). bm−j+1. b1. they form the de Casteljau diagram.m−2 . .m−2 ) (b0. bm−2. (bm−1 . ..0 ) (b0.m−1 ) called shells. b1. . (b0.1 ). (b3 .0 .. . b2..j−1 . (b1..0 . bm−1.. b2. . . .j−1 bm−k−1. Note that the shells are nested nicely. (b2 . bm. . geometrically.1 .0 . . b4. .2 . (b1.1 b1.j−1 . . . . m− k . .j . (b1. .0 ). In this case.2 ). bk. .. we still obtain m shells and a de Casteljau diagram. (b1 . (bm−1. . .0 ).j−1 . .m−k b0. b2.1 .1 .m−2 . s].2 ). bm−k−j+1.2 ) .0 When r ≤ t ≤ s. bm−1.. .148 ´ CHAPTER 5.m .1 bm. b2 ).0 b0. When t is outside [r. b1. . The polyline (b0 . (bm−2. .0 bm−1. . . b0. bi. b0.0 ).0 . . b3.

for a value t of the parameter. s](t) bk . [r.q_List. and the second one being F (t) itself. The result is the point F (t). the ﬁrst one being the shells of the de Casteljau diagram. bm . but when we refer to the B´zier e curve segment over [r.r)/(s . . We will sometimes denote the B´zier curve determined by the sequence of control points b0 .t. s]). [r. .r) p + (t . in the sense that f (r. s]). r .s_. and the point e corresponding to the parameter value t as B b0 . . *) .5. This can be advantageous for numerical stability. s. bm .r_. on the unique polynomial curve F : A → E of degree m determined by the sequence of control points b0 . (* Performs general affine interpolation between two points p. s]. Thus. s](t) = m k s−t s−r m−k t−r s−r k are the Bernstein polynomials of degree m over [r. we are assuming that t ∈ [r. . The de Casteljau algorithm is very easy to implement. The point F (t) is given by the formula m F (t) = k=0 m Bk [r. The output is a list consisting of two sublists. . without actually using the Bernstein polynomials.1. s]. we have an explicit formula giving any point F (t) associated with a parameter t ∈ A. . These functions all use a simple function lerp performing aﬃne interpolation between two points p1 and p2. . . . bm . . s]. as B b0 . . s].3. . The function decas computes the point F (t) on a polynomial curve F speciﬁed by a control polygon cpoly (over [r. with respect to the aﬃne frame [r. . and not necessarily only in [r. . and we give below several versions in Mathematica.t)/(s . . q (* w. s] (t). s]. . and deﬁned with respect e to the interval [r. bm .1. . affine basis [r. s] . or B[r. .t_] := (s . and interpolating value t *) lerp[p_List. Note that the parameter t can take any value in A. . s]. the de Casteljau algorithm provides an iterative method for computing F (t). s].r. m−i i where f is the polar form of the B´zier curve. . The function badecas simply computes the point F (t) on a polynomial curve F speciﬁed by a control polygon cpoly (over [r. where the polynomials m Bk [r. . . .r) q. but also the shells of the de Casteljau diagram. s]. s) = bi . THE DE CASTELJAU ALGORITHM 149 By lemma 4. .

The following function pdecas creates a list consisting of Mathematica line segments and of the point of the curve. r.1. s. res}. 1. res := Append[lseg. 1. {i. bb[[i+1]]. Do[ Do[ b = Append[b. s_. b = {}. i.j + 1} ].1]]. lerp[bb[[i]]. {b[[i . s. b = {}. m . b = {}. t]]. Do[ Do[ b = Append[b. lseg = {}. b[[i]]}]] . r. t_] := Block[ {bb = {cpoly}. lseg = Append[lseg. . bb = b.1. (m = Length[bb] . m. bb[[1]]]. j}. m} ]. t]]. {j. {i. {j. POLYNOMIAL CURVES AS BEZIER CURVES (* (* (* computes a point F(t) on a curve using the de Casteljau algorithm *) this is the simplest version of de Casteljau *) the auxiliary points involved in the algorithm are not computed *) badecas[{cpoly__}. s_. bb = b. r_. lerp[bb[[i]]. bb[[1]] ) ]. m. j. res ) ]. i. b = {}. 1. If[i > 1. 1. t_] := Block[ {bb = {cpoly}.150 ´ CHAPTER 5. bb[[i+1]]. m . r_. m} ]. (* computes the point F(t) and the line segments involved in computing F(t) using the de Casteljau algorithm *) decas[{cpoly__}. ready for display.j + 1} ]. (m = Length[bb] .

pt. -1]. .. tj sm−j ) f (t1 . . The general computation of the polar value f (t1 . ll. tj−1 s . tm ) ) .. . tj−1 r m−i−j si+1 ) . ll = {}.. t]. f (t1 . . l1.. res ]. . ll = Append[ll. Point[pt]}]. . r. f (t1 . Line[edge]]. i. f (t1 . THE DE CASTELJAU ALGORITHM (* this function calls decas. PointSize[0. l1} ]. res = Append[ll. .. res = decas[bb. . . .... . .1. . ..0]. edge}. . tm ) is shown below. l1 = Length[res]. {i. .. tj−1 r m−i−j+1 si ) f (t1 .0. 1.01]. . s_. pt = Last[res]. tj−1 r m−j s) . . .5. tj r m−i−j si ) . . f (rsm−1 ) f (t1 sm−1 ) f (sm ) m−j+1 151 1 f (t1 r m−1 ) j−1 j m . 0 f (r m ) f (r m−1 s) .. . f (t1 . s. res.. f (t1 . t_] := Block[ {bb = {cpoly}. tj−1r m−j+1 ) f (t1 . .. . with colors *) pdecas[{cpoly__}. and computes the line segments in Mathematica. . tj r m−j ) . tj−1 rsm−j ) f (t1 . {RGBColor[1.. f (t1 . Do[ edge = res[[i]]. res = Drop[res. r_.

tj r m−i−j si ) = s − tj s−r f (t1 . res}. {tt__}. .j = bi if j = 0. f (t1 . tj−1 r m−i−j si+1 ). . tj r m−i−j si ) if 1 ≤ j ≤ m. . for 1 ≤ j ≤ m. . . . . . If[i > 1. tm) *) the input is a list tt of m numbers *) gdecas[{cpoly__}.j used during the computation as bi.j = s − tj s−r bi. . . r_. (m = Length[bb] . . {b[[i . r. and in the case where j = 0. we have the following more readable equations: bi. s). . tj r m−i−j si ) is obtained at step i of phase j. .. The point f (t1 . . . Again. s). t[[j]]]]. lerp[bb[[i]]. t = {tt}. . and 0 ≤ i ≤ m − j. . . j m−i−j i as f (t1 . . r. . 0 ≤ i ≤ m. b[[i]]}]] . . . . . .1]]. tj . . b = {}. 0 ≤ i ≤ m − j.. . by the interpolation step f (t1 .j−1 . . . bb[[i+1]]. where 0 ≤ i ≤ m. s. lseg = {}. .152 We abbreviate ´ CHAPTER 5. where 1 ≤ j ≤ m. s. POLYNOMIAL CURVES AS BEZIER CURVES f (t1 . . tj−1 r m−i−j+1 si ) + tj − r s−r f (t1 .. Do[ Do[ b = Append[b. (* (* (* computes a polar value using the de Casteljau algorithm *) and the line segments involved in computing f(t1. we abbreviate f (r. . r.j−1 + tj − r s−r bi+1. s_] := Block[ {bb = {cpoly}. s. m.1. deﬁning the points bi. i. j. tj r m−i−j si ). 0 ≤ i ≤ m − j. lseg = Append[lseg. m−i i as f (r m−i si ). The computation of polar values is implemented in Mathematica as follows. r. .

tm ) remains invariant if we exchange any two arguments. . bb[[1]]]. This means that if an aﬃne map h is applied to a B´zier curve F e speciﬁed by the sequence of control points b0 . . . 1. u We now consider a number of remarkable properties of B´zier curves. [r. . and then with respect to λ. Since the algorithm proceeds by aﬃne interpolation steps. and then with respect to µ. . . Pµ = (1 − µ)A + µB. . . . res ) ]. yields the same result a interpolating ﬁrst with respect to µ. 153 Remark: The version of the de Casteljau algorithm for computing polar values provides a geometric argument for proving that the function f (t1 . . which is obvious. .5.j + 1} ]. . . bm . is identical to the curve h(F ). e Aﬃne Invariance. it is clear that it yields a multiaﬃne map. . Since every permutation is a product of transpositions. and let Pλ = (1 − λ)A + λB. Thus. s] ) = B [h(b0 ). bb = b. THE DE CASTELJAU ALGORITHM . bm . . . . What is not entirely obvious. Let A. [r. This is because. . b = {}. . we claim that Qλ = (1 − λ)B + λC. . images e of the original control points b0 . . . {j. interpolating ﬁrst with respect to λ. tm ) that it computes. is a symmetric multiaﬃne map. . . B. res := Append[lseg. . . Qµ = (1 − µ)B + µC. m . points on a B´zier curve speciﬁed by a sequence of control points e b0 . . . and that aﬃne maps preserve aﬃne combinations. . m} ]. The above result is closely related to a standard result known as Menela¨ s’s theorem. is symmetry. h(bm ). bm .1. and also Then. This can be expressed as h(B b0 . {i. . obtaining a curve h(F ). h(bm ). C be three points. s]] . as follows. bm are obtained by computing aﬃne combinations. 1. since both of these points coincide with the point R = (1 − λ)(1 − µ)A + (λ + µ − 2λµ)B + λµC. then the B´zier curve F ′ determined by the sequence of control points h(b0 ). . (1 − µ)Pλ + µQλ = (1 − λ)Pµ + λQµ . . We can establish this fact. . we only need to show that f (t1 .

is contained within the convex hull of the control points b0 . . . all aﬃne combinations involved in computing a point F (t) on the curve segment are convex barycentric combinations. . rather than applying the aﬃne map to all the points computed on the original curve. . . s] (r < s). s]. . 1] t−r r−s . This fact is basically obvious. bm . . . . . with the same sequence of control points b0 . . . . over the interval [r. The B´zier curve F (t) speciﬁed by the see quence of control points b0 . who can also verify the following two properties: B b0 . . . . . we simply apply the aﬃne map to the control points.154 ´ CHAPTER 5. [s. . . . . . h] (t − r). bm . . This can be expressed as B b0 . . . when r ≤ t ≤ s. . Invariance under aﬃne parameter change. bm . bm . [r. over [0. . [0. . The segment of B´zier curve F (t) speciﬁed by the sequence of e control points b0 . and then contruct the new B´zier curve. r] (t). b0 . . [r. . [0. bm . POLYNOMIAL CURVES AS BEZIER CURVES B Pµ R Pλ Qλ Qµ A Figure 5. If we want to move a curve using an aﬃne map. . . This is usually a lot cheaper than moving e every point around. bm . . [r. 1]. . s] (t) = B bm . r + h] (t) = B b0 . . This is because. s] (t) = B b0 . Convex Hull Property. bm . . . bm . bm and deﬁned over the interval [r. . . . . is the same as the B´zier e t−r curve F r−s . and left to the reader.4: Symmetry of biaﬃne interpolation C This property can be used to save a lot of computation time. and B b0 .

. bm is that same line. m−1 m−1 given by the de Casteljau algorithm. . . s) = f (s. Symmetry. . passes trough the points b0 and bm . . r. . s). Similarly. If the points b0 . . . s. the curve is most aﬀected i around the points whose parameter value is close to n . . . the tangent to the B´zier curve at the point b0 is the line determined by b0 e and b1 . . bm . bm . t. m−1 = f (t. e This is obvious since the points on the curve are obtained by aﬃne combinations. t. s]. Given a B´zier curve F speciﬁed by a sequence of control points e b0 . . is to observe that the curve F (r + s − t). . then the B´zier curve determined by the sequence of control points b0 . whose polar form is g(t1 . where f is the polar form of the original curve F (t) speciﬁed by the sequence of control points b0 . . . . . . s] (t). . . bm . bm . [r.5. . . satisﬁes the conditions g(r. . over the interval [r. [r. over the interval [r. . . is equal to the B´zier curve F ′ (t) speciﬁed by the e sequence of control points bm . . bm are collinear (belong to the same line). . tm ) = f (r + s − t1 . . This can be seen easily using the symmetry of the Bernstein polynomials. THE DE CASTELJAU ALGORITHM 155 This property can be used to determine whether two B´zier curve segments intersect e each other. m−i i m−i i and since this curve is unique. . . it is indeed F ′ (t). . . . Endpoint Interpolation.1. that when b0 and b1 are distinct. bm . b0 . . s. . . . m−1 = f (t. . is determined by the two points b0. . Determination of tangents.4. . . r) = bm−i . . . The B´zier curve F (t) speciﬁed by the sequence of control points e b0 . . . r + s − tm ). . . Furthermore. . The B´zier curve F (r + s − t) speciﬁed by the sequence of control points e b0 . if some control point bi is moved a little bit. . . . . . . Another way to see it. the tangent at the current point F (t) determined by the parameter t. It will be shown in section 5. Linear Precision. . s]. r. . Pseudo-local control. b0 . . . . . . s] (r + s − t) = B bm . . . . s]. . over the interval [r. This can be expressed as B b0 . r) and b1. . This is because it can be shown i that the Bernstein polynomial Bin reaches its maximum at t = n . . the tangent at the point bm is the line determined by bm−1 and bm (provided that these points are distinct). . .

bm−k−j. and an interval [r. . bi. . .j−1 bi+1. bm .j−1 bm−k−1.m . .1 . is less than or equal e to the number of intersections between the control polygon determined by b0 . . b0. . As we will see.. bm−j. . bi. bm .j .m . for every t ∈ A. . s] and the hyperplane H. . . bk. As a consequence. .. Observe that the two diagonals b0. . . bm . .2 Subdivision Algorithms for Polynomial Curves We now consider the subdivision method.. . bm−j+1. . .. . .0 . .. m .j . we saw how the de Casteljau algorithm gives a way of computing the point B b0 ..0 .1 bm−k. and the hyperplane H. . [r. and the computation can be conveniently represented in the following triangular form: 0 b0. b0. .j . b0.j−1 . the number of intersections between the B´zier curve segment F [r. bm−1.j 1 . . Given a B´zier curve F speciﬁed by a sequence of e control points b0 . .. s].m on the B´zier e curve. . . a convex control polygon corresponds to a convex curve. for every hyperplane H.0 bm−1. and the convergence is very fast.m−k b0. . . s] (t) = b0. .. We will prove the variation diminishing property as a consequence of another property. . Given a sequence of control points b0 .156 ´ CHAPTER 5. 5. .j−1 .1 b1. . the subdivision property. subdivision can be used to approximate a curve using a polygon. . . POLYNOMIAL CURVES AS BEZIER CURVES Variation Diminishing Property. . . m− k . . . . b0. j −1 j . over [r. . bm .j . . . bm−k−j+1. b0. . s].j−1 b0. .0 b0.0 Let us now assume that r < t < s. .m−k .1 bm. .0 .

. . . . . (i + 1)/m]. and continue recursively in this manner. . .2. For t ∈ [r. t]. . For the n following lemma. Also.j . . . . . . . . . Assuming for 1 1 simplicity that r = 0 and s = 1. [t. bm . and 2n control subpolygons.0 . s] (u). 0 ≤ k ≤ 2n . given a control polygon Π with m sides.j . bm over [r. with 0 ≤ i ≤ m − 1. . .m . . we assume that Π is viewed as the piecewise linear curve deﬁned such that over [i/m. s]. if f is the polar form associated with the B´zier curve speciﬁed by the sequence e of control points b0 . . . . s] as above. . . .0 .0 over [t. bm. since f and g agree on the sequence of m + 1 points b0. . we have f = g = h. . . SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES and b0. . .j . bm−j. .0 . by lemma 4. 157 Indeed. . We claim that we have B b0 . [r. .m over [r. . Π(u) = (i + 1 − m u)ai + (m u − i)ai+1 . b0. . . . t] and B b0. bm−j.0 . b0. and then t = 4 and t = 3 . and h is the polar form associated with the B´zier curve speciﬁed by the sequence of control points e b0. g is the polar form associated with the B´zier curve e speciﬁed by the sequence of control points b0. the points corresponding to parameter values t = 2k . Clearly. if we ﬁrst choose t = 2 . . . . b0.0 . bm−j. This is indeed the case. s] (u) = B b0. .1. b0. bm. b0. . . . we assume that E is a normed aﬃne space. s].j . bm.m . . at the n-th step. bm−j. b0. . . . .0 . .j . we say that the two curve segments B b0. there are 2n + 1 points on the original curve. bm−j.0 . . . . . t] (u) = B b0. and the convergence is in fact very fast. we can in turn subdivide each of the two segments. .5. and so 4 on. . .m .j .m . . . . [r. [t. . . . . .j . s] .3. for all u ∈ A.j . . .m . and f and h agree on the sequence of m + 1 points b0. . .m−1 . bm. .0 .m . s] . form a subdivision of the curve segment B b0 . . . . each consist of m + 1 points. b1. whose union e forms a polygon Πn with m2n + 1 nodes. bm . b0. . . . bm. [r. . Among these points. . . we have 2n B´zier segments. . .m . [r. b0.j . . . . It seems intuitively clear that the polygon obtained by repeated subdivision converges to the original curve segment.m . .

2. by the triangle inequality. b0. The above lemma is the key to eﬃcient methods for rendering polynomial (and rational) curves.m .j≤m − → bi bj ≤ m max 0≤i≤m−1 −− −→ bi bi+1 . . we have −− − − − − −→ max Πn (u)F (u) ≤ −− −→ −−− mM max Π(u)F (u) ≤ n . whose endpoints are on the curve F . . . the distance between the B´zier curve e segment F and the control polygon satisﬁes the inequality 0≤u≤1 −− −→ −−− max Π(u)F (u) ≤ max 0≤i. . the maximum length of the sides of M the polygon Πn is 2n . . . due to the screen resolution. POLYNOMIAL CURVES AS BEZIER CURVES Lemma 5. bm ) over an aﬃne frame [r. . from an input control polygon cpoly. since F e is contained in the convex hull of the control polygon. . converges uniformly to the curve segment F = B b0 . b0. .t] and B[t. the polygon obtained by subdivision becomes indistinguishable from the curve. in the sense that −− − − − − −→ C max Πn (u)F (u) ≤ n . If Π is any control polygon with m + 1 nodes.0 . . . b0. . for every t ∈ A. bm . Since we are subdividing in a binary fashion. e over the interval [0. −− −→ by the triangle inequality.j . .t] the control polygon b0. bm−j. .158 ´ CHAPTER 5. . . the polygon Πn obtained after n steps of subdivision. .j . b1. 1].|Π|=m 2 max 0≤u≤1 where Π is any subpolygon of Πn consisting of m sides. and as B[t. .0 . . which proves the lemma. . . 1] . for a B´zier curve segment F . Given a B´zier curve speciﬁed by a sequence of m+1 control points b0 . from above. if we subdivide in a binary fashion.s] the control polygon b0. .m .1. . Then. s]. . . bm . and since only convex combinations are involved. . bm .s] . and thus. The following Mathematica function returns a pair consisting of B[r. .1 . we denote as B[r.m−1 . 0≤u≤1 Π⊆Πn . bm. Proof. this yields a fast method for plotting the curve segment! The subdivision method can easily be implemented. . for the original control polygon with control points b0 . . [0. Let M = max bi bi+1 . Given a polynomial curve F deﬁned by a control polygon B = (b0 . . . . After a certain number of steps. . 0≤u≤1 2 for some constant C > 0 independent of n.

t]] . t... r. ud = Append[ud. 1. . b = {}. ld = {bb[[m + 1]]}. t_] := Block[ {bb = {cpoly}. res}.j + 1]]]. (l = Length[cpoly]. j. 1. The function subdiv performs n calls to subdivstep... r_. The function subdivstep subdivides each control polygon in a list of control polygons.{ld}]. the function makedgelis makes a list of Mathematica line segments from a list of control polygons. res ) ].j + 1} ]. t = (r + s)/2. {i. {j.. {i. In order to approximate the curve segment over [r. s_] := Block[ {cpoly = {poly}. ld = {}. s_. lpoly ) *) . s. s)) 159 *) *) *) subdecas[{cpoly__}. subdecas[cpoly[[i]]. b = {}. t]]. l} ]. lpoly = {}.. l. m} ]. i. lerp[bb[[i]]..r. r_. 1. t. b[[1]]].. Do[ Do[ b = Append[b. s.5. in order to display the resulting curve.1. ud = {bb[[1]]}.. ud = {}. s. b[[m . we recursively apply subdivision to a list consisting originally of a single control polygon..2.. s]. ld = Prepend[ld. t. bb = b.. res := Join[{ud}. Finally. m . r. (* subdivides each control polygon in a list of control polygons (* using subdecas. Do[ lpoly = Join[lpoly. . bb[[i+1]]. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES (* (* (* Performs a single subdivision step using the de Casteljau algorithm Returns the control poly (f(r.. (m = Length[bb] . t)) and (f(t. i}. m. Uses t = (r + s)/2 *) subdivstep[{poly__}. .

1. 30). The following 6 pictures show polygonal approximations of the curve segment over [0. 4. 1] using subdiv. (* To create a list of line segments from a list of control polygons *) makedgelis[{poly__}] := Block[ {res. 1. The subdivision method is illustrated by the following example of a curve of degree 4 given by the control polygon cpoly = ((0. ( newp = {pol1}. Do[ newp = subdivstep[newp. n} ]. Do[ sl = newsl[[i]].160 ]. (5. . −4). (10. 5. 6. l2 = Length[sl]. {j. res = {}. res = Append[res. l1} ]. i}. (10. sl. Do[If[j > 1. sl[[j]]}]]]. newsl = {poly}. (0. {i. 2. n_] := Block[ {pol1 = {poly}. s]. i. 1. 3. ´ CHAPTER 5. newp ) ]. newp = {}. for n = 1. 30). res ) ]. l1. r_. l2}. −20). r. j. s_. l2} ]. Line[{sl[[j-1]]. (l1 = Length[newsl]. POLYNOMIAL CURVES AS BEZIER CURVES (* calls subdivstep n times *) subdiv[{poly__}. {i. −4)).

SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 161 Figure 5.5: Subdivision. 1 iteration .5.2.

6: Subdivision. 2 iterations .162 ´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.

5. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 163 Figure 5.7: Subdivision.2. 3 iterations .

POLYNOMIAL CURVES AS BEZIER CURVES Figure 5. 4 iterations .164 ´ CHAPTER 5.8: Subdivision.

5. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 165 Figure 5. 5 iterations .2.9: Subdivision.

POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.166 ´ CHAPTER 5.10: Subdivision. 6 iterations .

r.. b) and (b. we observe that a hyperplane intersects the new polygon in a number of points which is at most the number of times that it intersects the original polygon.. b] ]. Indeed.r. wrt original frame (s. [r. r. (* (* (* (* Computes the control polygon wrt new affine frame (a. b)) *) *) *) *) newcpoly[{cpoly__}. and then we reverse this control polygon and subdivide again w. [r..lambda) r + lambda t and that b = (1 . r. This immediately follows by convexity.b] over a new aﬃne frame [a.r. where 0 ≤ λ ≤ 1. m. pol1. we now have the three edges (a. m = Length[pola].mu) r + mu t. . a. if we contruct the points b′ = (1−λ)a+λb and b′′ = (1−λ)b+λc. b. npoly] *) npoly = subdecas[poly. . b]. we get the control polygon B[r. s. assuming a = r. [a.a] . (* Print[" npoly: ". a_. pol2 = Prepend[pol2. a. Observe that the subdivision process only involves convex aﬃne combinations. c). a].t.. i. b) Assumes that a = (1 . pola = pol1[[1]].t. {i. s] over which the original control polygon is deﬁned. Another nice application of the subdivision method is that we can compute very cheaply the control polygon B[a. . b′ ). s]. ( If[a =!= r. b) and (b. r_. by subdividing once w.t. c). t) Returns control poly (f(a. c) of the control polygon.. pol1 = subdecas[poly. pola. s] using the parameter a. s_. b] diﬀerent from the interval [r. Then. to get B[a. 1. npoly. we subdivide w. pol2 = {}. (b′ .b] . npoly = subdecas[pol2. b] of a polynomial curve given by a control polygon B over [r. s. and (b′′ . We can now prove the variation diminishing property. and modify the control polygon so that instead of having the two edges (a. r] using b. s]. pt}. b′′ ). using b. pol2. m} ]. Do[ pt = pola[[i]].2. Given any two adjacent edges (a.r. npoly[[1]] ) ].5. pt]. b_] := Block[ {poly = {cpoly}. The above function can be used to render curve segments over intervals [a.. When r = a. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 167 The convergence is indeed very fast.

. and b1 0 m+1 = bm . ti . t2 . if f is biaﬃne. b1 . t3 ) + f (t2 . For example. g as deﬁned above is clearly m + 1-aﬃne and symmetric. .. and it is an 0 m+1 easy exercise to show that the points b1 are given in terms of the original points bi . a curve of degree 2. for example. . it is equal to F on the diagonal.168 ´ CHAPTER 5. e a hyperplane intersects the B´zier curve in a number of points which is at most the number e of times that it intersects its control polygon. with b1 = b0 . the following notation is often used. Since these polygons obtained via subdivision converge to the B´zier curve. . . and thus. Instead of the above notation. . . . bm . say 3. Indeed. . . the polar form g : Am+1 → E that will yield the same curve F . i=1 where the hat over the argument ti indicates that this argument is omitted. m+1 m is necessarily g(t1 . . 3 If F (and thus f ) is speciﬁed by the m + 1 control points b0 . 1 g(t1 . . . tm+1 ) = m+1 m+1 f (t1 . . and speciﬁed by a sequence of m + 1 control points b0 . We consider one more property of B´zier curves. it may be necessary to raise the (polar) degree of the curve. . . . tm+1 ). by the j equations: m+1−i i bi−1 + bi . . . . . is speciﬁed by m + 2 control points b1 . POLYNOMIAL CURVES AS BEZIER CURVES by induction. . . t) = f (t. For example. . . . t2 ) + f (t1 . . and since it is unique. t3 ) . t) = F (t). . we have g(t1. it is sometimes necessary to view F as a curve of polar degree m + 1. bm . . in order to use such a system on a curve of lower degree. b1 = i m+1 m+1 where 1 ≤ i ≤ m. . . . Or a system may only accept curves of a speciﬁed degree. . tm+1 ) = 1 m+1 f (ti1 . .. if F is deﬁned by the polar form f : Am → E. it is the desired polar form. then F considered of degree m + 1 (and thus g). . . This can be done very easily in terms of polar forms. we can show that a hyperplane intersects any polygon obtained by subdivision in a number of points which is at most the number of times that it intersects the original control polygon. . in the sense that g(t. degree raising.<im ≤m+1 Indeed. 1≤i1 <. Given a B´zier curve e e F of polar degree m. . . . tim ) . t3 ) = f (t1 . certain algorithms can only be applied to curve segments of the same degree. .

uk+m). u4. u3 . u5 ) f (u3. . u3. t2 . t2 . Given a sequence u1 . u5 ) f (u4. f (u3. Now. u2 . u4) f (t1 . THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM 169 One can also raise the degree again. . . where the ui are real numbers taken from a sequence u1 . u5 . u3). t3 ) from the above control points. . It can be shown that the control polygons obtained by successive degree raising. u2. satisfying certain inequality conditions. u6 . and so on. t2 . . u3 . Observe that these points are obtained from the sequence u1 . using the following triangular array obtained using the de Casteljau algorithm: 0 f (u1. this convergence is much slower than the convergence obtained by subdivision. for reasons that will become clear shortly. u2 . u4 . but of the form f (uk+1. Let us begin with the case m = 3.5. converge to the original curve segment. Such a version will be called the progressive version. However. u3) f (t1 . u3. it is convenient to consider control points not just of the form f (r m−i si ). t2 . .3. u2 . u5. u6 . we consider the following four control points: f (u1 . . u2. u4 . we say that this sequence is progressive iﬀ the inequalities indicated in the following array hold: u1 = u2 = = u3 = = = u4 u5 u6 Then. from left to right. we can compute any polar value f (t1 . f (u4. . u4 ) f (t1 . When dealing with splines. and it is not useful in practice. u2m of length 2m. u5 . u3 ) f (u2. This explains the name “progressive case”. u4 . u4 . u5 ). t3 ) f (t1 . f (u2 . u5 . u3 . u3 ) 2 3 f (t1 . u4 ) 1 f (t1 . 5. by sliding a window of length 3 over the sequence.3 The Progressive Version of the de Casteljau Algorithm (the de Boor Algorithm) We now consider one more generalization of the de Casteljau algorithm that will be useful when we deal with splines. u4). u6 ). u6 ) .

170 f (u2 , u3 , u4) f (t1 , u2, u3 )

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES f (u3 , u4 , u5) f (t1 , u3, u4 ) f (t1 , t2 , u3 ) f (t1 , t2 , t3 ) f (t1 , t2 , u4 )

f (t1 , u4, u5 )

f (u1 , u2 , u3) f (u4 , u5 , u6) Figure 5.11: The de Casteljau algorithm, progressive case

At stage 1, we can successfully interpolate because u1 = u4 , u2 = u5 , and u3 = u6 . This corresponds to the inequalities on the main descending diagonal of the array of inequality conditions. At stage 2, we can successfully interpolate because u2 = u4 , and u3 = u5 . This corresponds to the inequalities on the second descending diagonal of the array of inequality conditions. At stage 3 we can successfully interpolate because u3 = u4 . This corresponds to the third lowest descending diagonal. Thus, we used exactly all of the “progressive” inequality conditions.

The following diagram shows an example of the de Casteljau algorithm for computing the polar value f (t1 , t2 , t3 ) on a cubic, given the progressive sequence u1 , u2 , u3 , u4 , u5 , u6 :

In the general case, we have a sequence u1 , . . . , u2m of numbers ui ∈ R.

Deﬁnition 5.3.1. A sequence u1, . . . , u2m of numbers ui ∈ R is progressive iﬀ uj = um+i , for all j, and all i, 1 ≤ i ≤ j ≤ m. These m(m+1) conditions correspond to the lower 2

5.3. THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM triangular part of the following array: u1 u2 . . . uj . . . . . . . . . um−1 um = = =

171

= = ... ... ... ... ... = ... = . . . um+j = ... ... = ... ... = ... = = . . . u2m−1 u2m ... ... = ... = . . . u2m−j+1

= =

= =

um+1 um+2

Note that the j-th descending diagonal of the array of progressive inequalities begins with uj (on the vertical axis), and ends with u2m−j+1 (on the horizontal axis). The entry u2m−j+1 will be before or after um+j , depending on the inequality 2j ≤ m + 1. We will abbreviate f (t1 , . . . , tj , ui+j+1, . . . , um+i ),

j m−j

**as f (t1 . . . tj ui+j+1 . . . um+i ), and when j = 0, we abbreviate f (ui+1 , . . . , um+i ),
**

m

as f (ui+1 . . . um+i ). The point f (t1 . . . tj ui+j+1 . . . um+i ) is obtained at step i of phase j, for 1 ≤ j ≤ m, 0 ≤ i ≤ m − j, by the interpolation step f (t1 . . . tj ui+j+1 . . . um+i ) = um+i+1 − tj f (t1 . . . tj−1 ui+j . . . um+i ) um+i+1 − ui+j tj − ui+j f (t1 . . . tj−1 ui+j+1 . . . um+i+1 ). + um+i+1 − ui+j

Phase j of the general computation of the polar value f (t1 , . . . , tm ), in the progressive

172 case, is shown below:

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

j−1 f (t1 . . . tj−1 uj . . . um ) f (t1 . . . tj−1 uj+1 . . . um+1 ) ... f (t1 . . . tj−1 ui+j . . . um+i ) f (t1 . . . tj−1 ui+j+1 . . . um+i+1 ) ... f (t1 . . . tj−1 um . . . u2m−j ) f (t1 . . . tj−1 um+1 . . . u2m−j+1 )

j f (t1 . . . tj uj+1 . . . um ) ... f (t1 . . . tj ui+j+1 . . . um+i ) ... f (t1 . . . tj um+1 . . . u2m−j )

Note that the reason why the interpolation steps can be performed is that we have the inequalities uj = um+1 , uj+1 = um+2 , . . . , ui+j = um+i+1 , . . . , um = u2m−j+1, which corresponds to the j-th descending diagonal of the array of progressive inequalities, counting from the main descending diagonal. In order to make the above triangular array a bit more readable, let us deﬁne the following points bi,j , used during the computation: bi,j = f (t1 . . . tj ui+j+1 . . . um+i ), for 1 ≤ j ≤ m, 0 ≤ i ≤ m − j, with bi,0 = f (ui+1 , . . . , um+i ), for 0 ≤ i ≤ m. Then, we have the following equations:

bi,j =

um+i+1 − tj um+i+1 − ui+j

bi,j−1 +

tj − ui+j um+i+1 − ui+j

bi+1,j−1 .

The progressive version of the de Casteljau algorithm is also called the de Boor algorithm. It is the major algorithm used in dealing with splines. One may wonder whether it is possible to give a closed form for f (t1 , . . . , tm ), as computed by the progressive case of the de Casteljau algorithm, and come up with a version of lemma 4.3.1. This turns out to be diﬃcult, as the case m = 2 already reveals!

5.3. THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM

173

Consider a progressive sequence u1, u2 , u3 , u4 , where the following inequalities hold: u1 = u2 = = u3 u4 We would like to compute f (t1 , t2 ) in terms of f (u1 , u2 ), f (u2, u3 ), and f (u3 , u4 ). We could apply the algorithm, but we can also proceed directly as follows. Since u1 = u3 and u2 = u4 , we can express t1 in two ways using two parameters λ1 and λ2 , as t1 = (1 − λ1 )u1 + λ1 u3 = (1 − λ2 )u2 + λ2 u4 , and since u2 = u3 , we can express t2 in terms of λ3 , as t2 = (1 − λ3 )u2 + λ3 u3 . Now, we compute f (t1 , t2 ), by ﬁrst expanding t2 : f (t1 , t2 ) = f (t1 , (1 − λ3 )u2 + λ3 u3 ) = (1 − λ3 ) f (t1 , u2 ) + λ3 f (t1 , u3 ), = (1 − λ3 ) f ((1 − λ1 )u1 + λ1 u3 , u2 ) + λ3 f ((1 − λ2 )u2 + λ2 u4 , u3 ), = (1 − λ1 )(1 − λ3 ) f (u1, u2 ) + [λ1 (1 − λ3 ) + λ3 (1 − λ2 )] f (u2, u3 ) + λ2 λ3 f (u3 , u4 ), and by expressing λ1 , λ2 , λ3 in terms of t1 and t2 , we get f (t1 , t2 ) = u3 − t1 u3 − t2 f (u1, u2 ) u3 − u1 u3 − u2 u3 − t2 t2 − u2 t1 − u1 + + u3 − u1 u3 − u2 u3 − u2 t1 − u2 t2 − u2 + f (u3 , u4 ). u4 − u2 u3 − u2

u4 − t1 u4 − u2

f (u2, u3 )

The coeﬃcients of f (u1, u2 ) and f (u3 , u4 ) are symmetric in t1 and t2 , but it is certainly not obvious that the coeﬃcient of f (u2 , u3 ) is symmetric in t1 and t2 . Actually, by doing more calculations, it can be veriﬁed that t1 − u1 u3 − u1 is symmetric. These calculations are already rather involved for m = 2. What are we going to do for the general case m ≥ 3? u3 − t2 u3 − u2 + t2 − u2 u3 − u2 u4 − t1 u4 − u2

We can still prove the following theorem generalizing lemma 4.3.1 to the progressive case. The easy half follows from the progressive version of the de Casteljau algorithm, and the converse will be proved later.

174

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

Theorem 5.3.2. Let u1 , . . . , u2m be a progressive sequence of numbers ui ∈ R. Given any sequence of m+1 points b0 , . . . , bm in some aﬃne space E, there is a unique polynomial curve F : A → E of degree m, whose polar form f : Am → E satisﬁes the conditions f (uk+1, . . . , um+k ) = bk , for every k, 0 ≤ k ≤ m. Proof. If such a curve exists, and f : Am → E is its polar form, the progressive version of the de Casteljau algorithm shows that f (t1 , . . . , tm ) = b0,m , where b0,m is uniquely determined by the inductive computation bi,j = where bi,j = f (t1 . . . tj ui+j+1 . . . um+i ), for 1 ≤ j ≤ m, 0 ≤ i ≤ m − j, and with bi,0 = f (ui+1, . . . , um+i ) = bi , for 0 ≤ i ≤ m. The above computation is well-deﬁned because the sequence u1, . . . , u2m is progressive. The existence of a curve is much more diﬃcult to prove, and we postpone giving such an argument until section 11.1. There are at least two ways of proving the existence of a curve satisfying the conditions of theorem 5.3.2. One proof is fairly computational, and requires computing a certain determinant, which turns out to be nonzero precisely because the sequence is progressive. The other proof, is more elegant and conceptual, but it uses the more sophisticated concept of symmetric tensor product (see section 11.1). um+i+1 − tj um+i+1 − ui+j bi,j−1 + tj − ui+j um+i+1 − ui+j bi+1,j−1 ,

5.4

Derivatives of Polynomial Curves

In this section, it is assumed that E is some aﬃne space An , with n ≥ 2. Our intention is to give the formulae for the derivatives of polynomial curves F : A → E in terms of control points. This way, we will be able to describe the tangents to polynomial curves, as well as the higher-order derivatives, in terms of control points. This characterization will be used in the next section dealing with the conditions for joining polynomial curves with C k -continuity. A more general treatment of (directional) derivatives of aﬃne polynomial functions F : Am → E will be given in section 10.5, as an application of the homogenization of an aﬃne space presented in chapter 10. In this section, we decided to go easy on our readers,

5.4. DERIVATIVES OF POLYNOMIAL CURVES

175

and proofs are omitted. Such proofs are easily supplied (by direct computation). Our experience shows that most readers are happy to skip proofs, since they can ﬁnd them later in chapter 10. In this section, following Ramshaw, it will be convenient to denote a point in A as a, to distinguish it from the vector a ∈ R. The unit vector 1 ∈ R is denoted as δ. When dealing → − with derivatives, it is also more convenient to denote the vector ab as b − a.

Given a polynomial curve F : A → E, for any a ∈ A, recall that the derivative DF (a) is the limit F (a + tδ) − F (a) lim , t→0, t=0 t if it exists.

Recall that since F : A → E, where E is an aﬃne space, the derivative DF (a) of F at a − → is a vector in E , and not a point in E. Since coeﬃcients of the form m(m−1) · · · (m−k + 1) occur a lot when taking derivatives, following Knuth, it is useful to introduce the falling power notation. We deﬁne the falling power mk , as mk = m(m − 1) · · · (m − k + 1), for 0 ≤ k ≤ m, with m0 = 1, and with the convention that mk = 0 when k > m. The falling powers mk have some interesting combinatorial properties of their own. The following lemma giving the k-th derivative Dk F (r) of F at r in terms of polar values, can be shown. Lemma 5.4.1. Given an aﬃne polynomial function F : A → E of polar degree m, for any r, s ∈ A, with r = s, the k-th derivative Dk F (r) can be computed from the polar form f of F as follows, where 1 ≤ k ≤ m: Dk F (r) = mk (s − r)k

i=k

i=0

k (−1)k−i f (r, . . . , r, s, . . . , s). i

m−i i

A proof is given in section 10.5. It is also possible to obtain this formula by expressing F (r) in terms of the Bernstein polynomials and computing their derivatives. If F is speciﬁed by the sequence of m + 1 control points bi = f (r m−i s i ), 0 ≤ i ≤ m, the above lemma shows that the k-th derivative Dk F (r) of F at r, depends only on the k + 1 control points b0 , . . . , bk In terms of the control points b0 , . . . , bk , the formula of lemma 5.4.1 reads as follows: i=k mk k k D F (r) = (−1)k−i bi . k i (s − r)

i=0

176

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

In particular, if b0 = b1 , then DF (r) is the velocity vector of F at b0 , and it is given by DF (r) = − m −→ m (b1 − b0 ). b0 b1 = s−r s−r

This shows that when b0 and b1 are distinct, the tangent to the B´zier curve at the point e b0 is the line determined by b0 and b1 . Similarly, the tangent at the point bm is the line determined by bm−1 and bm (provided that these points are distinct). More generally, the tangent at the current point F (t) deﬁned by the parameter t, is determined by the two points b0, m−1 = f (t, . . . , t, r) and b1, m−1 = f (t, . . . , t, s),

m−1 m−1

given by the de Casteljau algorithm. It can be shown that DF (t) = m (b1,m−1 − b0,m−1 ). s−r

The acceleration vector D2 F (r) is given by D2 F (r) = − −→ − m(m − 1) m(m − 1) −→ (b0 b2 − 2b0 b1 ) = (b2 − 2b1 + b0 ). 2 (s − r) (s − r)2

More generally, if b0 = b1 = . . . = bk , and bk = bk+1 , it can be shown that the tangent at the point b0 is determined by the points b0 and bk+1 . In the next section, we use lemma 5.4.1 to give a very nice condition for joining two polynomial curves with certain speciﬁed smoothness conditions. This material will be useful when we deal with splines. We also urge the readers who have not yet looked at the treatment of derivatives given in section 10.5 to read chapter 10.

5.5

Joining Aﬃne Polynomial Functions

The weakest condition is no condition at all, called C −1 -continuity. This means that we don’t even care whether F (q) = G(q), that is, there could be a discontinuity at q. In this case, we say that q is a discontinuity knot. The next weakest condition, called C 0 -continuity, is that F (q) = G(q). In other words, we impose continuity at q, but no conditions on the derivatives. Generally, we have the following deﬁnition.

When dealing with splines, we have several curve segments that need to be joined with certain required continuity conditions ensuring smoothness. The typical situation is that we have two intervals [p, q] and [q, r], where p, q, r ∈ A, with p < q < r, and two aﬃne curve segments F : [p, q] → E and G : [q, r] → E, of polar degree m, that we wish to join at q.

5.5. JOINING AFFINE POLYNOMIAL FUNCTIONS

177

Deﬁnition 5.5.1. Two curve segments F ([p, q]) and G[q, r]) of polar degree m are said to join with C k -continuity at q, where 0 ≤ k ≤ m, iﬀ Di F (q) = Di G(q), for all i, 0 ≤ i ≤ k, where by convention, D0 F (q) = F (q), and D0 G(q) = G(q). As we will see, for curve segments F and G of polar degree m, C m -continuity imposes that F = G, which is too strong, and thus, we usually consider C k -continuity, where 0 ≤ k ≤ m−1 (or even k = −1, as mentioned above). The continuity conditions of deﬁnition 5.5.1 are ususally referred to as parametric continuity. There are other useful kinds of continuity, for example geometric continuity. We can characterize C k -continuity of joins of curve segments very conveniently in terms of polar forms. A more conceptual proof of a slightly more general lemma, will be given in section 11.1, using symmetric tensor products (see lemma B.4.5). The proof below uses lemma 10.5.1, which is given in section 10.5. As a consequence, readers who have only read section 5.4 may skip the proof. Lemma 5.5.2. Given two intervals [p, q] and [q, r], where p, q, r ∈ A, with p < q < r, and two aﬃne curve segments F : [p, q] → E and G : [q, r] → E, of polar degree m, the curve segments F ([p, q]) and G[q, r]) join with continuity C k at q, where 0 ≤ k ≤ m, iﬀ their polar forms f : Am → E and g : Am → E agree on all multisets of points that contain at most k points distinct from q, i.e., f (u1 , . . . , uk , q, . . . , q) = g(u1, . . . , uk , q, . . . , q ),

m−k m−k

**for all u1 , . . . , uk ∈ A. Proof. First, assume that the polar forms f and g satisfy the condition f (u1 , . . . , uk , q, . . . , q) = g(u1, . . . , uk , q, . . . , q ),
**

m−k m−k

**for all u1, . . . , uk ∈ A. If ui = q, 1 ≤ i ≤ k, we are requiring that f (q, . . . , q) = g(q, . . . , q ),
**

m m

that is, F (q) = G(q), which is C 0 -continuity. Let f : (A)m → E and g : (A)m → E be the homogenized versions of f and g. For every j, 1 ≤ j ≤ k, by lemma 5.4.1, the j-th derivative Dj F (q) can be computed from the polar form f of F as follows: mj D F (q) = (r − q)j

j i=j

i=0

j (−1)j−i f (q, . . . , q, r, . . . , r ). i

m−i i

178 Similarly, we have

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

mj D G(q) = (r − q)j

j

i=j

i=0

j (−1)j−i g(q, . . . , q , r, . . . , r ). i

m−i i

**Since i ≤ j ≤ k, by the assumption, we have f (q, . . . , q , r, . . . , r) = g(q, . . . , q , r, . . . , r),
**

m−i i m−i i

and thus, Dj F (q) = Dj G(q). Thus, we have C k -continuity of the join at q. Conversely, assume that we have C k -continuity at q. Thus, we have Di F (q) = Di G(q), for all i, 0 ≤ i ≤ k, where by convention, D0 F (q) = F (q), and D0 G(q) = G(q). Thus, for i = 0, we get f (q, . . . , q) = g(q, . . . , q ).

m m

**By lemma 10.5.1, we have Di F (q) = mi f (q, . . . , q, δ, . . . , δ ),
**

m−i i

and similarly, Di G(q) = mi g(q, . . . , q, δ, . . . , δ ),

m−i k i

**for 1 ≤ i ≤ m. Then, the assumption of C -continuity implies that f (q, . . . , q, δ, . . . , δ ) = g(q, . . . , q , δ, . . . , δ),
**

m−i i m−i i

**for 1 ≤ i ≤ k. However, for any ui ∈ A, we have (in A) ui = q + (ui − q)δ, and thus, for any j, 1 ≤ j ≤ k, we have f (u1 , . . . , uj , q, . . . , q ) = f (q + (u1 − q)δ, . . . , q + (uj − q)δ, q, . . . , q ),
**

m−j m−j

**which can be expanded using multilinearity and symmetry, and yields
**

i=j

f (u1 , . . . , uj , q, . . . , q) =

m−j i=0 L⊆{1,...,j} l∈L |L|=i

(ul − q) f (δ, . . . , δ , q, . . . , q).

i m−i

**5.5. JOINING AFFINE POLYNOMIAL FUNCTIONS Similarly, we have
**

i=j

179

g(u1 , . . . , uj , q, . . . , q) =

m−j i=0 L⊆{1,...,j} l∈L |L|=i

(ul − q) g(δ, . . . , δ, q, . . . , q ).

i m−i

**However, we know that f (δ, . . . , δ , q, . . . , q) = g(δ, . . . , δ, q, . . . , q ),
**

i m−i i m−i

**for all i, 1 ≤ i ≤ k, and thus, we have f (u1 , . . . , uj , q, . . . , q) = g(u1, . . . , uj , q, . . . , q),
**

m−j m−j

**for all j, 1 ≤ j ≤ k. Since f extends f and g extends g, together with f (q, . . . , q) = g(q, . . . , q ),
**

m m

which we already proved, we have established the conditions of the lemma. Another way to state lemma 5.5.2 is to say that the curve segments F ([p, q]) and G[q, r]) join with continuity C k at q, where 0 ≤ k ≤ m, iﬀ their polar forms f : Am → E and g : Am → E agree on all multisets of points that contain at least m−k copies of the argument q. Thus, the number k is the number of arguments that can be varied away from q without disturbing the values of the polar forms f and g. When k = 0, we can’t change any of the arguments, and this means that f and g agree on the multiset q, . . . , q ,

m

i.e., the curve segments F and G simply join at q, without any further conditions. On the other hand, for k = m − 1, we can vary m − 1 arguments away from q without changing the value of the polar forms, which means that the curve segments F and G join with a high degre of smoothness (C m−1 -continuity). In the extreme case where k = m (C m -continuity), the polar forms f and g must agree when all arguments vary, and thus f = g, i.e. F and G coincide. We will see that lemma 5.5.2 yields a very pleasant treatment of parametric continuity for splines. The following diagrams illustrate the geometric conditions that must hold so that two segments of cubic curves F : A → E and G : A → E deﬁned on the intervals [p, q] and [q, r], join at q with C k -continuity, for k = 0, 1, 2, 3. Let f and g denote the polar forms of F and G.

This is a general fact.12: Cubic curves joining at q with C 0 -continuity The curve segments F and G join at q with C 0 -continuity iﬀ the polar forms f and g agree on the (multiset) triplet q. q) f (p. q.. The curve segments F and G join at q with C 1 -continuity iﬀ the polar forms f and g agree on all (multiset) triplets including two copies of the argument q. i. The curve segments F and G join at q with C 2 -continuity iﬀ the polar forms f and g agree on all (multiset) triplets including the argument q. q 3−i−j ) of the polar forms f and g. r j .180 ´ CHAPTER 5. r j . then f (p i . where i + j ≤ k ≤ 3.e. q. p) g(q. r) f (p. r. q m−i−j ) = g(p i . r. r j . We are now ready to consider B-spline curves. q) g(r. These de Casteljau diagrams are represented in bold. r) g(q. When two polynomial curves F and G of degree m join at q with C k -continuity (where 0 ≤ k ≤ m). p. and these points form a de Casteljau diagram with k shells. q) f (p. iﬀ f = g. The above examples show that the points corresponding to the common values f (p i . The curve segments F and G join at q with C 3 -continuity iﬀ the polar forms f and g agree on all (multiset) triplets. j with i + j ≤ k ≤ m. q 3−i−j ) = g(p i . q. where k is the degree of continuity required. p. q m−i−j ) for all i. q. r) Figure 5. . q. POLYNOMIAL CURVES AS BEZIER CURVES f = g(q. r j . constitute a de Casteljau diagram with k shells.

p. q. q) g(r. q) f = g(p.5. q. r. q.14: Cubic curves joining at q with C 2 -continuity . r) f (p. q. p) Figure 5. p. p. r) f (p. p) g(q. r) f = g(p. r) f (p. r) Figure 5. q. JOINING AFFINE POLYNOMIAL FUNCTIONS 181 f = g(p. q) f = g(q. q.5. q) f = g(q. r. q) f = g(q. q. q) f = g(q. r) f = g(q. r) g(r.13: Cubic curves joining at q with C 1 -continuity f = g(p. p. r. r.

Consider (in the plane) the curve F deﬁned by the following 5 control points: b0 b1 b2 b3 b4 = (6. s]. q) f = g(q. Does the curve self intersect? Plot the curve segment (in the convex hull of the control polygon) as well as you can. r) f = g(p. Problem 2 (10 pts). Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/2) and F (3/4). 6). p. You may use Mathematica. 6). 0). it is assumed that r = 0 and s = 1. Test your program extensively. POLYNOMIAL CURVES AS BEZIER CURVES f = g(p. = (6. 0). or any other available software in which graphics primitives are available. = (0. −1). p.6 Problems Problem 1 (60 pts). In the next three problems. Write a computer program implementing the subdivision version of the de Casteljau algorithm. r) f = g(q. q. r. p) f = g(r.182 f = g(p. r) Figure 5. r. = (6. q. q) f = g(q. Problem 3 (10 pts). = (0. r) f = g(p. p. q. Consider (in the plane) the curve F deﬁned by the following 5 control . r) f = g(p. q) f = g(p. r) ´ CHAPTER 5. q. over some interval [r. r.15: Cubic curves joining at q with C 3 -continuity 5.

(baby Lagrange interpolation via control points) Given any aﬃne space E.e. x2 . 6). and given any sequence of four points (x0 . Show that for any t ∈ [0. b2 . −1). 30). and t = 1/4? . = (10. = (10.. b2 . 1]. −4). we have F ′ (t) − F (t) = Bi3 (t) b′i − bi . Does the curve self intersect? Plot the curve segment (in the convex hull of the control polygon) as well as you can. What is F ′ (t) − F (t) for i = 2. = (3. To simplify the calculations. an interpolating cubic curve). = (0. b3 . and compute its control points b0 . x1 . −1). PROBLEMS points: b0 b1 b2 b3 b4 = (6. in terms of x0 . If any of the control points bi changes (one only) to a new point b′i . Problem 6 (20 pts).5. −20). b1 . x1 . we get a diﬀerent cubic F ′ . t = 1/2. 183 Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/4) and F (1/2). Does the curve self intersect? Plot the curve segment (in the convex hull of the control polygon) as well as you can. Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/2). Consider the arc of cubic F [0. given any four distinct values t0 < t1 < t2 < t3 . −4). we would like to ﬁnd a cubic F : A → E such that F (ti ) = xi (i. x3 ). 30). 6).5.6. x3 . Consider (in the plane) the curve F deﬁned by the following 5 control points: b0 b1 b2 b3 b4 = (0. Prove that there exists a unique cubic satisfying the above conditions. where Bi3 (t) is the i-th Bernstein polynomial of degree 3. x2 . Problem 4 (20 pts). Let F be a cubic curve given by its control points b0 . 1]. and t1 < t2 . b1 . 0). b3 . = (6. = (0. assume that t0 = 0 and t3 = 1. = (5. = (6. Problem 5 (10 pts).

→ F ′ (0) = − . and let −0 and −1 be any two vectors in R3 . 3 3 3 3 H3 (t) = B2 (t) + B3 (t). 3 1 3 3 H2 (t) = − B2 (t). (Cubic Hermite interpolation) → → u u Let a0 . u 5 v v u 5 . −1 . Show that → → 5 → 5 → 5 5 F (t) = a0 H0 (t) + −0 H1 (t) + −0 H2 (t) + −1 H3 (t) + −1 H4 (t) + a1 H5 (t). Show that where 3 3 3 H0 (t) = B0 (t) + B1 (t). Show that they are linearly independent. u and show that its control points are given by b0 = a0 . The polynomials Hi3 (t) are called the cubic Hermite polynomials. and let −0 . u 0 ′ → F (1) = −1 . be any four vectors in R3 . u 3 u 3 Compute explicitly the polynomials Hi3 (t). u 0 ′ 0 → F (1) = −1 . a1 be any two points in A3 . −0 . −1 . u u → → Show that there is a unique quintic curve F : A → A3 such that F (0) = a0 . 3 b2 = a1 − 1− → u1 . b1 = a0 + 1− → u0 . v and compute its control points. POLYNOMIAL CURVES AS BEZIER CURVES Problem 7 (30 pts). F (1) = a1 .184 ´ CHAPTER 5. u → F ′′ (0) = − . F (1) = a1 . (Quintic Hermite interpolation) → → v v Let a0 . 0 ≤ i ≤ 3. Problem 8 (40 pts). v ′′ → F (1) = −1 . 1 3 3 H1 (t) = B1 (t). Show that there is a unique cubic curve F : A → A3 such that F (0) = a0 . 3 b3 = a1 . a1 be any two points in A3 . → F ′ (0) = − . → → 3 3 F (t) = a0 H0 (t) + −0 H1 (t) + −1 H2 (t) + a1 H3 (t).

Hermite interpolants were deﬁned with respect to the interval [0. 0 ≤ i ≤ 3. Plot the Hermite polynomials Hi3 (t). 0 ≤ i ≤ 5. 1]. Use the de Casteljau algorithm to design a curve of degree four whose third control point b2 belongs to the curve (in fact. 185 Compute explicitly the polynomials Hi5 (t). 5 5 5 5 5 H5 (t) = B3 (t) + B4 (t) + B5 (t). Draw diagrams showing C 4 -continuity for curves of degree 5. Problem 13 (30 pts). Use your implementation of the subdivision version of the Casteljau algorithm to experiment with cubic and quintic Hermite interpolants. s]. Draw diagrams showing C 3 -continuity for curves of degree 4. H3 (t) = 20 3 1 5 5 5 H4 (t) = − (2B3 (t) + B4 (t)). Give a method for ﬁnding all the intersection points between the curve segments F and G. The polynomials Hi5 (t) are called the quintic Hermite polynomials. over some interval [r. Try many diﬀerent cases. Assume that two Bezier curve segments F and G are deﬁned over [0. You may use Mathematica. What if F and G have a common component? What if F and G have diﬀerent degrees? Problem 14 (30 pts). for t = 1/2). 1]. Problem 15 (30 pts). Draw diagrams showing C 5 -continuity . Problem 10 (20 pts). Problem 12 (20 pts). PROBLEMS where 5 5 5 5 H0 (t) = B0 (t) + B1 (t) + B2 (t). 5 1 5 5 H2 (t) = B (t). Problem 9 (30 pts). Show that they are linearly independent. or any other available software in which graphics primitives are available. Write a computer program implementing the progressive version of the de Casteljau algorithm. 1 5 5 5 H1 (t) = (B1 (t) + 2B2 (t)). 1] in terms of their control points. What happens if the aﬃne map t → (1 − t)a + tb is applied to the domain of the Hermite interpolants? How can you modify the Hermite polynomials to obtain the same kind of expression as in problems 7 and 8? Problem 11 (20 pts). over [0.6. over [0. 20 2 1 5 5 B (t). 0 ≤ i ≤ 5. Plot the Hermite polynomials Hi5 (t).5. 1].

. allow the middle control point (b2 ) to be perturbed in each of the two subpolygons. Then. and is not useful in practice. . Problem 16 (30 pts). or a controlled displacement. lim (r) bi = j=0 m bj Bj (t) = F (t). it can be shown (using Stirling’s formula) that lim r i−j m+r i m i/(m+r)→t i/(m+r)→t = tj (1 − t)m−j . . this convergence is very slow. you should get “fractal-style” curves with C 1 -continuity. . As a consequence. there is some i such that i/(m + r) is closest to t. by a random displacement. After a number of subdivision steps. 1]. Write a computer program implementing a version of the de Casteljau algorithm applied to curves of degree four modiﬁed as exlained below. . Prove that m bi = j=0 (r) m j r i−j m+r i bj . Let F be a polynomial curve deﬁned by its control polygon B = (r) (r) (b0 .186 ´ CHAPTER 5. However. . Experiment with various ways of perturbing the middle control point. 1]. bm ). as r → ∞. Problem 17 (20 pts). During a subdivision step. for each r ≥ 1. Remark: For any t ∈ [0. Let B(r) = (b0 . bm+r ) be the control polygon for the curve F obtained after r steps of degree elevation. . You may want to write computer programs to draw such diagrams. . This means that the control polygons B(r) converge towards the curve segment F [0. . POLYNOMIAL CURVES AS BEZIER CURVES for curves of degree 6.

we will have to compute control points from points on the curve. When m is large. the degree of the polynomial curve determined by these control points is m. but they are also unsatisfactory in a number of ways: 1. We show how knot sequences and sequences of de Boor control points can be used to specify B-splines and we present the de Boor algorithm for B-splines. and solving such a system can be impractical when the degree of the curve is large. In order to 187 . In this chapter. 3. we present a class of spline curves known as B-splines and explain how to use knots to control the degree of continuity between the curve segments forming a spline curve. and the segments will be joined together in some smooth fashion. Moving any control point will aﬀect the entire curve. de Boor Control Points Polynomial curves have many virtues for CAGD. and thus impractical. If we are interested in interpolation rather than just approximating a shape. and brieﬂy present the more traditional approach to B-splines in terms of basis functions. For the above reasons.Chapter 6 B-Spline Curves 6. in the sense that moving a control point only aﬀects a small region of the curve. This is the idea behind splines. this may be too costly.1 Introduction: Knot Sequences. This leads to systems of linear equations. We know that it takes m(m+1) 2 steps to compute a point on the curve. people thought about segmenting a curve speciﬁed by a complex control polygon into smaller and more manageable segments. Given a control polygon containing m sides (m + 1 vertices). We also discuss interpolation using B-splines. 2. Each segment of the curve will be controlled by some small subpolygon of the global polygon. It would be desirable to have better local control. as well as the useful knot insertion algorithm.

we will assume that the fourth control point of the curve segment F [1. Let us denote the corresponding cubic curve segments as F [1. . 3. . 3. When looking at a ﬁnite sequence such as . if we want to collapse the interval [3. 6]. 2. we can also collapse [2. 9. 6. . For the time being. 9. 2] is equal to the ﬁrst control point of the curve segment F [2. 2. 9. and that such ﬂexibility is in fact useful. that the fourth control point of the curve segment F [2. Thus. Why did we choose a nonuniform spacing of the intervals? Because it would not really simplify anything. since this is a way to lower the degree of continuity of a join. where the sequences extend to inﬁnity in both directions. 12. . it becomes necessary to consider several contiguous parameter intervals. obtaining the sequence . . 6. 3]. . For example. 1. 10. 2]. 9]. . . 3]. . . . Clearly. as we shall see later. 3. 9]. we would need four control points for each of these intervals. 3]. 1. F [6. . 5]. we are just focusing on a particular subsequence of some bi-inﬁnite sequence. we may also want to be more careful about endpoints (in this case. For example. . 3] to [3. . 9]. Usually. The number of consecutive occurrences of a knot is called its multiplicity. We also allow collapsing several consecutive intervals. 3. . 1. It is also possible to handle cyclic sequences. we can assume that we are dealing with inﬁnite sequences of contiguous intervals. . and so on. 5. Extending our sequence a bit. 6. . 9]. 6) than just contact. and if we want to use cubic segments. say to . rather than a single interval [r. we could have the intervals [1. . 6] is equal to the ﬁrst control point of the curve segment F [6. 1. . . . the above knot sequence becomes . as in the following sequence: . 5]. . . 15. 3. 3 has multiplicity 3. 3. 5]. F [5. [1. 3. Since we want to join these cubic curve segments. that the fourth control point of the curve segment F [5. Such a sequence is called a knot sequence. We will see that it is useful to collapse intervals. 2]. For example. s] as in the case of polynomial curves. 3. 6. and ﬁnally. 5]. . [5. [3. . we will want better continuity at the junction points (2. 6]. . as we will explain shortly. B-SPLINE CURVES achieve this. F [2. . . 3. 6]. 5. . 3] is equal to the ﬁrst control point of the curve segment F [3. 3]. 9. 1 and 9).188 CHAPTER 6. 2]. [6. 3]. [2. [3. . F [3. . [5. . This can be captured by a knot sequence by letting a knot appear more than once. . . . in the above sequence. 5] to [3. [6. This can be achieved. 3]. 3. [2. Note that it is slightly more economical to specify the sequence of intervals by just listing the junction points of these intervals. .

Knots of multiplicity 1 are called simple knots. DE BOOR CONTROL POINTS 189 we can collapse several intervals. and to ﬁgure out the conditions that C n -continuity at ui+1 impose on the polar forms fi and fi+1 . where m is the degree of each curve segment (in fact. F [5. F3 . F8 . Fortunately. F [1. . 10. . we could compute the B´zier control points using this algorithm. given the knot sequence . 10. and we index each curve segment by the index (position) of the last occurrence of the knot corresponding to the left of its interval domain. 3]. F5 . The problem now is to ﬁnd a convenient way of specifying the degree of continuity that we want at each join.1. 3. 6]. ui+1 ]. there is a nice answer to both questions. and knots of multiplicity greater than 1 are called multiple knots. 1. 15. We will also see how to extend the de e Casteljau algorithm in order to compute points on any curve segment directly from the de Boor control points. 3. . . Lemma 5. F9 . F [2. . . F [2. . and a double knot 10. 6. uk+m . The above sequence has a triple knot 3. F4 . . 9. 6].6. 2]. 10]: . . we allow knot multiplicity at most m (although it is easy to accommodate knots of multiplicity m + 1).5. as in the sequence . . There are several possible presentations.2 will yield a very pleasant answer to the problem of continuity of joins and this answer will also show that there are natural control points called de Boor points. If the degree of all curve segments is ≤ m. . 1. 6. . 2]. For example. F [6. 3. . 1. . as shown by collapsing [10. 3. 2. . e which is called the de Boor algorithm. F2 . 3. and to ﬁnd more convenient control points than the B´zier control points e of the curve segments (in our example. 9. We now have to explain how the de Boor control points arise. Since we are now using knot sequences to represent contiguous intervals. and F5 . . it turns out that we are led to consider sequences of consecutive knots of length m of the form uk+1. it does not make sense for the knot multiplicity to exceed m + 1. 15. . 9]. we will denote F [1. . 10. . Note that we need to take care of multiple knots. we can simplify our notation of curve segments by using the index (position) of the knot corresponding to the beginning of an interval as the index of the curve segment on that interval. The more mathematical presentation is to consider the polar form fi of each curve segment Fi associated with an interval [ui . However. F4 . F [3. we have curve segments: F1 . . 9]). 6. which turn out to be more convenient (and more economical) than the B´zier control points of the curve segments. 5]. F [6. We simply consider the subsequence of strictly increasing knots. and thus. multiplicity m + 1 corresponds to a discontinuity at the control point associated with that multiple knot). F6 . 5. 9. 16 . 3]. . INTRODUCTION: KNOT SEQUENCES. without having to ﬁrst compute the B´zier control points for the given e curve segment. simply as F1 . and for simplicity. 5]. 3. F [5. and get several multiple knots. . 10. . 3. . As we will see. F [3. 12] to [10. .

5. . . 11 consisting of 6 = 2 · 3 knots. . the value CHAPTER 6. . uk+m is progressive. 9. any polar value of fk for parameter values in [uk . then the m + 1 sequences of consecutive knots uk−m+i+1. where 0 ≤ i ≤ m. These points dk are the de Boor points. the middle interval is [6. . k = 5. k + m]. 9. 8]. . . . uk+i . uk+1]. a knot such that uk < uk+1 . . . 9. uk+1]. and thus. 8. Since uk < uk+1 . 6. uk+i . Observe that if uk is a simple knot as above. . where 0 ≤ i ≤ m.3. given the following (portion of a) knot sequence . it is possible to use the progressive version of the de Casteljau algorithm presented in section 5. . . . Then. For example. uk+m) of the polar form fi associated with the interval beginning with knot ui is constant and denoted as dk . . we have the sequence 3. 2. . In fact. This is illustrated by the following progressive sequence of 6 knots: 3. . and these sequences turn out to deﬁne m + 1 de Boor control points for the curve segment Fk associated with the middle interval [uk . . uk . . to compute points on the curve Fk . the sequence uk−m+1. . . uk−m+1 = u3 = 3.190 and that for all i ∈ [k. uk+m yields m + 1 sequences of consecutive knots uk−m+i+1. for any simple knot uk . uk . . . 6. . 8. 6. the sequence of 2m consecutives knots uk−m+1. and uk = u5 = 6. 14. . . 5. 15. uk+1. 11. 1. . . . B-SPLINE CURVES fi (uk+1. . and so uk+1 = u6 = 8. 8. . . uk+1. that is. each of length m. . . . . these de Boor points are the polar values dk+i = fk (uk−m+i+1. if m = 3. if fk is the polar form of Fk . 3. . . and more generally. . 5. 11 . also called the de Boor algorithm. uk+i ). . and uk+m = u8 = 11.

5. . 15. . . overlap precisely on the middle interval [uk . assuming m = 3. . . . we can see that m consecutive line segments (di . . and given the following (portion of a) sequence of control points . 11 . . . d8 ). d1 . . . . 6. d7 . the line segment (di . di+l . di . [uk+m . 1. . . d5 . 11. 3. deﬁned as u→ uk+m+1 − u u − uk+1 di + di+1 . . and we assume that we are given a bi-inﬁnite knot sequence uj . For example. with an additional constraint: we assume that there is a bijective function from the sequence di of control points to the knot sequence uj . if di is mapped to the knot uk+1 . If we color the m intervals [uk+1 . . . . Since consecutive control points map to consecutive knots. . d8 . . . 8. 2. . . . Thus. . . . uk+m+1 − uk+1 uk+m+1 − uk+1 where u ∈ [uk+1. uk+m+1 ]. . 9. di+1 ) of the control polygon as being divided into m subsegments. and the interval [1. di+1 ) is also colored in a similar fashion. uk+2] (assuming inﬁnitely many colors). di+1 ). . due to Ken Shoemake. we can view each side (di . . . . with the property that for every control point di . . 6. . (di+m−1 . uk+2]. . This property is the point of departure of another rather intuitive explanation of the de Boor algorithm. and uk = u5 = 6. uk+m+1 ] with diﬀerent colors. then di+1 is mapped to uk+2. di+1 ). For k = 5. . . d3 ). . .1 shows part of a cubic spline. 5. . ﬁgure 6. . . the sequence 3. . di+m ) of the control polygon share exactly one color: that of the interval [uk+m . Let us now forget that we have curve segments. the interval [2.6. .1. . . where uj < uj+1 for all j). uk . there is obviously an aﬃne bijection mapping the interval [uk+1. . 8. uk+m+1]. given the following (portion of a) knot sequence . d6 . d4 . 5] maps onto (d1 . which for simplicity. DE BOOR CONTROL POINTS 191 each of length m (where 0 ≤ i ≤ m). . . and a bi-inﬁnite sequence di . uk+m . of (distinct) control points. the interval [9. we ﬁx the maximum degree m of the curve segments that will arise. INTRODUCTION: KNOT SEQUENCES. uj+k . . d2 . 15] maps onto (d7 .. uk+1] of the sequence uk−m+1 . 9. Assuming that we color all intervals [uk+1 . 14. uk+1. uj . d2 ). d3 . . . uk+m+1 ] onto the line segment (di . . Instead. 6] maps onto (d2 . consists only of simple knots (i. . . . .e.

15.14. . 5. 8]. . 2. .3. 1. Thick segments are images of [6.192 CHAPTER 6. ..9. . 11. 8.1: Part of a cubic spline with knot sequence . . . B-SPLINE CURVES d6 : 89 11 d2 : 235 d3 : 356 d7 : 9 11 14 d1 : 123 d8 : 11 14 15 d4 : 568 d5 : 689 Figure 6.6.

8]. di+j+1). . . 8]. . . For example. which consists of [6. uk+2m . di+m (where di is mapped onto uk+1). and d8 corresponds to 11. . 6]. . . The connection with the previous explanation becomes clearer. Thus. . 9]. correspond to a sequence of 2m knots uk+1. for any parameter value in the middle interval t ∈ [uk+m . uk+m+1 .. and [8. . and (d5 . 5 . . Therefore. uk+2 . we can index each control point di by the knot sequence uk+1. Note that the control point di corresponds to the knot sequence uk+1 . d1. d6 ). . di+1 . and to the rightmost knot in the sequence associated with di+1 . . we map t ∈ [uk+m. 6] and [6. INTRODUCTION: KNOT SEQUENCES. . Then. . . uk+2 .1. which is mapped aﬃnely onto the line segment (di . 3. . 3 . . . DE BOOR CONTROL POINTS 193 whose middle interval is [6. . di+1 ) and (di+1 . di+1 ). a point on the curve segment speciﬁed by the m + 1 control points di . . For example. . . di+m . d4 ) and (d4 . Since any two consecutive line segments (di . . . 9]. which consists of [5. 1 . . we consider the new control polygon determined by the m points d0. . .6. Note that any two consecutive line segments (di . uk+m+1 ]. the interval [uk+1. . di+m ) on the control polygon. di+2 ) correspond to intervals that overlap on m − 1 consecutive subintervals of the knot sequence. corresponds to the three line segments (d3 . m consecutive line segments (di . 1 . dm−1. d5 ). . 15 . di+1 ). . is computed by repeated aﬃne interpolation. di+2 ) are the aﬃne images of intervals that overlap on exactly m − 1 consecutive subintervals of the knot sequence. 9]. di+j+1). uk+m+j+1] onto the line segment (di+j . The line segment (d4 . d5 ) is the aﬃne image of the interval [5. d4 ). 14. di+1 ). 1 . . corresponds to the leftmost knot in the sequence associated with di . . . uk+m+j+1 − uk+j+1 uk+m+j+1 − uk+j+1 mapping the interval [uk+j+1. as follows: Using the mapping t→ uk+m+j+1 − t t − uk+j+1 di+j + di+j+1. . 9]. . 2. m + 1 consecutive control points di . uk+m+1] onto the line segment (di+j . and the line segments (d4 . . uk+m . uk+m+1 ]. (di+m−1 . d5 ) both contain images of the interval [5. . This is an easy way to remember which interval maps onto the line segment (di . uk+m of m knots. which gives us a point dj. Given a sequence of 2m knots uk+1. d2 corresponds to 2. where di is mapped to uk+1. . d5 ) and (d5 . the line segments (d3 . 8]. where 0 ≤ j ≤ m − 1. or equivalently. di+1 ) and (di+1 . . (d4 . 1 . uk+2m . 8]. and that the control point di+1 corresponds to the knot sequence uk+2. 8] and [8. d6 ) both contain images of the interval [6. d1 corresponds to 1. [6. which itself consists of the three subintervals [5. .

we only have one interval. 8−3 5 the interpolation ratio associated with the point d1.3 is . 8−5 3 the interpolation ratio associated with the point d2.1 : 789. These points are also shown as labels of polar values. The interpolation ratio associated with the point d0.1 : 567.2 : 677.1 : 678. and d0. and that the leftmost interval [uk+2.2 : 778. 2 .1 is the interpolation ratio associated with the point d0. d0. 2 . 11 − 6 5 2 7−5 = . uk+m+j+1]. and we repeat the procedure. and for t ∈ [uk+m . Figure 6. B-SPLINE CURVES and we map aﬃnely each of the m − 1 intervals [uk+j+2. and the starting knot of the leftmost interval used during this round is the (right) successor of the starting knot of the leftmost interval used at the previous round. Note that each interval [uk+j+2. 2 . we have d0.2 is the interpolation ratio associated with the point d1. . uk+m+j+1] now consists of m − 1 consecutive subintervals. the intersection of the m original intervals [uk+j+1. m obtained during the m-th round is a point on the curve segment. For example. At every round. uk+m+1 ]. 9−5 4 2 7−6 1 = . d1. d2.3 : 777. where 0 ≤ j ≤ m − 2. 2 on (dj. The above round gives us a new control polygon determined by the m − 1 points d0. . the number of consecutive intervals aﬃnely mapped onto a line segment of the current control polygon decreases by one. 8−6 2 and the interpolation ratio associated with the point d0. 1 . dj+1.1 is 7−5 2 1 = = . . dm−2. where 0 ≤ j ≤ m − 1. d1.1 is 4 7−3 = . .2 illustrates the computation of the point corresponding to t = 7 on the spline of the previous ﬁgure. uk+m+1] starts at knot uk+2 . uk+m+1]. the middle interval [uk+m. we get a point dj. so that at the m-th round. dj+1. The point d0.194 CHAPTER 6.2 is 7−6 1 = . 1 ). 9−6 3 1 7−6 = . the immediate successor of the starting knot uk+1 of the leftmost interval used at the previous stage. 1 ). d1. 1 . uk+m+j+1] onto the line segment (dj.

. 11.6.2 : 677 d0. DE BOOR CONTROL POINTS 195 d6 : 89 11 d2 : 235 d3 : 356 d7 : 9 11 14 d1 : 123 d8 : 11 14 15 d0.1 : 789 d1. INTRODUCTION: KNOT SEQUENCES.2: Part of a cubic spline with knot sequence . 1. .9.3. 15.2 : 778 d2.1 : 567 d4 : 568 d0. 8]. .3 : 777 d1. 2. and construction of the point corresponding to t = 7.. .14.1 : 678 d5 : 689 Figure 6. . 8.6. 5. . . Thick segments are images of [6.1.

Thus. . The extreme is to squeeze one more interval. corresponding to the intervals [3. in the sense that the curve segments associated with [3. We can now be more precise and prove some results showing that splines are uniquely determined by de Boor control points (given a knot sequence). . and the result will be that the degree of continuity of the junction between the curve segments associated with [3. If we also squeeze the interval [5. 9]. 11] (previously [9. d2 . 3. 6]. 6. .3 shows the construction of the B´zier control points of the ﬁve B´zier segments forming e e this part of the spline. d4 . 2. we are also shrinking the corresponding curve segment to a single point. Open B-Spline Curves We begin with knot sequences. 9] (previously [8. . say [5. as u ∈ A (as explained in section 5. . 5] and [5. d1 . 8] to the empty interval. 6. . meaning that the tangents may not agree. say [5. to distinguish between real numbers in R and points in A. 8] (which used to be [6. and now. .e. . uk ≤ uk+1 for all k ∈ Z). we can see that these control points determine ﬁve curve segments. Deﬁnition 6.2. Figure 6. 9]) will join with even less continuity. 14. 11]) may not even join at the point associated with the knot 5. 15. . d7 . 5] and [5. Going back to the previous example of the (portion of a) knot sequence . . . now that 5 is a triple knot. 8. B-SPLINE CURVES We recognize the progressive version of the de Casteljau algorithm presented in section 5. [5. [6. and [9. and the (portion of a) sequence of control points . we see how the knot multiplicity can be used to control the degree of continuity of joins between curve segments. This time. 6]. The bookkeeping which consists in labeling control points using sequences of m consecutive knots becomes clearer: it is used to keep track of the consecutive intervals (on the knot line) and how they are mapped onto line segments of the current control polygon. we may not even have C 1 -continuity. We can now provide a better intuition for the use of multiple knots. 5. 11. If we “squeeze” any of these intervals. . d5 . 5] this will have the eﬀect that the corresponding curve segment shrinks to a single point. 8]) will be lower. d8 . d3 . d6 . the curve segments corresponding to the intervals [3.196 CHAPTER 6.4). we may even have a discontinuity at the parameter value 5. 5] and [5.2 Inﬁnite Knot Sequences. . 9] (previously [8. 9. [8. As usual. 11]. and in fact. 1.1.3. 9]). . we will denote knots as points of the real aﬃne line A. to the empty interval [5. A knot sequence is a bi-inﬁnite nondecreasing sequence uk k∈Z of points uk ∈ A (i. 5]. 8]. such that every knot in the sequence has ﬁnitely many .

INFINITE KNOT SEQUENCES.. . . 8.6. . .14. 11.3: Part of a cubic spline with knot sequence .2. OPEN B-SPLINE CURVES 197 d6 : 89 11 d2 : 235 11 11 11 d3 : 356 333 555 d1 : 123 999 d7 : 9 11 14 d8 : 11 14 15 666 888 d4 : 568 d5 : 689 Figure 6. 15. and some of its B´zier control points e . 1. 5.6. .3.9. 2. .

. then we have C −1 -continuity. a knot sequence has degree of multiplicity at most m + 1 iﬀ every knot has multiplicity at most m + 1. The restriction of F to [ui . in the sense of deﬁnition 5.1. Given any natural number m ≥ 1. that is. if ui+1 is a discontinuity knot. We can now deﬁne spline (B-spline) curves. The curve segments Fi and Fi+n join with continuity (at least) C m−n at ui+1 . rather than its ﬁrst occurrence. the next distinct knot being ui+n+1 (since we must have ui+1 = . = uk+n . there are at most m + 1 occurrences of identical knots in the sequence.198 CHAPTER 6. Remarks: (1) Note that by deﬁnition. ui+1 [ agrees with a polynomial curve Fi of polar degree m. ui+n+1 [. it is more convenient to index the curve segment on the interval [ui . where E is some aﬃne space (of dimension at least 2). we must have uk ≤ uk+1 for all k ∈ Z. Thus. F agrees with a polynomial curve Fi on the interval [ui . and for every k ∈ Z. A knot sequence uk k∈Z is uniform iﬀ uk+1 = uk +h. = ui+n < ui+n+1 ). Thus. for some ﬁxed h ∈ R+ . . The set F (A) is called the trace of the spline F . Given any natural number m ≥ 1. B-SPLINE CURVES occurrences. ui+1 [ by the last occurrence of the knot p = ui in the knot sequence. A knot uk in a knot sequence uk k∈Z has multiplicity n (n ≥ 1) iﬀ it occurs exactly n (consecutive) times in the knot sequence. such that. a piecewise polynomial curve of degree m based on the knot sequence uk k∈Z is a function F : A → E. a knot of multiplicity m + 1. for any two consecutive distinct knots ui < ui+1 . Thus. i. in particular. . then the following condition holds: 1. and with a polynomial curve Fi+n on the interval [ui+1 . A knot uk of multiplicity m + 1 is called a discontinuity (knot).2. if ui+1 is a knot of multiplicity n.e. A knot of multiplicity 1 is called a simple knot. . with associated polar form fi . for a knot sequence of degree of multiplicity at most m + 1. for every two consecutive distinct knots ui < ui+1 . where n is the multiplicity of the knot ui+1 (1 ≤ n ≤ m + 1). and any knot sequence uk k∈Z of degree of multiplicity at most m + 1. the following condition holds: 2. Deﬁnition 6.2. such that. so that the junction knot is indeed ui+1 . then 1 ≤ n ≤ m + 1. A spline curve F of degree m based on the knot sequence uk k∈Z is a piecewise polynomial curve F : A → E.5. ui+1 [. if uk+1 = uk+2 = . and Fi (ui+1 ) and Fi+n (ui+1 ) may diﬀer. .

ui+1 ] agrees with a polynomial curve Fi of polar degree m. The ﬁrst option seems the one used in most books. INFINITE KNOT SEQUENCES. we want the spline function F to be deﬁned at ui+1 . to have C m continuity at all joins: this is the case when F is a polynomial curve! In this case. and one can safely ignore these subtleties. which amounts to say that each join has continuity C −1 (but may be better). (5) It is possible for a piecewise polynomial curve. or for a spline curve. are called a discontinuity of the ﬁrst kind (see Schwartz. ui+m+2 [. OPEN B-SPLINE CURVES 199 (2) If we assume that there are no discontinuities. that every knot has multiplicity ≤ m. [71]). We could have instead used intervals ]ui+1 . This ensures that F (ui+1 ) = Fi+m+1 (ui+1 ). In this case. then clause (1) can be simpliﬁed a little bit: we simply require that the restriction of F to the closed interval [ui . t<ui+1 lim F (t) = Fi (ui+1 ). there is no advantage in viewing F as a spline. For the curious reader. where we require that the restriction of F to the open interval ]ui+1 . agrees with a polynomial curve Fi+m+1 . agrees with a polynomial curve Fi+m+1 . lim F (t) = Fi+m+1 (ui+1 ). Practically.2. we have F (ui+1 ) = Fi (ui+1 ) = Fi+n (ui+1 ). since we have at least C 0 -continuity.e. when ui+1 has multiplicity n ≤ m. the limit F (ui+1 −) of F (t) when t approaches ui+1 from below. ui+1 [. we would have F (ui+1 −) = and F (ui+1 +) = t→ui+1 . Thus. ui+m+2 ]. i. discontinuities are rare anyway. F (ui+1 −) = t→ui+1 .6. we mention that the kind of discontinuity arising at a discontinuity knot ui+1 . t>ui+1 t→ui+1 . However. when ui+1 is a knot of multiplicity m + 1. when ui+1 has multiplicity m + 1. open on the right. (4) Note that no requirements at all are placed on the joins of a piecewise polynomial curve. although possibly discontinuous. t<ui+1 lim F (t) = Fi (ui+1 ). open on the left. this would complicate the treatment of control points (we would need special control points corresponding to the “dicontinuity values” F (ui+1 )). . (3) The number m + 1 is often called the order of the B-spline curve. and thus. is equal to the limit of Fi (t) when t approaches ui+1 (from below). However. Since F agrees with Fi on [ui . and by giving an arbitrary value to F (ui+1 ). This is achieved by requiring that the restriction of F to the interval [ui+1 . We could also have used a more symmetric approach. ui+m+2 [.

. iﬀ the polar forms fi : Am → E and fi+n : Am → E agree on all multisets (supermultisets) of . . the curve segments Fi and Fi+n join with continuity C m−n at q = ui+1 (where 1 ≤ n ≤ m + 1). iﬀ their polar forms fi : Am → E and fi+n : Am → E agree on all multisets of points that contain at most m − n points distinct from q = ui+1 . When considering part of a spline curve obtained by restricting our attention to a ﬁnite subsequence of an inﬁnite knot sequence. they should be denoted as fk (ui . . . 3. . . 1.4. 6.200 123 CHAPTER 6.4: Part of a cubic spline with knot sequence . for some appropriate k.2.2. the polar values are denoted as triplets of consecutive knots ui ui+1 ui+2 . 1. 5. ui+2 ). . 4. or equivalently.5. The following ﬁgure represents a part of a cubic spline based on the uniform knot sequence . ui+1 . . . 7. . when in fact. B-SPLINE CURVES 456 567 012 234 345 Figure 6. 0. 3. . we often say that the spline has ﬂoating ends. Figure 6. 2. 5. . 7. .5 shows the construction of the control points for the three B´zier curve segments e constituting this part of the spline (with ﬂoating ends). For simplicity of notation. By lemma 5. 0.6.

. . 3. .2. 5.5: Construction of part of a cubic spline with knot sequence .6.6. 1.2. .4. . 0. 7. INFINITE KNOT SEQUENCES. . . OPEN B-SPLINE CURVES 201 123 122 456 556 567 555 222 223 012 455 233 333 444 445 234 334 344 345 Figure 6.

. the polar forms fi and fj agree on all multisets of m elements from A (supermultisets) containing the multiset of intervening knots {ui+1 . Let n1 . the curve F is a spline iﬀ the following condition holds: For all i.5. uj }. two non-adjacent curve segments Fi and Fj are still related to each other. . . . When n = m + 1. . . . .2. n2 . If the polar forms fi and fj agree on all multisets of m elements from A containing the multiset of intervening knots {ui+1 .202 m points from A containing the multiset CHAPTER 6. . nh be the multiplicities of the knots of the intervening sequence of knots {ui+1 . ui+2 . . ui+n }. . . . fi+n1 and fj agree on all multisets containing the multiset . ui+n } = {q. fi and fi+n agree on all multisets containing the multiset {ui+1 . and any knot sequence uk k∈Z of degree of multiplicity at most m + 1. We proceed by induction on h. . uj }. implies that the join at ui+1 = ui+n has continuity at least C m−n . ui < ui+1 and uj < uj+1 . . Given any m ≥ 1. . Proof. . In fact. as long as the number j − i of intervening knots is at most m. j. . . . since C −1 -continuity does not impose any continuity at all! In the other direction. uj }. ui < ui+1 and uj < uj+1 . uj }. ui+n1 }. . but that’s ﬁne. the continuity conditions for joining curve segments forming a spline impose constraints on the polar forms of adjacent curve segments. the condition is vacuous. Lemma 6. fi and fi+n1 agree on all multisets containing the multiset {ui+1 . . Since Fi and Fi+n1 join with C m−n1 -continuity at ui+1 = ui+n1 . n Thus.3. then for any two adjacent line segments Fi and Fi+n (1 ≤ n ≤ m). so that n1 + n2 + · · · + nh = j − i. . . for any piecewise polynomial curve F of (polar) degree m based on the knot sequence uk k∈Z . ui+2 . with i < j ≤ i + m. B-SPLINE CURVES {ui+1 .2. By the induction hypothesis. . . ui+2 . the polar forms fi and fj must agree on all supermultisets (of m elements) of the multiset {ui+1 . which by lemma 5. .5. suppose that the curve segments Fi ﬁt together to form a spline. . q }. . . {ui+n1 +1 .2. . . As we will prove. where i < j ≤ i + m. . . . by lemma 5. Consider any two curve segments Fi and Fj . ui < ui+1 and uj < uj+1. . . . . where i < j ≤ i + m. ui+2 . uj }. . ui+2 .

t. uj }. with C 2 -continuity at the knots s. . r) Figure 6. . then f and g agree on all (multiset) triplets including the argument s. s. . v. INFINITE KNOT SEQUENCES. s) f = g(r. t) h = k(v. u. u]. r.2. v. v) 203 f = g(r.6: Part of a cubic spline with C 2 -continuity at the knots s. [s. . g. t. h. u. v and by transitivity. u) f = g(s. t]. v. u. s. u. s. v. v) g = h = k(u. v means that. s. t) k(t. u. . u. u. . and [v. t. s) g = h = k(u.6. s) f (r. v. t) g = h = k(u. v. r. and h and k agree on all triplets including the argument v: The fact that a knot u of multiplicity 2 generally corresponds to a join with only C 1 continuity can be derived by the following reasoning. [u. u) f = g = h(r. u. Recall that C 2 -continuity at the knots s. v]. OPEN B-SPLINE CURVES f = g = h = k(s. fi and fj agree on all multisets containing the multiset {ui+1 . g and h agree on all triplets including the argument u. t) h = k(v. s]. u) g = h(u. s. . If we assume that the points labeled . . if we let f. k denote the polar forms corresponding to the intervals [r. v) f = g = h(s. r. u) f = g = h(s. v) h = k(v. . The following ﬁgure shows part of a cubic spline corresponding to the knot sequence . .

r) Figure 6. s. The following ﬁgure illustrates this situation. t. t) f (r. with C 2 -continuity at the knots s. s) f = g(r. u) with diﬀerent acceleration vectors. f (s. t. r. v) = f (s. Note that C 1 -continuity at the double knot u corresponds to the fact that the polar forms g and k agree on all (multiset) triplets that include two copies of the argument u. r. . that is. t). t. . the curve segment between g(u. t. s). u. u. u) f = g(r. s. u) and g(u. v. t) = g(u. . and let us see what happens when the knot s becomes a knot of multiplicity 3. and the two curve segments between f (s. u. u. and between k(v. u) and h(v. s. s. u. v) (displayed as a dashed curve) is contracted to the single point g(u. t. . s. only with C 1 -continuity. . s) and g(u. u. u) CHAPTER 6. u). r. s. Let us now go back to our original ﬁgure showing part of a cubic spline corresponding to the knot sequence . f (r. .7: Part of a cubic spline with C 1 -continuity at the knot u f (r. u) on the line segment between f (s. r). u) k(t. and if we let u and v converge to a common value. u. t) do not change. u). B-SPLINE CURVES f = g(s. u. . u) f = g(s. in the limit. v) and k(t. r. v. u. v. v). s) g = k(u. r. s) g = k(u. and k(t. v. u. u. k(v. t). u. t) k(u. s. v. f (r. v. u. t) (since the polar form h vanishes). t. t) f = g(r. end up joining at the new point g(u.204 f = g = k(s. g(u. t).

r. only with C 0 -continuity. . and the two curve segments between f (r. t. s) and between k(v. v). t). s. the two curve segments between f (s. u. s. r) and f (s. in the limit. v) = f (s. r. . s) f = g(r. f (s. s. s. v. r. If F is a spline curve of degree m. v. t. s. r. v) and k(t. v) 205 f = g(r. t) do not change. u. t. u) and h(v. s. s) g = h = k(u. u. As in the previous case. u. v. s. s) and g(u. OPEN B-SPLINE CURVES f = g = h = k(s. that is.3 tells us about the values of polar forms on multisets of arguments of the form {uk+1 . s. u. s) with diﬀerent tangents. t. u.2.8: Part of a cubic spline with C 2 -continuity at the knots s. u). g(u. u. let us see what lemma 6. and v converge to a common value. and if we let s. r) Figure 6. f (r. u. v. t) end up joining at f (s. if we assume that the points labeled f (r. s) f (r. v. v. u. Note that C 0 -continuity at the triple knot s corresponds to the fact that the polar forms f and k agree on the (multiset) triplet s. r. r). s. s. s.6. v) = f (s. s) (since the polar forms g and h vanish). and k(t. INFINITE KNOT SEQUENCES. The following ﬁgure illustrates this situation. v The fact that a knot s of multiplicity 3 generally corresponds to a join with only C 0 continuity can be derived by the following reasoning. t) h = k(v. u) and between g(u. f (r. . u) g = h(u. t) g = h = k(u. . t) k(t. t. . u) f = g = h(s. t). u. v) f = g = h(s. v.2. uk+m }. k(v. u) f = g(s. s). v) h = k(v. v) g = h = k(u. u. t) h = k(v. u) f = g = h(r. v) (displayed as dashed curves) are contracted to the single point f (s.

s) k(s. t) f (r. r. r. s) f (r. s. B-SPLINE CURVES f = k(s. s. t) f (r. r) Figure 6. t) k(s. s.9: Part of a cubic spline with C 0 -continuity at the triple knot s . s) k(t. t. t.206 CHAPTER 6.

≤ ui < ui+1 ≤ . there exists a unique spline curve F : A → E. .3. Then. . Basically. uk+m ).2. . i. For this. . we have to show that the curve segments Fi ﬁt together in the right way to form a spline with the required continuity conditions. uj } is a submultiset of the multiset {uk+1. they play for splines the role that B´zier control points play for polynomial curves. . for any bi-inﬁnite sequence dk k∈Z of points in some aﬃne space E. uk+m }. fi and fj agree on {uk+1 . . . uk+m ). . Assume that such a spline curve F exists. . Let i. . . where i − m ≤ k ≤ i. . if it exists. This is conﬁrmed formally by the following e theorem.1. Given any m ≥ 1. the multiset {ui+1 . .4. uk+m ) = dk . . where ui < ui+1 and k ≤ i ≤ k + m. Since we have ui−m+1 ≤ . uj }. Since the requirements of theorem 6. From the requirements of theorem 6. . We will use lemma 6.2. INFINITE KNOT SEQUENCES. . . j.3. the sequence is progressive. Proof. and consider the sequence of 2m knots ui−m+1 . we know that fi (uk+1 . . such that dk = fi (uk+1 . we have shown that the spline curve F is unique. Let ui < ui+1 be two consecutive distinct knots. for all k. . we need to show the existence of such a spline curve. . there is a unique polynomial curve Fi of polar degree m. The proof is due to Ramshaw. . . Theorem 6. . . and any knot sequence uk k∈Z of degree of multiplicity at most m + 1. . . for all k. .3. by theorem 5.6. . . ui+1 ]. Thus. ui < ui+1 and uj < uj+1. which can be viewed as a generalization of lemma 4. . Then. ui+m .2. . and they play an important role for splines. be such that i < j ≤ i + m. . .2. . OPEN B-SPLINE CURVES 207 Consider i < j such that k ≤ i < j ≤ k + m.2. .2. We must show that the polar forms fi and fj agree on all multisets of m elements from A (supermultisets) containing the multiset of intervening knots {ui+1 . . are called de Boor points. . such that the following condition holds: dk = fi (uk+1 .2. centered at the interval [ui .3. The polar values fi (uk+1 . . uk+m ) = fj (uk+1. .4 uniquely determine every curve segment Fi . . ≤ ui+m . . . uk+m }. . .4. uk+m ) (where k ≤ i ≤ k + m). and by lemma 6. .

. uj+1 . is equivalent to proving that gi = gj . ui ui+1 uj−m+2 . omitting the subscript i. . cut the middle j − i columns out of this parallelogram. ui+1 . is deﬁned by a unique symmetric multiaﬃne map.208 CHAPTER 6. Given a spline curve F : A → E. Nevertheless. We can only say that F is a piecewise polar form. uk+m ). . . . Let l = m − j + i. . . when the index i is clear from the context. . . . v l . . the inequality k ≤ i ≤ k + m can be interpreted in two ways.. . . simply as f (uk+1 . . implies that gi = gj . . ui+1 . . In this case. the curve segment Fi that is the restriction of F to [ui . that fi = fj . ui+1 [. ui+m is progressive. .. . . uj . ui+m . We may even denote polar values fi (t1 . . . . . . . . . ui ui+1 ui+1 . . . and since fi and fj agree on the previous parallelogram. and gj (v1 . with j − m ≤ k ≤ i. ui+m−1 ui+m Now. and think of the inequalities as i − m ≤ k ≤ i. tm ). . . . . v l . tm ) as f (t1 . uj uj+1 . . then gi and gj agree on the l + 1 sequences associated with the progressive sequence uj−m+1 . . and we will often do so. . . This means that fi and fj agree on the rows of the following parallelogram: uj−m+1 uj−m+2 . . . . . . . . . . . . . . On the other hand. the theorem tells us which curve segments Fi of the spline F are inﬂuenced by the speciﬁc de Boor point dk : the de Boor point dk inﬂuences at most m + 1 curve segments. uj uj+1 . vl ∈ A. .3. . since each element of the left half is strictly less than each element of the right half (since ui < ui+1 ≤ uj ). and let gi : Al → E and gj : Al → E denote the symmetric multiaﬃne functions of l arguments deﬁned as follows: gi (v1 . uj+1. . ui . . . uj }. uk+m ). such that ui < ui+1 . B-SPLINE CURVES for k. uj ). . . . . for all v 1 . . . . . . . . . . If we think of k as ﬁxed. . the theorem tells us which de Boor points inﬂuence the speciﬁc curve segment Fi : there are m+1 de Boor points that inﬂuence the curve segment Fi . . . . vl ) = fj (v 1 . Proving that fi and fj agree on all supermultisets of {ui+1 . . . . . Note that the sequence of 2l knots uj−m+1 . ui . although for every knot ui such that ui < ui+1 . . . This does not depend on the knot multiplicity. . . . it is important to realize that F itself is generally not the polar form of some (unique) symmetric multiaﬃne map. vl ) = fi (v1 . . and thus. This is achieved when all the knots are simple. we can consider i as ﬁxed. . corresponding to control points. . ui+m−1 . . which by theorem 5. uj uj+1 . ui ui+1 . . . . . .2. . . and collapse the remaining two triangles to form a smaller parallelogram. uj ). it is convenient to denote polar values fi (uk+1 . Given a knot ui in the knot sequence. .

we denote this common value fi (u1 . The interval I is called a validity interval . .3. tm ) is well deﬁned iﬀ ui < uj+1 . Ramshaw introduced two such conventions. and the last curve segment is unconstrained at its right end. the terms f]ui . It is possible to introduce conventions for overloading the notation. Finite B-Spline Curves In the case of a ﬁnite knot sequence. Given a nonempty open interval I. that is. um ).ui+m+1 [ (ui+1 . Given a knot sequence uk k∈Z of degree of multiplicity at most m + 1. . the interested reader is referred to Ramshaw [65]. a ﬁnite knot sequence of degree of multiplicity at most m + 1 with N intervening knots is any ﬁnite nondecreasing . . um ) as fS (u1 . . . for any multiset of arguments {u1 . tm ). These adjustments are minor. the common value of fi and fj is denoted as f{i. .3. . . . . . .6. 6. . . Deﬁnition 6. . . . . uj . .1. for any multiset of arguments {u1 . . we will next consider what kinds of adjustments are needed to handle ﬁnite knot sequences and inﬁnite cyclic knot sequences. . tame overloading. where tj−i+1 . ui < ui+1 and uj < uj+1. . and wild overloading. . where S = {i | ]ui . . FINITE B-SPLINE CURVES 209 A clean way to handle this overloading problem is to deﬁne the notion of a validity interval . In particular. when i < j ≤ i + m. where i ∈ S. tj−i+1 . ui+m ) (the de Boor points) are always well deﬁned.7). . Another reason for letting the end knots have multiplicity m + 1 is that it is needed for the inductive deﬁnition of B-spline basis functions (see section 6. um }. but multiplicity m + 1 allows us to view a ﬁnite spline curve as a fragment of an inﬁnite spline curve delimited by two discontinuity knots.uj+1 [ (ui+1 . Given any natural numbers m ≥ 1 and N ≥ 0. . agree on the multiset {u1 . we deﬁne fI (u1 . . um }. where I is an open interval ]p. the polar forms fi . we have to deal with the two end knots. um }. We prefer using the notation fI . . q[. This way the ﬁrst curve segment is unconstrained at its left end. FINITE KNOT SEQUENCES. provided that this common value makes sense. . Then. Although the notation fS is helpful. it is quite complex. . . . if we know that for some nonempty set S of knots. . . . um ). uj . . ui+1 [ ∩ I = ∅}. A reasonable method is to assume that the end knots have multiplicity m + 1. tj−i+1. We have to be a little careful to deal with knots of multiplicity ≥ 2. . . . omitting validity intervals in polar forms. . . . . . According to this convention.j} (ui+1 . . multiplicity m will give the same results. . f]ui . . For details. . validity intervals can be inferred automatically. .3 Finite Knot Sequences. tm are arbitrary. . Under some reasonable conventions. Having considered the case of bi-inﬁnite knot sequences. . . um ) as the common value fS (u1 . Actually.

. .. .. . . and 1 ≤ ni ≤ m + 1). . uN . we propose to use the terminology ﬁnite B-splines. . u0 m+1 u1 . given any ﬁnite knot sequence uk −m≤k≤N +m+1 of degree of multiplicity at most m+1 and with N intervening knots. . Given a ﬁnite sequence. uN +1 . B-SPLINE CURVES sequence uk −m≤k≤N +m+1 . A knot uk of multiplicity m + 1 is called a discontinuity (knot). if the multiplicity of each knot v i is ni (where 1 ≤ i ≤ L − 1. If N ≥ 1. un1 +1 . . .210 CHAPTER 6. . Instead. v i = ui . and the knot sequence uk −m≤k≤N +m+1 consists of 2(m + 1) + N = 2(m + 1) + n1 + · · ·+ nL−1 knots. . . A ﬁnite knot sequence of length 2(m + 1) + N containing L + 1 distinct knots. . . such that u−m < uN +m+1 . and we let L = 1. with L + 1 of them distinct. A knot of multiplicity 1 is called a simple knot. . Deﬁnition 6. . a piecewise polynomial curve of degree m based on the ﬁnite knot sequence uk −m≤k≤N +m+1 is a function F : [u0 . u−m . . . . . If the multiplicities of the L − 1 distinct knots in the sequence u1 . Instead. uN are n1 . then v i = un1 +···+ni−1 +1 . then we let L − 1 ≥ 1 be the number of distinct knots in the sequence u1 . . in general. looks as follows: u−m . uN uN +m+1 n1 n2 . . . . uN −nL−1 +1 . . . uN −nL−1 +1 . . . . Given any natural numbers m ≥ 1 and N ≥ 0. . of degree of multiplicity at most m+1 and with N intervening knots. u0 . nL−1 (where 1 ≤ ni ≤ m + 1. . . We can now deﬁne ﬁnite B-spline curves based on ﬁnite knot sequences. . . . .. then N = n1 + · · · + nL−1 . uN . . where E is some aﬃne space (of dimension at least 2). . such that the following condition holds: . . .2. un1 +1 . m+1 n1 n2 nL−1 m+1 where The picture below gives a clearer idea of the knot multiplicities. . . . when N ≥ 1 and L ≥ 2. Given a ﬁnite knot sequence uk −m≤k≤N +m+1 . where u−m and um+1 are distinct and of multiplicity m + 1. . . . u1 . . vL−1 is the subsequence of leftmost occurrences of distinct knots in the sequence u1 . . with the convention that n1 + · · · + n0 = 0 when i − 1 = 0. . . . and 1 ≤ i ≤ L − 1). since it is inconsistent with the traditional meaning of a closed curve.. If N = 0. We do not favor this terminology. and every knot uk has multiplicty at most m + 1. uN +m+1 . . nL−1 m+1 N = n1 + · · · + nL−1 . . . . we now deﬁne the number L of subintervals in the knot sequence. . .3. the knot sequence uk −m≤k≤m+1 consists of 2(m + 1) knots. uN +1 . . uN +1 ] → E. un1 . . . . . . . un1 un1 +n2 . Note that some authors use the terminology closed B-splines for such B-splines. uN . if v1 . un1 +n2 . .

A spline curve F of degree m based on the ﬁnite knot sequence uk −m≤k≤N +m+1 or for short. . . ui+2 ). Remark: The remarks about discontinuities made after deﬁnition 6.5. Fn1 . uN +1 ]) is called the trace of the ﬁnite spline F . . with associated polar form f0 . . then for any two consecutive distinct knots ui < ui+1 . When N ≥ 1. uN +1 ] → E. um+1 ] → E agrees with a polynomial curve F0 of polar degree m. then the restriction of F to [uN . such that. if 0 ≤ i ≤ N − nL−1 . . . and if i = N. with associated polar form fN .6.. . . the following condition holds: 2. polar values are denoted as triplets of consecutive knots ui ui+1 ui+2 .11 shows the construction of the control points for the B´zier curve segments e constituting the previous spline. If N = 0. when N ≥ 1 and L ≥ 2. FINITE KNOT SEQUENCES.3. we also want the last curve segment FN to be deﬁned at uN +1 . ..7). uN +1 . uN +1 ] agrees with a polynomial curve FN of polar degree m. . if ui+1 has multiplicity n ≤ m + 1. in the following ﬁgures representing cubic splines. consists of L curve segments. then we get the same curve. ui+1 . F0 . Let us look at some examples of splines. . . a ﬁnite B-spline. However. The curve segments Fi and Fi+n join with continuity (at least) C m−n at ui+1 .2.. . un1 +1 . uN −nL−1 +1 . then the restriction of F to [ui . . To simplify notation. using multiplicity m + 1 allows us to view a ﬁnite spline as a fragment of an inﬁnite spline. u1 . . . . However. . Figure 6.. u0 m+1 where N = n1 + · · · + nL−1 . nL−1 m+1 . then F : [u0 . . . is a piecewise polynomial curve F : [u0 . Note that if we assume that u0 and uN +1 have multiplicity m. Another reason for letting the end knots have multiplicity m + 1 is that it is needed for the inductive deﬁnition of B-spline basis functions (see section 6. . . uN uN +m+1 n1 n2 . in the sense of deﬁnition 5.. . for every two consecutive distinct knots ui < ui+1 (where 0 ≤ i ≤ N − nL−1 ).1. . Fn1 +···+nL−1 = FN . . when in fact. for some appropriate k. ui+1 [ agrees with a polynomial curve Fi of polar degree m with associated polar form fi . The set F ([u0 . Note that a spline curve deﬁned on the ﬁnite knot sequence u−m . un1 un1 +n2 . FINITE B-SPLINE CURVES 211 1. they should be denoted as fk (ui .2 also apply.

2.6. 6. 1.10: A cubic spline with knot sequence 1. 6. B-SPLINE CURVES 123 456 566 112 666 111 234 345 Figure 6. 3. 6 . 5.212 CHAPTER 6. 1.4.1.

1. 1.3.4.11: Construction of a cubic spline with knot sequence 1. FINITE B-SPLINE CURVES 213 123 456 556 566 122 222 112 223 455 555 233 333 444 445 666 111 234 334 344 345 Figure 6. 5.2.6. 6.6. 6 .6. 1. 3. FINITE KNOT SEQUENCES.

667. 556. 6. 12. 10. 2. 9. and thus. 9. and the construction of the control points of the B´zier curves that constitute the spline. 7. 1. 1/2. cycle length N. 1/3. 13. 5. . 3. 355. . 233. N. 566. 6. uj+N . 13. 2/3. 2/3. 1.4 Cyclic Knot Sequences. 1/2. and period size T . and 666. The next two ﬁgures show a cubic spline with knot sequence 0. 0. 7. 10. 0. e The example in ﬁgure 6.4. correspond to the ratios 1/3. 0. 0. where L. 0. 223. 3/4. 2.16 shows a cubic spline based on the non-uniform knot sequence 0. 7. 8. 4. 555. 1. 7.13 shows the construction of the control points for the B´zier curve segments e constituting the previous spline. such that there is some subsequence uj+1. 1/2. 2. 11. For example. 6. 7. 333. 0. 11. 8. uk ≤ uk+1 for all k ∈ Z). 7. B-SPLINE CURVES Figure 6. . 10. 0. 4. Closed (Cyclic) B-Spline Curves First. the interpolation ratios vary. 10 with intervening double knot 8. 13. we deﬁne cyclic knot sequences. 677. and N ≥ L. L ≥ 2.214 CHAPTER 6. A cyclic knot sequence of period L. 1/3. the nodes labeled 112. 8. 5. We now consider closed B-spline curves over cyclic knot sequences.e. 122. 7. . Since the knot sequence is non-uniform. Figure 6. the corresponding part of the spline is also pulled towards the control polygon. 1/4. 335. 0. T ∈ N.12 shows another cubic spline with knot sequence 0. 5. Deﬁnition 6. 2/3. 10. 1/4.1. 3. 6. 11. 222. 0. 13. 3/4. The non-uniformity of the knot sequence causes the B´zier control points 333 and 555 to e be pulled towards the edges of the control polygon. is any bi-inﬁnite nondecreasing sequence uk k∈Z of points uk ∈ A (i. 3. 1/2.

4.12: A cubic spline with knot sequence 0. 2. 7.4. 5. 0. 0. 6. 1. 7 . 7. CYCLIC KNOT SEQUENCES. CLOSED (CYCLIC) B-SPLINE CURVES 215 677 777 123 456 567 012 001 000 234 345 Figure 6. 3. 0. 7.6.

B-SPLINE CURVES 677 667 777 123 122 112 222 012 111 223 455 555 666 456 556 566 567 011 233 333 444 445 001 000 234 334 344 345 Figure 6. 1. 7.216 CHAPTER 6. 5. 2. 7. 6. 7 . 0. 0.13: Construction of a cubic spline with knot sequence 0. 7. 0. 4. 3.

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

217

89 10

10 11 11

11 11 11

9 10 11 789 677

11 11 12

11 12 13 13 13 13

778

123

456

12 13 13 567

012

001 000

234

345

Figure 6.14: Another cubic spline

218

CHAPTER 6. B-SPLINE CURVES

89 10 899 889 789

10 11 11 99 10 10 10 10 10 10 11 999 9 10 10 9 10 11 677

11 11 11

11 12 12 11 11 12 12 12 12

11 12 13 13 13 13

888 777

788

12 12 13 667 666 456 556

778 122 112 222 012 111

123

12 13 13 566 567

555 223 455

011

233 333 444

445

001 000

234 334 344 345

Figure 6.15: Construction of a cubic spline with knot sequence 0, 0, 0,0, 1, 2,3, 4, 5,6, 7, 7, 8, 9, 10,11, 11, 11,12, 13, 13,13, 13

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

219

123

235

012 356

567 001 10 10 10 678 000

889

788

89 10

9 10 10

Figure 6.16: Another cubic spline

220

CHAPTER 6. B-SPLINE CURVES

123 223 233 122 112 012 222 333

235 335

355 356 555

111

011

556 566 666 567

001 677 678 000 778 889 899 89 10 888 788 777

667 10 10 10

999 99 10 9 10 10

Figure 6.17: Construction of another cubic spline

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

221

of N consecutive knots containing exactly L distinct knots, with multiplicities n1 , . . . , nL , uj+N < uj+N +1, and uk+N = uk + T , for every k ∈ Z. Note that we must have N = n1 + · · · + nL (and ni ≥ 1). Given any natural number m ≥ 1, a cyclic knot sequence of period L, cycle length N, and period size T , has degree of multiplicity at most m, iﬀ every knot has multiplicity at most m. As before, a knot sequence (ﬁnite, or cyclic) is uniform iﬀ uk+1 = uk + h, for some ﬁxed h ∈ R+ . A cyclic knot sequence of period L, cycle length N, and period size T is completely determined by a sequence of N + 1 consecutive knots, which looks as follows (assuming for simplicity that the index of the starting knot of the cycle that we are looking at is k = 1) . . . , u1 , . . . , un1 , un1 +1 , . . . , un1 +n2 , . . . , un1 +···+nL−1 +1 , . . . , uN , uN +1 , . . . ,

n1 n2 nL

or showing the knot multiplicities more clearly, as . . . , u1 , un1 +1 , . . . , uN −nL +1 , uN +1 , . . . . . . . . . . . . . ... . . un1 un1 +n2 . . . uN uN +n1 n1 where N = n1 + · · · + nL , uN < uN +1 , and uk+N = uk + T , for every k ∈ Z. Observe that we can think of the knots as labeling N points distributed on a circle, where any two knots uk+N and uk + T label the same point. We will see when we deﬁne closed spline curves that it does not make sense to allow knots of multiplicity m + 1 in a cyclic knot sequence. This is why the multiplicity of knots is at most m. The following is an example of a cyclic knot sequence of period 3, cycle length N = 3, and period size 5: . . . , 1, 3, 4, 6, 8, 9, 11, 13, . . . . Another example of a cyclic knot sequence of period 4, cycle length N = 5, and period size 6 is: . . . , 1, 2, 2, 5, 6, 7, 8, 8, 11, 12, 13, . . . . We now deﬁne B-spline curves based on cyclic knot sequences. Some authors use the terminology cyclic B-splines, and we will also call them closed B-splines. n2 ... nL n1

222 uN +1 = u1 + T u1 · · · u n1 uN −nL +1 ···

CHAPTER 6. B-SPLINE CURVES

uN

un1 +n2

···

un1 +1

Figure 6.18: A cyclic knot sequence Deﬁnition 6.4.2. Given any natural number m ≥ 1, given any cyclic knot sequence uk k∈Z of period L, cycle length N, period size T , and of degree of multiplicity at most m, a piecewise polynomial curve of degree m based on the cyclic knot sequence uk k∈Z is a function F : A → E, where E is some aﬃne space (of dimension at least 2), such that, for any two consecutive distinct knots ui < ui+1 , if ui+1 is a knot of multiplicity n, the next distinct knot being ui+n+1 , then the following condition holds: 1. The restriction of F to [ui , ui+1 ] agrees with a polynomial curve Fi of polar degree m, with associated polar form fi , and Fi+N (t + T ) = Fi (t), for all t ∈ [ui , ui+1 ]. A spline curve F of degree m based on the cyclic knot sequence uk k∈Z or for short, a closed (or cyclic) B-spline, is a closed piecewise polynomial curve F : A → E, such that, for every two consecutive distinct knots ui < ui+1 , the following condition holds: 2. The curve segments Fi and Fi+n join with continuity (at least) C m−n at ui+1 , in the sense of deﬁnition 5.5.1, where n is the multiplicity of the knot ui+1 (1 ≤ n ≤ m). The set F (A) is called the trace of the closed spline F . Remarks:

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

223

(1) Recall that a cyclic knot sequence of period L, cycle length N, and period size T , satisﬁes the property that uk+N = uk + T , for every k ∈ Z. We must have ui+N = ui + T , ui+1+N = ui+1 + T , and thus, the curve segment Fi+N is deﬁned on the interval [ui + T, ui+1 + T ], and it makes sense to require the periodicity condition Fi+N (t + T ) = Fi (t), for all t ∈ [ui , ui+1 ]. (2) In the case of a closed spline curve, it does not make sense to allow discontinuities, because if we do, we obtain a spline curve with discontinuities, which is not a closed curve in the usual mathematical sense. Thus, we allow knots of multiplicity at most m (rather than m + 1). When every knot is simple, we have L = N. Note that a closed spline curve based on the following cyclic knot sequence of period L, cycle length N, and period size T , . . . , u1 , un1 +1 , . . . , uN −nL +1 , uN +1 , . . . . . . . . . . . . . . ... . un1 un1 +n2 . . . uN uN +n1 n1 where N = n1 + · · · + nL , uN < uN +1 , and uk+N = uk + T for every k ∈ Z, consists of L curve segments (the period of the knot sequence). Some examples of closed splines are given next. The example in ﬁgure 6.19 shows a closed cubic spline based on the uniform cyclic knot sequence . . . , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, . . . of period L = 16, cycle length N = 16, and period size T = 16. As usual, for simplicity of notation, the control points are denoted as triplets of consecutive knots ui ui+1 ui+2 . The cyclicity condition is fk (ui , ui+1 , ui+2 ) = fk+16 (ui + 16, ui+1 + 16, ui+2 + 16), which we write more simply as ui ui+1 ui+2 = (ui + 16)(ui+1 + 16)(ui+2 + 16). n2 ... nL n1

Since the knot sequence is uniform, all the interpolation ratios are equal to 1/3, 2/3, or 1/2.

224

CHAPTER 6. B-SPLINE CURVES

123

012 = 16 17 18 14 15 16

234 456

15 16 17 13 14 15 11 12 13

345 567 789

12 13 14 10 11 12 89 10

678

9 10 11 Figure 6.19: A closed cubic spline with cyclic knot sequence

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

225

123

222 012 = 16 17 18 14 15 16 16 16 16 15 15 15 15 16 17 13 14 15 14 14 14 11 12 13 13 13 13 12 12 12 12 13 14 10 11 12 11 11 11 999 89 10 789 777 888 678 444 555 345 666 567 234 456

111

333

10 10 10

9 10 11 Figure 6.20: Construction of a closed cubic spline with cyclic knot sequence

226

CHAPTER 6. B-SPLINE CURVES

The example in ﬁgure 6.21 shows a closed cubic spline based on the non-uniform cyclic knot sequence . . . , −3, −2, 1, 3, 4, 5, 6, 9, 11, 12, . . . of period L = 5, cycle length N = 5, and period size T = 8. As usual, for simplicity of notation, the control points are denoted as triplets of consecutive knots ui ui+1 ui+2 . The cyclicity condition is fk (ui , ui+1 , ui+2 ) = fk+5 (ui + 8, ui+1 + 8, ui+2 + 8), which we write more simply as ui ui+1 ui+2 = (ui + 8)(ui+1 + 8)(ui+2 + 8).

Because the knot sequence is non-uniform, the interpolation ratios vary. The interpolation ratios for the nodes labeled 113, 133, 334, 344, 445, 455, 556, 566, 669, −2 11 = 699, 111, 333, 444, 555, 666, are 1/3, 5/6, 1/2, 3/4, 1/3, 2/3, 1/5, 2/5, 1/6, 2/3, 3/5, 2/3, 1/2, 1/2, 1/4. It is easy to show that lemma 6.2.3 can be simply modiﬁed to hold for ﬁnite spline curves, and for closed spline curves. We can also modify theorem 6.2.4 as follows. Theorem 6.4.3. (1) Given any m ≥ 1, and any ﬁnite knot sequence uk −m≤k≤N +m+1 of degree of multiplicity at most m + 1, for any sequence d−m , . . . , dN of N + m + 1 points in some aﬃne space E, there exists a unique spline curve F : [u0 , uN +1 ] → E, such that dk = fi (uk+1 , . . . , uk+m ), for all k, i, where −m ≤ k ≤ N, ui < ui+1 , and k ≤ i ≤ k + m. (2) Given any m ≥ 1, and any ﬁnite cyclic knot sequence uk k∈Z of period L, cycle length N, period size T , and of degree of multiplicity at most m, for any bi-inﬁnite periodic sequence dk k∈Z of period N of points in some aﬃne space E, i.e., a sequence such that dk+N = dk for all k ∈ Z, there exists a unique closed spline curve F : A → E, such that dk = fi (uk+1 , . . . , uk+m ), for all k, i, where ui < ui+1 and k ≤ i ≤ k + m. Proof. (1) The ﬁnite knot sequence is of the form u−m , . . . , u0 , u1 , . . . , un1 , un1 +1 , . . . , un1 +n2 , . . . , un1 +···+nL−2 +1 , . . . , uN , uN +1 , . . . , uN +m+1 ,

m+1 n1 n2 nL−1 m+1

CLOSED (CYCLIC) B-SPLINE CURVES 227 134 −2 13 = 69 11 345 569 456 Figure 6.6. CYCLIC KNOT SEQUENCES.21: Another cubic spline with cyclic knot sequence .4.

228 CHAPTER 6.22: Construction of another closed cubic spline . B-SPLINE CURVES 134 133 333 113 334 344 −2 13 = 69 11 111 444 345 −2 11 = 699 445 455 555 669 569 666 566 556 456 Figure 6.

and ui+N = ui + T . the proof of theorem 6. this means that the sequences u−m . and we present the very useful “knot insertion” method. . the condition Fi+N (t + T ) = Fi (t). . N = n1 + · · · + nL uN < uN +1 . .2. . Since there are m + N + 1 subsequences of m consecutive knots in the knot sequence u−m+1 . uN +m ). implies that the sequence of control points dk = fi (uk+1 . . . . uN +m . . ui+1 ]. uk+m ) is periodic of period N. (2) It will be enough to consider a cycle of the knot sequence. . un1 . . and consider the sequence of 2m knots ui−m+1 . shows that the ﬁrst and the last knots u−m and uN +m+1 can be safely ignored. . . . We now reconsider the de Boor algorithm. The rest of the proof is similar to the proof of theorem 6. Assume that a spline satisfying conditions (1) exists. . . and look at some properties of spline curves.6. . . . . .4 applied to the distinct knots in the above cycle shows that the curve segments Fi are uniquely determined. u1 . Conversely. . . If a closed spline curve exists. . . . . . . we have Fi+N (t + T ) = Fi (t). . Let ui < ui+1 be two consecutive distinct knots in the sequence u−m+1 . Remark: Theorem 6. ui+1 ]. given a periodic sequence dk k∈Z of control points with period N. for all t ∈ [ui . u0 ). Note that there are (2(m + 1) + N) − m + 1 = m + N + 3 subsequences of m consecutive knots in the entire knot sequence.4. ui+m .2. and since the ﬁrst and the last knot have multiplicity m + 1. we can assume that u0 and uN +1 have multiplicity m. . . . . . n1 n2 nL where and uk+N = uk + T . . centered at the interval [ui . Thus. . and since the cycle length N of the knot sequence agrees with the periodicity N of the sequence of control points. .4. . . . . . . . . . uN +1 . and that the periodicity condition on curve segments. . . and it consists of 2(m + 1) + N knots.2. there are indeed m + N + 1 control points associated with the original knot sequence. uN +m . CYCLIC KNOT SEQUENCES. . Observe that d−m = f0 (u−m+1 . . un1 +···+nL−1 +1 .4. ui+1 ]. for all t ∈ [ui .4 applied to the distinct knots in the knot sequence shows that the curve segments Fi are uniquely deﬁned and ﬁt well together for joining knots. say . . Indeed. . from a practical point of view. u−1 and uN +2 . . and dN = fN (uN +1 .3 (1). . namely. CLOSED (CYCLIC) B-SPLINE CURVES 229 where N = n1 + · · · + nL−1 . Also observe that there are m + N + 1 subsequences of m consecutive knots in the knot sequence u−m+1 . uN . . . the proof of theorem 6. . they do not contribute to any control points. uN +m . . for every k ∈ Z. uN +m+1 do not correspond to any control points (but this is ﬁne!). un1 +1 . . un1 +n2 . .

and then to apply the progressive version of the de Casteljau algorithm. . uI+1 ] for which uI ≤ t < uI+1 . Its relationship to spline curves is that. 0 ≤ k ≤ m − j. since the indexing will be a bit more convenient. . starting from the m + 1 control points indexed by the sequences uI−m+k . . and during round j. b1.j . . Recall that F (t) = f (t. in this case [um . . for 0 ≤ k ≤ m. B-SPLINE CURVES 6.j−1 + um+k+1 − uk+j t − uk+j bk+1. the points b0. we just have to ﬁnd the interval [uI . um+k ). Such a computation can be conveniently represented in the following trian- . . . um+k ) = dk .j .230 CHAPTER 6.5 The de Boor Algorithm In section 5. in order to compute the point F (t) on the spline curve F determined by uk and dk .3. and with bk. . . . uN +1 ].0 = f (uk+1 .3. . .j−1. or cyclic). . where 1 ≤ k ≤ m + 1. um+k+1 − uk+j where bk. t) is computed by iteration as the point b0. we presented the progressive version of the de Casteljau algorithm. . The computation proceeds by rounds. . bm−j. . .j = um+k+1 − t bk.m determined by the inductive computation bk. u2m of length 2m. ﬁnite. given a knot sequence uk (inﬁnite. . . . let us assume for simplicity that I = m.j = f (t uk+j+1 . we translate all knots by I − m. um+1 ] is the middle of the sequence u1 . given any parameter t ∈ A (where t ∈ [u0 . . As in section 5. .j are computed. in case of a ﬁnite spline). and a sequence dk of control points (corresponding to the nature of the knot sequence). uI+k−1 . j for 1 ≤ j ≤ m. For the general case. Indeed.

. . it will be convenient to index the points in the j-th column with an index i starting at j + 1.. bk.j . . for every round j. bm−j. = um . . . .m um−r+1 . .j . . ..m−r = f (t um−r+1 = . . . we will label the starting control points as d1. .j .1 .j . Thus..0 . . . . under our new indexing. 0 . we notice that b0. . . b0. and running up to m − j. . . .0 . . . .1 bm−r. . since um is of multiplicity r. . First. . we only need to start with the m − r + 1 control points b0. . bm−j+1. . . ..j differently. . bm−r−j+1.j−1 bk+1. . bm−j.j . . bk. In order to present the de Boor algorithm. .j .m−r . . bm−1. . .. .1 bm. b0. .j−1 b0. it is convenient to index the points bk. and t = because b0.m . .j .m−r = b0. .0 .j . m 231 . b0. . in this case. bm−r−1. bm−r−j. and always ending at m + 1. .j .j−1 bm−r−1. will correspond the to the points dj+1. j−1 j . at round j. . dk+j+1. .6.0 If t = um and the knot um has multiplicity r (1 ≤ r ≤ m).1 b1. b1. br.m−r+1 = . . um ) = F (t). and we only need to construct the part of the triangle above the ascending diagonal bm−r.m−r b0. the points b0. = b0. indexed using our original indexing.0 b0.. Thus.j .0 . 0 . m− r .j−1 . THE DE BOOR ALGORITHM gular form: 1 b0. bm−r. .0 . .5. and second. bk. .j−1 . . . Rewriting the m−r .j . . rather than indexing the points on the j-th column with an index k always starting from 0. . dj+2. dm+1.0 bm−1. ..m−r . dm+1.j . . . .

. m−r .. .j−1 As we can easily see.j = um+k+1 − t dk+j. dm+1−r.j dm+1.. when 0 ≤ k ≤ m − r.j . and we get the equation . we get the following: 1 d1.m−r . in order to deal with the general case where t ∈ [uI . Finally.0 . and with dk+1. dk+j+1. is given by the equation: dk+j+1. ..m−r . when 1 ≤ i ≤ m + 1 − r.j dm+1−r. .1 d2.j−1 + um+i−j − ui−1 t − ui−1 di.. which does not change diﬀerences of indices. m . . .j−1.0 = di−1 .232 CHAPTER 6.j−1.j−1. the inductive relation giving dk+j+1. . .j . dj. . um+k+1 − uk+j where 1 ≤ j ≤ m − r. 0 ≤ k ≤ m − r − j. . dk+j.0 . . .m dm+1−r.0 dm+1.j−1 + um+k+1 − uk+j t − uk+j dk+j+1.j in terms of dk+j+1.. j−1 j . B-SPLINE CURVES triangular array representing the computation with our new indexing. we translate all the knot indices by I − m. . .0 = dk ..m−r dm+1. . where r is the multiplicity of um when t = um . and r = 0 otherwise. Letting i = k + j + 1. . .1 dm+1. the above equation becomes di.j−1 .1 dm+1−r. dm+1. .j−1 and dk+j.0 d2. and with di. uI+1 [. .j−1 . dm+1.j−1 . dm+1−r. . .0 . . dm.. j + 1 ≤ i ≤ m + 1 − r.j = um+i−j − t di−1.j−1 dj+1. . The point F (t) on the spline curve is dm+1−r. dk+j+1. um+i−j − ui−1 where 1 ≤ j ≤ m − r.

and even e for computing a point on a spline curve. and with di. for i := I − m + 1 to I + 1 − r do di.j as dj .j := um+i−j −t um+i−j −ui−1 di−1. If I is the largest knot index such that uI ≤ w < uI+1 . The point F (t) on the spline curve is dI+1−r. where r is the multiplicity of the knot uI when t = uI . for j := 1 to m − r do for i := I − m + j + 1 to I + 1 − r do di. inserting the knot w will aﬀect the m − 1 − r control points f (uI−m+k+1 . F (t) := dI+1−r.m−r . I − m + j + 1 ≤ i ≤ I + 1 − r.0 := di−1 endfor.j−1 + um+i−j − ui−1 t − ui−1 di.j−1. .j−1 endfor endfor.6. the eﬀect will be to increase the degree of multiplicity of w by 1. The knot w may be new or may coincide with some existing knot of multiplicity r < m. i The de Boor algorithm can be described as follows in “pseudo-code”: um+i−j − t di−1. if t = uI then r := multiplicity(uI ) else r := 0 endif.m−r end 6.6.6 The de Boor Algorithm and Knot Insertion The process of knot insertion consists of inserting a knot w into a given knot sequence without altering the spline curve. THE DE BOOR ALGORITHM AND KNOT INSERTION 233 di. .0 = di−1 . Knot insertion can be used either to construct new control points.j−1 + t−ui−1 um+i−j −ui−1 di. um+i−j − ui−1 begin I = max{k | uk ≤ t < uk+1 }. B´zier control points associated with the curve segments forming a spline curve.j = where 1 ≤ j ≤ m − r. uI+k ) associated with the sequences . Note that other books often use a superscript for the “round index” j. This is the de Boor algorithm. and in the latter case. and r = 0 when uI < t < uI+1 (1 ≤ r ≤ m). . when I − m + 1 ≤ i ≤ I + 1 − r. . and write our di.

5. and where r is the multiplicity of uI if w = uI (with 1 ≤ r < m). if w = uI then r := multiplicity(uI ) else r := 0 endif. . . 5. B-SPLINE CURVES uI−m+k+1 . . . . where v k = uk . 6. . . . 9. 2. where 1 ≤ k ≤ m − r (w = vI+1 belongs to one of these subintervals). v I+1 . . note that these points constitute the ﬁrst column obtained during the ﬁrst round of the de Boor algorithm. and vk+1 = uk . 3. 15. . . for which the two polar values f (568) and f (689) no longer exist. . . uI+m−1−r . 11. uI−r+1 . . 11. uI−r . . 5. . . 1. 2. We can use the de Boor algorithm to compute the new m − r control points. . 3. . . 6. . . . 8. and r = 0 if uI < w: . 15. v I+k . . for i := I − m + 1 to I + 1 − r do di. . uI . . for all k ≥ I + 1: . . . . 11.0 := di−1 endfor. 8. 1. . 7. v I+m−r . . . and f (789). . In fact. . . . . . . . 9. . After insertion of w. . . . . . v I−r . 14. given the knot sequence . 9. . 8. 15. 14. . .234 CHAPTER 6. . after insertion of the knot 7 in the knot sequence . . insertion of the knot 7 yields the knot sequence . v I+1 = w. . Thus. . . . we can describe knot insertion in “pseudo-code”. 2. vI+k ). 1. . uI+1 ]. 15. vI−r+1 . . 2. . v I+2 . . . 6. need to be computed. for all k ≤ I. . . 5. and the three polar values f (567). 9. . . which are just the polar values corresponding to the m − r subsequences of m − 1 consecutive subintervals vI−m+k+1 . . . 14. 7. . . . . . f (678). 8. v I+1 . . uI−m+2 . uI+1 . . uI+k containing the subinterval [uI . . . . . v I+m . . . . For example. we get the new sequence (vk ). where 1 ≤ k ≤ m − 1 − r. For example. . . . we have the knot sequence . . . . v I+1 . v I−m+2 . 14. uI+m−1 . as follows: begin I = max{k | uk ≤ w < uk+1 }. vI . . Thus. 6. . . . 3. 3. . . . . 1. . we need to compute the m − r new control points f (v I−m+k+1. 11.

more illuminating) presentation of this algorithm in terms of polar forms. .1 end Note that evaluation of a point F (t) on the spline curve amounts to repeated knot insertions: we perform m − r rounds of knot insertion. . . are 4 7−3 = . 2 2 and b′2i+2 = 1 6 1 bi + bi+1 . For instance. . 9. consists in inserting the knot t = 7 three times.6. . Such an algorithm often coined “Olso algorithm”. in the spirit of our treatment of single knot insertion. is inserted. bi+1 ). r = 0 if t is distinct from all existing knots). as opposed to a single knot. . 14. and bi+2 . + bi+2 . .0 endfor return dI−m+2. The interpolation ratios associated with the points d1. 11 − 6 5 Evaluation of the point F (7) on the spline curve above. Figure 6. 11. 1. 4 4 This is Chaikin’s subdivision method [18]. It is also possible to formulate a version of knot insertion where a whole sequence of knots. to raise the original multiplicity r of the knot t to m (again. We leave the formulation of such an algorithm as an exercise to the reader (for help. 8−3 5 7−5 2 1 = = . It is rather straightforward to give an equivalent (and in fact. dI+1−r. . create two new control points according to the formulae b′2i+1 = 3 1 bi + bi+1 . is described in Cohen. bi+1 . 8.6. 4 4 and b′2i+2 = 1 3 bi + bi+1 . one may consult Risler [68] or Barsky [4]). d2. for any three consecutive control points bi . . . and Riesenfeld [20].1 := um+i−1 −w um+i−1 −ui−1 235 di−1. and d3. 8 8 8 .1 . in the case of a quadratic B-spline curve speciﬁed by a closed polygon of de Boor control points. two new control points b′2i+1 and b′2i+2 are created according to the formulae b′2i+1 = 1 1 bi + bi+1 . 3. For a cubic B-spline curve speciﬁed by a closed polygon of de Boor control points. 5. Lyche. 9−5 4 2 7−6 1 = .23 illustrates the process of inserting the knot t = 7. 6. THE DE BOOR ALGORITHM AND KNOT INSERTION for i := I − m + 2 to I + 1 − r do di. . 15. in the knot sequence .1 .1 . 2.1 .0 + w−ui−1 um+i−1 −ui−1 di. for every edge (bi . An amusing application of this algorithm is that it yields simple rules for inserting knots at every interval midpoint of a uniform cyclic knot sequence.

3 : 777 d3.1 : 678 d5 : 689 Figure 6. 5. 9. .236 CHAPTER 6. 11.23: Part of a cubic spline with knot sequence . . 8. . .1 : 789 d2. B-SPLINE CURVES d6 : 89 11 d2 : 235 d3 : 356 d7 : 9 11 14 d1 : 123 d8 : 11 14 15 d1. . . 1.1 : 567 d4 : 568 d2. 3. insertion of the knot t = 7 . 6.2 : 677 d3. 2. 15..2 : 778 d3. 14.

Given a ﬁnite knot sequence u0 . where u0 and uN +1 are of multiplicity m + 1. uN . .6. The coeﬃcients of the de Boor points can be viewed as real functions of the real parameter t. uN −1 . which we now brieﬂy e review. this aﬀects m+1 curve segments. u2 . . . where u0 and uN +1 are of multiplicity m + 1. the control polygon consists of B´zier subpolygons. uN +1 . The spline curve is not intersected by any straight line more often that is the control polygon. uN +1 . This property is inherited from the corresponding property of the B´zier e segments. the resulting spline curve reproduces the straight line. In case of a ﬁnite knot sequence u0 . u2 . for which the variation diminishing e property has been established. since it consists in aﬃne interpolation steps. Aﬃne invariance. 6. given a straight line of the form l(u) = au + b. Local control. An easy way to prove this property is to use knot insertion. Variation diminishing property. This is a variation diminishing property. . a B´zier curve e e is viewed as the result of blending together its B´zier control points using the Bernstein e . u1 . u1 . . and we learned that the current point F (t) on a spline curve F can be expressed as an aﬃne combination of its de Boor control points. . In the traditional theory of B´zier curves. . Every point on the spline curve lies in the convex hull of no more than m + 1 nearby de Boor control points. Linear Precision. uN . Endpoint interpolation. .7 Polar forms of B-Splines Our multiaﬃne approach to spline curves led us to the de Boor algorithm. POLAR FORMS OF B-SPLINES 237 Spline curves inherit a number of the properties of B´zier curves. a spline curve passes through the ﬁrst and the last de Boor control points. If one of de Boor control points is changed. Insert every knot until it has multiplicity m.7. m where 0 ≤ i ≤ N + m. Strong convex hull property. At that stage. uN −1 . if we read oﬀ control points on this line at the Greville abscissas. given the N + m + 1 knots (known as Greville abscissas) 1 ξi = (ui + ui+1 + · · · + ui+m−1 ).

is the unique spline curve whose de Boor control points are the reals xi = δi.m+1. uk+1[. . such that δi. tm ) = j bj. a spline curve can be viewed as the result of blending together its de Boor control points using certain piecewise polynomial functions called B-splines as the weights. the j-th normalized (univariate) B-spline Bj. but instead in terms of a recurrence relation.m+1 over [uk . .m+1. Thus. and it would perhaps make more sense to denote it as Bj.1.m. Remark: The word “curve” is sometimes omitted when referring to B-spline curves. . uk+1 [. B-splines are piecewise polynomial functions that can be viewed as spline curves whose range is the aﬃne line A. .m+1. . In the traditional theory. For simplicity. Given an inﬁnite knot sequence uk k∈Z. and δi. . tm ) f]uj . Some authors use the notation Njm . .m+1. . we will only consider an inﬁnite knot sequence uk k∈Z where every knot has multiplicity at most m + 1. thus showing the equivalence with the traditional approach. . . . B-SPLINE CURVES basis polynomials as the weights.m+1 which are piecewise polynomial functions.j = 0 otherwise. uj+m ).j is the Kronecker delta symbol. and not curves in the traditional sense. the normalized B-splines Bj.j = 1 iﬀ i = j.m+1 is actually of degree ≤ m. . uk+m ). .m+1. to avoid ambiguities. If we polarize both sides of the equation Fk (t) = j Bj. .7. we tried to be careful in keeping the word “curve” whenever necessary. Given any spline curve (really.k is the segment forming the spline curve Bj. where dk = f]uk . or by a formula involving so-called divided diﬀerences. .uj+m+1 [ (uj+1 . which may cause a slight confusion with the (normalized) B-splines Bj.m+1 : A → A) of order m + 1.238 CHAPTER 6. since the adaptations needed to handle a ﬁnite or a cyclic knot sequence are quite trivial. . and deﬁned by the de Boor control points dk k∈Z . .k (t) dj = j Bj. any B-spline curve) F : A → E over the knot sequence uk k∈Z (where E is an arbitrary aﬃne space).m+1. B-splines are usually not deﬁned in terms of the de Boor algorithm. Deﬁnition 6. Similarly. We deﬁne B-splines as follows. for every k such that uk < uk+1 .j .m+1 is well established. . .k (t) f]uj . we get fk (t1 . where δi. . Remark: The normalized B-spline Bj. . we know that Fk (t) = j Bj.m+1 : A → A (or Nj. where Bj. Thus. . for every t ∈ [uk .k are indeed the weights used for blending the de Boor control points of a spline curve. but the notation Bj.uj+m+1 [ (uj+1 . . where every knot has multiplicity at most m+1.uj+m+1 [ (uj+1 . uj+m). uj+m ). .k (t1 . .k (t) f]uj .uk+m+1 [ (uk+1 . We will now show brieﬂy how the multiaﬃne approach to spline curves leads to the recurrence relation deﬁning B-splines.

. and the bottom row consists of the values yk = fk (t1 . . . .6.m+1. tm ).k (t1 . and it is just the de Boor algorithm. tm ). . . The top row consists of the de Boor control points dj = f]uj . . Our goal is to ﬁnd a recurrence formula for bj. Thus. = tk+n . . m−j . uj+m ).k (t1 .uj+m+1 [ (uj+1 . since Fk is inﬂuenced by the m + 1 de Boor control points dj only when j ∈ [k − m. . . tm ) is the sum of the products of the edge-weights along all descending m paths from xj to yk (there are such paths). . . . . It is easily seen that the label assigned to every node is the sum of the products of the edge-weights along all descending paths from xj to that node. Figure 6. . . . we have computed the inﬂuence of the chosen j-th de Boor control point on all segments fk of the spline. for j outside [k − m. this lattice will have triangular notches cut out of the bottom of it.j for the top nodes. if we let xi = δi. . An interesting phenomenon occurs if we ﬁx the multiset {t1 .k (t1 . More speciﬁcally. Intuitively. We now show how this second lattice can be used to compute the polar value bj. Recall that the above sum only contains at most m + 1 nonzero factors. . but there are no triangles for fk+1 through fk+n−1 .m+1. .m+1. and this is what generates a triangular hole of height n at the bottom of the lattice. . Recall that the computation can be arranged into a triangle. . POLAR FORMS OF B-SPLINES 239 where bj. k]. and the bottom row with the polar values yk . . . . then we have a computation triangle for fk and for fk+n . tm ) (where uk < uk+1). k]. . . .k is the polar form of Bj.m+1.m+1. If we label the intermediate nodes as we do this top-down computation. tm ).m+1 . tm ) from the de Boor control points f]uj . we obtain another interpretation for bj. . forming a kind of lattice with m + 1 rows. . The de Boor algorithm provides a method for computing the polar value fk (t1 . tm ). .m+1. where we let k vary. if tk+1 = . and bj. If there are multiple knots. omitting the node labels. . We discover that the triangles used in the computation of the polar values fk (t1 . .24 shows a portion of this lattice in the case of a cubic spline. . where each subsequent row is computed from the row above by taking aﬃne combinations controlled by one of the arguments ti .m+1.7. . .k (t1 . but this time.k is null. . . . . . tm ) overlap in large parts. The ﬁrst method proceeds from the top-down.uj+m+1 [ (uj+1 .k . . It is interesting to draw the same lattice in the case where the object space is the aﬃne line A. . . . as speciﬁed in the de Boor algorithm. . . then the bottom row node yk gives the value bj. The nodes of the above lattice are labeled to reﬂect the computation of the polar value fk (t1 . . except that we label the top row with the de Boor points xi (which are real numbers). tm ) associated with the normalized B-spline Bj. . tm }. . tm } and we compute fk (t1 .k .m+1. . at the ﬁxed multiset {t1 . uj+m). . Fixing an index j. the polynomial Bj. . whose heights correspond to knot multiplicity. .

u5 ) t2 − u1 u3 − u1 f]u1 . u3 . u4 .u4 [ (t1 . u3 ) f]u3 . t2 . t2 . u2 . u4 . u4 ) u3 − t3 u3 − u2 t3 − u2 u3 − u2 u4 − t3 u4 − u3 t3 − u3 u4 − u3 u5 − t3 u5 − u4 t3 − u4 u5 − u4 f]u2 . u5 ) f]u3 . B-SPLINE CURVES f]u0 . t2 .u7 [ (u4 . t2 . t3 ) Figure 6. u5 ) f]u2 .24: Computation scheme of the de Boor algorithm when m = 3 .u5 [ (t1 . t2 .u6 [ (u3 . u4 ) f]u3 . t3 ) f]u3 .u5 [ (t1 .u4 [ (t1 . t3 ) f]u4 .u4 [ (u1 .u6 [ (t1 .u4 [ (t1 . u3 ) f]u2 .u3 [ (t1 . t2 . t2 . u5 . u3 ) f]u1 .240 CHAPTER 6.u5 [ (u2 .u6 [ (t1 .u5 [ (t1 . u2 ) u4 − t2 u4 − u2 t2 − u2 u4 − u2 u5 − t2 u5 − u3 t2 − u3 u5 − u3 u6 − t2 u6 − u4 f]u4 .u3 [ (t1 . u6 ) u4 − t1 u4 − u1 t1 − u1 u4 − u1 u5 − t1 u5 − u2 t1 − u2 u5 − u2 u6 − t1 u6 − u3 t1 − u3 u6 − u3 f]u1 . u4 ) f]u2 . u3 . u2 .

25: The computation lattice underlying the de Boor algorithm when m = 3 .6. POLAR FORMS OF B-SPLINES 241 x0 x1 x2 x3 u4 − t1 u4 − u1 t1 − u1 u4 − u1 u5 − t1 u5 − u2 t1 − u2 u5 − u2 u6 − t1 u6 − u3 t1 − u3 u6 − u3 t2 − u1 u3 − u1 u4 − t2 u4 − u2 t2 − u2 u4 − u2 u5 − t2 u5 − u3 t2 − u3 u5 − u3 u6 − t2 u6 − u4 u3 − t3 u3 − u2 y2 t3 − u2 u3 − u2 u4 − t3 u4 − u3 y3 t3 − u3 u4 − u3 u5 − t3 u5 − u4 y4 t3 − u4 u5 − u4 Figure 6.7.

m+1 (t) = uj+m − uj uj+m+1 − uj+1 Bj.k () = δj. . Remark: In the case of a ﬁnite spline based on a ﬁnite knot sequence uk −m≤k≤N +m+1 .m+1 . and drop the subscript k. . uj+1 [ 0 otherwise. but under the symmetric path interpretation. the sequence of tensors (b⊙ j.m (t). A nice property about this recurrence relation is that it is not necessary to know the degre m ahead of time if we want to compute the B-spline Bj.m+1. Thus. .k (t1 .m. . . Bj.k )k−m≤j≤k forms a basis of the vector space m m A .j .m+1. This time. .k (t1 .m+1.k (t1 . . . t − uj uj+m+1 − t Bj. .k of bj. . The bottom-up approach yields a recurrence relation for computing bj. As a consequence. the bottom-up approach chooses a spline segment fk and computes how this segment is inﬂuenced by all de Boor control points. This justiﬁes the introduction of end knots u0 and uN +1 of multiplicity m + 1. the polynomials (Bj. . due to Mansﬁeld. . Note that the combinations involved are no longer aﬃne (as in the top-down approach). the above recurrence equations show the necessity for the knots u−m and uN +m+1 .k .m+1. B-SPLINE CURVES The symmetry of this second approach suggests a bottom-up computation.k )k−m≤j≤k are linearly independent. .k )k−m≤j≤k is the dual basis of the basis of symmetric tensors (uj+1 · · · uj+m )k−m≤j≤k . Intuitively.242 CHAPTER 6. we choose a ﬁxed k with uk < uk+1 . tm−1 ). the dual space of ∗ A.m+1.m+1.1.m+1. . .k of the homogenized version bj. . and Cox: 1 if t ∈ [uj . uj+m+1 − uj+1 If we set all ti to t.k for the bottom nodes. .k (t1 . it is easy to see that the label of the top row node xj is the polar value bj. If we consider the tensored version b⊙ j. the above equations show that the sequence of symmetric tensors (b⊙ j.k (ti+1 .m (t) + Bj+1.m. . taking linear combinations as speciﬁed by the edge-weights. uj+m+1 [. . tm ).m+1.m+1.k (t1 .m+1. . tm−1 ) + uj+m − uj uj+m+1 − tm bj+1. de Boor. We then assign labels to the nodes in a bottom-up fashion. tm ): We have bj. tm − uj bj. ti+m ) = δi. .k . . . One will observe that bj. and we let yi = δi.m+1 is null outside [uj . . . we get the standard recurrence relation deﬁning B-splines.1 (t) = It is easily shown that Bj. tm ) = bj.

1. t3 . 0. 0) f (2. t4 ) + f (t2 . 1. it is immediate that the answer is f (t1 . 0. First. 0. For example. we must increase the degree of multiplicity of each knot by 1. 0. t3 ) + f (t1 . 0. 2) 243 f (0. Farin [32]. 0. t2 . 2. Risler [68]. the reader is referred to de Boor [22]. 1). 1. 0. t4 ) . 1) f (0.6. 1) = f (0.5. 0. we consider an example. t2 . 4 . 2 It is also possible to deﬁne B-splines using divided diﬀerences. 2. Figure 6. 1. 2. 0. t3 . 0. 2) Figure 6. 2. First. 1) + 2f (0. 1) = 2f (0. Hoschek and Lasser [45]. 0. so that the quartic spline curve G is based on the knot sequence 0. We conclude this section by showing how the multiaﬃne approach to B-spline curves yields a quick solution to the “degree-raising” problem. 1. 0. we need to ﬁnd the polar form g of this spline curve G of degree 4. or in various other ways. 2. 2. 1. 4 It is then an easy matter to compute the de Boor control points of the quartic spline curve G. 1.26 shows a cubic spline curve F based on the knot sequence 0. t4 ) = g(0. 1) f (0. we have g(t1 . 2. 2. 2) f (1. We would like to view this spline curve F as a spline curve G of degree 4. 1) f (1. For more on B-splines.26: A cubic spline F with knot sequence 0. 2. 1. 2. t4 ) + f (t1 . in order for the spline curve to retain the same order of continuity. 2. 2. POLAR FORMS OF B-SPLINES f (0. 0. or Piegl and Tiller [62]. Then. 2) f (1. 0. 0. in terms of the polar form f of the original cubic spline curve F . t3 . For this. 1. t2 .7. 1. 2. 2.

1. 2) + f (1. . 2) g(0. 2. . This is a general phenomenon.27 shows the de Boor control points of the quartic spline curve G and its associated control polygon. 0. 1). 1. the polar form gk of the spline curve segment G of degree m + 1 over the interval [uv . . 2) g(1. 2. 2) . 1. 0. 0. since the multiplicity of every knot goes down by 1. It can be shown that as the degree is raised. where each knot is of multiplicity at most m + 1. We observe that the above expression is indeed well deﬁned. 1. 2) and f (1. 1. 1) + 2f (0. 0) g(2. In the general case. . 1. since if the left-hand side is well deﬁned. given a spline curve F of degree m based on this knot sequence. . 2) Figure 6. 2) = We note that the control polygon of G is “closer” to the curve. 1) g(1. 2) is easily seen to be the middle of the line segment between f (0. Figure 6. 1. . . Then. 1. . 1. 1. vk+1 ]. 2. .1. g(0. . i=1 where the hat over the argument ti indicates that this argument is omitted. . . 1. 1) g(1.244 g(0. 0. . given a knot sequence sequence uk k∈Z. 4 The point g(0. tm+1 ) = m+1 i=m+1 fk (t1 . 1. with the multiplicity of each knot incremented by 1. 1) CHAPTER 6. B-SPLINE CURVES g(0. 1. the control polygon converges to the spline curve. which consists of the knots in the sequence uk k∈Z . 0. 2. then the right-hand side is also well deﬁned.27: Degree raising of a cubic spline as a quartic G and 2f (0. it is ﬁrst necessary to form a new knot sequence vk k∈Z . 2) g(0. where vk < vk+1 . ti . is related to the polar form fk of the original spline curve F of degree m by the identity 1 gk (t1 . 1. 1. 2. as in section 5. in bold lines. tm+1 ).

and where the hat over the argument v l+i indicates that this argument is omitted. Unlike the problem of approximating a shape by a smooth curve. Thus. u0 . and a sequence of N +1 knots u0 . . . we turn to spline curves. We note that we are looking for a total of N + 3 de Boor control points d−1 . the above problem has two degrees of freedom. . CUBIC SPLINE INTERPOLATION 245 as we move from F to G. . dN . u0 . . . . as in the case of B´zier curves. i=1 where [v l . . u2 . which amounts to the assumption that the de Boor control points d0 and dN are known.8. using the de Boor evaluation algorithm. It is well known that Lagrange interpolation is not very satisfactory when N is greater than 5. . for all i.vl+m+2 [ (v l+1 . e 6. with ui < ui+1 for all i. . . . uN −2 . . uN . since the ﬁrst control point d−1 coincides with x0 . . However. . . . . since Lagrange interpolants tend to oscillate in an undesirable manner. . v l+m+1 ). . . . ﬁnd a C 2 cubic spline curve F . we can add various “end conditions”. The control points d0 and d7 = dN were chosen arbitrarily. . it is not possible to obtain a more explicit formula. for a uniform knot sequence. uk+m+1 ]. dN +1 . . . interpolation problems require ﬁnding curves passing through some given data points and possibly satisfying some extra constraints. . . and we consider one of the most common problems which can be stated as follows: Problem 1: Given N +1 data points x0 . v l+m+2 ] = [uk . 0 ≤ i ≤ N. we are looking for N + 1 de Boor control points d0 . Thus. uN . dN . Actually. Cubic spline curves happen to do very well for a large class of interpolation problems. vl+m+1 ) = 1 m+1 i=m+1 f]uk .8 Cubic Spline Interpolation We now consider the problem of interpolation by smooth curves. .vk+m+1 [ (vl+1 . To remove these degrees of freedom. we can try to ﬁnd the de Boor control points of a C 2 cubic spline curve F based on the ﬁnite knot sequence u0 . uN . and the last control point dN +1 coincides with xN . uN −1 . . xN −1 in terms of the N + 1 unknown variables d0 . . In order to solve the above problem. we only come up with N − 1 equations expressing x1 . xN . . . . . . u1 . . Thus. 0 ≤ i ≤ N − 1. the de Boor control points of the spline curve G of degree m + 1 are given by the formula g]vl . There are a number of interpolation problems. and a C 2 cubic spline curve F passing through these points. In general. For example. such that F (ui ) = xi . Figure 6. uN . .6. . . v l+i . we can .28 shows N + 1 = 7 + 1 = 8 data points. . and it is under-determined.

1 . for all i. xi corresponds to the polar label ui ui ui . di . x2 . and uN uN uN . with 1 ≤ i ≤ N − 1. dN −1 . dN and dN +1 .28: A C 2 cubic interpolation spline curve passing through the points x0 . In order to derive this system of linear equations. we have di−1. we use the de Boor evaluation algorithm.1 = di + di+1 . the de Boor control point di corresponds to the polar label ui−1 ui ui+1 .1 = ui − ui−2 ui+1 − ui di−1 + di . d0 . correspond respectively to u0 u0 u0 . x5 . with 1 ≤ i ≤ N −1. . and d−1 . x3 . x6 . . uN −1 uN uN . di+1 using the following diagram representing the de Boor algorithm: Thus. B-SPLINE CURVES d7 d6 x6 x4 d4 x5 d5 x0 = d−1 x7 = d8 Figure 6. x4 .246 d2 d1 x1 x3 d0 d3 x2 CHAPTER 6. ui+2 − ui−1 ui+2 − ui−1 ui − ui−1 ui+1 − ui di−1. We now have a system of N − 1 linear equations in the N − 1 variables d1 . ui+1 − ui−2 ui+1 − ui−2 ui+2 − ui ui − ui−1 di. x7 specify that the tangent vectors at x0 and xN be equal to some desired value. . u0 u0 u1 . xi = ui+1 − ui−1 ui+1 − ui−1 . Note that for all i. For every i. xi can be computed from di−1 . x1 . .1 + di. 1 ≤ i ≤ N − 1.

1 : ui ui ui+1 di−1 : ui−2 ui−1 ui di+1 : ui ui+1 ui+2 Figure 6. u2 − u0 u2 − u0 u2 − u0 βN −1 γN −1 αN −1 dN −2 + dN −1 + dN . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) + .29: Computation of xi from di−1 . γi = ui+2 − ui−1 αi = At the end points. βi = ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 .1 : ui−1 ui ui xi : ui ui ui di. di+1 From the above formulae. CUBIC SPLINE INTERPOLATION di : ui−1 ui ui+1 247 di−1. we get αi βi γi di−1 + di + di+1 . di .6. = uN − uN −2 uN − uN −2 uN − uN −2 x1 = xN −1 . it is easily veriﬁed that we get α1 β1 γ1 d0 + d1 + d2 .8. ui+1 − ui−1 ui+1 − ui−1 ui+1 − ui−1 xi = with (ui+1 − ui )2 .

. . . uN − uN −3 uN − uN −2 (uN −1 − uN −2)2 . u3 − u0 (uN − uN −1 )2 . Such conditions should not come as a surprise. then it can be shown that the matrix is invertible. and it is clear that αi . 1 ≤ i ≤ N − 1. using an LU-decomposition. for example. In the case of a uniform knot sequence. 1 ≤ i ≤ N − 1.. γi ≥ 0. this is the case for a uniform knot sequence. . In particular. βi . since the di and the xi are points. it is an easy exercise to show that the linear system can be written as for all i. . = . The matrix of the system of linear equations is tridiagonal. dN : 1 r0 d0 α1 β1 γ1 d 1 r1 d 2 r2 α2 β2 γ2 0 . for all i. . u2 − u0 (u2 − u1 )(u1 − u0 ) (u1 − u0 )(u3 − u1 ) + . which means that the matrix is diagonally dominant. uN − uN −3 (uN − uN −1 )(uN −1 − uN −3 ) (uN −1 − uN −2 )(uN − uN −1 ) + . . If αi + γi < βi . uN − uN −2 ri = (ui+1 − ui−1 ) xi . 1 ≤ i ≤ N − 1. B-SPLINE CURVES (u2 − u1 )2 . It is also easy to show that αi + γi + βi = ui+1 − ui−1 for all i. . u2 − u0 u3 − u0 (u1 − u0 )2 . There are methods for solving diagonally dominant systems of linear equations very eﬃciently. . .248 where α1 = β1 = γ1 = αN −1 = βN −1 = γN −1 = Letting CHAPTER 6. dN −2 rN −2 0 αN −2 βN −2 γN −2 αN −1 βN −1 γN −1 dN −1 rN −1 rN 1 dN . and r0 and rN be arbitrary points. we obtain the following (N + 1) × (N + 1) system of linear equations in the unknowns d0 .

and a sequence of N +1 knots u0 . . . see Farin [32]. . . when ui < ui+1 for all i. for all i. . . uN . we consider the cyclic knot sequence determined by the N +1 knots u0 . . formulated as follows. . . The following system of linear equations is easily obtained: r0 d0 β0 γ0 α0 d 1 r1 α1 β1 γ1 d 2 r2 α2 β2 γ2 0 . dN −1 . .. . .. with ui < ui+1 for all i. N. . . . and we observe that we are now looking for N de Boor control points d0 . This time. CUBIC SPLINE INTERPOLATION 249 3 7 1 2 2 1 4 1 0 . dN −1 . . . where we let xN = x0 . . such that F (ui ) = xi . . .6. 0 1 4 1 1 7 2 1 = dN −2 6xN −2 3 dN −1 6xN −1 2 rN 1 dN d0 d1 d2 . Writing the C 2 conditions leads to a tridiagonal system which is diagonally dominant when the knot sequence is strictly increasing. r0 6x1 6x2 . this can be shown by expressing each spline segment in terms of the Hermite polynomials. dN −3 rN −3 0 αN −3 βN −3 γN −3 αN −2 βN −2 γN −2 dN −2 rN −2 rN −1 dN −1 γN −1 αN −1 βN −1 ri = (ui+1 − ui−1 ) xi . . 0 ≤ i ≤ N − 1. . and such that uk+N = uk + uN − u0 . . since the condition x0 = xN implies that d0 = dN . . 0 ≤ i ≤ N. uN for i = 0. It can also be shown that the general system of linear equations has a unique solution when the knot sequence is strictly increasing. where . We can also solve the problem of ﬁnding a closed interpolating spline curve. . uN . . . . . xN −1 . . so that we can write a system of N linear equations in the N unknowns d0 . For details. . for all k ∈ Z. which means that we consider the inﬁnite cyclic knot sequence uk k∈Z which agrees with u0 . . . . . . . Problem 2: Given N data points x0 . = . . For example. ﬁnd a C 2 closed cubic spline curve F . . that is.8. 0 ≤ i ≤ N − 1.

βi . ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 γi = . γi can be written in a uniform fashion for both the open and the closed interpolating C 2 cubic spline curves. 2 ≤ i ≤ N − 2. uN − uN −3 uN − uN −2 + u1 − u0 (uN −1 − uN −2 )2 . uN − uN −1 + u2 − u0 (u2 − u1 )(uN − uN −1 + u1 − u0 ) (u1 − u0 )(u3 − u1 ) + . 1 ≤ i ≤ N − 1. The coeﬃcients αi . but it can still be solved eﬃciently. we also get α0 = β0 = γ0 = α1 = β1 = γ1 = αN −1 = βN −1 = γN −1 = (u1 − u0 )2 . uN − uN −1 + u2 − u0 u3 − u0 (u1 − u0 )2 . r0 = (uN − uN −1 + u1 − u0 ) x0 . ui+2 − ui−1 Since the knot sequence is cyclic. and for all i. since the knot sequence is cyclic. B-SPLINE CURVES for all i.250 CHAPTER 6. u3 − u0 (uN − uN −1 )2 . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) βi = + . It is immediately veriﬁed . uN − uN −2 + u1 − u0 uN − uN −1 + u2 − u0 (uN − uN −1 )2 . uN − uN −1 + u2 − u0 (u2 − u1 )2 . we have αi = (ui+1 − ui )2 . uN − uN −2 + u1 − u0 (u1 − u0 )(uN − uN −2 ) (uN − uN −1 )(u2 − u0 ) + . uN − uN −3 (uN − uN −1 )(uN −1 − uN −3 ) (uN −1 − uN −2)(uN − uN −1 + u1 − u0 ) + . if we let ∆i = ui+1 −ui . uN − uN −2 + u1 − u0 The system is no longer tridiagonal.

(a) The ﬁrst method consists in specifying the tangent vectors m0 and mN at x0 and xN . In this method. ∆−2 = ∆N −2 . A similar selection is made using the parabola interpolating the last three points xN −2 . In the case of an open C 2 cubic spline interpolant. usually called the clamped condition method. (d) Finally. we have the not-a-knot condition. 3 One speciﬁc method is the Bessel end condition.8. In this method. ∆−1 = ∆N = 0. ∆−1 = ∆N −1 . xN −1 . Since the tangent vector at x0 is given by DF (u0) = we get r0 = d0 = x0 + and similarly rN = dN = xN − 3 (d0 − x0 ). several end conditions have been proposed to determine r0 = d0 and rN = dN . ∆i−2 + ∆i−1 + ∆i ∆i−1 + ∆i + ∆i+1 ∆2 i−1 .6. we require that D2 F (u0 ) = D2 F (u1 ) and D2 F (uN −1 ) = D2 F (uN ). If we consider the parabola interpolating the ﬁrst three data points x0 . (b) Another method is the quadratic end condition. and in the case of a closed spline curve. x1 . This amounts to requiring that D3 F is continuous at u1 and at uN −1 . ∆i−2 + ∆i−1 + ∆i ∆i (∆i−2 + ∆i−1 ) ∆i−1 (∆i + ∆i+1 ) βi = + . (c) Another method is the natural end condition. and we quickly review these conditions. 3 uN − uN −1 mN . γi = ∆i−1 + ∆i + ∆i+1 251 where in the case of an open spline curve. CUBIC SPLINE INTERPOLATION that we have αi = ∆2 i . the method consists in picking the tangent vector to this parabola at x0 . . we require that − → D2F (u0 ) = D2 F (uN ) = 0 . xN . u1 − u0 u1 − u0 m0 . which forces the ﬁrst two cubic segments to merge into a single cubic segment and similarly for the last two cubic segments. x2 .

The simplest method consists in choosing a uniform knot sequence. ui+2 − ui+1 xi+2 − xi+1 There are other methods. when attempting to solve an interpolation problem. 6. 3. or Hoschek and Lasser [45]. we determine the other knots in such a way that ui+1 − ui xi+1 − xi = . labeled 234. labeled 112. and refer the interested reader to Farin [32]. labeled 566. 5. labeled 345. the knot sequence u0 . 4. 6. 1. derived from physical heuristics. where we set 1/2 xi+1 − xi ui+1 − ui = . In this method. For details. Another method is the so-called centripedal method. We now brieﬂy survey methods for producing knot sequences. 9). labeled 111. . 5). 9). 2). Although simple. 9). after choosing u0 and uN . and with the de Boor control points: d−3 = (2. . this method may produce bad results when the data points are heavily clustered in some areas. ui+2 − ui+1 xi+2 − xi+1 where xi+1 − xi is the length of the chord between xi and xi+1 . 2. . This method usually works quite well. . . it is necessary to ﬁnd knot sequences that produce reasonable results. d2 = (9. d0 = (6. d−2 = (0. labeled 666. 6. the reader is referred to Farin [32]. labeled 123. In practice.9 Problems Problem 1 (30 pts). 0). B-SPLINE CURVES We leave the precise formulation of these conditions as an exercise. in particular due to Foley. Another popular method is to use a chord length knot sequence. 0).252 CHAPTER 6. 1. d3 = (11. d−1 = (4. Consider the following cubic spline F with ﬁnite knot sequence 1. 1. 0). labeled 456. Thus. 6. 6. uN is not given. d1 = (9. d4 = (14.

and whose knot sequence is uniform and consists of simple knots. 5. Find the B´zier control points of a closed spline of degree 4 whose e control polygon consists of the edges of a square. 2. labeled 01. and 33. (iii) Which knot should be inserted to that (−3/4. 0. PROBLEMS 253 (i) Compute the B´zier points corresponding to 222. labeled 44. d5 = (1. labeled 55. labeled 34. 1. d2 = (0. 333.9. 0). Problem 5 (50 pts). d−1 = (−5. 5. (ii) Insert the knot 3.5) on the spline curve. . d3 = (3. labeled 23. and with the de Boor control points: d−2 = (−6. Design a subdivision version of the de Boor algorithm Problem 6 (30 pts). 2). 5).6. labeled 45. 22. Problem 2 (10 pts). (ii) Compute F (5/4) by repeated knot insertion. Repeat the problem for a uniform knot sequence in which all knots have multiplicity 2. 0.5. Determine the tangent at F (5/4). Implement the de Boor algorithm for ﬁnite and closed splines. d4 = (3. and plot the e B´zier segments forming the spline as well as possible (you may use programs you have e written for previous assignments). and plot the B´zier e e segments forming the spline as well as possible (you may use programs you have written for previous assignments). Contruct (geometrically) the tangent at t = 3. 4. Show that if a B-spline curve consisting of quadratic curve segments (m = 2) has an inﬂexion point. 5. −1). 3/2) becomes a control point? Problem 4 (30 pts). d1 = (−1. Consider the following quadratic spline F with ﬁnite knot sequence 0. 2). 3. 1). Implement the knot insertion algorithm. 3). Problem 3 (30 pts). (i) Compute the B´zier points corresponding to 11. then this point is associated with a knot. labeled 00. 3). 444.5 three times. 4. Give a geometric construction of the point F (3. d0 = (−3. and 555. labeled 12.

.m+1 (t). Problem 9 (10 pts). . prove Marsden’s formula: N (x − t) = m i=−m (x − ti+1 ) · · · (x − ti+m )Bi. .. u0 m+1 u1 . . t − uj uj+m+1 − t Bj.m+1 (t).m (t) − Bj+1.m+1 (t) = m m Bj. .4 associated with problem 1.m+1 . . uj+1 [ 0 otherwise. . . uN uN +m+1 n1 n2 .1 (t) = (ii) Show that Bj. un1 +1 . Bj. . It is shown in section 6. . uj+m+1 [.m (t) + Bj+1.m+1 are deﬁned inductively as follows: 1 if t ∈ [uj . uN −nL−1 +1 . Problem 8 (20 pts). . .m+1 is null outside [uj .m+1 (t) = uj+m − uj uj+m+1 − uj+1 Bj. (iv) Compute the functions Bj.. .. .m+1 (t) being deﬁned as in problem 7. (i) Given a ﬁnite knot sequence u−m .m+1(t) = 1 j=−m for all t.m (t). . (iii) Show that N Bj. uN +1 . The B-spline basis functions Bj.7 how a B-spline of degree m can be deﬁned in terms of the normalized B-splines Bj. un1 un1 +n2 . uj+m − uj uj+m+1 − uj+1 .254 CHAPTER 6. . . show that the ﬁnite B-spline F deﬁned by the above knot sequence and de Boor control points can be expressed as N F (t) = j=−m dj Bj. nL−1 m+1 and a sequence of de Boor control points dj −m≤j≤N . .m (t). . . where the B-splines Bj. nder the assumptions of Problem 7. . B-SPLINE CURVES Problem 7 (40 pts). . prove that ′ Bj. .

0. . tm ] such that F (ti ) = yi . 4. . m m such that F (ti ) = yi . Problem 11 (40 pts). 4.4 (t) = 6 3 1 6 (3t − 24t2 + 60t − 44) 1 (−t3 + 12t2 − 48t + 64) 6 255 for for for for 0≤t<1 1≤t<2 2≤t<3 3 ≤ t < 4. F ′ (t0 ) = α. 4. . prove that there exists a unique cubic B-spline function F based on the knot sequence t0 . . Given any uniform sequence t0 . . tm of real numbers. (i) Prove that αi + γi + βi = ui+1 − ui−1 . . PROBLEMS Problem 10 (20 pts). Given any two spline functions F. tm−1 . β. . where ti+1 = ti + h for some h > 0 (0 ≤ i ≤ m − 1). . t0 . Problem 12 (20 pts). . 2. given any two real numbers α. 3. show that t m t0 [F ′′ (t) − G′′ (t)]h(t)dt = 0. 4. . tm . . . . Hint. . tm . 0. F ′ (tm ) = β. Prove that the above B-spline function F is the only C 2 -function among all C 2 -functions ϕ over [t0 .6. . t1 . . 0. 1. F ′ (t0 ) = α. and any piecewise linear function h. F ′ (tm ) = β. . Given the knot sequence 0. that minimizes the integral tm t0 [ϕ′′ (t)]2 dt. ym of real numbers. given any sequence y0 . .4 is given by: 1 3 6t 1 (−3t3 + 12t2 − 12t + 4) B0. . . show that the spline basis function B0. G as above.9.

. Problem 15 (20 pts). . 1 ≤ i ≤ N − 1. 1 3 7 1 2 2 1 4 1 0 . . and assume that each point yi is an aﬃne combination of the points xj . xn ) and (y1 . . Prove that if A is invertible.e. say n yi = j=1 ai j xj . then the sum of the elements of every row of A−1 is also 1. . the sum of the elements of every row is 1. B-SPLINE CURVES for all i. . yn ) be two sequences of n points (say in A3 ).256 CHAPTER 6.. (b) Quadratic end condition (c) Natural end condition (d) Not-a-knot condition. Prove that the matrix below is invertible. Problem 13 (20 pts). βi are deﬁned in section 6. (i) Show that interpolating cubic B-splines reproduce straight lines. Compute the de Boor points d0 and dN arising in the interpolation problem (Problem 1) in the following cases: (a) Bessel end condition. (ii) Let (x1 . Study the interpolation problem when the end conditions are to prescribe the ﬁrst and the second derivative at x0 . Let A = (ai j ) be the n × n matrix expressing the yi in terms of the xj . (ii) Prove a similar result for quadratic and cubic polynomial curves. . . and that the tangents are read oﬀ the straight line. γi . Show that n ai j = 1 j=1 for every i. where αi . provided that the end conditions are clamped. . 1 ≤ i ≤ n.. Problem 16 (30 pts).8 (Problem 1 and Problem 2). i. . 0 1 4 1 7 1 2 3 2 1 Problem 14 (40 pts).

Problem 18 (40 pts). Problem 19 (20 pts). In solving this problem. prove that knot insertion at midpoints of intervals yields new control points deﬁned such that. Implementent the interpolation method proposed for solving Problem 2.6. b′2i+1 = 1 1 bi + bi+1 . 8 8 8 . for any three consecutive control points bi . PROBLEMS 257 Problem 17 (40 pts). + bi+2 . ﬁnd (or look up) a linear-time method for solving a tridiagonal linear system. ﬁnd (or look up) a linear-time method for solving a tridiagonal linear system. 4 4 and b′2i+2 = 1 3 bi + bi+1 . bi+1 ). 2 2 and b′2i+2 = 1 6 1 bi + bi+1 .9. 4 4 (2) For a cubic B-spline curve speciﬁed by a closed polygon of de Boor control points. (1) For a quadratic B-spline curve speciﬁed by a closed polygon of de Boor control points. and bi+2 . b′2i+1 = 3 1 bi + bi+1 . Implementent the interpolation method proposed for solving Problem 1. prove that knot insertion at midpoints of intervals yields new control points deﬁned such that for every edge (bi . In solving this problem. bi+1 .

B-SPLINE CURVES .258 CHAPTER 6.

Part III Polynomial Surfaces and Spline Surfaces -5 x 0 5 5 2.5 z 0 -2.5 -5 -5 0 y 5 259 .

260 .

Let E be some aﬃne space of ﬁnite dimension 0 1 → → n ≥ 3. there are two natural ways to polarize a polynomial surface. ( i1 . However. (−1 . and that the aﬃne plane is denoted as A2 . and let (Ω1 . i1 = . As we shall see. we take up the study of polynomial surfaces. Recall that the aﬃne line is denoted as A. Intuitively. . and total degree surfaces are completely determined by triangular nets of control points. Bipolynomial surfaces are completely determined by rectangular nets of control points. To reduce the amount of superscripts. in the case of triangular nets. things are more tricky. i2 )) for P is chosen. typically. The de Casteljau algorithm splits into two versions.1 Polarizing Polynomial Surfaces In this chapter. the canonical aﬃne frame − → − → 1 0 where O = (0. We also show how to compute a new control net with respect to a new rectangle (or new triangle) from a given net. there are two natural ways to polarize a polynomial surface. and the second approach yields total degree surfaces. We begin with the traditional deﬁnition of polynomial surfaces. one for rectangular nets. . and the other one for triangular nets. We show how these versions of the de Casteljau algorithm can be turned into subdivision methods. we will also denote the aﬃne plane as P. and we give an eﬃcient method for performing subdivision. e en 261 . 0). After a quick review of the traditional parametric deﬁnition in terms of polynomials.Chapter 7 Polynomial Surfaces 7. Because the polynomials involved contain two variables. and i2 = . we investigate the possibility of deﬁning polynomial surfaces in terms of polar forms. In the case of rectangular nets. This is one of the many indications that dealing with surfaces is far more complex than dealing with curves. We assume that − − → → some ﬁxed aﬃne frame (O. this depends on whether we decide to tile the parameter plane with rectangles or with triangles. . it is easy to use the algorithms developed for polynomial curves. − )) be an aﬃne frame for E. . The ﬁrst approach yields bipolynomial surfaces (also called tensor product surfaces).

F1 (U. Fn (U. Given natural numbers p. A polynomial surface is a function F : P → E. v)− . and a bipolynomial surface of degree 3. The above is also a bipolynomial surface of degree 2. V ]. and polarize separately in u and v. q.262 CHAPTER 7. we say that F is a bipolynomial surface of degree p. This way. we say that F is a polynomial surface of total degree m. q . . V ) = U 2 − V 2 . we denote − → − → F (O + u i1 + v i2 ) as F (u. V ) has total degree ≤ m.1. If the maximum degree of U in all the Fi (U. The trace of the surface F is the set F (P). for simplicity of notation. V ) = U 2 + V 2 + UV + 2U + V − 1 F2 (U. V ) are polynomials in R[U. . if p and q are such that F is a bipolynomial surface of degree p. 3 . a polynomial surface is obtained by bending and twisting the real aﬃne plane A2 using a polynomial map. V ). if each polynomial Fi (U. i2 )) for P being ﬁxed.1. . POLYNOMIAL SURFACES Deﬁnition 7. the following polynomials deﬁne a polynomial surface of total degree 2 in A3 : F1 (U. − − → → The aﬃne frame (O. . v). V ) is ≤ p. and m. ( i1 . is to treat the variables u and v separately. V ) = U − V + 1 F3 (U. The ﬁrst way to polarize. for all u. but not symmetric in all its arguments. V ) is ≤ q. Intuitively. . v ∈ R. we get a (p + q)-multiaﬃne map f : (A)p × (A)q → E. we have − → − → → → F (O + u i1 + v i2 ) = Ω1 + F1 (u. such that. which is symmetric separately in its ﬁrst p arguments and in its last q arguments. V ) = U − As deﬁned above. q . Another example known as Enneper’s surface is as follows: U3 + UV 2 3 V3 + U 2V F2 (U. V ) = UV + U + V + 1. 2 . v)−1 + · · · + Fn (u. and the maximum degree of V in all the Fi (U. e en where F1 (U. Enneper’s surface is a surface of total degree 3. For example. Given a polynomial surface F : P → E. V ) = V − 3 F3 (U. there are two natural ways to polarize.

POLARIZING POLYNOMIAL SURFACES Note that we are intentionally denoting A × ···× A×A × ···× A p q 263 as (A) × (A) . v) = f (u. u. v)). . However. We will present both methods. This way. this method is the immediate generalization of B´zier curves. .. |I|=h J⊆{1. (u. Using linearity. . . v). Consider the following surface viewed as a bipolynomial surface of degree 2. v. it is enough to explain how to polarize a monomial F (u. since A × A is isomorphic to P = A2 . to avoid the confusion between the aﬃne space Ap and the cartesian product A × · · · × A.q}. The advantage of this method is that it allows the use of many algorithms applying in the case of curves.. and to polarize the polynomials in both variables simultaneously. . we can view F as a polynomial surface F : P → E. . . v) in P. p p q We get what are traditionally called tensor product surfaces. q . in which we polarize separately in u and v. . since F (u. V ) = U − V + 1 F3 (U. . Note that in this case. . v). instead of Ap × Aq ... is to treat the variables u and v as a whole. . . v) of the form uh v k with respect to the bidegree p. . It is easily seen that f (u1 . p q The second way to polarize. where h ≤ p and k ≤ q. . with parentheses around each factor A. . namely as the coordinates of a point (u.. First. we get an m-multiaﬃne map f : P m → E. . and investigate appropriate generalizations of the de Casteljau algorithm. v1 . Indeed. V ) = UV + U + V + 1. which is symmetric in all of its m arguments. In some sense. we consider several examples to illustrate the two ways of polarizing. m the surface F is really a map F : A × A → E. ... We begin with the ﬁrst method for polarizing.. since e F (u. .7. ui j∈J vj .1.p}. V ) = U 2 + V 2 + UV + 2U + V − 1 F2 (U. . v) = f ((u. 2 : F1 (U. up . . vq ) = 1 p h q k I⊆{1. |J|=k i∈I the surface F is indeed a map F : P → E. . if m is such that F is a polynomial surface of total degree m. Example 1.

U2 . v1 +v2 . V1 . u2 . U2 . j ≤ 2. v1 +v2 . 1 2 3 5 b2 v 1 . 1 i. u2 . and v1 . (1 − u2 )0 + u2 1. V ) = V + + V + 1. and j = v1 + v2 . 2 . we polarize each of the Fi (U. or conversely. u2 } can take as values any of the 3 multisets {0. POLYNOMIAL SURFACES In order to ﬁnd the polar form f (U1 . V1 . the coordinates of the control point bu1 +u2 . f3 (U1 . U2 . 1 1. (1 − v2 )0 + v2 1).j . (1 − v1 )0 + v1 1. v2 ) as bi 1 +u2 . V2 ) = U1 U2 + V1 V2 + U1 + U2 V + U1 + U2 + V − 1 2 V1 + V2 (U1 + U2 )(V1 + V2 ) + U1 + U2 + −1 4 2 U1 + U2 V1 + V2 f2 (U1 . v1 . It is quite obvious that the same result is obtained if we ﬁrst polarize with respect to U. V ) = U1 U2 + V 2 + U f2 (U1 .j u1 . v 2 }. we have U f1 (U1 . 1 0 4 2 1.264 CHAPTER 7. {0. viewed as a bipolynomial surface of degree 2. 1 1. that fi (u1 .v1 +v2 . v2 0. and then with respect to V . using multiaﬃneness and symmetry in u1 . corresponding to the 27 polar values fi (u1 . V2 ) = − +1 2 2 (U1 + U2 )(V1 + V2 ) U1 + U2 V1 + V2 + + + 1. u2 . v2 ). we have f1 (U1 . v2 ) = fi ((1 − u1)0 + u1 1. 0 0. v1 . u2 . U2 . 0 −1 − 1 1 2 3 5 0. V1 . b3 1 +u2 . 1). v 2 ) can be expressed as a barycentric combination involving 9 control points bi. 0}. {1. 1 2 2 . we see. we can express every point u ∈ A over the aﬃne basis (0. u (b1 1 +u2 .j u1 . V1 . as a barycentric combination u = u = (1 − u)0 + u1 = (1 − u)0 + u1. where the multiset of polar arguments {u1 . v2 . After polarizing with respect to U. u u u Letting i = u1 + u2 . V2 ) of F . 1}. are Denoting fi (u1 . similarly to the case of curves. u2 0. V ) = U1 + U2 −V +1 2 U1 + U2 U1 + U2 U f3 (U1 . V ) separately in U and V . U2 . b2 1 +u2 . 0 1 0 2 1 3 1 0. u2 . 2 2 and after polarizing with respect to V . v1 . 1}. 1 2 2 3 1 1. V2 ) = 4 2 2 Now. v1 +v2 ). 0 ≤ i. u2 1 0. and similarly for the multiset of polar arguments {v 1 . U2 . 1 i. we get b1 v 1 . v2 0. v1 . v1 +v2 . U2 . 0 0. and expanding fi (u1 .

. POLARIZING POLYNOMIAL SURFACES b3 v 1 . 4) 2 265 Note that the surface contains the 4 control points b0. but the other 5 control points are not on the surface.2 . 2) 3 3 5 1 (0. 2. 0. 1.. V1 ). 1. (U2 . 3) (5. 0).0 .1. (U2 . 0 0.m} I∩J=∅ |I|=h. it is enough to deal with a single monomial.5. |J|=k i∈I j∈J vj . 3) 2 4 2 2 (2. Using linearity. 2) (3. V ) = U − V + 1 F3 (U. One should note that a bipolynomial surface can be viewed as a polynomial curve of polynomial curves. 2 . 1. Indeed. V ) = U 2 + V 2 + UV + 2U + V − 1 F2 (U. 9 ) ( 2 .j j 0 1 2 i 1 1 3 0 (−1. and b2. V ) = UV + U + V + 1. Let us now review how to polarize a polynomial in two variables as a polynomial of total degree m. 1. Starting from F1 (U. 0. 0. 1 3 2 4 1. Example 2. in preparation for example 2. 1). given the monomial U h V k . b2. with h + k = d ≤ m. (um .. we get the following polar form of degree m: f ((u1.. 3 ) ( 4 . u2 3 2 0. 1 i.j u1 . . v1 ). V1 ). and f (1. There are also some pleasant properties regarding tangent planes. we get f1 ((U1 . According to lemma 4. vm )) = h!k!(m − (h + k))! m! ui I∪J⊆{1. b0. 1). A similar interpretation applies if we exchange the roles of u and v.j have coordinates: bi. 1. V2 )) = U1 U2 + V1 V2 + V1 + V2 U1 V2 + U2 V1 + U1 + U2 + −1 2 2 U1 + U2 V1 + V2 f2 ((U1 . f (0. v2 0.2 . . f (1. 0. 1 1. Let us now polarize the surface of Example 1 as a surface of total degree 2.7.. 1. 1. 0. V2 )) = 2 2 2 . and the surface is obtained by letting this curve vary as a function of u.0 . if we ﬁx the parameter u. 2 . V1 ). f3 ((U1 . 2 ) (1. V2 )) = − +1 2 2 U1 V2 + U2 V1 U1 + U2 V1 + V2 + + + 1.1. 1 . 0). . 0 1 2 3 9 0. 1 2 3 4 and the nine control points bi. (U2 . 1) (− 2 . we get a polynomial curve in v. 3 . corresponding to the polar values f (0.

t). 1). t) = (O + i1 . where i = 1. V2 ) ranging over (1. f (t. v) with respect to the aﬃne frame (O. The way around the problem is to observe that − − → → every point in P of coordinates (u. (U2 . v)-coordinates. t) 1 1 3 (− . 1. (U2 . v. the aﬃne frame (O. 0. s. v1 . v) of − − → → points in the plane P. i2 )) to barycentric coordinates. O). namely (1. the symmetric multiaﬃne map f : P 2 → E is deﬁned in terms of the coordinates (u. f (r. and we now go back to example 2. on the (u. 1) f (r. but there is a simple way around this apparent problem. t). ( i1 .266 CHAPTER 7. we just have to evaluate the original polar forms f1 . we get the following coordinates: f1 ((U1 . V1 ) and (U2 . V2 )) = − +1 2 2 U1 V2 + U2 V1 U1 + U2 V1 + V2 + + + 1. t). 2) f (r. u2 . 0). O + i2 . and we can expand f (b1 . r). with respect to the barycentric − → − → aﬃne frame (r. 2) f (s. t) 3 3 (0. and we leave such a conversion as an exercise. with respect to the barycentric aﬃne frame − → − → (r. 0). 1). (continued) Evaluating the polar forms U1 V2 + U2 V1 V1 + V2 + U1 + U2 + −1 2 2 U1 + U2 V1 + V2 f2 ((U1 . . and we see that f (b1 . V1 ). Example 2. 0). the polar form f needs to be expressed in terms of barycentric coordinates. (0. is also represented by its barycentric coordinates (u. t) = (O + i1 . s) (1. expressed in terms of the (u. 2. can be expressed as λi r + µi s + νi t. s).t. it appears that we have a problem. every point bi ∈ P. . λ2 r + µ2 s + ν2 t) by multiaﬃneness and symmetry. i2 )). b2 ) = f (λ1 r + µ1 s + ν1 t. f (s. O + i2 . V2 )) = 2 2 2 for argument pairs (U1 . and not the barycentric − → − → aﬃne frame (O + i1 . POLYNOMIAL SURFACES This time. Thus. f3 ((U1 . ) 2 2 2 . It is possible to − − → → convert polar forms expressed in terms of coordinates w. In order to expand f (u1 . s. s). with respect to the aﬃne frame (O. there is no problem in computing the coordinates of control points using the original (nonbarycentric) polar forms. i2 )). f (r. O). t). if we want to ﬁnd control points. v) coordinates of (r. V1 ). Indeed. V2 )) = U1 U2 + V1 V2 + f (r. ) 2 2 f (t. if we just want the coordinates of the six control points. f2 . ( i1 .r. in fact. O + i2 . V1 ). where λi + µi + νi = 1. Now. ( i1 . b2 ) can be expressed as a barycentric combination of the six control points f (r. v2 ) by multiaﬃneness. 1. 1 − u − v). 0). f (s. r) (2. t) (−1. f3 . 2. (U2 . (0. s) 5 (1. s. and (0. So. O). ) 2 f (s. and (0.

3 3 and evaluating these polar forms for argument pairs (U1 . ) 3 3 f (s. . POLARIZING POLYNOMIAL SURFACES Example 3. F2 (U. 0. 0) 3 f (r. we ﬁnd the following 10 control points: f1 ((U1 . 1) 3 f (r. V3 )) = 3 3 U1 U2 V3 + U1 U3 V2 + U2 U3 V1 + 3 U1 U2 + U1 U3 + U2 U3 V1 V2 + V1 V3 + V2 V3 f3 ((U1 . (U2 . s. V ) = U. V3 )) = f (r. V2 ). F1 (U. . t. Example 4.1. (U2 . t. . (U3 . t. V2 ). s) 2 2 1 ( . − ) 3 3 f (r. V1 ). . s. and (U3 . (U2 .7. F3 (U. −1) 3 Let us consider two more examples. (U2 . s. r. Let F be the surface considered as a total degree surface. ) 3 3 3 f (s. 267 Let us also ﬁnd the polar forms of the Enneper’s surface. r. . t) 1 1 ( . and deﬁned such that F1 (U. r. (U3 . t) 2 1 (0. V2 ). t) 1 (0. t) 1 ( . V ) = U 2 − V 2 . t) 2 1 ( . V3 )) = − . V ) = U − We get U1 + U2 + U3 U1 U2 U3 − 3 3 U1 V2 V3 + U2 V1 V3 + U3 V1 V2 + 3 V1 + V2 + V3 V1 V2 V3 − f2 ((U1 . 0) 3 3 f (r. s. V ) = U 2 − V 2 . ranging over (1. V1 ). V1 ). 0). 0. V2 ). considered as a total degree surface (of degree 3): U3 + UV 2 3 V3 F2 (U. 1) and (0. 0). V1 ). (0. 0. 0. 0) f (r. V ) = V − + U 2V 3 F3 (U. s) 2 2 1 ( . (U3 . s) 2 (0. t) (0. r) 2 ( . . V ) = V. . V3 ). 0) 3 f (t.− ) 3 3 3 f (s.

t) = (O + i1 . 2 ′ F3 (U. V2 )) = U1 U2 − V1 V2 . V2 )) = . y axes to the X. . V ) = . t) (0. O + i2 . 0) f (r. −1) f (s. Its general shape is that of a saddle. V1 ). 0) 2 2 f (s. 2 U +V ′ F2 (U. .268 The polar forms are: CHAPTER 7. 2 f3 ((U1 . (U2 . Y axes such that X= x−y . POLYNOMIAL SURFACES U1 + U2 . 0): f (r. v) coordinates of (r. (U2 . of implicit equation z = x2 − y 2 . 1). t) 1 ( . If we rotate the x. t). V2 )) = − → − → With respect to the barycentric aﬃne frame (r. 0) 2 The resulting surface is an hyperbolic paraboloid . 0) 2 f (t. s. and similarly with its intersection with planes parallel to the plane xOz. Its intersection with planes parallel to the plane yOz is a parabola. ′ F1 (U. 1. 0. Its intersection with planes parallel to the plane xOy is a hyperbola. f2 . obtained by evaluating the polar forms f1 . (0. (U2 . V ) = After the change of parameters u= U −V . s) 1 1 ( . V1 ). O). Y = 2 we get the parametric representation U −V . 0). V1 ). 1) f (r. 0. s) (0. the control net consists of the following six points. V ) = U 2 − V 2 . 2 U +V . r) (1. s. and (0. f3 on the (u. 2 V1 + V2 f2 ((U1 . 2 x+y . t) 1 (0. v= 2 . namely (1. f1 ((U1 . 0.

(0. V2 )) = 2U1 U2 + V1 V2 . . s. . we see that the same hyperbolic paraboloid is also deﬁned by ′′ F1 (u. 0. Its intersection with planes parallel to the plane xOy is an ellipse. v) = u. v) coordinates of (r. F3 (U. (U2 . 1) The resulting surface is an elliptic paraboloid . f2 ((U1 . v) = 4uv. when u is constant. 0) f (s. of implicit equation z = 2x2 + y 2. The polar forms are: f1 ((U1 . V ) = U. namely (1. Thus. (U2 . O). 0. f2 . V ) = 2U 2 + V 2 . t) 1 (0. POLARIZING POLYNOMIAL SURFACES 269 since U 2 − V 2 = (U + V )(U − V ) = 4uv. V1 ). and similarly with its intersection with planes parallel to the plane xOz. V ) = V. . We say that the hyperbolic paraboloid is a ruled surface. t) 1 ( . 2) f (r.1. f3 on the (u. 0). 0): f (r. the curve traced on the surface is a straight line. and deﬁned such that F1 (U. Its intersection with planes parallel to the plane yOz is a parabola. the control net consists of the following six points. ′′ F2 (u. s) (0. 0) 2 2 f (s. Its general shape is that of a “boulder hat”. v) = v. t) = (O + i1 . 0) 2 f (t. V2 )) = U1 + U2 . ′′ F3 (u. obtained by evaluating the polar forms f1 . V1 ). t) (0. 1. 1).7. and similarly when v is constant. and (0. r) (1. Let F be the surface considered as a total degree surface. − → − → With respect to the barycentric aﬃne frame (r. s. F2 (U. Example 5. 0) 2 f (r. O + i2 . (U2 . t). s) 1 1 ( . 2 V1 + V2 . V2 )) = 2 f3 ((U1 . V1 ). 0.

and then with respect to V . the algebraic surfaces deﬁned by implicit equations of degree 2 that are also deﬁned as polynomial surfaces of degree 2 are. 7. q . and it is easy to see that this is the smallest degree. we leave as an exercise to show that. deﬁne a (p + q)-multiaﬃne map f : (A)p × (A)q → E. a2 b or a parabolic cylinder . . as shown by the following example: x = u. deﬁned by an implicit equation of the form y 2 = 4ax. a b or an elliptic paraboloid . V ) deﬁning F . First. and total degree surfaces. We will now consider bipolynomial surfaces.2 Bipolynomial Surfaces in Polar Form Given a bipolynomial surface F : P → E of degree p. POLYNOMIAL SURFACES Generally. where E is of dimension n.270 CHAPTER 7. we go back to bipolynomial surfaces. It should be noted that parametric polynomial surfaces of degree 2 may correspond to implicit algebraic surfaces of degree > 2. in more details. y = u2 + v.1 to each polynomial Fi (U. deﬁned by an implicit equation of the form z= x2 y 2 + 2. deﬁned by an implicit equation of the form x2 y 2 z = 2 − 2. z = v2. either an hyperbolic paraboloid . except for some degenerate cases. which is of degree 4. we get polar forms fi : (A)p × (A)q → A. which together. ﬁrst with respect to U.5. An implicit equation for this surface is z = (y − x2 )2 . applying lemma 4.

Vq ) is symmetric in its ﬁrst p-arguments. v. . and with F (u. q . and thus. . q -symmetric. a bipolynomial surface of degree p.7. q -symmetric multilinear map f : (A)p × (A)q → E is in bijection with the symmetric p-linear map g : (A)p → SML((A)q . such that there is some multiaﬃne map f : (A)p × (A)q → E. . Let f : (A)p × (A)q → E be its homogenized p. and can be safely omitted by other readers. . . . The trace of the surface F is the set F (A. . and symmetric in its last q-arguments. the p. v ∈ R. and with F (u. v ∈ A. v). . . is a map F : A × A → E. v) = f (u. E). We also say that f is p. . . . The advantage of deﬁnition 7. It is easily veriﬁed that the set of all symmetric q-linear maps h : (A)q → E forms a vector space SML((A)q . . .2. . . v. Remark: This note is intended for those who are fond of tensors. E). BIPOLYNOMIAL SURFACES IN POLAR FORM 271 such that f (U1 . Deﬁnition 7.2. A). . q -symmetric multilinear map.2. u. . . . By analogy with polynomial curves. Let F : A × A → E be a bipolynomial surface of degree p.1 is that it does not depend on the dimension of E. it is natural to propose the following deﬁnition. Remark: It is immediately veriﬁed that the same polar form is obtained if we ﬁrst polarize with respect to V and then with respect to U. . . v). . . q in polar form. . p q for all u. Given any aﬃne space E of dimension ≥ 3. Up . V1 .1. and symmetric in its last q-arguments. p q for all u. u. and let f : (A)p × (A)q → E be its polar form. which is symmetric in its ﬁrst p-arguments. v) = f (u.

we note that the bilinear map p q f⊙.⊙ is bilinear. . in the sense that it uses both the symmetric tensor product ⊙. the linear map h⊙ is in bijection with a bilinear map f⊙. s1 − r1 s1 − r1 . . E). but this also explains why this terminology is slightly unfortunate. let (r 1 . . is in bijection with a linear map q p q Ap . the tensor product involved p q ( A) ( A) is “mixed”.⊙ : ( A) × ( A) → E. the symmetric p-linear g⊙ : A → SML((A)q .⊙ : ( is in bijection with a linear map p A) × ( q A) → E f⊗ : ( and it is immediately veriﬁed that A) ( A) → E. Note that f⊙.272 CHAPTER 7. . But then. s1 ) and (r 2 . Now. v 1 . E). and the ordinary tensor product ⊗. Indeed. Every point u ∈ A can be written as s1 − u u − r1 u= r1 + s1 . POLYNOMIAL SURFACES p From the universal property of the symmetric tensor power map g is in bijection with a linear map p A. f (u1 . E). s2 ) be two aﬃne frames for the aﬃne line A. h⊙ : A → SML( p q A. v q ) = f⊗ ((u1 ⊙ · · · ⊙ up ) ⊗ (v 1 ⊙ · · · ⊙ v q )). . but not necessarily symmetric. using the universal property of the tensor product ( p A) ( q A). . . . This explains the terminology “tensor product surface”. However. up . p We can now view the linear map g⊙ as a symmetric q-linear map h : (A) → SML( which in turn.

using multiaﬃneness. 273 By induction.p} K∩L=∅ K∪L={1. given any family (bi.. . . . . . .. . j )0≤i≤p.q} s1 − u i s1 − r1 j∈J u j − r1 s1 − r1 k∈K s2 − vk s2 − r2 l∈L vl − r2 s2 − r2 b|J|. up . up . . |L| . . . up . r2 . .. . . . u2 . v q ) s2 − r2 v1 − r2 f (s1 . . .. . v2 . . . . . . .. . r 2 .. . . r 2 . v q ) s2 − r2 v1 − r2 f (r 1 . . v q ). . . . . u2 . up . up . u2 .. . . . .. . vq ) = i∈I I∩J=∅ I∪J={1. up . . . up . . . . . . r1 . . . . it is easily seen that the map deﬁned such that f (u1 . . . . vq ). s2 . s2 ) |I| |J| |K| |L| can obviously be treated as control points. . . . . v1 . . . |L| . . . . . s2 . BIPOLYNOMIAL SURFACES IN POLAR FORM and similarly any point v ∈ A can be written as v= We can expand f (u1 . r 1 .. vq ) = i∈I I∩J=∅ I∪J={1. where b|J|. For example. v 1 . . .7. . . . the following can easily be shown: f (u1 . r2 . . v2 . s1 . Indeed. . . . . conversely. r2 . .. . u2 . . . r2 .. . the ﬁrst two steps yield: f (u1 . . |I| |J| |K| |L| The polar values b|J|.p} K∩L=∅ K∪L={1. . . . s2 . s1 .. v 1 . .q} s1 − u i s1 − r1 j∈J u j − r1 s1 − r1 k∈K s2 − vk s2 − r2 l∈L vl − r2 s2 − r2 b|J|. . |L| = f (r1 . . . .. . . v q ) s2 − r2 s2 − v1 f (s1 . . s1 . |L| = f (r 1 . .. vq ) = s1 − u 1 s1 − r1 s1 − u 1 + s1 − r1 u 1 − r1 + s1 − r1 u 1 − r1 + s1 − r1 s2 − v1 f (r1 . .2. . 0≤j≤q of (p + 1)(q + 1) points in E. . s2 ). v2 . v2 . . . v 1 . .. s2 . . s2 − r2 s2 − v s2 − r2 r2 + v − r2 s2 − r2 s2 . .. up . s1 . . .

. For the converse. we have already shown using polarization that a polynomial surface according to deﬁnition 7. . 0≤j≤q of (p + 1)(q + 1) points in E. r1 . with polar form the (p + q)-multiaﬃne p. q. v) on the surface F can be expressed in terms of the Bernstein polynomials q Bip [r1 . s2 ) be any two aﬃne frames for the aﬃne line A. . and such that f (r1 .1 is a bipolynomial surface in polar form. s1 . s2 ). s2 ) = bi. . . s2 ](v) f (r 1 . . r 2 . . j )0≤i≤p.. vq ) = i∈I I∩J=∅ I∪J={1. . r 2 . . . . . r1 . . j )0≤i≤p. they are used in the deﬁnition itself. s2 ](v). j . . . . . . in traditional presentations of bipolynomial surfaces. q -symmetric map f : (A)p × (A)q → E.. We can also show that when E is of ﬁnite dimension. as F (u. . . . Furthermore. . . Lemma 7. . . . j) ∈ N2 | 0 ≤ i ≤ p. . . .q} s1 − u i s1 − r1 j∈J u j − r1 s1 − r1 k∈K s2 − vk s2 − r2 l∈L vl − r2 s2 − r2 b|J|. we use the isomorphism between A × A and P. . 0 ≤ j ≤ q}. . For any natural numbers p. . Note that we can view the set of pairs e p. or B´zier net. s1 . we see that the Bernstein polynomials show up again. s1 . .q = {(i. . . . . r 1 .3.2. .1. . . . s1 . . . . 0≤j≤q of (p + 1)(q + 1) points in E. .2.. 1 ≤ i ≤ p and all j. 1 ≤ j ≤ q. s1 . is often called a (rectangular) control net. .2. there is a unique bipolynomial surface F : A × A → E of degree p. s2 . f is given by the expression f (u1 . . r2 . r2 . r 2 . for any family (bi. r2 . q -symmetric. A family N = (bi. . p−i i q−j j Thus.1. |L| . .2. Note that in both cases. s1 ](u) Bj [r2 . POLYNOMIAL SURFACES deﬁnes a multiaﬃne map which is p. . s1 . .2.. |L| . and indeed. s2 ) = b|J|.1. and let E be an aﬃne space (of ﬁnite dimension n ≥ 3).. s2 . . p−|J| |J| q−|L| |L| We summarize the above in the following lemma. . up . s1 ](u) and Bj [r2 . . s2 . Let (r1 ..1. s1 ) and (r 2 . v) = 0≤i≤p 0≤j≤q q Bip [r1 .274 CHAPTER 7. such that f (r 1 .. simply apply lemma 4. . the class of bipolynomial surfaces in polar form as in deﬁnition 7. v 1 .1 is identical to the class of polynomial surfaces as in deﬁnition 7. . A point F (u.p} K∩L=∅ K∪L={1. p−i i q−j j for all i. Indeed. as in deﬁnition 7. . q . .

are B´zier e curve segments. They are B´zier curves. the map Fu : A → E. we ﬁrst compute the points bj k . . when we ﬁx the parameter v. and F ([r1 . v) for all u ∈ A. The e surface F (or rectangular patch) determined by a control net N . and when we ﬁx v. v satisfy the inequalities r1 ≤ u ≤ s1 and r2 ≤ v ≤ s2 . j . j )(i. .3 The de Casteljau Algorithm for Rectangular Surface Patches p. bj k = i∗.2.q Given a rectangular control net N = (bi.3. we can ﬁrst compute the points b0∗ . Generally. called the boundary curves of the rectangular surface patch. [s1 . . and bp. By lemma 7. e The de Casteljau algorithm can be generalized very easily to bipolynomial surfaces. with 0 ≤ i ≤ p. s1 ]. k+1 . deﬁned such that Fu (v) = F (u. s2 ]. and 0 ≤ j ≤ q − 1. or rectangular B´zier patch. v) for all v ∈ A. the map Fv : A → E. . When we ﬁx the parameter u. . they form a polyhedron which gives a rough approximation of the surface patch. contains the four control points b0. bp∗ . . q .q in the aﬃne space E. The portion of the surface F corresponding to the points F (u. and [r 2 . q . s2 ]. e e In particular. and together. bi. and i∗. . Such curves are called isoparametric curves. such a control net N determines a unique bipolynomial surface F of degree p. can be viewed as an image of the rectangular grid p. Similarly. [r2 . s1 ]. . s2 ]) is the trace of the rectangular patch. j+1 . and bi+1. by applying the de Casteljau algorithm to the control 0∗ points b0∗ .q . Remark: We can also consider curves on a bipoynomial surface. bi. is a curve on the bipolynomial surface F . but of degree p + q. . is a curve on the bipolynomial surface F . RECTANGULAR SURFACE PATCHES 275 as a rectangular grid of (p + 1)(q + 1) points in A × A. where 0 ≤ i ≤ p − 1. is called a rectangular (surface) patch. for some λ ∈ R. When we ﬁx u. where b0 j = bi. j . Note that there is a natural way of connecting the points in a control net N : every point bi.2. b0. bp. . THE DE CASTELJAU ALGORITHM. 0 . the corners of the surface patch. 0 . with 0 ≤ i ≤ p. 7. where bi∗ is obtained by applying the de Casteljau algorithm to the B´zier control points e bi. q .j)∈ p. . we obtain a B´zier curve of degree q. j+1 . i∗. deﬁned by the constraint u + v = λ. . bp∗ . and then compute bp . pq quadrangles are obtained in this manner. . s2 − v s2 − r2 j−1 bi∗. k + v − r2 s2 − r2 j−1 bi∗. the images of the line segments [r 1 .7. For every i. j . 0 . The control net N = (bi.j)∈ . deﬁned such that Fv (u) = F (u. r2 ]. [r 1 . we obtain a B´zier curve of degree p. j )(i. v) for which the parameters u. q . is connected to the three points bi+1.

. The reader will easily write the other version where the control points 0∗ are computed ﬁrst. s1 . and i∗ i∗ bj = i∗ s1 − u s1 − r1 j−1 bi∗ + with 1 ≤ j ≤ p and 0 ≤ i ≤ p − j. . v. . by applying the de Casteljau algorithm to the control ∗0 points b∗0 . . . u. 0∗ It is easily shown by induction that j u − r1 s1 − r1 j−1 bi+1∗ . we compute the points bj . p−i i q Next. . . we have bi∗ = f (r1 . . . r 1 . s1 . . . and we let F (u. It is easily shown by induction that p−i bj k = f (r1 . . . s1 . . . v. j . v. . . i j q−j−k k and since bi∗ = bq 0 . b∗q . . s1 . i∗. . with 0 ≤ j ≤ q. . . . where b0 = bi∗ .276 CHAPTER 7. depending on p and q. . u. . v). . v). b∗q . F (u. b∗q . . . . . . is obtained. and then compute bq . s1 . v ). . v) = bp = f (u. .q . r1 . . we can ﬁrst compute the points b∗0 . and then bq . . . . . bp. . . . . . v . . . . i∗. . where b∗j is obtained by applying the de Casteljau algorithm to the B´zier control points e b0. s2 .j)∈ p. . . . r1 . . v) = bp . one of these two programs ∗0 may be more eﬃcient than the other. . i∗ p−i−j i q and thus. and then bp . and we let bi∗ = bq 0 . s1 . . r2 . r 2 . . . bp∗ . bj = f (u. . . . the version of the algorithm in which we compute ﬁrst the control points b0∗ . i∗. . b∗0 . . . . 0∗ ∗0 We give in pseudo code. . POLYNOMIAL SURFACES with 1 ≤ j ≤ q and 0 ≤ k ≤ q − j. j . . . . . r1 . We assume that the input is a control net N = (bi. . s2 ). Although logically equivalent. . j )(i. . . 0∗ p q Alternatively. . v. . . . The same result bp = bq . . .

The computation shows that the points f (u. and that the image by an aﬃne map h of a bipolynomial surface deﬁned by a control net N is the bipolynomial surface deﬁned by the image of the control net N under the aﬃne map h. u. for i := 0 to p do b0 = bi∗ i∗ endfor. for instance. x. v) := bp 0∗ end j−1 −v bj k := ss22−r2 bi∗. u. are computed ﬁrst. s) and (x. u. and for simplicity of notation. It is also clear that bipolynomial surfaces are closed under aﬃne maps.7. y. for j := 1 to p do for i := 0 to p − j do j−1 bi∗ + v−r2 s2 −r2 j−1 bi∗. 3 . u. u2 . y. x) is denoted as rrs. x). Since the ﬁgure is quite crowded. for j := 1 to q do for k := 0 to q − j do −u bj := ss11−r1 i∗ endfor endfor. x. v 3 ) is denoted as u1 u2 u3 . v. r. y). i∗. y). endfor endfor. v 1 . y). v) (shown as a round dark dot) is computed. There are other interesting properties of tangent planes. F (u. not all points have been labeled. bi∗ = bq . u. j i∗.0 endfor. that will be proved at the end of From the above algorithm. v. It is assumed that (r.3. it is clear that the rectangular surface patch deﬁned by a control net N is contained inside the convex hull of the control net. the point f (u. u. using these points (shown as square dark dots) as control point. u. and f (u. u. u. x. y) have been chosen as aﬃne bases of A. THE DE CASTELJAU ALGORITHM. f (u. u3 . v 2 . the polar value f (u1 . y. xxx. x. v1 v2 v3 . x. v). k + i∗. f (u. u. x. f (r. k+1 u−r1 s1 −r1 j−1 bi+1∗ The following diagram illustrates the de Casteljau algorithm in the case of a bipolynomial surface of degree 3. s. RECTANGULAR SURFACE PATCHES 277 begin for i := 0 to p do for j := 0 to q do b0 j := bi. . The diagram shows the computation of the point F (u. endfor. and then. x.

xxy sss. xxx rss. xxy rrs. xxx sss. xxx Figure 7. yyy rss. vvv rss. yyy uuu. yyy rrr. xxx uuu.1: The de Casteljau algorithm for a bipolynomial surface of degree 3. 3 . POLYNOMIAL SURFACES rrs. xxy rrr. xxy rrr. yyy rrs. xxx sss.278 CHAPTER 7.

the tangent plane to the surface at F (u. bp. 1 . v) = f ((u. a). and 1 ≤ i ≤ m.4 Total Degree Surfaces in Polar Form Given a surface F : P → E of total degree m. A similar property holds for the other corner control points b0. v)). s. Given any barycentric aﬃne frame (r. if the control points b0. b∗1 . Thus. a surface of total degree m in polar form. which determine one tangent line. λm r + µm s + νm t) . such that there is some symmetric multiaﬃne map f : P m → E. . 0 . Vm )) is multiaﬃne and symmetric in the pairs (Ui . V ) deﬁning F . . v) is determined by the points bp−1 . am ) = f (λ1 r + µ1 s + ν1 t.1 to each polynomial Fi (U. we get polar forms fi : P m → A. we can expand f (a1 . . applying lemma 4. . Vi ). . . V1 ). . The trace of the surface F is the set F (P). . (Um . the four tangent planes at the corner points are known. which together. bp−1 . . . 0 . q . with respect to both U and V . Also. . and bp.4. 0 . deﬁne an m-multiaﬃne and symmetric map f : P m → E. . (u. such that F (u. where E is of dimension n. Deﬁnition 7. We now go back to total degree surface. . m for all a ∈ P. and with F (a) = f (a. it is also natural to propose the following deﬁnition. where λi + µi + νi = 1. then the plane that they deﬁne is the tangent plane to the surface at the corner point b0. and the 1∗ 0∗ q−1 q−1 points b∗0 . v). .4. By analogy with polynomial curves. which determine another tangent line (unless these points are all collinear). in general. and b0. b1. 0 . . q . . TOTAL DEGREE SURFACES IN POLAR FORM 279 this chapter. are not collinear.5. Given any aﬃne space E of dimension ≥ 3.1.4. for any ai = λi r + µi s + νi t. . is a map F : P → E. 7.1 is that it does not depend on the dimension of E. t) ∈ P. The advantage of deﬁnition 7. . m Note that each f ((U1 . For example.7. . .

. .280 CHAPTER 7. . s. . r . i j k m+2 2 = where i + j + k = m. . is symmetric and multiaﬃne. . From now on. λ2 r + µ2 s + ν2 t. t). . .m} I. . with λ + µ + ν = 1. . .. . λm r + µm s + νm t) + ν1 f (t. . can be viewed as control points.J. λm r + µm s + νm t) = λ1 f (r. .J. t. . k )(i. T ) = m! U iV j T k. am ) = I∪J∪K={1. . . . λm r + µm s + νm t). .k (U. . .k)∈∆m of f (a1 . . i!j!k! where i + j + k = m. . . . We summarize all this in the following lemma. a) = m m! i j k λ µ ν f (r. POLYNOMIAL SURFACES by multiaﬃneness and symmetry. given any family (bi. . s. . s. λ2 r + µ2 s + ν2 t. . . . . . . . . t. . . s. Clearly. = am = a. . .. . Also. V. . . r. . . s. . . but one can verify that there are only terms corresponding to the points f (r. V. k) ∈ N3 | i + j + k = m}. .K pairwise disjoint i∈I λi j∈J µj k∈K νk f (r. λm r + µm s + νm t) + µ1 f (s. Then. . we will usually denote a barycentric aﬃne frame (r. . . are also called Bernstein polynomials. i j k where i + j + k = m. t. . t). . i!j!k! i+j+k=m i j k where a = λr + µs + νt. we get F (a) = f (a. . . s. and call it a reference triangle. . r . . . . as ∆rst. . . |J|. t. . the points f (r.. t) in the aﬃne plane P.K disjoint i∈I (m+1)(m+2) 2 points in E.. t). . it is easily shown that f (a1 . r. . . s. . . we have f (λ1 r + µ1 s + ν1 t. The polynomials in three variables U. λ2 r + µ2 s + ν2 t. s. . . am ) = I∪J∪K={1. .m} I. the map deﬁned such that µj j∈J k∈K λi νk b|I|. when a1 = a2 = . |K| . .. j. deﬁned such that m Bi. .j. j. . . |I| |J| |K| (m+1)(m+2) 2 There are 3m terms in this sum. As a ﬁrst step. . By induction. . .. s.j. . t).. T . . Let ∆m = {(i.. .

k . For the converse. . t.k (λ. t). as in deﬁnition 7. TOTAL DEGREE SURFACES IN POLAR FORM 281 Lemma 7.m} I.3.j. . We can show that when E is of ﬁnite dimension. j. k)∈∆m m Bi. .1. . k )(i. a) = m (i. . . j. . f is given by the expression f (a1 . s. r.4. or B´zier net. is called a (triangular) control 2 net.J. ..7. s. k )(i. T ) = i!j!k! U i V j T k .1. i j k for all (i.j. j. t) = bi. and 1 ≤ i ≤ m. j. s. deﬁned by a symmetric m-aﬃne polar form f : P m → E. .1 is identical to the class of polynomial surfaces.2. Indeed. . . . . simply apply lemma 4. . . .4. the class of polynomial surfaces of total degree m in polar form as in deﬁnition 7. j. also starting from the left lower corner. . . ν) f (r.1 is a polynomial surface of total degree m in polar form as in deﬁnition 7. k) ∈ N3 | i + j + k = m}. s. k )(i. . The control net N = (bi.K pairwise disjoint i∈I λi j∈J µj k∈K νk f (r. .k (U. . .4. . . |I| |J| |K| where ai = λi r + µi s + νi t.2. µ. there is a unique surface F : P → E of total degree 2 m. can be thought of as a triangular grid of points in P.j. j. s. with λi + µi + νi = 1. k) ∈ ∆m . .1.k)∈∆m of (m+1)(m+2) points in E. s.4. . . . as F (a) = f (a. given any family (bi.1. with λ + µ + ν = 1.k)∈∆m . A point F (a) on the surface m! m F can be expressed in terms of the Bernstein polynomials Bi. . Given a reference triangle ∆rst in the aﬃne plane P. we have already shown using polarization. V. . starting from the left lower corner. Note that the points in e ∆m = {(i.j. . . .j. .. r. For example. t). when m = 5. . r. . . . . . i j k where a = λr + µs + νt.k)∈∆m of (m+1)(m+2) points in E. A family N = (bi.. that a polynomial surface according to deﬁnition 7. and j be the column index. t. am ) = I∪J∪K={1. Furthermore. . . such that f (r.. j. . we have the following grid of 21 points: 500 401 302 203 104 005 014 113 023 212 122 032 311 221 131 041 410 320 230 140 050 We intentionally let i be the row index. t. .

i. 0. recall that in terms of the polar form f : P m → E of the polynomial surface F : P → E deﬁned by N . .282 CHAPTER 7. k )(i. for every (i. POLYNOMIAL SURFACES can be viewed as an image of the triangular grid ∆m in the aﬃne space E.k)∈∆m . .k)∈∆m−l i. k )(i. the points (bl j. Contrary to rectangular patches. . The surface e F (or triangular patch) determined by a control net N . Preparata and Shamos [64]. where λ+µ+ν = 1. . s. r. ν) of a (with respect to the reference triangle ∆rst) satisfy the inequalities 0 ≤ λ. s. . . k )(i. . the computation builds a sort of tetrahedron consisting of m + 1 layers. where at stage l. j. µ. . 0. t. j. During the last stage.4. k = f (r. bl j.j. i j k Given a = λr +µs+νt in P. 0 . 0 is computed. is called a triangular (surface) patch. there isn’t a unique natural way to connect the nodes in N . 0 ≤ µ. .j. . . k = f (a. the points i j k r + s + t. we can assume that we pick a Delaunay triangulation (see O’Rourke [58]. . the single point bm 0. .5 The de Casteljau Algorithm for Triangular Surface Patches Given a reference triangle ∆rst. contains the three control points bm. . and b0. The other i. . . . layers are computed in m stages. given a triangular control net N = (bi. . m m m where ∆rst is the reference triangle. k) ∈ ∆m . we can associate with each triple (i. By lemma 7. the corners of the surface patch. . we have bi. i. . The base layer consists of the original control points in N . in order to compute F (a) = f (a. t). 0 . k )(i. a).2. and F (∆rst) is called the trace of the triangular surface patch. l i j k . are computed such that bl j. which are also denoted as (b0 j. . j. . The de Casteljau algorithm generalizes quite easily. Boissonnat and Yvinec [13]. . i. . k = λbl−1 j. .k)∈∆m . k) ∈ ∆m . various triangulations of the triangle ∆rst using the points just deﬁned. with λ + µ + ν = 1. t). i+1. s. j. Then. 7. to form triangular faces that form a polyhedron. . j.j. a. r. The portion of the surface F corresponding to the points F (a) for which the barycentric coordinates (λ.j. t. b0. . m. 1 ≤ l ≤ m. given a triangular control net N = (bi. . To be deﬁnite. k + µbl−1 k + νbl−1 k+1 . . . or Risler [68]). .k)∈∆m . In order to understand the diﬃculty. s. such a control net N determines a unique polynomial surface F of total degree m. i. j. . or triangular B´zier patch. yield various ways of forming triangular faces using the control net. m . j+1. An easy induction shows that 0. 0 ≤ ν. r.

. The following diagram illustrates the de Casteljau algorithm in the case of a polynomial surface of total degree 3. . j. . . begin for l := 1 to m do for i := 0 to m − l do for j := 0 to m − i − l do k := m − i − j − l. At i. . a triple (i. 0 . . am in P. with λl + µl + νl = 1. k) ∈ ∆m−l . i. am ). Let a = λr + µs + νt. . i. which are also denoted as (b0 j. . . . i. . . µl . . . where al = λl r+µl s+νl t. k )(i. ν by λl . . Again. . given m points a1 . Similarly. 1). i := (i. . . e3 = (0. t. 0. 0. . f (a1 . am ) as follows. It is clear from the above algorithm. . r. and thus. is contained in the convex hull of the control net N . 0. such that b0 = bi . stage l. We are assuming that we have initialized the family (b0 )i∈∆m . j. j. An easy induction shows that bl j. for m points a1 . r. i j k where (i. . . for all i ∈ ∆m . we can i i describe the de Casteljau algorithm as follows. the points (bl j. we can compute the polar value f (a1 . . 0 . In order to present the algorithm. and thus. . Then. j. am ) = bm 0. bl j. it may be helpful to introduce some abbreviations. where 1 ≤ l ≤ m. For example. F (a) := bm 0 end In order to compute the polar value f (a1 . 0. j. e2 = (0. al .k)∈∆m . It is assumed that the triangle ∆rst has been chosen as an aﬃne . νl . .j. . i+1. and 0 = (0. the base layer of the tetrahedron consists of the original control points in N . . k + µl bl−1 k + νl bl−1 k+1 . THE DE CASTELJAU ALGORITHM FOR TRIANGULAR SURFACE PATCHES283 where (i.5. k = f (a1 . . bl := λbl−11 + µbl−12 + νbl−13 i i+e i+e i+e endfor endfor endfor. . . . k )(i. we simply replace λ. and we let e1 = (1.7. F (a) = bm 0. . 1. 0).j. where al = λl r + µl s + νl t. j+1. with λl +µl +νl = 1. . s. k) ∈ ∆m is denoted as i. i. 0. µ. 0). . where λ + µ + ν = 1. k = λl bl−1 j. k) ∈ ∆m−l . am in P. . that the triangular patch deﬁned by the control net N .k)∈∆m−l are computed such that i. . s. 0). t). k).

m. and bm−11 (unless these 1.284 ttt CHAPTER 7. in general. the tangent plane to the surface at F (a) is determined by the points bm−10 . u3 ) is denoted as u1 u2 u3 . 1. Also. 0.2: The de Casteljau algorithm for polynomial surfaces of total degree 3 base of P. 1 . the three tangent planes at the corner points are known. POLYNOMIAL SURFACES ttu rtt tuu rrt rtu tsu tss tts uuu rrr rru ruu rst suu ssu sss rsu rrs rss Figure 7. For example. The diagram shows the computation of the point F (u). Given a polynomial surface F : P → E. Thus. 0. by considering points a ∈ P of barycentric . 0 . s) is denoted as rrs. 0. 0. if the control points bm. 0. 0. are not collinear. then the plane that they deﬁne is the tangent plane to the surface at the corner point bm. each one obtained via two-dimensional interpolation steps. There are other interesting properties of tangent planes. bm−1. and it consists of three shells. A similar property holds for the other corner control points b0. u2. and bm−1. 0. m . r. 0 and b0. 0. that will be proved at the end of this Chapter. bm−10 . and for simplicity of notation. for example. 0 . the polar value f (u1 . 1. points are all collinear). f (r. 0 .

b). . . b.6. → → it is easily shown that for any two nonnull vectors − . − ). q -symmetric multilinear map. a. Let be its homogenized p. It is interesting to note that the same polynomial surface F . . a. ∂− ∂− u v . or ν constant. where E and E are normed aﬃne spaces. Using some very similar calculations. − ∈ R. u v the directional derivative Du Dv F (a. and if − is any nonnull vector in E . we get a curve on the surface F passing through F (s) and F (t). for any u a ∈ E. . q . determined by the constraint that the parameter point a = λr + µs + νt ∈ P. lies on a line. 1 − λ. 7. requires a control net of (m+1)(m+2) 2 points.6 Directional Derivatives of Polynomial Surfaces In section 10. considering points of barycentric coordinates (λ. This way. we get a curve on the surface F passing through F (r) and F (t). b) = p q f (a. µ. and they are called the boundary curves of the e triangular patch. These curves are B´zier curves of degree m. . − . let F : A × A → E be a bipolynomial surface of degree p. the directional derivative Du F (a) is given by → u Du F (a) = mf (a.7. for any two points a. we can consider curves on a surface F of total degree m.5. We conclude this chapter by considering directional derivatives of polynomial surfaces. . More generally. . obtained by holding λ constant. it is shown that if F : E → E is an aﬃne polynomial function of polar degree − → → m. we also get a B´zier curve e of degree m. . . . DIRECTIONAL DERIVATIVES OF POLYNOMIAL SURFACES 285 coordinates (0. they form a polynomial curve called an isoparametric curve. Finally. q . 0). . b) is given by → → u v Du Dv F (a. when represented as a bipolynomial surface of degree p. p−1 q−1 f : (A)p × (A)q → E This directional derivative is also denoted as ∂2F → → (a. and let f : (A)p × (A)q → E be its polar form. If we consider the points F (λr + µs + νt) on the surface F . and similarly. 1 − λ). 0. − ). . b ∈ A. considering points of barycentric coordinates (λ. requires a control net of (p + 1)(q + 1) control points. m−1 Now. 1 − µ). b. we get a curve on the surface F passing through F (r) and F (s). Other isoparametric curves are obtained by holding µ constant. and when represented as a surface of total degree m.

. Dv F (a. Dv F (a. for any a. . j. . . b) is also denoted as i j ∂ i+j F (a. . . i j p−i i q−j j The directional derivative Du . POLYNOMIAL SURFACES ∂2F → → When − = 1 and − = 1. every vector − ∈ R can be expressed as v − =λ s −λ r . . . . . every vector − ∈ R can be expressed as − =λ s −λ r . Du Dv . by deﬁnition.286 CHAPTER 7. → u 1 1 1 1 → and similarly. . b ∈ A. b) or (a. Lemma 7. . for any nonzero vectors − . b. respectively. .6. −i → −j → ∂u ∂v → u If (r1 . where E is any normed aﬃne space. with polar form f : (A)p × (A)q → E. b). →i →j ∂− ∂− u v and when i = 0 or j = 0. . b. v ).1. . → ∂v p q−1 . − . b ∈ A. b) is often called the twist at (a. . . . → ∂u p−1 q and ∂F − → − (a. . . b). where 0 ≤ i. a. b) = q f (a. s1 ) and (r 2 . q . . the directional → → u v derivative Du . − . s2 ) are any two aﬃne frames for the aﬃne line A. ∂u∂v ∂u∂v The following lemma. Dv F (a. b. b.3. − ). . it is denoted as ∂j F ∂iF (a. . analogous to lemma 10. the directional derivative − − (a. b). . . j ≤ m. can be shown easily. for any two points a. . . . . and the vector (a. b). . → v 2 2 2 2 and thus. . . . a. . − . b) is the partial u v ∂ →∂ → u v 2 2 ∂ F ∂ F derivative (a. . b) = pi q j f (a. a. . since ∂F − → − (a. . b) = p f (a. b). Given a bipolynomial surface F : A × A → E of degree p. Du Dv . .5. u . Du Dv . b. . . . for any i. b) can be computed from the homogenized polar form f of i j F as follows: → → → → u u v v Du . . − ∈ R. . .

. they determine the tangent plane at (a. . . r2 ). bp−1 . . → → Assuming − = 1 and − = 1. . . . . r1 . s1 . a. . . 1 . r 2 )). . Thus. . p−1 q−1 d1.1 . DIRECTIONAL DERIVATIVES OF POLYNOMIAL SURFACES we get ∂F → (a. computed by the two versions of the de Casteljau algorithm.2 . s1 . b. . . s2 ) − f (a. s2 ). a. . provided that they are not linearly dependent. b) to F . . . a. . . . . . . . a. . b. However. d2. b1. s2 ) − f (a. . . p−1 q f (a. r2 )) . . . b. b. . 0 . and b0. s1 . . . . d2. b. b) = p λ1 (f (a. . . . a. . b) = p q f (a. since u v ∂2F → → u v (a. a. d1. . s1 . . b) = p q f (a. r1 . . . . . b. deﬁne the tangent plane to the surface at the corner point b0. . . letting a = r 1 and b = r2 . ∂− v p q−1 p q−1 Since these vectors. . a. . . b). . b. b. . . . . r1 . .1 = f (a. . . . . . . . b. 0 . 0 . b. . s1 .1 = f (a. . ∂u∂v p−1 q−1 we get ∂2F (a. b) − f (a. a. . p−1 q f (a. b.6. . . by a similar reasoning. b) = q λ2 (f (a. span the tangent plane at (a. . . − ). . bp−1 . . . . . a. . b) to the bipolynomial surface F is determined q−1 q−1 by the points bp−1 . . a. . b. . . . r 2 ) ∂u∂v p−1 q−1 p−1 q−1 − (f (a. b. .7. . . . b. b. . . . b. b. . s2 ). . a. b∗1 . . b. s2 ) − f (a. . p−1 q−1 p−1 q−1 Letting d1. . p q−1 are coplanar. . . . 0∗ 1∗ q−1 q−1 and b∗0 . − . . b) to the bipolynomial surface F . . . . . . b. . . . r1 . . a. . .2 = f (a. b. . p−1 q−1 d2. In particular. b. s1 . be the points d1. . . r1 . b∗1 . b. . . . . . b. . r 1 .2 . these points are just the points bp−1 .1 . . p−1 q−1 . r2 ). . . . the four points f (a. . b. . a. a. we ﬁnd that the control points b0. b. . p q−1 f (a. a. b. . . . s2 ). b)). . b. . b. b. computed by the two versions of the de Casteljau 0∗ 1∗ algorithm (provided that they are not collinear). . .2 = f (a. b). a. and provided that they are not collinear. r2 ). . . . . . . p−1 q−1 d2. ∂− u p−1 q p−1 q 287 and ∂F → (a. . and b∗0 . a. we have proved the claim that the tangent plane at (a. b.

and since → → ∂u v ∂2F → → (a. the directional derivative u v 2 2 ∂ F ∂ F − ∂ − (a.1 (when these points are not collinear).2 ) − (d2.1 ). b) = p q (d2.2 .1 = b0. this plane in just the tangent plane at d1. we get u v ∂2F (a.2 + d1.2 − d1. b) = p q (d2. d2.2 − d2. b). d2.2 . POLYNOMIAL SURFACES ∂2F (a.2 − d1. ∂u∂v which. the twist vector is a measure for how much the quadrangle d1.2 − d2. it is immediately veriﬁed that (d2.2 + d1. d1. ∂− ∂− u v . c.1 . b) = p q ((d2.2 .1 ). then by deﬁnition. d1. d2.1 .1 . can be written either as ∂2F (a.1. when a = r1 and b = r2 . d2.1 .1 − d1.2 . d2. d1.2 − d2. in terms of vectors.2 . b) is the partial derivative ∂u∂v (a.2 .1. → → and thus (since − = 1 and − = 1).2 .2 − d1. → → Remark: If we assume that − = 1 and − = 1. and d2.1 . ∂u∂v Thus.2 from the plane determined by d1.1. that is.1 ) − (d1. and c. and roughly. d1. b) = p q (d2.1 . In particular. let c = d2. ∂u∂v ∂2F (a. The twist vector Then. ∂u∂v or as ∂2F (a.1 − d1.1 ) = d2.1 + (d1.2 − d1. d1. b) can be given an interesting interpretation in terms of the ∂u∂v points d1. Let c be the point determined such that d1.2 − d2.288 we can express ∂2F (a.1 )) . up to the factor p q.2 − c.2 − c). b) = p q ((d2.1 ) − (d1.1 )) . d2. form a parallelogram. it is a measure of the deviation of d2. b) as ∂u∂v CHAPTER 7. deviates from the parallelogram d1.1 ).1 − d1.0 .

a. . . →k ∂− u → Given any reference triangle ∆rst.j )Bip−1 (λ1 )Bj (λ2 ). t)). . b. . . a.1 = f (a. b.j+1 + bi. Duk F (a) as (a). . p−1 q−1 d2. a. . → u where λ + µ + ν = 0.5. . . . . . b. . b. b) = p q ∂u∂v i=p−1 j=q−1 q−1 (bi+1. b. Duk F (a) can be computed as follows: → → u u Du1 . . . a. DIRECTIONAL DERIVATIVES OF POLYNOMIAL SURFACES and d1. deﬁned by e m a symmetric m-aﬃne polar form f : P → E. we also denote Du1 . . . .j − bi. . .6. .1 = f (a. f (a. If we now consider a polynomial B´zier surface F : P → E of total degree m. . . . b. . . we get ∂F → (a) = m(λf (a. . provided that the points f (a. .3. . a. . s2 ). = uk . and the bi. . . . −1 . s1 . r2 ). r1 . after expansion using multiaﬃneness. . i=0 j=0 q−1 where Bip−1 and Bj are the Bernstein polynomials. p−1 q−1 d2. . and b = (1 − λ2 )r 2 + λ2 s2 . . µ. for k = 1. . r) + µf (a. . for u u any a ∈ P. Duk F (a) = mk f (a. the results of section 10.j+1 − bi+1. . . . t) m−1 m−1 m−1 . r1 . f (a. . s) + νf (a. . −k ∈ R2 . ∂− u m−1 m−1 m−1 When λ. . . a. a. . r2 ). . . −k ). . . a. a. ν vary. p−1 q−1 289 d1. . . . . . since every vector − ∈ R2 can be written as u − = λr + µs + νt.j are the B´zier control points e of F . . . where 1 ≤ k ≤ m. s2 ). p−1 q−1 letting a = (1 − λ1 )r 1 + λ1 s1 . . by lemma 10.2 = f (a. → → Thus. s1 . subject to λ + µ + ν = 0. for any k nonzero vectors −1 . . . s). . . . . m−k ∂k F When u1 = . . the k-th directional derivative Du1 . b. . . . . a. . b. . . we get ∂2F (a. . a. .5 apply immediately. r). .2 = f (a. .7.

k p−1. 1). u u m−k we deduce that ∂ i+j F → → → → i+j f (a. (0.q Letting σh. we recognize ∂→ u that the above points are just the points bm−1 0) .. . . 1] × [0. if the control points bm. −1 . the vectors − (a) span the tangent plane to F at a.q−1 p. 1) and (0. 0 . ..k−1 + up vq σh−1. u u v v i − j (a) = m → v ∂− ∂ → u m−i−j i j 7. 0. bm−1.q p h−1.q}.. 1.q−1 σ 0. a. are not collinear. if 1 ≤ h ≤ p and k = 0 ≤ q..q fh. 1.k = p h q k p. Compute the rectangular control net for the surface deﬁned by the equation z = xy. . 0. . 0 . . . 0 . collinear). . (0. Recall that the polar form of the monomial uh v k with respect to the bidegree p.0 h. −k ). 1. we have proved the claim that the tangent plane to the surface at F (a) is determined by the points bm−1 0) .|I|=h J ⊆{1. − . .q−1 p−1. and q ≥ 0. 0. and bm−1 1) . letting a = r. with respect to the aﬃne frames (0. .q−1 p−1. . − ).q + u σ p−1. (0.k−1 = σ p−1. p.. computed by the de (1. . − . . p ≥ 0.k . 1]. .q σh.p}.q−1 p−1.0 1 0 if 1 ≤ h ≤ p and 1 ≤ k ≤ q. Thus. if h = k = 0. q (where h ≤ p and k ≤ q) is p. then the plane that they deﬁne is the tangent plane to the surface at the corner point bm.q fh.k + vq σ0. Problem 2 (20 pts). a. bm−1 0) . . − . POLYNOMIAL SURFACES ∂F are not collinear. otherwise. 0. and bm−1.k = 1 p h q k I⊆{1. However. and bm−1 1) (unless these points are all (1. .. . 1 .q−1 + up σh−1.. .k−1 σh. 0. . Duk F (a) = mk f (a..|J |=k ui i∈I j∈J vj . Casteljau algorithm. 0. . . In particular. 0.k p. Plot the surface patch over [0. prove that we have the following recurrence equations: p. bm−1 0) . Remark: From → → Du1 . if h = 0 ≤ p and 1 ≤ k ≤ q. .k + vq σh.7 Problems Problem 1 (10 pts). (0. .290 CHAPTER 7.

k = m h m−h k m fh. .k + vm σh.k m fh.q fh. can be done in time O(p2q 2 ).k + vq fh.. 1 ≤ i ≤ p.k + up fh−1. vq ). .k−1 + up vq fh−1.0 + up fh−1. up . .7. and 1 ≤ j ≤ q. v1 .q−1 f0.k = 291 (p − h)(q − k) p−1. 1 ≤ k ≤ j. 0 otherwise.k−1 .q f0. prove that fh. .k + um fh−1. .7.k−1 .k + vq f0. prove that fh.k−1 if h..k = (q − k) p. write a computer program for computing the control points of a rectangular surface patch deﬁned parametrically.q−1 k p.k−1. m Alternatively. Problem 3 (30).q h p−1. pq pq pq pq where 1 ≤ h ≤ p and 1 ≤ k ≤ q.k = (m − h − k) m−1 h k m−1 m−1 fh. q q where h = 0 ≤ p and 1 ≤ k ≤ q. p. .. . .I∩J =∅ vj j∈J .m} |I|=h. m m m where h. . .q−1 fh. = 1 if h = k = 0 and m ≥ 0.k = m h 1 m−h k ui I∪J ⊆{1. prove that we have the following recurrence equa- tions: m−1 m−1 m−1 σh. up . k ≥ 0 and 1 ≤ h + k ≤ m.q fh.k can be computed directly using the recurrence formula p. Problem 4 (20 pts).q−1 p−1. .k + um σh−1. computing all the polar values i.q−1 h(q − k) (p − h)k hk p−1. p p where 1 ≤ h ≤ p and k = 0 ≤ q. Prove that the polar form of the monomial uh v k with respect to the total degree m (where h + k ≤ m) can be expressed as m fh..k can be computed directly using the recurrence formula m σh.0 . k ≥ 0 and 1 ≤ h + k ≤ m.q−1 p−1. i∈I m Letting σh. . Using the result of problem 2.q Alternatively. vq ).q fh. where 1 ≤ h ≤ i. v1 . . .k (u1 .k + vm fh. Show that for any (u1 . .|J |=k. PROBLEMS p.j fh. . and p.0 = (p − h) p−1.k . .

Problem 9 (20 pts). 0). (0. 1). and 1 ≤ i ≤ m. 1). Explain what happens for (u. Compute a triangular net for the same surface with respect to the aﬃne frame ((1. v1 ). vm )). POLYNOMIAL SURFACES Show that for any ((u1 . 1). Compute a triangular net for the same surface with respect to the aﬃne frame ((1. 1). 0). 1). . 1).k ((u1. where h. (0. . 1) and (−1. 0). 0)). can be done in time O(m3 ). . This surface is a more complex kind of monkey saddle. 1). . 1 ≤ h + k ≤ i. . 1) and (−1. Problem 6 (20 pts). Using the result of problem 4. (0. y = v(u2 + v 2 ). Compute a rectangular net for the surface deﬁned by the equation z = x3 − 3xy 2 with respect to the aﬃne frames (−1. Compute a rectangular net for the surface deﬁned by the equation z = x4 − 6x2 y 2 + y 4 with respect to the aﬃne frames (−1. (0.292 CHAPTER 7. Problem 8 (20 pts). 0). vm )). k ≥ 0. 0). v1 ). Problem 7 (20 pts). Problem 5 (30). This surface is called a monkey saddle. with respect to the aﬃne frames (0. Compute a triangular net for the same surface with respect to the aﬃne frame ((1. computing all the polar values i fh. Compute a rectangular net for the surface deﬁned by x = u(u2 + v 2 ). 0)). . . write a computer program for computing the control points of a triangular surface patch deﬁned parametrically. z = u2 v − v 3 /3. Note that z is the real part of the complex number (u + iv)3 . 1). 1) and (−1. v) = (0. Note that z is the real part of the complex number (u + iv)4 . 0)). Compute a triangular net for the same surface with respect to the aﬃne frame ((1. (0. (um . (um . 0)). (0. . . (0. (0. Compute a rectangular net for the surface deﬁned by the equation z = 1/6(x3 + y 3) with respect to the aﬃne frames (−1. 1) and (0.

7. s1 ) and (r 2 . n. that is. Deﬁne a sequence of nets (br j )(i. . j + (1 − u)v bi. j )(i. . where bi∗ is obtained by applying the de Casteljau algorithm to the B´zier control points e bi. . . Problem 14 (20 pts). 0. we ﬁrst compute the points b∗0 . j+1 . j+1 + uv bi+1. This method is known as the direct de Casteljau algorithm.j)∈ p.4. Give the details of the proof of lemma 7. all i. . Problem 12 (10 pts). we have br j = bi. j with 0 ≤ i. s2 ). the class of polynomial surfaces of total degree m in polar form as in deﬁnition 7. j )(i. .1 is identical to the class of polynomial surfaces as in deﬁnition 7.1. and for r = 1. The ﬁrst version is the direct de Casteljau algorithm described in problem 13.1. s1 ) and (r2 . . j )(i. .1. v) = bn 0 .q with respect to the aﬃne frames (r 1 . v) on the surface F .2. (ii) Let F be a bipolynomial surface of bidegree p. bp∗ . . there are three versions of de Casteljau algorithm to compute a point F (u. Problem 13 (20 pts). . q . the class of bipolynomial surfaces in polar form as in deﬁnition 7. q given by some control net N = (bi. by applying the de Casteljau algorithm to the control 0∗ points b0∗ . s1 ) and (r 2 . bi. i. Prove that when E is of ﬁnite dimension. q given by some control net N = (bi.n with respect to the aﬃne frames (r 1 . s2 ). .j)∈ p. where 0 ≤ i. . i. . PROBLEMS 293 Problem 10 (20 pts). . j ≤ n. . (i) Prove that F (u. r−1 r−1 r−1 r−1 br j = (1 − u)(1 − v) bi. . Given a bipolynomial surface F of bidegree p. . n given by some control net N = (bi. . s2 ).2. . j + u(1 − v) bi+1. we ﬁrst compute the points b0∗ . and then compute bp .j)∈ n−r.q with respect to the aﬃne frames (r 1 . 0 . give the details of the induction steps.7. bp∗ .j)∈ n. b∗q .2. j for i.1 is identical to the class of polynomial surfaces as in deﬁnition 7. .2 and lemma 7. . Problem 11 (10 pts). Prove that when E is of ﬁnite dimension. j ≤ n − r. In the second version.1. In the third version.4. with 0 ≤ i ≤ p. What happens to the direct de Casteljau algorithm when p = q? Modify the direct de Casteljau algorithm to compute F (u.n−r inductively as follows: For r = 0. v) when p = q. Let F be a bipolynomial surface of bidegree n.

Write a computer program implementing the de Casteljau algorithm for triangular surface patches. . b∗q . bp. by applying the de Casteljau algorithm to the control ∗0 points b∗0 . POLYNOMIAL SURFACES where b∗j is obtained by applying the de Casteljau algorithm to the B´zier control points e b0. j .294 CHAPTER 7. Write a computer program implementing the de Casteljau algorithm(s) for rectangular surface patches. . . . . . . . Problem 16 (30 pts). Problem 15 (40 pts). j . . with 0 ≤ j ≤ q. Compare the complexity of the three algorithms depending on relative values of p and q. and then compute bq .

k) ∈ ∆m . . i. bl j. . i+1. which are also denoted as (b0 j. j. k + µbl−1 k + νbl−1 k+1 . sponding to the original control net. . where at stage l. An easy induction shows that 0. a. . . i. . are computed such that bl j.k)∈∆m−l i. k )(i. yield three control nets 295 where (i. layers are computed in m stages. r. the single point bm 0. i. and thus. s. k )(i. t. r. k besides the face correi. . s. . the computation builds a sort of tetrahedron consisting of m + 1 layers. . . . 0 . j+1.j. The base layer consists of the original control points in N .Chapter 8 Subdivision Algorithms for Polynomial Surfaces 8. k = f (a. t). .1 Subdivision Algorithms for Triangular Patches In this section. F (a) = bm 0. . . 0 is computed. . s. t). given a triangular control net N = (bi. A similar method is described in Farin [30]. k )(i. in order to obtain a triangulation of a surface patch using recursive subdivision. where λ+µ+ν = 1. . k = λbl−1 j. . During the last stage. . j. i j k Given a = λr +µs+νt in P.j. s. j. Given a reference triangle ∆rst.k)∈∆m . . . a). in order to compute F (a) = f (a. we have bi. the points (bl j.k)∈∆m . . The other i. . .j. j. k = f (r. r. recall that in terms of the polar form f : P m → E of the polynomial surface F : P → E deﬁned by N . for every (i. 0. k) ∈ ∆m−l . l i j k Assuming that a is not on one of the edges of ∆rst. . . . . . j. . . we explain in detail how the de Casteljau algorithm can be used to subdivide a triangular patch into subpatches. . . i. . the crux of the subdivision method is that the three other faces of the tetrahedron of polar values bl j. t. 1 ≤ l ≤ m.

t. . . . r . . . j.l. i. f (r.. N rat = (bl 0. f (r. . . f (r. t. f (r. we wrote a very simple function transnetk. . r. . and N rsa = (bl j. . and N ars. f (r. m−1 m . t. . N rat. adapted to output the three nets N ast. .k)∈∆m . . and in order to compute N rsa from N ars. . . s. j] = bi. . . . . . . into a two-dimensional array. j. . s) f (s. m−i.. . . . In fact.l)∈∆m . . . s. s.e. t) f (r. the de Casteljau algorithm can be easily 0. . . s) m−1 m−1 f (r. s) . s). In implementing such a program. . f (t. . .j. 0 )(i. . . m−i−1 .296 CHAPTER 8. t) f (t. . s. k )(l. r . . we wrote a very simple function transnetj. . . . bi. 1. . . .j. 0. r . As a triangle. . the net N is listed (from top-down) as f (t. . . r . N ast = (bl j. . bi. N art.. . . k (with i + j + k = m). 0 . m−i . s) m m−1 . . corresponding to the base triangle ∆rsa.k)∈∆m is represented as the list consisting of the concatenation of the m+1 rows bi. r ) m The main advantage of this representation is that we can view the net N as a twodimensional array net. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES corresponding to the base triangle ∆ast. corresponding to the base triangle ∆rat.j. From an implementation point of view. we found that it was convenient to compute the nets N ast. i m−i i m−i−1 i m−i−1 i m−i where 0 ≤ i ≤ m.. r. i. . . We also have a function convtomat which converts a control net given as a list of rows. . . and N rsa. In order to compute N rat from N art. . . s. . . This way of representing control nets ﬁts well with the convention that the reference triangle ∆rst is represented as follows: Instead of simply computing F (a) = bm 0.k)∈∆m .. The corresponding Mathematica functions are given below: . 0. . such that net[i. . We call this version of the de Casteljau algorithm the subdivision algorithm.. k )(i.. i. k )(i.. we found it convenient to assume that a triangular net N = (bi. . t). . only a triangular portion of this array is ﬁlled. . . 0 . . . t).. . . . t). .

aux2. i.i.m_] := Block[ {cc = {cnet}. s. t) to (s. row = {}. res}. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES r 297 a t Figure 8. t) transnetj[{cnet__}. ( aux1 = {}. (* To transpose a triangular net wrt to left edge (* Converts (r. n} ]. res = {}. row}. {j. n]. n. {i. row. cc = Drop[cc. 1. 1. ( Do[n = m + 2 . *) *) . pt. j. i. n. Do[ pt = cc[[j]]. m + 1} ]. pt].1. row = Append[row. {pt}]. cc = Drop[cc.1: Reference triangle s (* Converts a triangular net into a triangular matrix *) convtomat[{cnet__}. aux1 = Append[aux1. aux1. {j. 1. row].m_] := Block[ {cc = {cnet}. j. mat = {}. r. m + 1} ]. mat ) ]. mat = Append[mat.8. m + 1]. Do[ pt = cc[[j]].

i. row]. aux2 = Append[aux1[[j]]. res}. pt. n]. r) *) transnetk[{cnet__}. pt]. m + 1} ]. t. {pt}]. j]. Do[ row = aux1[[j]]. n]. {i. {j. m + 1} ]. 1. n} ]. 1. j. s. aux1. t) to (s. row].298 CHAPTER 8. cc = Drop[cc. aux2. res ) ]. 1. 1. {j. ( aux1 = {}. res = Join[res.i. n} ]. res = {}. Do[ pt = cc[[j]]. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES Do[n = m + 1 .m_] := Block[ {cc = {cnet}. {j. m} ]. 1. m + 1} ]. Do[ pt = cc[[j]]. (* To rotate a triangular net *) (* Converts (r. m} ].i. Do[ pt = cc[[j]]. {i. cc = Drop[cc. Do[n = m + 1 . n. res = Join[res. aux1 = Append[aux1. res ) . 1. aux2. aux1 = ReplacePart[aux1. aux2. {j. 1. cc = Drop[cc. aux1 = ReplacePart[aux1. Do[ row = aux1[[j]]. m + 1]. {j. j]. pt]. row. aux2 = Prepend[aux1[[j]].

s. row0 = {}. cctr = {}.m]. {l. ccts = {}. The output is a control net. Do[ pt = barcor[[1]] * net0[[i + 2. Do[ row1 = Append[row1. 0. row1]. (* de Casteljau for triangular patches. dd] ]. 0.8. The variables net. barcor = {a}. net0[[1. row = Append[row. row2. j + 1]]]. j + 2]] + barcor[[3]] * net0[[i + 1. i. m . with subdivision *) (* this version returns the control net for the ref triangle (a. 299 We found it convenient to write three distinct functions subdecas3ra. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES ]. row2 = {}. k.m . pt].l} ]. ccts = Join[ccts. m} . j + 1]]. Do[ row = {}. j + 1]] + barcor[[2]] * net0[[i + 1. 0. mm_.i . row. ∆art. {j. as explained above. net0 = convtomat[dd. {j. dd = Join[dd. and ∆ars.l} ]. net0 = convtomat[cc. row1 = {}. and a correspond to the input control net represented as a list of points. net0. net0[[1. mm. j + 1]]]. t) *) subdecas3ra[{net__}. dd. l. If[m . m . row1. (m = mm.l =!= 0.l} ]. the degree of the net. {j. row0. pt}.l]. subdecas3sa. 1. and the barycentric coordinates of a point in the parameter plane.1. computing the control nets with respect to the reference triangles ∆ast. Do[ row1 = Append[row1. m. ccts = row1. {i. row1 = {}. and subdecas3ta. {a__}] := Block[ {cc = {net}. ccts = Join[ccts. Do[ dd = {}. ccsr = {}. row2 = {}. j. 0. m} ]. m . row]. row0 = {}.

r. m . row0]. cctr . cctr = Join[cctr. l.m].l} ]. row1 = {}. 0. j.l} ]. net0 = convtomat[cc. row0 = {}. row. 1]]].l} ]. 0. row1 = {}. net0[[i + 1. cctr = Join[cctr. row = Append[row. Do[ pt = barcor[[1]] * net0[[i + 2. {a__}] := Block[ {cc = {net}. t) *) subdecas3sa[{net__}. net0 = convtomat[dd. m. (m = mm. j + 2]] + barcor[[3]] * net0[[i + 1. Do[ dd = {}. 1]]].i .l =!= 0. ccts ) ]. 0. dd. m . j + 1]]. k. {i.m . ccts = {}. m} ]. dd] ]. Do[ row0 = Append[row0. {i. m . {j. row2. cctr = {}. row2 = {}. row1. row0. pt]. mm_. CHAPTER 8. {i. cctr = row0. row]. {l. ccsr = {}. j + 1]] + barcor[[2]] * net0[[i + 1. row2 = {}. row0 = {}. net0. 0. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES (* de Casteljau for triangular patches. If[m . i. 1. m} ]. with subdivision *) (* this version returns the control net for the ref triangle (a. pt}. net0[[i + 1. Do[ row = {}. Do[ row0 = Append[row0.300 ].l]. barcor = {a}. dd = Join[dd.

m . k.m]. ccsr = Join[ccsr. i. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES ) ].1. .m . Do[ row = {}. Do[ row2 = Append[row2. pt}.l} ]. ccts = {}.l]. dd. row = Append[row. ccsr = Join[ccsr. {i. row2 = {}. net0. row1. row1 = {}.i . dd = Join[dd. 0. net0[[i + 1. m . with subdivision *) (* this version returns the control net for the ref triangle (a. 0.i + 1]]]. j. ccsr = {}. ccsr = row2. Do[ row2 = Append[row2. j + 1]] + barcor[[2]] * net0[[i + 1. dd] ]. m .l . row2]. (m = mm. row0 = {}. {j. 0.l =!= 0. row0 = {}. j + 1]]. 0. {i. l. Do[ dd = {}. 1. m. m} ]. If[m .8. net0 = convtomat[dd. net0[[i + 1. r. {i. row. net0 = convtomat[cc. m . {a__}] := Block[ {cc = {net}. pt]. row2 = {}. mm_. cctr = {}. j + 2]] + barcor[[3]] * net0[[i + 1. s) 301 *) subdecas3ta[{net__}. barcor = {a}. ccsr ) ].l} ]. (* de Casteljau for triangular patches.l} ]. row0. row1 = {}. m . row2. row].i + 1]]]. Do[ pt = barcor[[1]] * net0[[i + 2. {l. m} ].

i . m . j + 2]] + barcor[[l. pt. {i.3]] * net0[[i + 1. A naive method would require twelve calls. getting new control nets N ars. row]. this process does not yield a good triangulation of the surface patch. *) If we want to render a triangular surface patch F deﬁned over the reference triangle ∆rst. because no progress is made on the edges rs. st. 1/3) is the center of gravity of the triangle ∆rst. res}. Therefore. There are many ways of performing such subdivisions. given a control net net. and a list a of mm points given by their barycentric coordinates.l]. j + 1]]. row. net0 = convtomat[cc. m. l. {j. (m = mm. and thus such a triangulation does not converge to the surface patch.l} ]. . and tr.m]. row = Append[row. mm_. Do[ row = {}. and we will propose a rather eﬃcient method which yields a very regular triangulation. In fact. m} ].2]] * net0[[i + 1. 0. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES The following function computes a polar value. where a = (1/3. {a__}] := Block[ {cc = {net}. m . ∆ast. However.l =!= 0. we give a method for subdividing a reference triangle using four calls to the de Casteljau algorithm in its subdivision version. dd = Join[dd. dd. (* polar value by de Casteljau for triangular patches poldecas3[{net__}. 0. net0 = convtomat[dd. net0. pt]. barcor = {a}. k. and repeat this process recursively.302 CHAPTER 8.m . and ∆art. {l. we need to subdivide the triangle ∆rst in such a way that the edges of the reference triangle are subdivided. in order to compute triangulations that converge to the surface patch. Do[ pt = barcor[[l. i.1]] * net0[[i + 2. res = dd ]. it seems natural to subdivide ∆rst into the three subtriangles ∆ars. Do[ dd = {}. res ) ]. j. 1. N ast and N art using the functions described earlier. 1/3. j + 1]] + barcor[[l. If[m .l} ].

1/2. This can be done using two steps. o However. 0. split the triangle ∆rst into the two triangles ∆art and ∆ars. where a = (0. and we throw away N ast (which is degenerate anyway). and they use a version of the de Casteljau algorithm computing a 5-dimensional simplex of polar values.8. In the ﬁrst step. . N ast. 1/2. This algorithm is also sketched in B¨hm [12] (see pages o 348-349). B¨hm [12]. we split ∆art into the two triangles ∆bat and ∆bar. we need the barycentric coordinates of b with respect to the triangle ∆art. 1/2) is the middle of st. Using the function sdecas3. the nets N bat. ∆crb. and present a variant of it below. and c = (1/2. 1/2)). It was brought to our attention by Gerald Farin (and it is mentioned at the end of Seidel’s paper [75]) that Helmut Prautzsch showed in his dissertation (in German) [63] that regular subdivision into four subtriangles can be achieved in four calls to the de Casteljau algorithm. Boehm and Farin [9]. Farin. and Seidel [75] (see also Boehm. We rediscovered this algorithm. The subdivision strategy that we will follow is to divide the reference triangle ∆rst into four subtriangles ∆abt. 0). and Filip [34]).1. are the middle points of the sides st. 1/2. ∆bac. For this. and N ars are obtained. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s 303 sca a bac abt crb c t b r Figure 8. which is more expensive than the standard 3-dimensional version. 1/2). b = (1/2.2: Subdividing a reference triangle ∆rst Subdivision methods based on a version of the de Casteljau algorithm which splits a control net into three control subnets were investigated by Goldman [38]. Then. and we throw away N brt. rt and rs respectively. where a = (0. 1/2). some of these authors were not particularly concerned with minimizing the number of calls to the de Casteljau algorithm. which turns out (0. as shown in the diagram below: The ﬁrst step is to compute the control net for the reference triangle ∆bat. 1/2. the nets N art. N brt. 1/2. Using the function sdecas3 (with a = (0. and Kahman [10]. and ∆sca. and N bar are obtained. 1/2).

1. 1). N bar and N ars from N rst cas a c bat bar t b r Figure 8. and N cba are obtained.304 CHAPTER 8.3: Computing the nets N bat. 1/2. For this.4: Computing the net N cas from N ars We will now compute the net N cas from the net N ars. the net N cas is obtained. 1/2). we need the barycentric coordinates of c with respect to the reference triangle ∆bar which turns out to be (−1. we apply transposej to the net N bat to get the net N abt. transposek to N cba . Using the function subdecas3sa. which turns out to be (0. For this. we need the barycentric coordinates of c with respect to the triangle ∆ars. Using the function sdecas3. N car. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s a ars bat bar t b r s Figure 8. Finally. We can now compute the nets N cbr and N cba from the net N bar. the snet N cbr. and we throw away N car.

Thus. N crb is green. ∆crb. N bac is red.1. Remark: For debugging purposes. transposej followed by transposek to the net N cbr to get the net N crb. and ∆sca to get the net N bac. N crb. N bac.6: Subdividing ∆rst into ∆abt. The subdivision algorithm just presented is implemented in Mathematica as follows. In fact. ∆bac. N abt is blue. and N sca. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s 305 cas a cba bat cbr c t b r s Figure 8. and N sca is yellow. N bac. and we found that they formed a particularly nice pattern under this ordering of the vertices of the triangles. we obtained the nets N abt. using four calls to the de Casteljau algorithm.8. we assigned diﬀerent colors to the patches corresponding to N abt. and N sca. . and transposek twice to N cas to get the net N sca.5: Computing the nets N cbr and N cba from N bar sca a bac abt crb c t b r Figure 8. N crb.

m]. by dividing the base triangle into four subtriangles using the middles of the original sides uses a tricky scheme involving 4 de Casteljau steps basic version that does not try to resolve singularities The triangles are abt. m. ars = newnet[[3]]. debug_] := Block[ {cc = {net}. barcor2}. stop = 1. newnet = sdecas3[cc. ll. 1/2}. (* Print[" calling mainsubdecas4 with netsize = ". stop = 0. (* (* (* (* (* Subdivides into four subpatches. 1}. ars. stop.1. newnet = nsubdecas4[art. (* (* (* (* Subdivides into four subpatches. While[i <= s && stop === 1. debug]. i = 1. *) barcor1 = {-1.306 CHAPTER 8. i = i + 1. newnet ) ]. s. newnet. m. by dividing the base triangle into four subtriangles using the middles of the original sides uses a tricky scheme involving 4 de Casteljau steps basic version that does not try to resolve singularities *) *) *) *) . ars. (m = netsize[cc]. art. art = newnet[[1]]. res = res + i] ]. sca. and crb *) *) *) *) *) mainsubdecas4[{net__}. bac. res ) ]. 1/2. res}. If[(res === ll). barcor2 = {0. res = 1. res = i . s = N[Sqrt[2 * ll]]. 1. i. m. barcor2]. (ll = Length[cc]. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES (* Computes the polar degree m associated with a net cnet of sixe (m + 1)*(m + 2)/2 *) netsize[cnet__] := Block[ {cc = cnet. oldm_.

1/2}. 1/2. m]. If[debug === -20. sca. bat = newnet[[1]]. m. barcor2 = {0. abt = transnetj[bat. m]. {net2__}. starting from a list consisting of a single control net net. 1.8. m]. 1}. cbr. m]. newnet = Join[newnet. The function rsubdiv4 shown below performs n recursive steps of subdivision. bat. barcor2].ars]]. bac = transnetk[cba. newnet = Join[{abt}. and crb *) 307 nsubdecas4[{net1__}. newnet = sdecas3[art. crb. m. Print["*** bar: ". sca = transnetk[cas. crb = transnetj[cbr. m]. m.1. *) barcor1 = {-1. bac. barcor2}. crb = transnetk[crb. bar. cas. If[debug === -20. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES (* The triangles are abt. ars = {net2}. cbr = newnet[[1]]. barcor2]. {crb}]. (m = netsize[art]. (* Print[" calling mainsubdecas4 with netsize = ". starting with an input control net net. in order to obtain a triangulation of the surface patch speciﬁed by the control net net. m]. sca = transnetk[sca. Using mainsubdecas4. oldm_. bac. {sca}]. cas = subdecas3sa[ars. art = {net1}.abt]]. sca. cba. The function itersub4 takes a list of nets and subdivides each net in this list into four subnets. newnet = sdecas3[bar. barcor1. debug_] := Block[ {newnet. newnet = Join[newnet. bar = newnet[[3]]. m.art]]. we can repeatedly subdivide the nets in a list of nets. Print["*** ars: ". cba = newnet[[3]]. Print["*** art: ". (* performs a subdivision step on each net in a list *) . barcor1].bar]]. {bac}]. m]. Print["*** abt: ". newnet ) ]. If[debug === -20. If[debug === -20.

debug_] := Block[ {newnet = {net}. debug]] . i. (l = Length[cnet]. This can be done in a number of ways. that is. to join the control points in a net by line segments. m.e. This is very crucial to understand complicated surfaces. n} ]. {i. i}. 2}.. i}. {i. 0. 1. it is necessary to triangulate each net. newnet ) ]. The best thing to do is to use the Polygon construct of Mathematica. m_. . 2}.e. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES *) (* using subdecas4. i. Do[ newnet = itersub4[newnet. splitting into four patches itersub4[{net__}.. where each net is a list of points. Indeed. The subdivision method is illustrated by the following example of a cubic patch speciﬁed by the control net net = {{0. ( newnet = {newnet}. lnet = {}. recursively splits into 4 patches *) rsubdiv4[{net__}. debug]. 0}. mainsubdecas4[cnet[[i]]. l. The function rsubdiv4 creates a list of nets. n_. {2. {6. {4. 0}. 0. lnet ) ]. l} ]. (* performs n subdivision steps using itersub4. debug_] := Block[ {cnet = {net}. m. 0. polygons are considered nontransparent. In order to render the surface patch. Do[ lnet = Join[lnet. m_.308 CHAPTER 8. It is also very easy to use the shading options of Mathematica. or color the polygons as desired. and is left as an exercise. 0. and the rendering algorithm automatically removes hidden parts. 1.

2}. {4. 0}. 4. 2. 5}. 0}}. {2. 1 iteration {1. Another example of a cubic patch speciﬁed by the control net sink is shown below. 2}. 4. 0}. 2. 6. sink = {{0.1. 0. {2. After only three subdivision steps. {3.7: Subdivision. 2. . 0. 0. 0. the triangulation approximates the surface patch very well. {6. 3. {3. 2}. 2}. {4.8. {5. 2}. 2. 2}. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 309 6 y 4 2 50 4 z 3 2 1 0 0 2 x 4 6 Figure 8. We show the output of the subdivision algorithm for n = 1.

310 CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES 6 y 4 2 50 4 z 3 2 1 0 0 2 x 4 6 Figure 8. 2 iterations .8: Subdivision.

3 iterations . SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 311 6 y 4 2 50 4 z 3 2 1 0 0 2 x 4 6 Figure 8.8.9: Subdivision.1.

we compute the control net N cab using subdecas3ta. µ2 . we compute the control net N bat using subdecas3sa. µ′ . µ1 . µ3. given a reference triangle ∆rst and a control net N over ∆rst. {3.312 CHAPTER 8. this is easily done using determinants by Cramer’s formulae (see Lang [47] or Strang [81]). and coordinates (λ′ . {4. 2}. c =λ3 r + µ3 s + ν3 t. we can compute the new control net N abc over the new reference triangle ∆abc. ν ′ ) with respect to ∆abc. {5. 2}. b. be the barycentric coordinates of a. 4. ν2 ). {3. {2. and (λ3 . using subdecas3ra. Let ∆rst and ∆abc be two reference triangles. 4. In this case. In the ﬁrst step. ν) of d with respect to ∆rst. This surface patch looks like a sink! Another pleasant application of the subdivision method is that it yields an eﬃcient method for computing a control net N abc over a new reference triangle ∆abc. and then the control net N abc over the reference triangle ∆abc. -8}. −1 ′ λ λ1 λ2 λ3 λ µ′ = µ1 µ2 µ3 µ ν ν1 ν2 ν3 ν′ . 2. using transnetk. we need to review how a change of reference triangle is performed. ν) with respect to ∆rst. Before discussing such an algorithm. 2. Such an algorithm is useful if we wish to render a surface patch over a bigger or diﬀerent reference triangle than the originally given one. In the second step. with respect to ∆rts. we easily get ′ λ λ1 λ2 λ3 λ µ = µ1 µ2 µ3 µ′ ν′ ν ν1 ν2 ν3 and thus. In the third step. Now. using three subdivision steps as explained below. ν3 ). since d = λr + µs + νt = λ′ a + µ′ b + ν ′ c and a =λ1 r + µ1 s + ν1 t. and then the control net N abt over the reference triangle ∆abt. ν1 ). 2}. µ′ . SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES {1. and let (λ1 . Given any arbitrary point d. 2. µ. 2}. the coordinates (λ′ . (λ2 . we compute the control net N ast over the reference triangle ∆ast. Thus. µ. c. from a control net N over an original reference triangle ∆rst. by inverting a matrix. using transnetj. if d has coordinates (λ. 0}}. b =λ2 r + µ2 s + ν2 t. ν ′ ) of d with respect to ∆abc can be computed from the coordinates (λ. 6.

3 iterations .8.10: Subdivision. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 313 1.1.5 1 z 0.5 0 2 x 4 60 2 6 4 y Figure 8.5 0 -0.

11: Case 1a: a ∈ st. In this case. ∆rst = ∆rat. In general. and implemented in Mathematica. / Compute N ast using subdecas3ra. First compute N art using transnetj. The function collin checks whether three points in the plane are collinear. We used the strategy explained below. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s b a t r Figure 8. and then N abc using transnetk. we need the coordinates of c with respect to the reference triangle ∆abt. as explained earlier. compute N tas from N ast using transnetk twice. Case 1: a ∈ st. Case 2a: s = a (and thus. compute N cab using subdecas3ta. / First. and then N abt using transnetj. compute N bat using subdecas3sa.314 CHAPTER 8. First. Case 1a: b ∈ at. and in the third step. Next. This can be easily done by inverting a matrix of order 3. b ∈ at / / Note that in the second step. a ∈ st). then compute N bas using subdecas3ra. some adaptations are needed. compute N abc using subdecas3ta. The implementation in Mathematica requires some auxiliary functions. and then N abs using transnetj. . Case 2b: a ∈ st and s = a. and then go back to case 1. we need the coordinates of b with respect to the reference triangle ∆ast. and b does not belong to at. and then go back to case 1. One should also observe that the above method is only correct if a does not belong to st. Case 1b: b ∈ at. Finally. Compute N ars using subdecas3ta.

SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 315 s a b t r Figure 8. s = a . b ∈ at / s a t r Figure 8.12: Case 1b: a ∈ st.13: Case 2b: a ∈ st.8.1.

dd. res}. dd = 10^(-10)]. b2 = b[[2]]. c.316 (* CHAPTER 8. res = 0]. .b3*d2 + c3*d3. res = 1. c2.a1). d1. b__. c__] := Block[ {a1. c1. b3. c2. a2. d2.a1)*(b2 . ( a1 = a[[1]]. c_. b2 = b[[2]]. d2. c1 = c[[1]]. c]/dd. (* (* Solves a 3 X 3 linear system *) Assuming a. b_. c3 = c[[3]].a2*c1. (* Computes a 3 X 3 determinant *) det3[a_. b1 = b[[1]]. c1. x1. c2 = c[[2]]. x2. c1 = c[[1]]. c_] := Block[ {a1. b. res}. d are column vectors *) solve3[a_.b2*c1. b1. b_. d_] := Block[ {a1. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES checks for collinearity of three points in the plane *) collin[a__. d3 = a1*b2 . The function solve3 solves a linear system of 3 equations in 3 variables. d2. a3. res ) ]. res ]. a3 = a[[3]]. d1. d1 = (c1 . c3. d2 = (c2 .a2)*(b1 . b1.a2). d3. d1 = b1*c2 . c2 = c[[2]]. b3. || dd === 0. c1. a2. a2 = a[[2]]. If[d1 === d2. res = a3*d1 . a3. b. a1 = a[[1]]. d2 = a1*c2 . c]. (dd = det3[a. b1 = b[[1]]. c2. b3 = b[[3]]. res}. x3. b1. a2 = a[[2]]. c3.a2*b1. b2. d3. d1. b. x1 = det3[d. It uses the function det3 computing a 3 × 3 determinant. If[dd === 0. Print["*** Null Determinant ***"]. b2. a2. b2.

SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES x2 = det3[a. m. a]. t). s. x2.t (a.t (r. s. (* In this case. t) *) newnet = fnewaux[neta. c) using subdecas3ta and transnetk The other cases are also treated The function returns the net (a. a. b. d]/dd. b.r. (* In this case. The function newcnet3 uses the auxiliary function fnewaux. b. the algorithm first computes the control net w. s. a is not on (s. t) *) (* Print[" a NOT on (s. tt}. given barycentric coords for new reference triangle (a. nb. t) using subdecas3sa and transnetj. (* Now. from a net N over the triangle ∆rts. b. tt]. 0. then the control net w. a is on (s. b = newtrig[[2]]. c]/dd. m_. t) "]. newnet. a = newtrig[[1]]. c) *) *) *) *) *) *) *) *) *) *) *) newcnet3[{net__}. c = newtrig[[3]]. c. t) In the simplest case where a. 1}. m. neta. s. t) *) (* Print[" a IS on (s. nc. b. c. tt = {0. x3 = det3[a.r. (* In this case. (* (* (* (* (* (* (* (* (* (* (* computes new control net. and the control net w. c) w. the net is (a. ss. t). *) neta = subdecas3ra[cc. 1. {reftrig__}] := Block[ {cc = {net}. t) "]. a. newtrig = {reftrig}. 0. ss. t) *) . Want (a. t are not collinear and b is not on (a. netb.8. d. ss. t) using subdecas3ra. 0}.t (a. res = {x1. b. Want (a. the function newcnet3 computes a new net N abc over the triangle ∆rts. (newnet = {}. b. *) If[a === ss.1. s. 0}. rr = {1.r. t) and a = s. a is on (s. x3}.r. tt] === 0. res ) ]. rr.t (a. ss = {0. If[collin[a. r. 317 Finally.

*) neta = transnetk[neta. m]. ( If[collin[b. (* Now. netb = transnetj[netb. b_. b. ss. (* Now. rr. m]. *) neta = subdecas3ta[cc. t) and a = ss"]. *) neta = transnetj[cc. s) *) nb = solve3[tt. a. t) *) nc = solve3[a. b]. s) *) newnet = fnewaux[neta. neta = (a. t). t) is (t. t) "]. (* Now. r. m. t). a]. Want (a. tt_] := Block[ {neta = {net}. nb]. newnet. Want (a. netb. ] ]. t) "]. nc}. a. (* Now. s. the net (a. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES (* Print[" a on (s. a. b. m. the net is (a. netb = subdecas3sa[neta. m. t) *) (* Print[" b NOT on (a. t) and a <> ss"]. t) *) newnet = fnewaux[neta. m. newnet ) ]. ss_. newnet = transnetk[newnet. ss]. (* This routine is used by newcnet3 (* Initially. netb = subdecas3ra[neta. s) *) . b. r. the net is (a. c_. (* In this case. c. c]. newnet = subdecas3ta[netb. a_. (* In this case.t) *) *) fnewaux[{net__}. ss. m].s. tt. (* Now. netb = transnetj[netb.318 CHAPTER 8. a is on (s. neta = transnetk[neta. s) *) (* Print[" a on (s. m]. rr. tt]. m]. b. c. m]. a. a. (* In this case. the net is (a. m_. b]. tt. b is on (a. b. m. r. nb. the net is (a. Want (a. s) *) (* Print[" b IS on (a. tt] === 0. m. b is not on (a. nb]. t) and a <> s. nc]. *) nb = solve3[a. b. b.

z = u3 − 3uv 2. m. 0}. -1}. 1. 1}}. b. where r = (1. {0. . 0. 0). −1. 1/3. 2/3. Note that z is the real part of the complex number (u + iv)3 . {1/3. 0}. 1/3. 1). . {2/3. 1/3. 0}. newnet = subdecas3ta[netb. 1). {2/3. 0. monknet = {{0. s = (0. −1. . m] ]. . 319 As an example of the use of the above functions. y = v. 0}. {0. (−1. 2/3. b). {1. 0. . . 0}. It is easily shown that the monkey saddle is speciﬁed by the following triangular control net monknet over the standard reference triangle ∆rst. 0). (1. we get the following picture. −1)) and ref trig2 = ((1. 0.8. 0}. {0. Another nice application of the subdivision algorithms is an eﬃcient method for computing the control points of a curve on a triangular surface patch. c]. −1). newnet = transnetk[newnet. ss. What we need is to compute the control points di = f (a. where the curve is the image of a line in the parameter plane. 1. 0}. {1/3. (1. we can display a portion of a well known surface known as the “monkey saddle”. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES nc = solve3[a. nc]. b. and then subdividing both nets 3 times. 3). We used the triangles ref trig1 = ((−1. Using newcnet3 twice to get some new nets net1 and net2. speciﬁed by two points a and b. {1/3. 0}. a. . 3)) with newcnet3. 1.1. and t = (0. . 1). 1. newnet ) ]. deﬁned by the equations x = u. (−1. m−i i . 0. 1. −1. 0.

320 CHAPTER 8.14: A monkey saddle.5 -1 2 -1 1 0. triangular subdivision . SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES y 0 -0.5 x -0.5 1 1 z 0 -1 -2 Figure 8.5 0 0.

and the control points (d0 . since r ∈ ab. assuming the usual representation of a triangular net as the list of rows bi. . we simply have to compute N rba using newcnet3. b). . 0 . / In this case. bi. assuming that the surface is deﬁned by some net N over the reference triangle ∆rts.8. / We compute N rba using newcnet3. 1. but there is a much faster method. m−i. we must have t ∈ ab. . Case 2b: r ∈ ab and a ∈ rt. .1. / The corresponding Mathematica program is given below. . We could compute these polar values directly. Indeed. . bi. and we compute N tba using newcnet3. dm ) are simply the bottom row of the net N rba. . Case 1: r ∈ ab. we have the following cases. . 0.15: Case 1: r ∈ ab / where m is the degree of the surface. m−i . More precisely. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s b 321 t r a Figure 8. if r does not belong to the line (a. . Case 2a: r ∈ ab and a ∈ rt. m−i−1 . We compute N sba using newcnet3.

SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s t a r b Figure 8.322 CHAPTER 8.16: Case 2a: r ∈ ab and a ∈ rt s b t r a Figure 8.17: Case 2b: r ∈ ab and a ∈ rt / .

aa. . a_. {i. trigr = {r. trigr. . p−i i q−j j Unlike subdividing triangular patches. . it is easy to render a triangular patch by rendering a number of u-curves and v-curves. m. s. Given two aﬃne frames (r 1 . Using the function curvcpoly. recall that in terms of the polar form f : (A)p × (A)q → E of the bipolynomial surface F : A × A → E of degree p. r 1 . . net1[[i]]]. q deﬁned by N . b. Indeed. j )(i. with end points a. a2. m_.bb.j)∈ p. m. a3) and b = (b1. t = {0. . net1 = newcnet3[cc. r. If[collin[aa. . 1}. j) ∈ p. m. . . r 2 . aa}. .q . b3) in the parameter plane. b_] := Block[ {cc = {net}. . res. bb}. s2 ) for the aﬃne line A. t. trigr]. 1. . it is possible to subdivide a rectangular control net N in two ways. s2 . Do[ res = Append[res. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES (* (* (* (* (* computes a control net for a curve on the surface. bb = b. (r = {1. bb. 0}. net1 = newcnet3[cc. res = {}. 8. we have bi. . . . bb. net1. 0}.q .8. s2 ).r] === 0.2.t. If[collin[aa. trigt = {t. 1. net1 = newcnet3[cc. s1 . i. 1]. wrt the reference triangle (r. aa}. 0. m + 1} ]. trigt] ] ]. trigs. for every (i. trigt. subdividing rectangular patches is quite simple. s1 ) and (r2 . s1 . . aa}. t) We use newcnet3 to get the control points of the *) curve segment defined over [0. j = f (r1 . The ﬁrst way is . aa = a. trigs]. given a rectangular control net N = (bi. res ) ]. bb.r] === 1. . s. *) given two points a = (a1.2 Subdivision Algorithms for Rectangular Patches We now consider algorithms for approximating rectangular patches using recursive subdivision. trigs = {s. b2. 323 *) *) *) curvcpoly[{net__}. 0. s = {0. r2 .

This can be achieved in q + 1 calls to the version of the de Casteljau algorithm performing subdivision (in the case of curves). N [r1 . s2]. . s1 . . r 1 . r1 . . with net[i. j = f (r1 . j = f (r1 . . This can be achieved in p + 1 calls to the version of the de Casteljau algorithm performing subdivision (in the case of curves). s2]i. . r 2 . 1 . s1 ] × [r2 . . s1 . s1. . and N [u. . v.q . u. . p−i i q−j j with 0 ≤ i ≤ p. . . . SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES to compute the two nets N [r1 . v). s1 . and 0 ≤ j ≤ q. r2 . N [u. v. . This algorithm has been implemented in Mathematica as the function vrecdecas. . . as the list of p + 1 rows bi. v. v]. . v] and N [∗. r 2 . . . u. s1. ∗]i. . . . This algorithm has been implemented in Mathematica as the function urecdecas. . . r2 . we can subdivide the net N into four subnets N [r1 . . The second way is to compute the two nets N [∗. . . and then by splitting each of these two nets using urecdecas. . . This has the advantage that we can view N as a rectangular array net. for any u. v . s2 ). s2]. v). . s2 ]. using the function vrecdecas. The four nets have the common corner F (u. given an input net N over [r1 . . v] and N [∗. s1 . s2 . . j = f (u. and 0 ≤ j ≤ q. . r1 . r2 . (* To make a rectangular net of degree (p. r2. s1 . where N [∗. s1 . u. . . . p−i i q−j j with 0 ≤ i ≤ p. bi. q . s1. . . u. and 0 ≤ j ≤ q. . j . . . . s2 . s2]. u. ∗]i. r2 . . . q) from a list of length (p + 1)x(q + 1) *) . j] = bi. . . v]i. s1 . v. . where 0 ≤ i ≤ p. ∗].324 CHAPTER 8. . v. s2]. u. . v]. . Then. The function makerecnet converts an input net into such a two dimensional array. we represent a rectangular control net N = (bi. . . r2. . . . s2 . . s2 ). j )(i. p−i i q−j j with 0 ≤ i ≤ p. In order to implement these algorithms. . p−i i q−j j with 0 ≤ i ≤ p. u. v ∈ A. . r2 . where N [r1. 0 . j = f (r 1 . r2 . v. . and N [∗. . bi. . . r2 . ∗] and N [u. .j)∈ p. by ﬁrst subdviding N into N [∗. s2 ). . N [u. . and 0 ≤ j ≤ q. . . . . v.

Do[row = {}. p. pt. newnet = Append[newnet. row. vs2 s1 v 325 Figure 8.2. debug_] := Block[ {net = {oldnet}. {i. 0. temp. p} ].8. newnet = {}. q_] := Block[ {oldnet = {net}. which uses the functions vrecdecas and urecdecas. v_. is needed. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES us2 r1 s2 s1 s2 r1 u. r2 v s1 r2 us1 . Do[ pt = oldnet[[i*(q + 1) + j + 1]]. The subdivision algorithm is implemented in Mathematica by the function recdecas. newnet}. ". i. n = Length[oldnet]. q} ]. in recdecas"]. row = Append[row. newnet ]. newnet2. q. It turns out that an auxiliary function rectrans converting a matrix given as a list of columns into a linear list of rows. which performs the subdivision of a control polygon. n}.pt]. p_. vs2 r1 v r1 u. newnetb = {}. row]. . ". newnet1. (* (* De Casteljau algorithm with subdivision into four rectangular nets for a rectangular net of degree (p. these functions use the function subdecas. r1_. newnetb. newneta = {}. Print[" p = ". 0. j.18: Subdividing a rectangular patch makerecnet[{net__}. newneta. q = ". u_. q) *) *) recdecas[{oldnet__}. r2_. In turn. q_. s1_. r2 v r1 r2 ur2 uv us1 . s2_. p_. {j.

newneta = temp[[1]]. q. q). bistar = {}. Print[" bistar: ". q. newnet1 = urecdecas[newneta. s2. bistar. If[debug === 2. newnet]]. debug_] := Block[ {net = {oldnet}. Subdivision along the u-curves *) *) urecdecas[{oldnet__}. newnet2. newnet]]. q} ]. 0. If[debug === 2. newnet1 = Join[newnet1.326 CHAPTER 8. {newnet2}]. p. p. bistar = Append[bistar. {j. newnet2 = urecdecas[newnetb. newnet = Join[{newnet1}. newnet2]. temp. newnet2 = {}. u_. p. u. debug]. u]. s1_. newnet ]. newnet1 = {}. row1 = temp[[1]]. p_. newnetb = temp[[2]]. p} ]. bistar]]. row1. (* (* De Casteljau algorithm with subdivision into two rectangular nets for a rectangular net of degree (p. debug]. s1. temp = subdecas[bistar. r2. r1. {i. newnet}. row2 = {}. row2 = temp[[2]]. s1. s1. 0. newnet = Join[newnet1. row1 = {}. v. newnet2 = Join[newnet2. row2. row1 = {}. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES temp = vrecdecas[net. r1. newnet1 = rectrans[newnet1]. If[debug === 2. u. Print[" Subdivided nets: ". pt]. q. Print[" Subdivided nets: ". {row1}]. (* Converts a matrix given as a list of columns into a linear list of rows *) rectrans[{oldnet__}] := . newnet2 = rectrans[newnet2]. r1. pt. r1_. q_. Do[ pt = net[[(q + 1)*i + j + 1]]. newnet1. {row2}]. Do[ bistar = {}. newnet ]. row2 = {}. debug]. i. j.

8.2. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES Block[ {net = {oldnet}, i, j, pp, qq, row, pt, newnet}, row = {}; newnet = {}; qq = Length[net]; pp = Length[net[[1]]]; Do[ Do[ row = net[[j]]; pt = row[[i]]; newnet = Append[newnet, pt], {j, 1, qq} ], {i, 1, pp} ]; newnet ]; (* (* De Casteljau algorithm with subdivision into two rectangular nets for a rectangular net of degree (p, q). Subdivision along the v-curves *) *)

327

vrecdecas[{oldnet__}, p_, q_, r2_, s2_, v_, debug_] := Block[ {net = {oldnet}, i, j, temp, bstarj, row1, row2, pt, newneta, newnetb, newnet}, bistar = {}; row1 = {}; row2 = {}; newneta = {}; newnetb = {}; Do[ bstarj = {}; row1 = {}; row2 = {}; Do[ pt = net[[(q + 1)*i + j + 1]]; bstarj = Append[bstarj, pt], {j, 0, q} ]; If[debug === 2, Print[" bstarj: ", bstarj]]; temp = subdecas[bstarj, r2, s2, v]; row1 = temp[[1]]; row2 = temp[[2]]; newneta = Join[newneta, row1]; newnetb = Join[newnetb, row2], {i, 0, p} ]; newnet = Join[{newneta}, {newnetb}]; If[debug === 2, Print[" Subdivided nets: ", newnet]]; newnet ]; Given a rectangular net oldnet of degree (p, q), the function recpoldecas computes the polar value for argument lists u and v. This function calls the function bdecas that computes a point on a curve from a control polygon. (* Computation of a polar value for a rectangular net of

328

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES degree (p, q) *)

recpoldecas[{oldnet__}, p_, q_, r1_, s1_, r2_, s2_, u_, v_, debug_] := Block[ {net = {oldnet}, i, j, bistar, bstarj, pt, res}, bistar = {}; Do[ bstarj = {}; Do[ pt = net[[(q + 1)*i + j + 1]]; bstarj = Append[bstarj, pt], {j, 0, q} ]; If[debug === 2, Print[" bstarj: ", bstarj]]; pt = bdecas[bstarj, v, r2, s2]; bistar = Append[bistar, pt], {i, 0, p} ]; If[debug === 2, Print[" bistar: ", bistar]]; res = bdecas[bistar, u, r1, s1]; If[debug === 2, Print[" polar value: ", res]]; res ]; As in the case of triangular patches, using the function recdecas, starting from a list consisting of a single control net net, we can repeatedly subdivide the nets in a list of nets, in order to obtain an approximation of the surface patch speciﬁed by the control net net. The function recsubdiv4 shown below performs n recursive steps of subdivision, starting with an input control net net. The function recitersub4 takes a list of nets and subdivides each net in this list into four subnets. (* performs a subdivision step on each rectangular net in a list (* using recdecas4, i.e., splitting into four subpatches *) recitersub4[{net__}, Block[ {cnet = {net}, lnet (l = Length[cnet]; u Do[ lnet = Join[lnet, ]; lnet ) p_, q_, r1_, s1_, r2_, s2_, debug_] := = {}, l, i, u, v}, = 1/2; v = 1/2; recdecas[cnet[[i]], p, q, r1, s1, r2, s2, u, v, debug]] , {i, 1, l} *)

8.2. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES ]; (* performs n subdivision steps using recitersub4, i.e., splits (* a rectangular patch into 4 subpatches *) *)

329

recsubdiv4[{net__}, p_, q_, n_, debug_] := Block[ {newnet = {net}, i, r1, s1, r2, s2}, (r1 = 0; s1 = 1; r2 = 0; s2 = 1; newnet = {newnet}; Do[ newnet = recitersub4[newnet, p, q, r1, s1, r2, s2, debug], {i, 1, n} ]; newnet ) ]; The function recsubdiv4 returns a list of rectangular nets. In order to render the surface patch, it is necessary to link the nodes in each net. This is easily done, and is left as an exercise. The functions urecdecas and vrecdecas can also be used to compute the control net N [a, b; c, d] over new aﬃne bases [a, b] and [c, d], from a control net N over some aﬃne bases [r1 , s1 ] and [r2 , s2 ]. If d = r2 and b = r1 , we ﬁrst compute N [r1 , s1 ; r2 , d] using vrecdecas, then N [r1 , b; r2 , d] using urecdecas, and then N [r1 , b; c, d] using vrecdecas, and ﬁnally N [a, b; c, d] using urecdecas. It is easy to care of the cases where d = r2 or b = r1 , and such a program is implemented as follows. (* Computes a new rectangular net of degree (p, q) *) (* wrt to frames (a, b) and (c, d) on the affine line (* In the hat space recnewnet[{oldnet__}, p_, q_, a_, b_, c_, d_, debug_] := Block[ {net = {oldnet}, temp, newnet1, newnet2, newnet3, newnet4, rnet, r1, s1, r2, s2, ll, i}, r1 = 0; s1 = 1; r2 = 0; s2 = 1; newnet1 = {}; newnet2 = {}; newnet3 = {}; newnet4 = {}; If[d =!= r2, temp = vrecdecas[net, p, q, r2, s2, d, debug]; newnet1 = temp[[1]], newnet1 = net ];

*) *)

330

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

If[debug === 2, Print[" newnet1: ", newnet1]]; If[b =!= r1, temp = urecdecas[newnet1, p, q, r1, s1, b, debug]; newnet2 = temp[[1]], newnet2 = newnet1 ]; If[debug === 2, Print[" newnet2: ", newnet2]]; If[d =!= r2, temp = vrecdecas[newnet2, p, q, r2, d, c, debug]; newnet3 = temp[[2]], temp = vrecdecas[newnet2, p, q, r2, s2, c, debug]; newnet3 = temp[[1]] ]; If[debug === 2, Print[" newnet3: ", newnet3]]; If[b =!= r1, temp = urecdecas[newnet3, p, q, r1, b, a, debug]; newnet4 = temp[[2]], temp = urecdecas[newnet3, p, q, r1, s1, a, debug]; (* needs to reverse the net in this case *) rnet = temp[[1]]; newnet4 = {}; ll = Length[rnet]; Do[ newnet4 = Prepend[newnet4, rnet[[i]]], {i, 1, ll} ] ]; If[debug === 2, Print[" newnet4: ", newnet4]]; newnet4 ]; Let us go back to the example of the monkey saddle, to illustrate the use of the functions recsubdiv4 and recnewnet. It is easily shown that the monkey saddle is speciﬁed by the following rectangular control net of degree (3, 2) sqmonknet1, over [0, 1] × [0, 1]: sqmonknet1 = {{0, 0, 0}, {0, 1/2, 0}, {0, 1, 0}, {1/3, 0, 0}, {1/3, 1/2, 0}, {1/3, 1, -1}, {2/3, 0, 0}, {2/3, 1/2, 0}, {2/3, 1, -2}, {1, 0, 1}, {1, 1/2, 1}, {1, 1, -2}} Using recnewnet, we can compute a rectangular net sqmonknet over [−1, 1] × [−1, 1]: sqmonknet = {{-1, -1, 2}, {-1, 0, -4}, {-1, 1, 2}, {-1/3, -1, 2}, {-1/3, 0, 0}, {-1/3, 1, 2}, {1/3, -1, -2}, {1/3, 0, 0}, {1/3, 1, -2}, {1, -1, -2}, {1, 0, 4}, {1, 1, -2}} Finally, we show the output of the subdivision algorithm recsubdiv4, for n = 1, 2, 3. The advantage of rectangular nets is that we get the patch over [−1, 1] × [−1, 1] directly, as opposed to the union of two triangular patches.

8.2. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES

331

y 0 -0.5 -1 2

-1 1 0.5

x -0.5 0 0.5 1

1

z

0

-1

-2

Figure 8.19: A monkey saddle, rectangular subdivision, 1 iteration

332

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

y 0 -0.5 -1 2

-1 1 0.5

x -0.5 0 0.5 1

1

z

0

-1

-2

Figure 8.20: A monkey saddle, rectangular subdivision, 2 iterations

8.3. PROBLEMS

333

The ﬁnal picture (corresponding to 3 iterations) is basically as good as the triangulation shown earlier, and is obtained faster. Actually, it is possible to convert a triangular net of degree m into a rectangular net of degree (m, m), and conversely to convert a rectangular net of degree (p, q) into a triangular net of degree p + q, but we will postpone this until we deal with rational surfaces.

8.3

Problems

Problem 1 (10 pts). Let F : A2 → A3 be a bilinear map. Consider the rectangular net N = (bi, j ) of bidegree p, q deﬁned such that bi, j = F i j , p q

for all i, j, where 0 ≤ i ≤ p and 0 ≤ j ≤ q. Prove that the rectangular surface deﬁned by N is equal to F (we say that rectangular patches have bilinear precision). Problem 2 (20 pts). Give a method for recursively subdividing a triangular patch into four subpatches, using only three calls to the de Casteljau algorithm. Show the result of performing three levels of subdivision on the orginal reference triangle (r, s, t). Problem 3 (20 pts). Investigate the method for recursively subdividing a triangular patch into six subpatches, using four calls to the de Casteljau algorithm as follows: ﬁrst apply the subdivision version of the de Casteljau algorithm to the center of gravity of the reference triangle, and then to the middle of every side of the triangle. Show the result of performing three levels of subdivision on the orginal reference triangle (r, s, t). Problem 4 (40 pts). Implement your own version of the de Casteljau algorithm splitting a triangular patch into four triangles, as in section 8.1. Use your algorithm to draw the surface patch over [−1, 1] × [−1, 1] deﬁned by the following control net domenet3 = {{0, 0, 0}, {3/4, 3/2, 3/10}, {-1/4, -1/2, 3/10}, {1/2, 1, 0}, {3/2, 0, 3/10}, {1/2, 1/2, 1/2}, {5/4, -1/2, 3/10}, {-1/2, 0, 3/10}, {1/4, 3/2, 3/10}, {1, 0, 0}}; Problem 5 (40 pts). Implement your own version of the de Casteljau algorithm splitting a rectangular patch into four rectangles, as in section 8.2. Problem 6 (40 pts). Given a surface speciﬁed by a triangular net, implement a program drawing the u-curves and the v-curves of the patch over [a, b] × [c, d], using the function curvcpoly.

334

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

y 0 -0.5 -1 2

-1 1 0.5

x -0.5 0 0.5 1

1

z

0

-1

-2

Figure 8.21: A monkey saddle, rectangular subdivision, 3 iterations

8.3. PROBLEMS

335

Problem 7 (20 pts). Prove that any method for obtaining a regular subdivision into four subpatches using the standard de Casteljau algorithm requires at least 4 calls. Problem 8 (20 pts). Let F be a surface of total degree m deﬁned by a triangular control net N = (bi, j, k )(i,j,k)∈∆m , w.r.t. the aﬃne frame ∆rst. For any n points pi = ui r + vi s + wi t (where ui + vi + wi = 1), deﬁne the following (n + 2)-simplex of points bl1 ,...,ln where i + j + i,j,k k + l1 + . . . + ln = m, inductively as follows: b0,...,0 = bi,j,k , i,j,k

1 bi,j,k

l ,...,lh+1 ,...,ln

= uh bl1 ,...,lh ,...,ln + vh bl1 ,...,lh ,...,ln + wh bl1 ,...,lh ,...,ln , i,j,k+1 i,j+1,k i+1,j,k

where 1 ≤ h ≤ n.

**(i) If f is the polar form of F , prove that bl1 ,...,ln = f (r, . . . , r , s, . . . , s, t, . . . , t, p1 , . . . , p1 , . . . , pn , . . . , pn ). i,j,k
**

i j k l1 ln

(ii) For n = 0, show that F (p) = bn , as in the standard de Casteljau algorithm. 0,0,0 For n = 1, prove that (bl1 j, 0 )(i,j,l1 )∈∆m is a control net of F w.r.t. ∆rsp1 , (bl1 j, k )(j,k,l1)∈∆m i, 0, is a control net of F w.r.t. ∆stp1 , and (bl1 0, k )(i,k,l1 )∈∆m is a control net of F w.r.t. ∆trp1 . i, For n = 2, prove that (bl1 ,l20 )(i,l1 ,l2 )∈∆m is a control net of F w.r.t. ∆rp1 p2 , (bl1 ,l20 )(j,l1 ,l2 )∈∆m i, 0, 0, j, l1 ,l2 is a control net of F w.r.t. ∆sp1 p2 , and (b0, 0, k )(k,l1 ,l2 )∈∆m is a control net of F w.r.t. ∆tp1 p2 . For n = 3, prove that (bl1 ,l2 ,l3 )(l1 ,l2 ,l2 )∈∆m is a control net of F w.r.t. ∆p1 p2 p3 . 0, 0, 0 Problem 9 (20 pts). Given any two integers p, q ≥ 1, we deﬁne the rectangular grid as the grid consisting of all points of coordinates gi,j = i j , p q ,

p,q p,q

**where 0 ≤ i ≤ p and 0 ≤ j ≤ q. Prove that the rectangular patch G deﬁned by the property that
**

p q

satisﬁes

(x, y) =

i=0 j=0

q Bip (x)Bj (y) gi,j

for all (x, y) ∈ A , where

2

Bip

and

q Bj

are Bernstein polynomials. Given any rectangular net

**N = (bi,j )0≤i≤p, 0≤j≤q in A2 , we deﬁne the map from A2 to A2 as
**

p q q Bip (x)Bk (j) bi,j . i=0 j=0

(x, y) →

336

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

Show that this map behaves like a global deformation of the original rectangular grid p,q . Show how to use such maps to globally deform a B´zier curve speciﬁed by its control points e (c0 , . . . , cm ) (where each ci is inside the grid deﬁned by p,q ).

we will ﬁrst consider parametric continuity. n meeting with C n−1 continuity. In the case of a curve. ﬁnding such a scheme is still an open problem.Chapter 9 Polynomial Spline Surfaces and Subdivision Surfaces 9. Next. we will ﬁnd that C n continuity is only possible if m ≥ 2n + 2. there is a tremendous variety of ways of doing so. we will restrict our attention to subdivisions of the plane into convex polygons. We will discover that C n continuity is only possible if 2m ≥ 3n + 2. and where the initial control polyhedron consists 337 . This time. Subdivision surfaces provide an attractive alternative to spline surfaces in modeling applications where the topology of surfaces is rather complex. we will take a closer look at spline surfaces of degree m based on a triangular subdivision of the plane. but unfortunately. we will not be able to propose a nice scheme involving control points. We will then consider spline surfaces of degree m based on a rectangular subdivision of the plane. and to view the curve as the result of joining curve segments deﬁned over these intervals. this is far more subtle than it is for curves.1 Joining Polynomial Surfaces We now attempt to generalize the idea of splines to polynomial surfaces. we will see that there is a nice scheme involving de Boor control points.4). in the case of a surface. This is not quite as good as in the triangular case. we will basically only consider subdivisions made of rectangles or of (equilateral) triangles. We also need to decide what kind of continuity we want to enforce. However. where the edges are line segments. We will ﬁnd necessary conditions on spline surfaces of degree m = 3n + 1 to meet with C 2n continuity. and the only reasonable choice is to divide the aﬃne line into intervals. Thus. the parameter space is the aﬃne plane P. To the best of our knowledge. As we shall see. First. As in the case of curves. the parameter space is the aﬃne line A. but on the positive side. we will ﬁnd necessary and suﬃcient conditions on polar forms for two surface patches to meet with C n continuity. for bipolynomial splines of bidegree n. in the line of de Boor control points. We conlude this chapter with a section on subdivision surfaces (Section 9. In fact. and even if we just want to subdivide the plane into convex regions.

iﬀ fA (u1 . FA and FB join with C k continuity along (r. s) iﬀ their polar forms fA : P m → E and fB : P m → E agree on all multisets of points that contain at least m − k points on the line (r. s ∈ P are distinct vertices of A and B). . Geri. It is also easier to deal with bipolynomial surfaces than total degree surfaces. that is. a). . s). . a. . uk ∈ P.5 tells us that for any a ∈ (r. . . notably. . . . A number of spectacular applications of subdivision surfaces can be found in the 1998 SIGGRAPH Conference Proceedings. . .338CHAPTER 9. iﬀ FA and FB agree to kth order for all a ∈ (r. we restrict our attention to total degree polynomial surfaces. s). and let (r. .1 that we say that F and G agree to kth order at a. uk . and Charles Loop [50]. and we concentrate on the more diﬃcult case. In this section. a computer model of a character from the short movie Geri’s game. . since it is always possible to convert a rectangular net to a triangular net. 29. . Dui F (a) = Du1 . where 0 ≤ i ≤ k. for all u1 . . ak+1 . that is. am ) = fB (u1 . m−k m−k for all u1. Subdivision schemes typically produce surfaces with at least C 1 -continuity. This is not a real restriction. . . recall from section 11. except for a ﬁnite number of so-called extraordinary points. in the limit. Recall that lemma B. iﬀ Du1 . Dui G(a). Given two polynomial surfaces FA and FB of degree m. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES of various kinds of faces. for any point a ∈ P. . iﬀ fA (u1 . . . s) be the line segment along which they are adjacent (where r. yields a smooth surface (or solid). we can prove the following crucial lemma. → → for all −1 . where it is tangent plane continuous. . . Lemma 9. . Catmull and Clark [17]. . . u u Deﬁnition 9. . . . . uk ∈ P. FA and FB join with C k continuity along (r. Given two polynomial surface FA and FB of degree m. a. s). We discuss Loop’s convergence proof in some detail. . . . and to apply recursively a subdivision scheme. uk . uk . Let A and B be two adjacent convex polygons in the plane. and all ak+1 . and for this. . . ak+1. s ∈ P are distinct vertices of A and B). uk . . We present three subdivision schemes due to Doo and Sabin [27. . Given two polynomial surface F and G of degree m. we give a crash course on discrete Fourier transforms and (circular) discrete convolutions. . . FA and FB agree to kth order at a iﬀ their polar forms fA : P m → E and fB : P m → E agree on all multisets of points that contain at least m − k copies of a. . −i ∈ R2 . . and let (r. .1. .1. 28]. . . Using this fact. . a) = fB (u1 . . . . which.4. . . not just triangles or rectangles. . s). . s) be the line segment along which they are adjacent (where r. am ).1.2. am ∈ (r. s). . The idea is to start with a rough polyhedron speciﬁed by a mesh (a collection of points and edges connected so that it deﬁnes the boundary of a polyhedron). Let A and B be two adjacent convex polygons in the plane.

Because this holds for all u1 . . . . . am ). . However. uk ∈ P. uk .9. l such that i + j + k + l = m. . ak+1 . . . . . . we have shown that fA (u1 .1. . . j. For n = 0. . . uk ) and fB (u1 . . . ak+1. sharing the edge (r. . . and all ak+1 . lemma 9.2 tells us that FA and FB join with C n continuity along (r. . a) m−k as aﬃne polynomial functions FA (u1 .1: Two adjacent reference triangles Proof. k. . . uk . a). . for every a ∈ (r. FA and FB agree to kth order at a iﬀ fA (u1 . . . uk ∈ P. a. . . . . s). a) = fB (u1 . . for all u1. As a consequence of lemma 9. . uk . . . . As we just said. . s). . lemma 4. . .1. . s). . . we just have fA (r k sm−k ) = fB (r k sm−k ). s). am ) = fB (u1 . uk ) agree for all points ak+1 . uk . Let A = ∆prs and B = ∆qrs be two reference triangles in the plane. . . we obtain the necessary and suﬃcient conditions on control nets for FA and FB for having C n continuity along (r. uk ). . . . . am ∈ (r. m−k m−k for all u1. . am ∈ (r. . uk . . . for all i. . JOINING POLYNOMIAL SURFACES s 339 p A B q r Figure 9. . . . . a. . . s). . . . . . . . Then. . . as desired. a. uk . . .4. . . . . . . a) m−k and a → fB (u1 . . s). .1. . a. if we consider a → fA (u1 . then the corresponding polar forms fA (u1 . .2. and k + l ≥ m − n (0 ≤ n ≤ m).1 shows that if these functions agree on all points in (r. . . . uk ) and FB (u1. s) iﬀ fA (pi q j r k sl ) = fB (pi q j r k sl ). uk ∈ P. . . .

(fA. r). r).B (s. fA (p. but this is not enough to ensure C 1 continuity. s). note that these polar values naturally form the vertices of three diamonds. r. r). s). r. Let us now consider C 2 continuity. s). r. s. s) = fB (s. q. (fA.B (·. r. r. 2. s). fA (q. r. q.B (r. the vertices of each of these diamonds must be coplanar. . ·). r. p. fA (q. s) = fB (r. r. The above conditions are depicted in the following diagram: We can view this diagram as three pairs of overlaping de Casteljau diagrams each with one shell.B (p. s. r) = fB (r. fA (p. s. (fA.B (q.B (q. s) = fB (p.B (s. q.340CHAPTER 9.B (r. r). r). fA (r. s. q. r. r. s) = fB (p. fA (q. s. s) = fB (p. r. fA. images of the diamond (p. r). fA (q. p.e.B (p. s) must agree. s). r). s). p. r) = fB (q. r. s) = fB (q. s. r) = fB (p. fA (p. s) = fB (q. fA. s). q. s) = fB (q. 3. fA. For C 1 continuity. r) = fB (q. r. fA (q. fA (r. fA (p. s). n = 2.B (p. r)). r. r). In particular. p.B (s. s). r. In addition to the 10 constraints necessary for C 1 continuity. q. q. s. s). the following 10 polar values must agree: fA (r. fA. r) = fB (p. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES with 0 ≤ k ≤ m. s) = fB (r. q. r. fA (p. the two surfaces join along this curve! Let us now see what the continuity conditions mean for m = 3 and n = 1. i. This is natural. s)). r. fA. r). s). fA. fA.B (q. s). we have 6 additional equations among polar values: fA (p. Denoting these common polar values as fA. s)). r. fA (s. s. s). fA. which means that the control points of the boundary curves along (r. r. fA (p. s. s. r) = fB (p. s). ·.. r.B (r. s). s. s). fA. s) = fB (p. q. s. s). r.

s) fA.B (r. r) fA (p.B (r.B (q.B (r. r) fB (q. s) fA. s) fA. s) fA.B (p.1. r. s) fA. s) fA. q) fA (p. q. r) fB (q. r.B (q. p. p) Figure 9.B (p. p.2: Control nets of cubic surfaces joining with C 1 continuity . r. JOINING POLYNOMIAL SURFACES 341 fA. s) fA. q. r. p.B (p. s. r. s) fB (q. r.B (s. s) fA. q. s.9. s. r) fA. r) fA (p. s.B (q.

p. fA. the left two diamonds are (fA.B (q.B (p. ·). r) = fB (p.B (s. q.B (·. p. q. r). s). p. r)). p) Figure 9.342CHAPTER 9.B (s. s) fA. p. s). fA.B (p. q. note that these polar values naturally form the vertices of four diamonds. the vertices of each of these diamonds must be coplanar. p. fA. q. r).B (p. . r) fB (q. p. q. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES fA.B (p. r) and fA (p. (fA. images of the diamond (p. denoting these common polar values as fA. q. p. In particular.B (r. s)). The above conditions are depicted in the following diagram: We can view this diagram as two pairs of overlaping de Casteljau diagrams each with two shells. r) fA. q. s) = fB (p. but this is not enough to ensure C 2 continuity. For example.3: Control nets of cubic surfaces joining with C 2 continuity Again. Note that the polar values fA (p. fA. r.B (r.B (q.B (p. fA. s) are not control points of the original nets. r). s) fA. fA. r) fA. p. p. p. p. s). q. ·. s).B (q. q) fA (p. q.B (q.B (p. s) fA. q.

n = 3. This means that given any four . we study what happens with the continuity conditions between surface patches. each with n shells. In the case of surfaces. The diﬃculty is that even though A and D join with C n continuity along (s. which means that changing some control points in a small area does not aﬀect the entire spline curve. if fC and fD are known. which means that fA = fB . First. We now investigate the realizability of the continuity conditions in the two cases where the parameter plane is subdivided into rectangles.4: Constraints on triangular patches Finally. the situation is not as pleasant.1. Surface splines consisting of triangular patches of degree m ≥ 1 joining with C n continuity cannot be locally ﬂexible if 2m ≤ 3n + 1.2. there is no reference triangle containing all of these three edges! Lemma 9. we will prove that if 2m ≤ 3n + 1. t).. For simplicity.2. or triangles. spline curves have local ﬂexibility. The proof is more complicated than it might appear. and B and C join with C n continuity along (s. 9. all the control points agree. if the parameter plane is divided into equilateral triangles. Also. given any 4 adjacent patches as shown in the ﬁgure below. i. In general. then it is generally impossible to construct a spline surface. We assume that the parameter plane has its natural euclidean structure. In the case of spline curves. A and B join with C n continuity along (s.2 Spline Surfaces with Triangular Patches In this section. then fA and fB are completely determined. we will consider surface patches of degree m joining with the same degree of continuity n for all common edges. q). p).9. C n continuity is ensured by the overlaping of m − n + 1 pairs of de Casteljau diagrams.e. More precisely. recall that it was possible to achieve C m−1 continuity with curve segments of degree m. in the case of C 3 continuity. SPLINE SURFACES WITH TRIANGULAR PATCHES p t B 343 C A q D s Figure 9.

POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES adjacent patches D. then fA and fB are completely determined. Proof. and i + j + k + l = m. If we can show that the polar values for FA and FB are completely determined when n = 2h and m = 3h. which are the worse cases.e.2.1. and fA (si tj pk q l ) = fB (si tj pk q l ). If n = 2h. when 2m = 3n + 2. using the identity p + q = s + t. B. note that (p. for all k + l ≤ n. If n = 2h + 1. p + q = s + t. p). Indeed. we get fA (si tj pk q l ) = fB (si tj pk q l ). This is an equation relating some aﬃne combination of polar values from a triangular net of (k+1)(k+2) polar values associated with A and some 2 aﬃne combination of polar values from a triangular net of (l+1)(l+2) polar values associated 2 with B. Similarly. fA (si tj pk q l ) is determined for all j + k ≤ n. Recall that these conditions are fA (si tj pk q l ) = fB (si tj pk q l ) for all k + l ≤ n. q) and (s. by lemma 9. where i + j + l = m in the ﬁrst case. which implies m ≤ 3h + 2. Replacing p by s + t − q on the left-hand side and q by s + t − p on the right-hand side. we will be done. fA (si tj pk q l ) = fD (si tj pk q l ). which implies that m ≤ 3h. Since D and A meet with C n continuity along (s. fB (si tj pk q l ) is determined for all j + l ≤ n. Furthermore. or when n = 2h + 1 and m = 3h + 2. but we haven’t yet taken advantage of the symmetries of the situation. A. there is at most one free control point for every two internal adjacent patches. C as in the previous ﬁgure. and fB (si tj pk q l ) = fC (si tj pk q l ). In summary. for all k + l ≤ n. t) have the same middle point. The idea is to show that the two control nets of polar values fA (si tj q l ) and fB (si tj pk ) are completely determined. t). i. A similar rewriting of the C n -continuity equations between A and D and between C . we get (−1)i3 i1 +i2 +i3 =k k! fA (si+i1 tj+i2 q l+i3 ) = i1 !i2 !i3 ! j (−1)j3 1 +j2 +j3 =l l! fB (si+j1 tj+j2 pk+j3 ). since A and B join with C n continuity along (s. for all j + k ≤ n (where i + j + k + l = m). q). and i + j + k = m in the second case. the condition 2m ≤ 3n + 1 becomes 2m ≤ 6h + 4. We will ﬁrst reformulate the C n -continuity conditions between A and B. j1 !j2 !j3 ! where k + l ≤ n. the condition 2m ≤ 3n + 1 becomes 2m ≤ 6h + 1. for all j + l ≤ n (where i + j + k + l = m). These conditions do not seem to be suﬃcient to show that fA and fB are completely determined. if fD and fC are known. and B and C join with C n continuity along (s.344CHAPTER 9.

w). the computation of the h polar values on the edge (v.5. p2 . y) and the polar values of the form fB (sm−j−k tj pk ) are located in the trapezoid (s.9. v. x. w) being analogous.5). q1 . the polar values in the diamond (t. v. p. observe that in the equation (−1)i3 i1 +i2 +i3 =h+1 (h + 1)! fA (si1 th+1+i2 q h+i3 ) = i1 !i2 !i3 ! (−1)j3 j1 +j2 +j3 =h h! fB (sj1 th+1+j2 ph+1+j3 ). the polar values associated with A and B that are not already determined are contained in the diamond (t. v). the polar values of the form fA (sm−j−l tj q l ) are located in the trapezoid (s. and (v. u. v) can be computed. We explain how the h + 1 polar values on the edge (u. and that the polar values fB (sm−j−k tj pk ) are known for 0 ≤ k ≤ m − j and 0 ≤ j ≤ n. y). On ﬁgure 9. w). z. v. If n = 2h + 1 and m = 3h + 2. .5: Determining polar values in A and B and B shows that the polar values fA (sm−j−l tj q l ) are known for 0 ≤ l ≤ m−j and 0 ≤ j ≤ n. l = h. the polar values associated with A and B that are not already determined are also contained in the diamond (t. u. w) can be determined inductively from right to left and from bottom up (referring to ﬁgure 9. i = 0. v. The proof proceeds by induction on h.2. w) contains (h + 1)2 polar values. If n = 2h and m = 3h. and there are (m − n)2 = (h + 1)2 such polar values. since fA (si tj ) = fB (si tj ) along (s. w. q2 . and j = h + 1. u. In either case. we consider the case where n = 2h + 1 and m = 3h + 2. namely fA (t2h+2 q h ). Assume inductively that the h2 polar values inside the diamond (t. w) and not on (u. u. j1 !j2 !j3 ! the only undetermined polar value is the one associated with u. When k = h + 1. s) and (s. so that the diamond (t. v. t) (where i + j = m). w) can be computed from the other polar values inside (s. s). q. u. First. v. v. and there are (m − n)2 = h2 such polar values. p1 . SPLINE SURFACES WITH TRIANGULAR PATCHES p p2 z w t 345 v p1 y u x q2 B A q1 q s Figure 9. u.

we get a strictly smaller diamond of h2 polar values contained in (t. if 0 ≤ l1 ≤ h. note that C n -continuity was only needed to compute the polar values associated with u and w. we attempt to understand better what are the constraints on triangular patches when n = 2N and m = 3N + 1. Such a method using convolutions is described by Ramshaw [65]. p2 . q1 . y. for any vector − ∈ R2 . Knowing that we must have 2m ≥ 3n + 2 to have local ﬂexibility. s) and (s. When 2m = 3n + 2. where 1 ≤ l1 ≤ h. q2 . q1 . fA (t2h+2 q h ) can be computed. v. This time. w). and that once they are determined. this argument uses C 2h continuity between A and D and between B and C. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES since all the other polar values involved in this equation are inside (s. the problem remains to actually ﬁnd a method for contructing spline surfaces when 2m = 3n + 2. both polar values fA (t2h+1 q h ) and fB (t2h+1 ph ) are undetermined. 2 In both cases. We now consider the case n = 2h and m = 3h. u. y. the argument for the previous case can be used. u. all the other polar values in the diamond (t. j1 !j2 !j3 ! since all the other polar values involved are inside (s. l = l1 . but only C 2h−1 -continuity between A and B. the polar value fA (sh−l1 t2h+2 q l1 ) along (u. and thus there is at most one degree of freedom for both patches FA and FB . w) can be computed using only C n−1 -continuity constraints. v.346CHAPTER 9. w) contains h polar values. and we use the induction hypothesis to compute these polar values. After a similar computation to determine the polar values fB (sh−l1 t2h+2 pl1 ). s). y. i = h − l1 . q2 . The key is to look at “derived surfaces”. but it is not practical. Instead of presenting this method. the polar value associated with u is fA (t2h+1 q h−1 ) and the polar value associated with w is fB (t2h+1 ph−1 ). s) and (s. Thus. p1 . and j = 2h + 1 − l1 . → Given a polynomial surface F : P → E of degree m. v) can be computed from the equation obtained by letting k = l1 + 1. so that the diamond (t. z. (−1)i3 i1 +i2 +i3 =l1 +1 (l1 + 1)! fA (sh−l1 +i1 t2h+1−l1 +i2 q l1 +i3 ) = i1 !i2 !i3 ! (−1)j3 j1 +j2 +j3 =l1 l1 ! fB (sh−l1 +j1 t2h+1−l1 +j2 pl1 +1+j3 ). Again. the map u − → → Du F : P → E deﬁned by the directional derivative of F in the ﬁxed direction − . Thus. p1 . x. y. but there is an equation relating them. u. p2 . v. Generally. z. which implies that n = 2h and m = 3h + 1. to ﬁnd any reasonable scheme to constuct triangular spline surfaces. s). and thus. is a u . the proof proceeds by induction on h. and in fact. x.

and if − ∈ R2 is parallel to L. β .9. Dun G meet with C 0 conti→ nuity along L. and if − is parallel to L. parallel to the three directions of the edges of triangles in the α γ → → − → → − triangular grid. Dun Du G meet with C 0 continuity.2. we can compute Du F (a) by evaluating F at a and at points near a on L. Since the various directional derivatives commute. β . . . .2. called a derived surface of F .2.3. . Let −1 . − . Given two triangular surfaces F : P → E and G : P → E. we will get the same value for Du F (a) and Du G(a). parallel to the three directions of α γ − +− +− =− . −n be any vectors in R2 . and since F and G agree on L. Lemma 9. . and such that − + β + − = 0 . . then Du F and Du G also meet u n with C continuity along L. We can now derive necessary conditions on surfaces F and G of degree 3n + 1 to join → → − → with C 2n continuity. Proof. if F and G meet → with C 0 continuity along a line L. Given two triangular surfaces F : P → E and G : P → E. SPLINE SURFACES WITH TRIANGULAR PATCHES − → β B − → α A C − → γ Figure 9. Dun F and Du1 .4. Dun Du F and Du1 . then Du F and Du G also u 0 meet with C continuity along L. . − . Du1 . Given a spline surface F : P → E of degree 3n + 1 having C 2n continuity. u u then it is clear that the derived surfaces Du1 . . → → → → α β γ 0 We have the following lemma. → → Proof. . Lemma 9.2. If F and G meet with C n continuity along L. for every triangle A. Given two triangular surfaces F : P → E and G : P → E. by lemma 9.6: A stripe in the parameter plane for triangular patches 347 polynomial surface of degree m − 1. if F and G meet → with C n continuity along a line L. Dun F and Du Du1 .2. the derived surface α γ the edges of triangles in the triangular grid. Dun G also meet with C 0 continuity.3. and such that . . .2. . the derived surfaces u Du Du1 . then Du F and Du G also join with C n u continuity along L. . . If a ∈ L. Consider three vectors − . . Lemma 9. . which means that Du F and Du G also meet with C n continuity along L. the following lemmas show that if F and G join with → C n continuity along a line L and if − is parallel to L. Taking the derivative in the direction − . for → → − → any three vectors − .

since (P)⊙(n−1) is spanned by the simple (n − 1)-tensors of − → the form an−1 . POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES → Dn+1 Dn+1 FA is the same in any stripe in the direction − . .3 that. which proves the lemma. A surface of degree 3n + 1 is determined 2 by (3n+3)(3n+2) control points. a. . A⊙ where η ∈ (P)⊙(n−1) . with the roles of − and β γ B C reversed. and thus. α γ α γ β β independent. and the derived surface Dn+1 Dn+1 F is the → is the same in any stripe in the direction α A α γ − → same in any stripe in the direction β .348CHAPTER 9. we see that each patch FA 2 2 is speciﬁed by 3(n + 1)2 control points. the derived surface Dn+1 Dn+1 FA γ α γ β β − .3 n + 1 times. Subtracting the 3(n+1)n conditions.2. From lemma 9. these conditions are 2 We can show that these conditions are indeed independent using tensors. . . Dn+1 Dn+1 FB and Dn+1 Dn+1 FC are identical. Each derived surface patch has degree n − 1. The same argument applies to F and F . if fA : P m → E is the polar form of FA : P → E. . . −k ). since FA and FB meet with C 2n continuity and have degree 3n + 1. Thus. If we can show that for − . and fA : (P)m → E is the homogenized version of fA . But then. the derived surface γ γ β β Dn+1 Dn+1 FA has a constant value in any horizontal stripe. Proof. where a ∈ P (see section 11. . .2. for all triangles A. it is natural to attempt to satisfy the conditions − → Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = 0 . saying that Dn+1 Dn+1 FA = 0 is equivalent α β to saying that →n+1 − → →n+1 ⊙ − f (− α β ⊙ η) = 0 . Indeed. and by applying lemma 9. in order to ﬁnd spline surfaces of degree 3n + 1 with C 2n continuity.1). they join γ β − → with C n−1 -continuity along their common boundary in the direction β . recall from lemma 10.5. and thus. the derived surfaces Dn+1 FA and γ n+1 n+1 n+1 n−1 Dγ FB have degree 2n and meet with continuity C . β . they − → → must be identical. A similar argument applies to γ β the stripes in the other two directions. u u m−k If fA ⊙ : (P)⊙m → E is the linear map from the tensor power (P)⊙m to E associated with the symmetric multilinear map fA . → → Du1 . the conditions − → Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = 0 α γ α γ β β . The derived surfaces Dβ Dγ FA and Dn+1 Dn+1 FB have degree n − 1. setting it to zero → → − → α γ corresponds to (n+1)n conditions. − . . −1 . . Duk FA (a) = mk fA (a. Thus. we have a total of 3(n+1)n conditions. If FA : P → E and FB : P → E are any two adjacent triangular patches.4.

if the three subspaces above had a →n+1 − n+1 →n+1 ⊙ − nontrivial intersection. they would contain a tensor of the form − α β ⊙→ γ ⊙ δ. In summary. →n+1 ⊙ − n+1 ⊙ η | η ∈ (P)⊙(n−1) }. Unfortunately.3 Spline Surfaces with Rectangular Patches We now study what happens with the continuity conditions between surface patches. →n+1 →n+1 ⊙ − {− α β ⊙ η | η ∈ (P)⊙(n−1) }. to the best of our knowledge. → → direction γ α γ A β − → and the derived surface Dn+2 Dn FA is the same in any stripe in the direction β . 9. As a α γ consequence. if the parameter plane is divided into rectangles. we will consider surface patches . This is one of the outstanding open problems for spline surfaces. reasoning on dimensions. We can also consider surface splines of degree 3n + 3 with C 2n+1 continuity. {β ⊙− γ 349 which is impossible since such a tensor has order at least 3n + 3.3. the derived surface Dn+2 Dn F is the same in any stripe in the direction − . it is easy to see that these subspaces are pairwise disjoint. For simplicity. as discussed very lucidly by Ramshaw [65]. satisfying the independent conditions − → Dn+2 Dn FA = Dn+2 Dn FA = Dn+2 Dn FA = 0 . we were led to consider surface splines of degree 3n + 1 with C 2n continuity. and the conditions are indeed independent. and their existence can be shown using convolutions. SPLINE SURFACES WITH RECTANGULAR PATCHES correspond to three subspaces of (P)⊙(3n+1) . It can be shown that if we consider surface splines of degree 3n + 3 with C 2n+1 continuity. β α γ α γ β Each patch is then deﬁned by 3(n + 1)2 − 2 control points. the derived surface Dn+2 Dn FA is the same in any stripe in the β α − . Some interesting related work on joining triangular patches with geometric continuity (G1 -continuity) can be found in Loop [51]. no nice scheme involving de Boor control points is known for such triangular spline surfaces. then for every triangle A.9. it is easy to show that each patch is deﬁned by 3(n + 1)2 − 2 control points. α γ α γ β β Each patch is then deﬁned by 3(n + 1)2 control points. satisfying the independent conditions − → Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = 0 . Such spline surfaces do exist. For example. Next we will see that we have better luck with rectangular spline surfaces. However. → {− α γ n+1 − → →n+1 ⊙ η | η ∈ (P)⊙(n−1) }.

if fB and fD are known. then fA is completely determined. B. then it is generally impossible to construct a spline surface. if fB and fD are known. which shows that fA (xi y m−i−j z j ) is completely determined. fA (xi y m−i−j z j ) = fB (xi y m−i−j z j ). y). Lemma 9. we must have m ≥ 2n + 2. Since A and B meet with C n continuity along (x. for all i ≤ n. the only control point which is not determined is fA (xn+1 z n+1 ). First. One can prove using convolutions (see Ramshaw [65]) that such spline . we will prove that if m ≤ 2n + 1. More precisely. given any 4 adjacent patches as shown in the ﬁgure below.350CHAPTER 9.7: Constraints on rectangular patches of degree m joining with the same degree of continuity n for all common edges. we have fA (xi y m−i−j z j ) = fD (xi y m−i−j z j ). there is at most one free control point for every two internal adjacent patches. and so either i ≤ n or j ≤ n. As opposed to the triangular case.2. Similarly. then fA is completely determined. since A and D join with C n continuity along (y.1.1.3. for all j ≤ n. in order to have rectangular spline surfaces with C n continuity. Thus. Proof. the proof is fairly simple. We shall consider the case of rectangular spline surfaces of degree 2n meeting with C n−1 continuity. This means that given any three adjacent patches A. by lemma 9. Take ∆xyz as reference triangle. However. When m = 2n + 2. when m = 2n + 2. D as in the previous ﬁgure. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES x w B y A z C D Figure 9. Furthermore. Surface splines consisting of rectangular patches of degree m ≥ 1 joining with C n continuity cannot be locally ﬂexible if m ≤ 2n + 1. z). i + j ≤ m ≤ 2n + 1.

3. and subtracting the (n + 1)n constraints. note that a surface of degree 2n such that − → Dn+1 FA = Dn+1 FA = 0 α β is equivalent to a bipolynomial surface of bidegree n. it makes sense to look for rectangular spline surfaces of degree 2n with continuity C n−1 satisfying the constraints − → Dn+1 FA = Dn+1 FA = 0 α β n+1 for all rectangles A. In view of lemma 9. Lemma 9. We can now derive necessary conditions on surfaces F and G of degree 2n to join with C continuity. → if F and G meet with C n−1 continuity along a line L. Given two triangular surfaces F : P → E and G : P → E of degree 2n. Proof. Applying lemma 9. we will be successful in ﬁnding a nice class of spline surfaces speciﬁable in terms of de Boor control points.3. and any vertical vector β . we can easily adapt what we have done for spline curves to bipolynomial spline surfaces. n−1 Lemma 9. A surface of degree 2n is speciﬁed by (2n+2)(2n+1) control points. − → → for any horizontal vector − . Since Dα FA has degree n − 1. Instead. we ﬁnd 2 that each rectangular patch is determined by (n + 1)2 control points. then u n+1 n+1 Du F = Du G. setting it to zero corresponds to (n+1)n 2 constraints. An immediate consequence of lemma 9. Thus. and thus. for every rectangle A.3. But these surfaces have degree at most n − 1.3. In fact. This time. so they must be identical.3. Proof. SPLINE SURFACES WITH RECTANGULAR PATCHES 351 surfaces exist. we can do this for bipolynomial spline surfaces of . Given a spline surface F : P → E of degree 2n having C n−1 continuity.3 n + 1 times.3. we discover that bipolynomial spline surfaces of bidegree n. we deduce that Dn+1 F and Dn+1 G meet with u u C n−1 continuity along L. Furthermore. and if − is parallel to L. we will look for necessary conditions in terms of derived surfaces. in the present case of rectangular spline surfaces.9. The following lemma is the key result. n .2. we have a total of (n + 1)n constraints.3.2. but the construction is not practical. n are an answer to our quest. as in the case of triangular spline surfaces. the derived α → surface Dn+1 FA is the same in any stripe in the direction − .2. and the derived surface Dn+1 FA α α β − → is the same in any stripe in the direction β . since each rectangle is the product of two intervals. However.

si+p . q . Given a knot sequences (si ) along the u-direction. The challenge of ﬁnding such a scheme for triangular spline surfaces remains open. Since the study of bipolynomial spline surfaces of bidegree p. and a knot sequences (tj ) along the v-direction. except for faces .j = f (si+1 . 9. in the case of rectangular spline surfaces. and most faces are rectangular. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES bidegree p. After one round of subdivision the Doo-Sabin scheme produces a mesh whose vertices all have the same degree 4. tj+1 . where r is the multiplicity of the knot si that divides them.. in the limit. The reader should have no trouble ﬁlling in the details. In 1978. contrary to the case of triangular spline surfaces.l = [sk . . 28]. a “good” subdivision scheme produces large portions of spline surfaces. tj+q ).e. One of the major advantages of such a scheme is that it applies to surfaces of arbitrary topology.352CHAPTER 9. where k − p ≤ i ≤ k and l − q ≤ i ≤ l. the process of recursively inserting a knot at the midpoint of every interval in a cyclic knot sequence. we were able to generalize the treatment of spline curves in terms of knot sequences and de Boor control points to bipolynomial spline surfaces. and that it is not restricted to a rectangular mesh (i. where r is the multiplicity of the knot tj that divides them. The progressive version of the de Casteljau algorithm can be generalized quite easily. . Furthermore. two subdivision schemes for surfaces were proposed by Doo and Sabin [27. we will not elaborate any further. yields a smooth surface (or solid). who (in 1974) deﬁned a simple subdivision scheme applying to curves deﬁned by a closed control polygon [18]. . . . . which.j . and leave this topic as an interesting project. sk+1 ] × [tl . The main diﬀerence between the two schemes is the following. and to apply recursively a subdivision scheme. Soon after that.. i. The patches of the spline surface have domain rectangles of the form Rk. and two patches adjacent in the v-direction meet with C q−r continuity. . where sk < sk+1 and tl < tl+1 .4 Subdivision Surfaces An alternative to spline surfaces is provided by subdivision surfaces. a mesh based on a rectangular grid). The idea of deﬁning a curve or a surface via a limit process involving subdivision goes back to Chaikin. Two patches adjacent in the u-direction meet with C p−r continuity.e. The idea is to start with a rough polyhedron speciﬁed by a mesh (a collection of points and edges connected so that it deﬁnes the boundary of a polyhedron). In summary. . 29. q basically reduces to the study of spline curves.l has the (p + 1)(q + 1) de Boor control points xi. we have de Boor control points of the form xi. except for a ﬁnite number of so-called extraordinary points. Riesenfeld [67] realized that Chaikin’s scheme was simply the de Boor subdivision method for quadratic uniform B-splines. tl+1 ]. The patch deﬁned on the rectangle Rk. and by Catmull and Clark [17].

Although such subdivision schemes had been around for some time. The centroid of each nonrectangular face is referred to as an extraordinary point. who also proposed a method for improving the design of boundary curves. and wF1 . SUBDIVISION SURFACES 353 arising from original vertices of degree not equal to four and from nonrectangular faces. Then. the four image vertices vF1 . and V -faces. after one round of subdivision. Due to the lack of space.9. On the other hand. vF2 of the end vertex v of E. also referred to as extraordinary points. image vertices are connected to form three kinds of new faces: F -faces.9. Every vertex v of the current mesh yields a new vertex vF called image of v in F . Most vertices have degree six. every triangular face is reﬁned into four subtriangles. in 1998. This process is illustrated in ﬁgure 9. Note that if F is an n-sided face. wF2 of the other end vertex w of E are connected to form a rectangular face. new vertices and new faces are created as follows.8.4. . However. For every edge E common to two faces F1 and F2 . except for original vertices whose degree is not equal to six. we will restrict ourselves to a brief description of the Doo-Sabin method. the Catmull-Clark scheme produces rectangular faces. and it turns out that these faces shrink and tend to a limit which is their common centroid. and Loop method. Since 1994. it is not until roughly 1994 that subdivision surfaces became widely used in computer graphics and geometric modeling applications. The Doo-Sabin scheme is described very clearly in Nasri [56]. and it is obtained by connecting the image vertices of the boundary vertices of F in F . a nontrivial problem. Large regions of the mesh deﬁne bicubic B-splines. The limit surface is C 2 -continuous except at extraordinary points. the CatmullClark scheme is closer to a process of face shrinking. large regions of the mesh deﬁne biquadratic B-splines. the number of nonrectangular faces remains constant. Catmull-Clark method. referring the reader to the SIGGRAPH’98 Proceedings and Course Notes on Subdivision for Modeling and Animation. Charles Loop in his Master’s thesis (1987) introduced a subdivision scheme based on a mesh consisting strictly of triangular faces [50]. and most vertices have degree 4. E-faces. referred to as extraordinary points. During every round of the subdivision process. as illustrated in ﬁgure 9. not unlike a sculptor at work. In Loop’s scheme. The limit surface is C 1 -continuous except at extraordinary points. for every face F having v as a vertex. Large regions of the mesh deﬁne triangular splines based on hexagons consisting of 24 small triangles each of degree four (each edge of such an hexagon consists of two edges of a small triangle). After one round of subdivision. Several years later. Furthermore. A new E-face is created as follows. subdivision hit the big screen with Pixar’s “Geri’s game”. The limit surface is C 2 -continuous except at extraordinary points. Although both schemes can be viewed as cutting-oﬀ corners. so is the new F -face. An F -face is a smaller version of a face F . reﬁnements of previous subdivision schemes and new subdivision schemes have been proposed. except for vertices arising from original nonrectangular faces and from vertices of degree not equal to four.

POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES y yF x xF F wF w vF zF z uF u v Figure 9.8: Vertices of a new F -face w wF 1 F1 vF1 v E wF2 vF2 F2 Figure 9.354CHAPTER 9.9: Vertices of a new E-face .

vertices of degree n ≤ 2. For every boundary vertex v. Special rules are needed to handle boundary edges. provided that v has degree n ≥ 3. Another rule is n vi = j=1 αij wj . 4 4 Another method was proposed by Nasri [56]. SUBDIVISION SURFACES F1 vF1 v 355 F2 vF2 vF3 F3 Figure 9. One way to handle boundaries is to treat them as quadratic B-splines. and thus. create the new vertex 1 3 vF + v. v′ = Various rules are used to determine the image vertex vF of a vertex v in some face F . since n cos(2πk/n) = 0. k=1 because it is the real part of the sum of the n-th roots of unity. The scheme just described applies to surfaces without boundaries. if vF is the image of v in the face F containing v. the centroid of F is the barycenter of the weighted points (v.. and the image vF of v in F as the midpoint of c and v (if F has n sides. the new V -face is also n-sided.9. with αij = n+5 4n 3+2 cos(2π(i−j)/n) 4n if i = j. where the wj are the vertices of the face F . j ≤ n and n ≥ 3 is the number of boundary edges of F .10: Vertices of a new V -face A new V -face is obtained by connecting the image vertices vF of a given vertex v in all the faces adjacent to v. i.10. and vi is the image of wi in F . 1/n).4. A simple scheme used by Doo is to compute the centroid c of the face F . cos(2π(i − j)/n) = −1. j=i . for every i. where 1 ≤ i. If v has degree n. where the v’s are the vertices of F ). if i = j. This process is illustrated in ﬁgure 9. 1 ≤ i ≤ n.e. Note that the above weights add up to 1.

. and the number of nonrectangular faces remains constant. the new edge point vE is the average of the four points v. there are several diﬀerent versions. The subdivision rules are modiﬁed to allow for nonuniform knot spacing. . the idea is to analyze the iteration of subdivision around extraordinary points. and new vertex points are denoted as hollow square points. 4 The computation of new vertex points is slightly more involved. for example. In fact.356CHAPTER 9. Unlike the previous one. Roughly. vn . if F denotes the average of the new face points of all (old) faces adjacent to v and E denotes the average of the midpoints of all (old) n edges incident with v. Note that only rectangular faces are created.e. w. The version presented in Catmull and Clark [17] is as follows. the new face point vF is computed as the centroid of the vi . Given a vertex v (an old one). each new vertex point v ′ is connected by an edge to the new edge points vE associated with all the edges E incident with v. where vF1 and vF2 are the centroids of F1 and F2 . Zheng. New face points are denoted as solid square points. Figure 9. and Sabin [74]. The Doo-Sabin method has been generalized to accomodate features such as creases.11 shows this process. vF2 . and vertex points. called “NURSS” by the authors. However. all vertices have degree four. These matters were investigated by Doo and Sabin [28] and by Peters and Reif [60]. vE = v + w + vF1 + vF2 . Sewell. if F1 and F2 are the two faces sharing E as a common edge. i.e. it is not obvious that such subdivision schemes converge. by Sederberg. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES Observe that after one round of subdivision. n i=1 Given an edge E with endpoints v and w. n 1 vF = vi . or better. It is also easy to check that these faces shrink and tend to a limit which is their common centroid. . This can be achieved by eigenvalue analysis. to model clothes or human skin. Given a face F with vertices v1 . edge points. darts. i. or cusps. and what kind of smoothness is obtained at extraordinary points. . the new vertex point v ′ associated with v is v′ = 1 2 n−3 F+ E+ v. using discrete Fourier transforms. new edges points are denoted as hollow round points. Such features are desirable in human modeling. n n n New faces are then determined by connecting the new points as follows: each new face point vF is connected by an edge to the new edge points vE associated with the boundary edges E of the face F . We now turn to a description of the Catmull-Clark scheme. . vF1 . this method consists in subdividing every face into smaller rectangular faces obtained by connecting new face points.

and the number of extraordinary points (vertices of degree diﬀerent from four) remains constant.11: New face point. and vertex points An older version of the rule for vertex points is v′ = 1 1 1 F + E + v. We have only presented the Catmull-Clark scheme for surfaces without boundaries. Observe that after one round of subdivision. SUBDIVISION SURFACES 357 Figure 9. It is also possible to accomodate boundary vertices and edges. pl . two new control points pl+1 and pl+1 are i i+1 i+2 2i+1 2i+2 . and using rules for knot insertion at midpoints of intervals in a closed knot sequence. Boundaries can be easily handled by treating the boundary curves a cubic B-splines. and C 1 -continuity is investigated by Peters and Reif [60].9. Then for any three consecutive control points pl . Another version studied by Doo and Sabin is v′ = 1 1 n−2 F+ E+ v. 4 2 4 but it was observed that the resulting surfaces could be too “pointy” (for example. A more general study of the convergence of subdivision methods can be found in Zorin [89] (see also Zorin [88]).4. n n n Doo and Sabin analyzed the tangent-plane continuity of this scheme using discrete Fourier transforms [28]. edge points. starting from a tetrahedron). The tangent-plane continuity of various versions of Catmull-Clark schemes are also investigated in Ball and Storry [3] (using discrete Fourier transforms). all faces are rectangular. and pl of a boundary curve.

POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES p F ηrs G q r Figure 9. pn−1 are the other endpoints of all (old) edges .12: Loop’s scheme for computing edge points created according to the formulae pl+1 = 2i+1 1 l 1 l p + p . Unlike the previous methods. . as opposed to parametric models which obviously do. have generalized the Catmull-Clark subdivision rules to accomodate sharp edges and creases. and Truong [24]. 8 8 8 i+2 DeRose. . 2 i 2 i+1 and pl+1 = 2i+2 1 l 6 l 1 pi + pi+1 . also allows semi-sharp creases in addition to (inﬁnitely) sharp creases. A common criticism of subdivision surfaces is that they do not provide immediate access to the points on the limit surface. Loop’s method only applies to meshes whose faces are all triangles.12. Kass. For every edge (rs). This corresponds to computing the aﬃne combination of three points assigned respectively the weights 3/8. For any vertex v of degree n. .s 358CHAPTER 9. This new scheme was used in modeling the character Geri in the short ﬁlm Geri’s game. we compute the new edge point ηrs as the following convex combination: ηrs = 1 3 3 1 p + r + s + q. Loop’s method consists in splitting each (triangular) face into four triangular faces. and 2/8: the centroids of the two triangles ∆prs and ∆qrs. 3/8. it was shown by Stam [78] that it is in fact possible to evaluate points on Catmull-Clark subdivision surfaces. One of the techniques involved is called eigenbasis functions. + pl . let us mention that a particularly simple subdivision method termed “midedge subdivision” was discovered by Peters and Reif [61]. and Truong [24]. and the midpoint of the edge (rs). if p0 . The method of DeRose Kass. using rules to determine new edge points and new vertex points. Their work is inspired by previous work of Hoppe et al [44]. which were also studied by Zorin [89]. except that DeRose et al’s method applies to Catmull-Clark surfaces. since exactly two triangles ∆prs and ∆qrs share the edge (rs). in which the Loop scheme was extended to allow (inﬁnitely) sharp creases. However. . Before presenting Loop’s scheme. 8 8 8 8 as illustrated in ﬁgure 9.

4. He also ﬁgures out in which interval αn should belong. Loop’s method is illustrated in ﬁgure 9. tangent plane continuity is lost at extraordinary points. except for vertices coming from orginal vertices of degree diﬀerent from six. ordinary points have a well deﬁned limit that can be computed by subdividing the quartic triangular patches. Loop rigorously investigates the convergence and smoothness properties of his scheme. He proves convergence of extraordinary points to a limit. where hollow round points denote new edge points. In his Master’s thesis [50]. but in some cases. Observe that after one round of subdivision. Loop’s method was ﬁrst formulated for surfaces without boundaries. as in the Catmull-Clark scheme. the new vertex point v ′ associated with v is n−1 v = (1 − αn ) ′ i=0 1 pi n + αn v.13. Boundaries can be easily handled by treating the boundary curves a cubic B-splines. .9. and hollow square points denote new vertex points. Loop determined that the value αn = 5/8 produces good results [50].13: Loop’s scheme for subdividing faces incident with v. Large regions of the mesh deﬁne triangular splines based on hexagons consisting of small triangles each of degree four (each edge of such an hexagon consists of two edges of a small triangle). The limit surface is C 2 -continuous except at extraordinary points. SUBDIVISION SURFACES 359 v1 η2 η3 v2 η1 v3 Figure 9. all vertices have degree six. but such vertices are surrounded by ordinary vertices of degree six. we will present its main lines. Vertices of degree diﬀerent from six are called extraordinary points. Since the principles of Loop’s analysis are seminal and yet quite simple. in order to insure convergence and better smoothness at extraordinary points. where αn is a coeﬃcient dependent on n. Thus.

. we get v −q = Thus. 8 8 l l we get convergence of v to q . (2) The ordinary vertices pl . it is convenient to label points with the index of the subdivision round during which they are created. after one round of subdivision. . Loop proves that as l tends to ∞. Then. . . 0 n−1 Since q l is the centroid of ordinary points. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES As we already remarked. if −1 < αn − 3 8 l l 3 l−1 5 l−1 v − q = 8 8 αn − 3 (v l−1 − q l−1 ).e. . Keep in mind that the lower indices of the pl are taken modulo n. Since points are created during every iteration of the subdivision process. extraordinary points are surrounded by ordinary points. The value αn = 5/8 is certainly acceptable. 11 5 − < αn < . where q l−1 n−1 = i=0 1 l−1 p n i is the centroid of the points pl−1 . . Using the fact that pl = i 1 l−1 3 l−1 3 l−1 1 l−1 p + p + v + pi+1 8 i−1 8 i 8 8 and some calculations. i. . . it is easy to show that n−1 q = i=0 l 1 l 3 l−1 5 l−1 p = v + q . the other endpoints of all edges incident with 0 n−1 v l−1 . pl surrounding v l also tend to the same limit as q l . n i 8 8 From this. this proves the convergence for extraordinary points. i Proving that liml→ ∞ v l = liml→ ∞ q l is fairly easy. . the rule for creating a new vertex point v l associated with a vertex v l−1 can be written as v l = (1 − αn )q l−1 + αn v l−1 . (1) Every extraordinary vertex v l tends to the same limit as q l . which makes the analysis of convergence possible. we have v l − q l = (1 − αn )q l−1 + αn v l−1 − By a trivial induction. pl−1 .360CHAPTER 9. 8 3 αn − 8 l (v 0 − q 0 ). < 1.

. . it is desirable to ﬁnd the “Fourier coeﬃcients” c = (c0 . . . . . and forming the new sequence c ⋆ d. . it is easily checked that 0≤l≤n−1 Fn Fn = Fn Fn = n In . .4. . It is convenient to view a ﬁnite sequence c ∈ Cn as a periodic sequence over Z. given any sequence f = (f0 . The Fourier transform and the convolution . The purpose of the discrete Fourier transform is to ﬁnd the Fourier coeﬃcients c = (c0 . It is also more convenient to index n-tuples starting from 0 instead of 1. SUBDIVISION SURFACES 361 Proving (2) is a little more involved. by letting ck = ch iﬀ k − h = 0 mod n. where Fn is the symmetric n × n-matrix (with complex coeﬃcients) Fn = ei2πkl/n 0≤k≤n−1 0≤l≤n−1 . and its inverse Fn = (1/n)Fn is computed very cheaply. . thus writing c = (c0 . the standard k-th row now being indexed by k − 1 and the standard l-th column now being indexed by l − 1. d ∈ Cn . for every k. 82] for a more comprehensive treatment. Discrete Fourier series deal with ﬁnite sequences c ∈ Cn of complex numbers. The matrix Fn is called a Fourier matrix . fn−1 ) of data points. . referring the reader to Strang [80. n − 1]. Now. taking two sequences c. . deﬁned such that n−1 fc (θ) = c0 + c1 e + · · · + cn−1 e iθ i(n−1)θ = k=0 ck eikθ . . The discrete Fourier transform is a linear map : Cn → Cn . 1. cn−1 ) of the discrete Fourier series fc such that fc (2πk/n) = fk . . cn−1 ) ∈ Cn of “Fourier coeﬃcients” determines a periodic function fc : R → C (of period 2π) known as discrete Fourier series. In the discrete case. the Fourier matrix is invertible. n − 1] × [0. . 1. assuming that we index the entries in Fn over [0. . Letting Fn = e−i2πkl/n 0≤k≤n−1 be the conjugate of Fn . . cn−1 ). . . The problem amounts to solving the linear system Fn c = f. . . . . Let us quickly quickly review some basic facts about discrete Fourier series. . .9. −1 Thus. Loop makes a clever use of discrete Fourier transforms. . Every sequence c = (c0 . . or phase polynomial . . 0 ≤ k ≤ n − 1. fn−1 ). Then. the other major player in Fourier analysis is the convolution. it is natural to deﬁne the discrete convolution as a circular type of convolution rule. . . . The discrete convolution is a map ⋆ : Cn × Cn → Cn . cn−1 ) from the data points f = (f0 . .

We also deﬁne the inverse discrete Fourier transform (taking c back to f ) as c = Fn c. and the Fourier coeﬃcients of the Fourier series f (x) = are given by the formulae ck = ∞ k=−∞ −∞ ck eikx 1 2π π f (x)e−ikx dx. fn−1 ) ∈ Cn as f = Fn f. We will come back to this point shortly. . Inspired by the continuous case. as n−1 f (k) = j=0 fj e−i2πjk/n for every k. c ⋆ d = c d.e. cn−1 ) are then given by the formulae ck = 1 1 f (k) = n n n−1 fj e−i2πjk/n . . which causes problem with the convolution rule. The drawback of this choice is that the convolution rule has an extra factor of n. . . 0 ≤ k ≤ n − 1. j=0 Note the analogy with the continuous case. . Loop deﬁnes the discrete Fourier transform as Fn f . the Fourier coeﬃcients c = (c0 . . it is natural to deﬁne the discrete Fourier transform f of a sequence f = (f0 . . . where the multiplication on the right-hand side is just the inner product of c and d (vectors of length n). In view of the formula Fn Fn = Fn Fn = n In . which means that the transform of a convolution should be the product of the transforms. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES rule (discrete or not!) must be deﬁned in such a way that they form a harmonious pair. or equivalently. −π Remark: Others authors (including Strang in his older book [80]) deﬁne the discrete Fourier 1 transform as f = n Fn f . .362CHAPTER 9. i. where the Fourier transform f of the function f is given by f (x) = ∞ f (t)e−ixt dt. and following Strang [82].

We deﬁne the circular shift matrix Sn (of order n) as the matrix 0 0 0 0 ··· 0 1 1 0 0 0 · · · 0 0 0 1 0 0 · · · 0 0 Sn = 0 0 1 0 · · · 0 0 . Fn H(f ) = f Fn . in our opinion. c. that is. . the circulant matrix associated with the sequence f = (a. . . for details. is highly recommended. . . . . . If we recall that Fn Fn = Fn Fn = n In . SUBDIVISION SURFACES 363 The simplest deﬁnition of discrete convolution is. . . . . and more. . see Strang [80. .9. b. gn−1) as f ⋆ g = H(f ) g. . . . and that the eigenvalue associated with the lth eigenvector is (f )l . 0 where Sn = In . the deﬁnition in terms of circulant matrices. . . d) is a d c b b a d c c b a d d c b a We can now deﬁne the convolution f ⋆ g of two sequences f = (f0 . Then. we deﬁne the circulant matrix H(f ) as n−1 H(f ) = j=0 j fj Sn . For any sequence f = (f0 . . 0 0 0 0 ··· 1 0 consisting of cyclic permutations of its ﬁrst column. For example. fn−1 ) and g = (g0 . . . . . . multiplying the equation H(f )Fn = Fn f both on the left and on the right by Fn . . . 82]. viewing f and g as column vectors. . the lth component of the Fourier transform f of f (counting from 0). the miracle (which is not too hard to prove!) is that we have H(f )Fn = Fn f . . . as usual. which means that the columns of the Fourier matrix Fn are the eigenvectors of the circulant matrix H(f ).4. . . Fourier matrices. by Davis [21]. we get Fn H(f )(n In ) = (n In )f Fn . . Again. fn−1 ) ∈ Cn . The fascinating book on circulants.

for every k. (which is our inverse Fourier transform f ) and not as Fn f . Similarly. for every j. . 0 ≤ k ≤ n − 1. for every k. which means that f−j = fj for all j ∈ Z (viewed as a periodic sequence). This is what saves Loop’s proof (see below)! After this digression. 0 ≤ j ≤ n − 1. we get back to Loop’s Master’s thesis [50]. . fn−1 ) is even. or equivalently. If the sequence f = (f0 . when it should be using its conjugate Fn . which. However. .364CHAPTER 9. but is equivalent to the circulant deﬁnition. the inverse Fourier transform (taking c back to f ) is expressed as n−1 c(k) = j=0 cj cos (2πjk/n) . . can be rewritten as the (circular) convolution rule f ⋆ g = f g. f ⋆ g = H(f )g. that fn−j = fj for all j. since F uses the Fourier matrix Fn . 0 ≤ k ≤ n − 1. 0 ≤ j ≤ n − 1. Loop states the convolution rule as F (f ⋆ g) = F (f )F (g). which is our Fourier transform f (following Strang [82]). we get Fn H(f )g = f Fn g. and f ⋆ g = Fn (f ⋆ g). we warn our readers that Loop deﬁnes the discrete Fourier transform as F (f ) = Fn f. which requires interpreting indexes modulo n. Observe that it is the same as the (forward) discrete Fourier transform. since g = Fn g. it is easily seen that the Fourier transform f can be expressed as n−1 f (k) = j=0 fj cos (2πjk/n) . where the multiplication on the right-hand side is just the inner product of the vectors f and g. Loop deﬁnes convolution using the formula n−1 (f ⋆ g)k = j=0 fj gk−j . which is incorrect. However. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES If we apply both sides to any sequence g ∈ Cn . .

. even though Loop appears to be using an incorrect deﬁnition of the Fourier transform. . . . Note that these sequences are even! We also deﬁne the sequence P l as P l = (pl . deﬁne the sequences 3 1 1 M = .. 0. we go back to Loop’s proof that the ordinary vertices pl . . . .. 0. equation pl = i is rewritten as P l = M ⋆ P l−1 + and equation n−1 1 l−1 3 l−1 3 l−1 1 l−1 p + p + v + pi+1 8 i−1 8 i 8 8 3 l−1 V . 0 n−1 and treat q l and v l as constant sequences Ql and V l of length n. . his F (f ) and our f are identical. .9. pl ).. . To do so. as observed earlier. . . n n . . 8 q = i=0 l 1 l p n i is rewritten as Ql = A ⋆ P l . . 8 . we get Pl = M− 5 A ⋆ P l−1 + Ql . 0 n−1 The trick is rewrite the equations n−1 q = i=0 l 1 l p n i and and 1 l−1 3 l−1 3 l−1 1 l−1 p + p + v + pi+1 8 i−1 8 i 8 8 in terms of discrete convolutions. With these remarks in mind. both of length n. 8 8 8 pl = i n−3 A= 1 1 . what saves his argument is that for even sequences. From these equations.4. SUBDIVISION SURFACES 365 Neverthless.. Then. pl surrounding v l also tend to the same limit as q l .

where βn = 3 . this is easy to do. the faces surrounding extraordinary points converge to the same limit as the centroid of these faces. n−1 j=0 M− 5 A 8 l⋆ = 0. and thus which proves that l→ ∞ l→ ∞ lim (R)l = 0n . n At this stage. 8 all we have to prove is that Rl⋆ tends to the null sequence as l goes to inﬁnity. Loop gives explicit formulae for the limit of extraordinary points.366CHAPTER 9. 5 1 ≤ (R)j ≤ 8 8 for all j. j we get P = l 5 M− A 8 ⋆ P 0 + Ql . l→ ∞ and consequently that l→ ∞ lim pl = lim q l . 8 Since the absolute value of the cosine is bounded by 1. namely. applying the Fourier transform in its cosine form and the convolution rule. letting R= M− 5 A . lim Rl⋆ = lim Rl⋆ = 0n . 11 − 8αn . and we get 0 if j = 0. we have Rl⋆ = (R)l . He proves that q l (and thus v l ) has the limit (1 − βn )q 0 + βn v 0 . and so. 0 ≤ j ≤ n − 1. i l→ ∞ Therefore. where cn⋆ stands for the n-fold convolution c ⋆ · · · ⋆ c. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES Taking advantage of certain special properties of M and A. (R)j = 3 1 + 4 cos (2πj/n) if j = 0. we just have to compute the discrete Fourier transform of R. Since both M and A are even sequences. However.

especially after 1996. except at a ﬁnite number of extraordinary points. Stam [78] also implemented a method for computing points on Catmull-Clark surfaces. The phenomenon of “eigenvalue clustering” can also cause ripples on the surface. 4 4 4 For instance. Loop also investigates the tangent plane continuity at these limit points. . Although subdivision surfaces have many attractive features. they have their problems too. there is convergence. Their method makes use of Loop’s scheme. Extraordinary points of large degree may exhibit poor smoothness. For example.4. 3 αn = + 8 3 1 + cos (2π/n) 8 4 2 . and there is a range of values from which αn can be chosen to insure tangent plane continuity. uniformity of representation. If αn is chosen in the correct range. αn = 5/8 yields βn = 1/2. for a vertex of degree three (n = 3). First. Again. general approaches to study the properties (convergence. 8 8 In particular.9. certain triangles being signiﬁcantly larger than others near extraordinary points. there are problems with curvature continuity at extraordinary points (the curvature can be zero). Loop also discusses curvature continuity at extraordinary points. The related issue of adaptive parameterization of surfaces is investigated in Lee et al [49]. Loop’s scheme was extended to accomodate sharp edges and creases on boundaries. it is possible to ﬁnd a formula for the tangent vector function at each extraordinary point. arbitrary topology of the mesh. We conclude this section on subdivision surfaces by a few comments. Note that α6 = 5/8 is indeed this value for regular vertices (of degree n = 6). as Loop ﬁrst observed experimentally. and it is nontrivial. Loop proves that his subdivision scheme is C 2 -continuous. the values α3 = 5/8 is outside the correct range. we advise our readers to consult the SIGGRAPH Proceedings and Course Notes. and we apologize for not being more thorough. SUBDIVISION SURFACES 367 The bounds to insure convergence are the same as the bounds to insure convergence of v l to q l . Another phenomenon related to the eigenvalue distribution of the local subdivision matrix is the fact that the mesh may be uneven. numerical stability. see Hoppe et [44]. There are many other papers on the subject of subdivision surfaces. He proposes the following “optimal” value for αn . but we hope that we have at least given pointers to the most important research directions. smoothness) of subdivision surfaces have been investigated in Reif [66] and by Zorin [89]. and code simplicity. but his study is more tentative. At extraordinary points. In summary. He proves that tangent plane continuity is insured if αn is chosen so that 1 3 1 − cos (2π/n) < αn < + cos (2π/n) . The implementation of the method is discussed. namely 5 11 − < αn < . such as.

such that F (ui .. . 0. (1) If we consider surface splines of degree 3n + 3 with C 2n+1 continuity. j . Show that the number of independent conditions is generally 2m + 1. each patch requires 16 control points. i. Problem 6 (20 pts). (i) Using the method of section 6. Use it to convert a B-spline surface into rectangular B´zier patches. Let u0 . . j )0≤i≤M. where r = −1. Problem 5 (40 pts).5 Problems Problem 1 (30 pts).368CHAPTER 9. Formulate a knot insertion algorithm for rectangular B-spline surfaces. j+s .8. Implement the interpolation method proposed in problem 4. (iii) Various methods exist to determine twist vectors. (ii) However. (2) Prove that the conditions − → Dn+2 Dn FA = Dn+2 Dn FA = Dn+2 Dn FA = 0 . Problem 2 (20 pts). e Problem 4 (30 pts). 0≤j≤N be a net of data points. accounting for 12 control points per patch. .6). vj ) = xi. Experiment with various methods for determining corner twists. . . We would like to ﬁnd a rectangular bicubic C 1 -continuous B-spline surface F interpolating the points xi. 1 and s = −1. uM and v0 .e. prove that for every triangle A. Show that the number of independent conditions is generally 3m. and the derived surface Dn+2 Dn F is the same in any stripe in the direction → direction α α γ A − → β. 0. uN be two knot sequences consisting of simple knots. . Compute the Bessel twists. and let (xi. . Show that the number of conditions required for two triangular patches of degree m to meet with C 2 -continuity is 6m − 2. the derived surface Dn+2 Dn FA is the same in any α β → stripe in the direction − . Formulate a de Boor algorithm for rectangular B-spline surfaces. the derived surface Dn+2 Dn FA is the same in any stripe in the γ γ β − . vj ) to be the bilinear interpolant of the four bilinear patches determined by the nine points xi+r. Show that the number of conditions required for two triangular patches of degree m to meet with C 1 -continuity is 3m + 1. 1. show that the control points on the boundary curves of each rectangular patch can be computed. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES 9. Show that the other 4 interior control points can be found by computing the corner twists of each patch (twist vectors are deﬁned in section 7. α β γ α γ β . . Problem 3 (30 pts). One method (Bessel twist) consists in estimating the twist at (ui . j .

9. Prove that the Fourier transform of Loop’s matrix R= M− 5 A 8 . . 1. . 0 ≤ k ≤ n − 1. . n − 1] × [0. 1. Problem 7 (30 pts). . e−i2π/n . fn−1 ) is even. that fn−j = fj for all j. and that in this case. . Hint. prove that the Fourier transform f is expressed as n−1 f (k) = j=0 fj cos (2πjk/n) .5. . 0 ≤ j ≤ n − 1. for every k. and that the inverse Fourier transform (taking c back to f ) is expressed as n−1 c(k) = j=0 cj cos (2πjk/n) . . the standard k-th row now being indexed by k − 1 and the standard l-th column now being indexed by l − 1. . . . PROBLEMS 369 are independent. Problem 8 (10 pts). which means that f−j = fj for all j ∈ Z (viewed as a periodic sequence). . (1) Letting Fn = e−i2πkl/n 0≤k≤n−1 0≤l≤n−1 be the conjugate of Fn . The matrix Fn is called a Fourier matrix . e−ik2π/n . e−i(n−1)2π/n . . . . (2) Prove that H(f )Fn = Fn f . . Let Fn be the symmetric n × n-matrix (with complex coeﬃcients) Fn = ei2πkl/n 0≤k≤n−1 0≤l≤n−1 . (3) If the sequence f = (f0 . . or equivalently. . . assuming that we index the entries in Fn over [0. n − 1]. . Prove that Sn Fn = Fn diag(v 1) where diag(v 1) is the diagonal matrix with the following entries on the diagonal: v 1 = 1. each patch is deﬁned by 3(n + 1)2 − 2 control points. . prove that Fn Fn = Fn Fn = n In .

Experiment with various values of αn . Problem 10 (50 pts). .370CHAPTER 9. Implement the Loop subdivision method for closed meshes. cos (2πj/n) if j = 0. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES is given by (R)j = 0 3 8 + 1 4 if j = 0. Implement the Doo-Sabin subdivision method for closed meshes. Generalize your program to handle boundaries. Generalize your program to handle boundaries. Generalize your program to handle boundaries. Problem 9 (50 pts). Problem 11 (60 pts). Implement the Catmull-Clark subdivision method for closed meshes.

In turn. However. or Homogenizing For all practical purposes. or the directional derivatives of polynomial surfaces. (vector spaces. at least mathematically. Then. rather than aﬃne objects (aﬃne spaces. aﬃne maps). linear maps). As a consequence.1 The “Hat Construction”. Next. It is shown how aﬃne frames in E become bases in E. Let us ﬁrst explain how to distinguish between points and vectors practically.Chapter 10 Embedding an Aﬃne Space in a Vector Space 10. these formulae lead to a very convenient way of formulating the continuity conditions for joining polynomial curves or surfaces. It is often more convenient. aﬃne combinations. curves and surfaces live in aﬃne spaces. aﬃne maps between aﬃne spaces E and F extend to linear maps between E and F . to deal with linear objects. It turns out that E is characterized by a universality property: aﬃne maps to vector spaces extend uniquely to linear maps. it would also be advantageous if we could manipulate points and vectors as if they lived in a common universe. using what amounts to a “hacking trick”. It also leads to a very elegant method for obtaining the various formulae giving the derivatives of a polynomial curve. multiaﬃne maps extend to multilinear maps. This chapter proceeds as follows. linear combinations. 371 . Such an “homogenization” (or “hat construction”) can be achieved. the linearization of multiaﬃne maps is used to obtain formulae for the directional derivatives of polynomial maps. Actually. such a treatment will be given elsewhere. Such an homogenization of an aﬃne space and its associated vector space is very useful to deﬁne and manipulate rational curves and surfaces. we will show that such a procedure can be put on ﬁrm mathematical grounds. A disadvantage of the aﬃne world is that points and vectors live in disjoint universes. the construction of a vector space E in which − → both E and E are embedded as (aﬃne) hyperplanes is described. First. using perhaps an extra bit of information to distinguish between them if necessary. Similarly.

and that vectors are represented by (row) vectors (v1 . −2 . and its actual construction is not so important. u2. and that we have some → → v aﬃne frame (a0 . The question is. satisﬁes a universal property with respect to the extension of aﬃne maps to linear maps. Remark: Readers with a good knowledge of geometry will recognize the ﬁrst step in embedding an aﬃne space into a projective space. → → − every − ∈ E induces a mapping tu : E → E. we are opening the door for strange elements such as (x1 . As a consequence. the vector space E is unique up to isomorphism. We prefer a more geometric and simpler description in terms of simple geometric transformations. parallel to the (x. x2 . and E itself is embedded as an aﬃne hyperplane. x3 ). The extension to arbitrary ﬁelds and to families of ﬁnite support is immediate. We begin by deﬁning − → two very simple kinds of geometric (aﬃne) transformations. deﬁned as ω −1 (1). The construction of the vector space E is presented in some details in Berger [5]. E ). x3 . Berger explains the construction in terms of vector ﬁelds. v3 . translations and dilatations.372 CHAPTER 10. −2 ). We will present a construction in which an aﬃne space (E. 1). can we make sense of such elements. where → → → a = a0 + x1 −1 + x2 −2 + x3 −3 . −2 )). −2 . and E corresponds to the plane of equation z = 1. v v v → → − → → v A vector − ∈ E is also represented by its coordinates (u1 . x2 . it is quite useful to visualize the space E. and passing through the point on the z-axis of coordinates (0. y)-plane. we will use the same notation − for both the vector − and the translation u u tu . for simplicity. E ). Ramshaw explains the construction using the symmetric tensor power of an aﬃne space [65]. x2 . Given any point a and any scalar λ ∈ R. E ) is embedded in − → a vector space E. and of such a construction? The − → answer is yes. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE Assume that we consider the real aﬃne space E of dimension 3. called . x3 .λ : E → E. 1) whose fourth coordinate is 1. As usual. for some linear form ω : E → R. (−1 . called a translation. Thus. u3 ) over the basis (−1 . in which E corresponds to the (x. In the case of an aﬃne space E of dimension 2. and vectors) are ﬁnite. Clearly. 0) whose fourth coordinate is 0. 5). for every a ∈ E. With respect to this aﬃne frame. Of course. Given an aﬃne space (E. 0. u v v → One way to distinguish between points and vectors is to add a fourth coordinate. We will also show that the homogenization E of − → an aﬃne space (E. it is assumed that all vector spaces are deﬁned over the ﬁeld R of real numbers. we can think of E as the vector space R3 of − → dimension 3. and to agree that points are represented by (row) vectors (x1 . However. v2 . and that all families of scalars (points. where the fourth coordinate is neither 1 nor 0. we deﬁne the mapping Ha. y)-plane. every point x ∈ E is v v → represented by its coordinates (x1 . This “programming trick” works actually very well. in which E is embedded as a hyperplane passing through the origin. and deﬁned such that u → tu (a) = a + − . the set of translations is a vector space isomorphic u − → → → to E .

a translation − can be viewed as the constant xa. λ . consisting of the union of the (disjoint) sets of translations and dilatations of ratio λ = 1. u − . λ2 . − → (2) Berger deﬁnes a map h : E → E as a vector ﬁeld . let us denote Ha. if λ < 1). for every x ∈ E. and since a is a ﬁxed-point. we see that we have to distinguish between two cases: (1) λ1 + λ2 = 0. xa if we want to deﬁne a1 . Ha. we have → a. or homothety) of center a and ratio λ.λ1 and Ha2 .1−λ as a. Ha.10. OR HOMOGENIZING 373 dilatation (or central dilatation.λ2 . we could deﬁne E as the (disjoint) union of these two → vector ﬁeld x → u vector ﬁelds. since → a1 . since → → → → λ1 − 1 + λ2 − 2 = λ1 − 1 − λ1 − 2 = λ1 − →. Remarks: (1) Note that Ha. λ (x) = x + λ− xa. Thus. We now consider the set E of geometric transformations from E to E. We would like − → to give this set the structure of a vector space.λ is never the identity. and Ha. When λ = 0. Ha. note that Ha. xa xa xa xa a− 1 2a .1. it turns out that it is more convenient to consider dilatations of the form Ha.1−λ .0 is the constant aﬃne map sending every point to a. Thus. We have Ha. it will turn out that barycenters show up quite naturally too! In order to “add” two dilatations Ha1 . We prefer our view in terms of geometric transformations. In this case. λ1 (x) = x + λ1 − 1 and xa → a2 . and deﬁned such that → Ha. where λ = 0. and is obtained by “scaling” − by λ. in such a way that both E and E can be naturally embedded into E. If we assume λ = 1.λ(a).λ (a) = a.λ is never a translation.λ (x) = a + λ− ax. THE “HAT CONSTRUCTION”.0 (x) = a for all x ∈ E. and when λ = 0 and x = a. each a. Then. let us see the eﬀect of such a dilatation on a point x ∈ E: we have → → → → Ha.λ (x) is on the line → deﬁned by a and x. λ2 (x) = x + λ2 − 2 . Then. λ1 + a2 . The eﬀect is a uniform dilatation ax (or contraction.1−λ (x) = Hx. λ can be viewed as → → the vector ﬁeld x → λ− Similarly. For simplicity of notation. In fact.1−λ (x) = a + (1 − λ)− = a + − − λ− = x + λ− ax ax ax xa. To see this.

and we let → → a. λ + − = a + λ−1 − . → Given a translation deﬁned by − and a dilatation a. In this case. λ1 + λ2 λ1 + λ2 Since → − → → xa xa λ1 − 1 + λ2 − 2 = (λ1 + λ2 )xb. u v u v It is also natural to deﬁne multiplication by a scalar as follows: µ · a. u u − → → where λ− is the product by a scalar in E . λ1 + λ2 λ1 + λ2 such that → − λ1 − λ2 − → → xb = xa1 + xa2 . we let a1 . we have u → u → → λ− + − = λ(− + λ−1 − ). λ1 + a2 . since ab = λ−1 − . λ = a. letting b = a + λ−1 − . λ . a− 1 a− 1 2a 2a (2) λ1 + λ2 = 0. λ1 + λ2 λ1 + λ2 and λ2 λ1 +λ2 the dilatation associated with the point b and the scalar λ1 + λ2 . . u → → → → The sum of two translations − and − is of course deﬁned as the translation − + − . the points a1 and a2 assigned the weights have a barycenter λ1 λ2 b= a1 + a2 . and → → λ · − = λ− . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a1 . λ1 + λ2 . u We can now use the deﬁnition of the above operations to state the following lemma. λµ . λ2 = λ1 − →. u u → the dilatation of center a + λ−1 − and ratio λ. λ . since λ = 0. a− 1 2a λ1 λ1 +λ2 where λ1 − → denotes the translation associated with the vector λ1 − →. we have u u → → − → → − → → u xa xa u xa → λ− + − = λ(− + λ−1 − ) = λ(− + ab) = λxb.374 we let CHAPTER 10. showing that the “hat construction” described above has allowed us to achieve our goal of − → embedding both E and E in the vector space E. λ1 + a2 . xa → xa u → − → → and so. λ2 = λ2 λ1 a1 + a2 .

Note that → → → j(a + − ) = a + − . 1 + − . λ1 + a2 . is a vector space under the following operations of addition and multiplication by a scalar: if λ1 + λ2 = 0 then a1 . we have − → E = i( E ) ⊕ Rj(a).1−λ = a.1. under the map j : E → E. under the injective aﬃne map j : E → E. and thus. λ . → → λ · − = λ− . It is also clear that ω is a linear form. u u u Proof. from the deﬁnition of + . λ + − = − + a. u u u − +− =− +− . 1 . λµ . since u → → → u i(− ) + λ · j(a) = − + a. 1 = a. j is an aﬃne u u injection with associated linear map i. → ω(− ) = 0. u u . OR HOMOGENIZING 375 Lemma 10. Finally. for every a ∈ E. λ . a− 1 2a if λ1 + λ2 = 0 then a1 . λ ) = λ. as an hyperplane in E. λ = 0 . Finally. λ = a. λ1 + a2 . for every a ∈ E. λ ∈ R. λ = a + λ−1 − . The linear map mapping − → − → → → a vector − to the translation deﬁned by − is clearly an injection i : E → E embedding E u u → → where − stands for the translation associated with the vector − .10. λ . The veriﬁcation that E is a vector space is straightforward. The set E consisting of the disjoint union of the translations and the dilatations Ha. and ω −1(1) is an aﬃne u u − → hyperplane isomorphic to E with direction i( E ). λ2 = λ1 − →. → → → → u v u v if µ = 0 then µ · a. λ = a + λ−1 − . λ1 + λ2 λ1 + λ2 → → → a. u − → is a linear form. − → 0 · a. λ2 = λ1 λ2 a1 + a2 . u u and Furthermore. → → − for every a ∈ E. where j(a) = a.1. λ = 0. Thus. λ1 + λ2 .1. ω −1 (0) is a hyperplane isomorphic to E under the injective linear map − → → → i : E → E such that i(− ) = tu (the translation associated with − ). ω −1(1) is indeed an aﬃne hyperplane isomor− → phic to E with direction i( E ). THE “HAT CONSTRUCTION”. the map ω : E → R deﬁned such that ω( a. for every − ∈ E .

the λ-heavy elements all belong to the hyperplane ω −1(λ) − → parallel to i( E ). The − → elements of j(E) are 1-heavy and are called points. 1 = a j(E) = ω −1(1) Ω − → u − → i( E ) = ω −1(0) − → Figure 10. Thus. µ = 0. one . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a. − → Note that E is isomorphic to E ∪ (E × R∗ ) (where R∗ = R − {0}). → arbitrary element b. − → − → and since i( E ) ∩ Rj(a) = { 0 }. Other authors use the notation E∗ for E. In general.376 CHAPTER 10. µ . for every a ∈ E. Ramshaw calls the linear form ω : E → R a weight (or ﬂavor). Thus. when E is an aﬃne plane. we get any arbitrary − ∈ E by picking λ = 0 and − = − . we can thing of E as a stack of parallel hyperplanes. and he says that an element z ∈ E such that ω(z) = λ is λ-heavy (or has ﬂavor λ) ([65]). we have − → E = i( E ) ⊕ Rj(a). λ a. by picking λ = µ and u − → E = i( E ) + Rj(a). E ) into a vector space E → → → when λ = 0. intuitively. and the elements of i( E ) are 0-heavy and are called vectors. The following diagram illustrates the embedding of the aﬃne space E into the vector space E. and we get any v u v → − − = µ ab.1: Embedding an aﬃne space (E.

because we ﬁnd it too confusing. the expression 2 + 3 makes sense: it is the weighted point 2. we make a few observations. for λ = 0. when viewing λ as a vector in R and in A. i∈I where −−→ −− λi ai = i∈I i∈I − → λi bai . Then. − → − → From now on. 3].5. λ + − = a + λ−1 − . and simply λ. which can be denoted as 2. for λ = 1. since it is not a barycentric combination. We u also denote λa + (−µ)b as λa − µb. every element of E can be written uniquely as − + λa. when viewing λ as a point in both A and A. a little bit like an inﬁnite stack of very thin pancakes! There are two privileged − → pancakes: one corresponding to E. the expression 2 + 3 denotes the real number 5. which we will call a weighted point. we write λ for λ. In particular. we may also write a. OR HOMOGENIZING 377 for each λ. we go one step further. THE “HAT CONSTRUCTION”.1. by e Ramshaw. The elements of A are called B´zier sites. in A. and one corresponding to E . in the simpliﬁed u u − = a + − . 1 = a. We can now justify rigorously the programming trick of the introduction of an extra coordinate to distinguish between points and vectors. 1 as a. However. and 2 + 3 does not make sense in A. when we consider the homogenized version A of the aﬃne space A associated with the ﬁeld R considered as an aﬃne space. 2 . and any family (λi )i∈I of scalars in R. However. When we want to be more precise. u u → → we will refrain from writing λa + − as λa + − . and denote → → notation. λ . we will identify j(E) and E. 1 (under the injection j). 1 + − . for every a ∈ E. since u u → → a. in view of the fact that → → a + − . λi = i∈I −− − −→ λi ai . As an example.1. then ai . First. Given any family (ai )i∈I of points in E.1. in A.5. it is easily shown by induction on the size of I that the following holds: (1) If i∈I λi = 0. 1 . and i( E ) and E . λ . u u → → and since we are identifying a + − with a + − . We will also write λa instead of a. and write 1a just as a. the above reads as a + u u → → a + − as a + − . From u u → lemma 10. Thus. 2+3 denotes 2 the middle point of the segment [2.10.

λi belongs to the hyperplane ω (1). n}.4. i∈I λi . Given any aﬃne space (E. Operations on weighted points and vectors were introduced by H. by lemma 2. Proof. then ai . . The above formulae show that we have some kind of extended barycentric calculus. λi . we allow ourselves to write λ1 a1 + · · · + λn an . or (2) If i∈I λi = 0. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE for any b ∈ E. E ).2. i∈I λi . by lemma 2. is a vector independent of b. we can make sense of i∈I ai . By induction on the size of I and the size of J. in his book published in 1844! . Thus. we have the following slightly more general property. for any family (ai )i∈I of points in E. with I ∩ J = ∅. and when I = {1. In fact. When i∈I λi = 1. i i∈I j j∈J the following properties hold: (1) If i∈I λi = 0.4. . and that in E. the linear combination of points i∈I λi ai is a vector. and thus. as λ1 a1 + · · · + λn an . which. When i∈I λi = 0. which is left as an exercise. . then ai . Grassmann. λi + − = → vj j∈J i∈I λi i∈I i∈I λi ai + j∈J − → vj i∈I λi .1. for − → → any family (λ ) of scalars in R. This will be convenient when dealing with derivatives in section 10.1. and any family (− ) v of vectors in E . or (2) If i∈I λi = 0. where the occurrences of − (if any) are replaced by −. → vj where −−→ −− λi ai = i∈I i∈I − → λi bai for any b ∈ E. we see how barycenters reenter the scene quite naturally. the element −1 i∈I ai . it is a point.1. then ai .378 CHAPTER 10. where some of the occurrences of + can be replaced by − . regardless of the value of i∈I λi . is a vector independent of b. λi + i∈I j∈J − = → vj −−→ −− λi ai + i∈I j∈J −. . − → Lemma 10.5. which. λi = i∈I i∈I λi i∈I λi ai .

µ . the basis (a0 .r. . . λ ∈ E.r. λ w. stated in the following lemma. . . am ) in E are (−(v1 + · · · + vm ).r. → → − If a vector − ∈ E is expressed as v − − − − − − − → − = v − → + · · · + v − a = − − − · ·− + − − − − − − − ·− − − . . Proof. . . λ over the basis 0a → a− a− a (− →. am ) in E are (λλ0 . Furthermore. a0 ) in E. Given any aﬃne space (E. . . . 0). then over the basis (− →. . . . . . . − am )) in E. . given any element x. and for any aﬃne frame (a0 . . . a ) in E. v1 . vm . . the family (− →. . − → − Lemma 10. − a . . We sketch parts of the proof. . if − a0 → a− 1 x = a0 + x1 − → + · · · + xm − am 0a − a0 → a− 1 over the aﬃne frame (a0 . .t. − = v −→ + · · · + v − a → − − → v 1 a0 a1 m a0 m − → − − over the basis (− →. . . . . . λxm . . then its coordinates w. . .2. If we assume that we have a nontrivial linear combination − → − a0 → λ1 − → + · · · + λm − am + µa0 = 0 . . . → − − → −(v−+ − ·− v−)a − v a−+ · − + v− a v · 1 a0 a1 m a0 m 1 m 0 + 1 1 m m with respect to the aﬃne basis (a0 . . where λ = 0. . . . for any aﬃne frame (a0 . . . E ) and bases of E. then the coordinates of x. the family (a0 . a0 ) is a basis for E. . . . AFFINE FRAMES OF E AND BASES OF E 379 10. . − am . . am ) is a basis for E. the aﬃne basis (a0 . .t. . . . − am . vm ). . leaving the details as an exercise. . . (− →. am ) a− 1 a0 → 0a for E. a− 1 0a 0a → → − For any vector − ∈ E . . . am ) in E are (λ0 . (− →. if the barycentric coordinates of a w. λm ) with λ0 + · · · + λm = 1. . are 0 1 0 m 0 (λx1 .2 Aﬃne Frames of E and Bases of E − → There is also a nice relationship between aﬃne frames in (E. E ). .1. − am ) in E . For any element a. . λ). . if v . λ . . λλm ). . . the a− 1 a0 → a− 1 a0 → 0a 0a → coordinates of − are v (v1 .t. . then the coordinates of a. am ) in E. − am )) a− 1 a0 → 0a − for E. . . the basis (a0 .10. .2. then we have − − a− 1 a0 → a0 → λ1 − → + · · · + λm − am + µa0 = a0 + µ−1 λ1 − → + · · · + µ−1 λm − am . . . . a− 1 0a if µ = 0.

. . − →. . λ over the basis (− →. λ). − If (x1 . − am )) a− 1 a0 → 0a in E. a2 ) in E. and . a0 ) in E are a− 1 a0 → 0a (λx1 . . . . if − x = a0 + x1 − → + · · · + xm − am a− 1 a0 → 0a − over the aﬃne frame (a0 . . . . . then.t. − →. . (− →. a0 ) in E a− 1 a− 2 0a 0a − which is never null. a1 . . λ + λx1 − → + · · · + λxm − am . . a− 1 a0 → a− 1 a0 → 0a 0a − which shows that the coordinates of x. . (− →. to the aﬃne frame (a0 .e. 1 ≤ i ≤ m. . . − am . . . − am ) is a basis of a− 1 a0 → 0a − → E . . .2: The basis (− →. and thus. (x1 . . we must have µ = 0.380 CHAPTER 10. but since (− →. we must also have λi = 0 for all i. λ = a0 + x1 − → + · · · + xm − am . 1 = a a1 Ω E −→ a− 2 0a − → u −→ a− 1 0a Figure 10. a0 ) corresponding to the aﬃne frame a− 1 a− 2 0a 0a (a0 . . . λ ∈ E. . Given any element x. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a. . we have a− 1 a0 → 0a − − x.. − am )) in E. . xm ) are the coordinates of x w. the last coordinate is 1. λxm . . . λ a0 a2 a. i. in view of the deﬁnition of + . λ = a0 . xm .r. The following diagram shows the basis (− →. 1) are the coordinates of x in E.

1. we deﬁne rigorously the notion of homogenization of an aﬃne space. given two aﬃne spaces E and F . ω . j. E ).. − → Deﬁnition 10. then − u a− 1 a0 → u 0a has coordinates (u1 . . Other authors use the notation f∗ for f . . and for every vector space F and every aﬃne map . The following diagram shows the aﬃne frame (a0 . λ a.3: The basis (a0 . − am ) in E .3.3 Extending Aﬃne Maps to Linear Maps − → Roughly. . . ω : E → R is a linear form such − → − → that ω −1 (0) = i( E ). . 10. i. um) with respect to the basis (− →. a1 . 1 = a a1 Ω a2 E − → u Figure 10. j : E → E is an injective aﬃne − → map with associated injective linear map i : E → E. . the vector space E has the property that for any vector space F and any aﬃne − → − → − → map f : E → F . um . . where E is a vector space. the last coordinate is 0. As a consequence. a1 . every aﬃne map f : E → F extends uniquely to a linear map f : E → F .e. . . a2 ) in E viewed as a basis in E. . EXTENDING AFFINE MAPS TO LINEAR MAPS 381 a0 a. an homogenization (or linearization) − → of (E.10. there is a unique linear map f : E → F extending f : E → F . E ) is a triple E. First. . ω −1 (1) = j(E).3. 0) in E. We now consider the universal property of E mentioned at the beginning of this section. a2 ) in E − → → − → if − has coordinates (u1 . . Given any aﬃne space (E.

E ) and any vector space F . and since f extends f . and such that the universal property stated above holds. u u u u → → If λ = 1. j(E) = ω −1 (1) is an aﬃne hyperplane with direction i( E ) = ω −1(0). E ). u u Proof. where E is a vector space.3. for any aﬃne map − → − → f : E → F . j.1. . Then.1 is more convenient for our purposes. where f is the linear map associated with f . On the other hand. Assuming that f exists. The obvious candidate for E is the vector space E that we just constructed. This property is left as an exercise. we have u → → → → f (− + λa) = f (− ) + λf (a) = f (− ) + λf (a) = λf (a) + f (− ). The next lemma will indeed show that E has the required extension property. f (− ) = f (− ) for all − ∈ E .382 CHAPTER 10. By linearity of f and since f extends f . u u which proves the uniqueness of f . i. there is a unique linear map f : E → F extending f . u u u u u − → → → → → − and thus. − → − → Lemma 10.1. Given any aﬃne space (E. As usual. In u particular. since a + − and a + − are identiﬁed. deﬁnition 10. the map f deﬁned as above is clearly a linear map extending f . for every a ∈ E. f = f ◦ j. Note that we − → could have deﬁned an homogenization of an aﬃne space (E. we have → → f (− + λa) = λf (a + λ−1 − ). H . However. when λ = 0. we have u u u − → → → f (− + λa) = λf (a) + f (− ). recall that from lemma 10. objects deﬁned by a universal property are unique up to isomorphism. as a triple E. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE − → − → f : E → F .e. we must have u u − → → → → → → f (a) + f (− ) = f (a) + f (− ) = f (a + − ) = f (a + − ) = f (a) + f (− ). there is a unique linear map f : E → F extending f such that − → → → f (− + λa) = λf (a) + f (− ) u u − → → → − for all a ∈ E. and all λ ∈ R. every element → of E can be written uniquely as − + λa.3. H is an aﬃne hyperplane in E. since it makes the notion of weight more evident. and j : E → E is an injective aﬃne map such that j(E) = H. as in the following diagram: E@ j / E @@ @@ f @ f @ @ − → F − → Thus. all − ∈ E .2.

u Proof.10. . Lemma 10. u u From a practical point of view. E ). by letting λ = 1 in → → f (− + λa) = λf (a + λ−1 − ). (−1 . u u → → and (b0 . − . . . Consider the vector space F . −n )) is an aﬃne frame of E. − → − → Note that f : E → F has the property that f ( E ) ⊆ F . and the aﬃne map j ◦ f : E → F .3. u u the linear map f is weight-preserving. As a corollary. . is an homogenization of (E. when λ = 0. extending j ◦ f . a linear map h : E → F is given by an u u v vm . u u that is. . and that (a0 . .3. we obtain the following lemma. j. there is a unique linear map f : E → F . ω . as in the diagram below. . with origin a0 . and thus extending f .3 shows us how to homogenize an aﬃne map to turn it into a linear map between the two homogenized spaces. − )) is an aﬃne frame of F . .3. In u particular. Then. . we have → → → → f (− + λa) = f (λ(a + λ−1 − )) = λf (a + λ−1 − ) = λf (a + λ−1 − ). . EXTENDING AFFINE MAPS TO LINEAR MAPS When λ = 0. E j f / F j f E such that / F − → → → f (− + λa) = f (− ) + λf (a). More generally. −n .2. since − → → → f (− + λa) = f (− ) + λf (a). Also observe that we recover f from f . with respect to the two v vm → → → → bases (−1 .3.2 shows that E. and all λ ∈ R. a0 ) in E and (−1 . with origin b0 . . (−1 . lemma 10. . . Assume that E and F → → are of ﬁnite dimension. there is a unique linear map f : E → F extending f . u u − → → → − for all a ∈ E. Given two aﬃne spaces E and F and an aﬃne map f : E → F . where f is the linear map associated with f .3. we have → → u f (− + λa) = λf (a + λ−1 − ). we have → → f (a + − ) = f (− + a). . . b0 ) in F . . By lemma 10.3. u u u u 383 − → Lemma 10. all − ∈ E .

1)⊤ and Y = (y1 . . . u u → → since over the basis (−1 . . −n . 1) and (y1 . . . b0 ). with coordinates (x1 . . . points are represented by vectors whose last cooru u dinate is 1. 1). 1). ym. − . y2 = cx1 + dx2 + µ2 . and vectors are represented by vectors whose last coordinate is 0. a0 ) in E. . . . . . for X = (x1 . . . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE (m + 1) × (n + 1) matrix A. µm . . 1)⊤ . xn . . − ) and (− . − ). u u given any x ∈ E and y ∈ F . If this linear map h is equal to the homogenized version f of an aﬃne map f . . . . . and since u u v v 1 n 1 m → → f (a0 + − ) = f (− + a0 ). . . . . the last column contains the coordinates (µ1 . 0. we have y = f (x) iﬀ Y = AX. with m occurrences of 0. 1) → → of f (a0 ) with respect to the basis (−1 . the last row of the matrix A = M(f ) with respect to the given bases is (0. since − → → → f (− + λa) = f (− ) + λf (a). . The matrix of f is a b µ1 c d µ2 0 0 1 and we have y1 a b µ1 x1 y2 = c d µ2 x2 1 0 0 1 1 y1 a b µ1 x1 y2 = c d µ2 x2 y3 0 0 1 x3 In E. . . . 0. . we have . . . . . . consider the following aﬃne map f : A2 → A2 deﬁned as follows: y1 = ax1 + bx2 + µ1 . . the submatrix of A obtained by deleting v vm − → the last row and the last column is the matrix of the linear map f with respect to the bases → → → → (− . . For example.384 CHAPTER 10. . . ym . . . xn .

Furthermore. . .. .. 10. − ∈ E . . . Given any two aﬃne spaces E and F and an m-aﬃne map f : E m → F . . . am ) + v vm S⊆{1.1.. λm ∈ R. . . k=|S| S={i1 . .. . am + − ) = f (a1 .4. . . for λi = 0.. ..4. . .. . . .. for any m-aﬃne map − → − → f : E m → F . k=|S| S={i1 . we have → → → → vm f (−1 + λ1 a1 .. .2.4. .4 From Multiaﬃne Maps to Multilinear Maps We now show how to homogenize multiaﬃne maps. .2. . . Given any aﬃne space E and any vector space F . then → → vm f (−1 + λ1 a1 .ik }. . am ∈ E. . vi vi S⊆{1. − + λm am ) v = λ1 · · · λm f (a1 . . . . − → Lemma 10. such that.. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 ..ik }. vi vi − → → → for all a1 . .. am ) + → → λj fS (−1 . −k ). . . . we obtain the following useful lemma. Lemma 10. −k ). k≥1 j∈{1. . all −1 . The proof is very technical and can be found in Chapter B... Em j×···×j f / F j (E)m f / F ..m} j ∈S / → → → − for all a1 . As a corollary. . am + λ−1 − ). Section B. − ∈ E . .. v 1 v m vm Proof. . .3). y3 = x3 . . if → → f (a1 + −1 . . v vm 1 ≤ i ≤ m. and all −1 .. . FROM MULTIAFFINE MAPS TO MULTILINEAR MAPS 385 which means that the homogeneous map f is is obtained from f by “adding the variable of homogeneity x3 ”: y1 = ax1 + bx2 + µ1 x3 . where the fS are uniquely determined v vm multilinear maps (by lemma 4. there is a unique m-linear map f : (E)m → F extending f as in the diagram below...m}. .1. k≥1 → → fS (−1 .10..m}. am ∈ E. . . . . and all λ1 . . . there is a unique m-linear map f : (E)m → F extending f . . . y2 = cx1 + dx2 + µ2 x3 .

k≥1 → → fS (−1 . . . where the fS are uniquely determined v multilinear maps (by lemma 4. .. am ∈ E..2). . λ2 )) = (λ1 λ2 a(x1 λ−1 )(x2 λ−1 ) + bx1 λ−1 + cx2 λ−1 + d . . then → → f (−1 + λ1 a1 .m}.1 (see the proof of lemma 10. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . .386 such that. . .. for 1 ≤ i ≤ m. . is given by f ((x1 . vi vi − → → → vm for all a1 .. . . . . vi vi S⊆{1. The homogenized version f of an m-aﬃne map f is weight-multiplicative.... . . if we consider the aﬃne space A with its canonical aﬃne frame (the origin is 0. − ∈ E . . . . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE → → f (a1 + −1 . . . .. . k=|S| S={i1 . if f : A × A → A is the biaﬃne map deﬁned such that f (x1 .m} j ∈S / → → → − for all a1 . we have → → → → vm f (−1 + λ1 a1 . .. . . . for all z1 . . . .1. . . . λ1 λ2 ) 1 2 1 2 = (ax1 x2 + bx1 λ2 + cx2 λ1 + dλ1 λ2 . Immediate from lemma 10. . k≥1 j∈{1. λ1 λ2 ). . . −k ).. v vm 1 ≤ i ≤ m. v vm 1 v m vm shows us that f is recovered from f by setting λi = 1. and the basis consists of the single vector 1).m}. .ik }. in the sense that ω(f (z1 .3......4. if CHAPTER 10. in A. . .3). . λm ∈ R. . v 1 v m vm Proof. am + − ) = f (a1 . −k ). 0). . where we choose the basis (1. for λi = 0.3. . . λ1 ).3 from lemma 10. .. . .. − ∈ E . . and all −1 . . .ik }. For example. We can use this formula to ﬁnd the homogenized version f of the map f . From a practical point of view.. .. . . Furthermore. . am ) + → → λj fS (−1 . the bilinear map f : A × A → A. (x2 . and all λ1 . . → → → → f (−1 + λ1 a1 . all −1 . . . . am + λ−1 − ). zm ∈ E. . . am ) + v vm S⊆{1. . . zm )) = ω(z1 ) · · · ω(zm ). . am ∈ E. . . − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . − + λm am ) v vm = λ1 · · · λm f (a1 . . .. x2 ) = ax1 x2 + bx1 + cx2 + d. . k=|S| S={i1 . am + λ−1 − ).

Since multiaﬃne maps can be homogenized.. . Xn .. . .... . FROM MULTIAFFINE MAPS TO MULTILINEAR MAPS 387 Note that f (x1 . . . . For the homogenized version h of the aﬃne polynomial w h associated with f . . i=j 1≤i. ... we can get an explicit formula for the homogenized → → version f of f . Xn ) = Q(X1 . Xn ) is of total degree p. . − → − → → for some b ∈ F . .j≤n i1 ∈I1 v1. . .. . j e1 n.. Xn ] is done as follows.p} Ii ∩Ij =∅. polynomial maps can also be homogenized. we know that for any m vectors − = v − +···+v − ∈ − ..|In | . . a. 1≤i≤n k → k v1 1 · · · vnn λm−p − k1 .. . generalizing our previous example.j≤n i1 ∈I1 v1. . .kn . If P (X1. .3.m} j ∈(I1 ∪. i1 · · · vn. and since E = E ⊕ Ra. .|In| .. → → → → vj E 1.. . and we want to ﬁnd a homogeneous polynomial Q(X1 . − . such that P (X1 . .p} Ii ∩Ij =∅. in in ∈In j∈{1. i1 · · · vn... .. . a + − ) = b + v vm 1≤p≤m I1 ∪. with respect to the basis w → → (−1 ... in in ∈In − → w |I1|. . . Z) of total degree m ≥ p.... w Remark: Recall that homogenizing a polynomial P (X1 .. ... If (a. .. we obtain the expression for f by homogenizing the polynomials which → are the coeﬃcients of the − |I1 |. .|In| . 1 ) of E. . Xn .. Xn . . . 1).∪In ={1.. Xn ) ∈ R[X1 . .. we let Q(X1 ... .. ..∪In ) / λj − → w |I1 |. and some − |I1|.. − + λm a) = λ1 · · · λm b + v vm 1≤p≤m I1 ∪.4. when E is of ﬁnite dimension. − )) is an aﬃne frame for e en E.∪In ={1. ... (−1 . Z Z . . . x2 ) is indeed recovered from f by setting λ1 = λ2 = 1.2. using the characterization of multiaﬃne maps f : E m → F given by lemma 4. we have e en → → f (−1 + λ1 a.. In fact.. .|In | ∈ F . .. . . ... j en we have → → f (a + −1 .. This is very useful in practice. Z) = Z m P X1 Xn . i=j 1≤i. .. .10. In other words. we get: → h(− + λa) = λm b + v 1≤p≤m k1 +···+kn =p 0≤ki .

of its m-polar form f : Am → E. .1. and we write simply a + 1 − a. we have F (a + tδ) − F (a) = F (a + tδ) − F (a). or as δ. However.388 CHAPTER 10. as suggested in section 10. When dealing with → − derivatives. lim F (a + tδ) − F (a) . we assume that E is a normed aﬃne space. for any a ∈ R. In this section. t→0. t if it exists. − → The vector 1 of A will be denoted as 1 .5 Diﬀerentiating Aﬃne Polynomial Functions Using Their Homogenized Polar Forms. t=0 λ1 a1 + · · · + λn an . t = 0. . we mean a + 1 −a in A. remember that such combinations are vectors in E (and in E). to distinguish it from the vector a ∈ R (and a ∈ A. we will write λ1 a1 + · · · + λn an . λn ∈ R. Osculating Flats In this section. . Note that − → δ = 1 = a + 1 − a. such that λ1 + · · · + λn = 0. In this section. given a1 . . with t ∈ R. One of the major beneﬁts of homogenization is that the derivatives of an aﬃne polynomial function F : A → E can be obtained in a very simple way from the homogenized version f : (A)m → E. an ∈ E. and thus. but we prefer to be less pedantic. the derivative DF (a) is the limit. . it will be convenient to denote a point in A (and in A. since F agrees with F on A. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE 10. . since we view R as embedded in A). following Ramshaw. Remark: when we write a + 1−a. since we view A as embedded as a line in A) as a. we need to see what is the limit of F (a + tδ) − F (a) . t when t → 0. . For any a ∈ A. it is also more convenient to denote the vector ab as b − a. as − → However. . . and λ1 .

5. . . a + tδ ). δ ). . . Since F (a + tδ) = f (a + tδ. . where 1 ≤ k ≤ m: Dk F (a) = m(m − 1) · · · (m − k + 1) f (a. . and not a point in E. m m by multilinearity and symmetry. t=0 t lim m−1 However. m where f is the homogenized version of the polar form f of F . . a + tδ ) − f (a. . δ). . a) by δ. . . where E is a normed aﬃne space.5. . . . m−k k and thus. . . . . m−1 This shows that the derivative of F at a ∈ A can be computed by evaluating the homogenized version f of the polar form f of F . . .10. δ. . . Given an aﬃne polynomial function F : A → E of polar degree m. we have DF (a) = DF (a). F (a + tδ) − F (a) = mf (a. and thus. . a. .1. . and F is the homogenized version of F . δ). . δ. . δ) + m−1 k=2 m k tk f (a. the structure of E takes care of this. we have the following useful lemma. . . a. since F (a + tδ) − F (a) is indeed a vector (remember our convention that − is an abbreviation for − ). However. m−k k Proof. we showed that DF (a) = mf (a. More generally. . . . . . a). a. . . where E is an aﬃne space. a. A simple induction on k. the k-th derivative Dk F (a) can be computed from the homogenized polar form f of F as follows. Lemma 10. since F (a + tδ) − F (a) = f (a + tδ. . we have k=m F (a + tδ) − F (a) = m t f (a. by replacing just one occurrence of a in f (a. the derivative DF (a) of F at a is − → a vector in E . t→0. since F extends F on A. DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS 389 Recall that since F : A → E. . . . . . . . a. . δ).

.2 is usually derived via more traditional methods involving ﬁnite diﬀerences. If F is speciﬁed by the sequence of m + 1 control points bi = f (r m−i s i ). .. . r. following Knuth. 0 ≤ i ≤ m. the k-th derivative Dk F (r) can be computed from the polar form f of F as follows. s). where E is a normed aﬃne space. Since coeﬃcients of the form m(m−1) · · · (m−k + 1) occur a lot when taking derivatives. s). . it is useful to introduce the falling power notation. . we get mk D F (r) = (s − r)k k i=k i=0 k (−1)k−i f (r. for 0 ≤ k ≤ m. .. . Since δ= we can expand mk (s − r)k i=k i=0 k (−1)k−i f (r. .2.. the previous lemma reads as Dk F (a) = mk f (a. We believe that the approach via polar forms is more conceptual. . with r = s. . . r. depends only on the k + 1 . Using the falling power notation. for any r. . . and gives more insight into what’s really going on. where 1 ≤ k ≤ m: Dk F (r) = Proof.. The falling powers mk have some interesting combinatorial properties of their own. . s. and by induction on k. . . as mk = m(m − 1) · · · (m − k + 1). . and with the convention that mk = 0 when k > m.5. s ∈ A. δ. . m−k k We also get the following explicit formula in terms of control points. Lemma 10. . a. s. . . . i m−i i s−r . with m0 = 1. s−r s−r k Dk F (r) = mk f r. we have Dk F (a) = 0 .390 CHAPTER 10. . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE − → When k > m. It also extends fairly easily to the case when the domain A is replaced by a more general normed aﬃne space (to deﬁne surfaces). s−r s−r s−r . We deﬁne the falling power mk . r. .5. m−k by multilinearity and symmetry. δ ). . . i m−i i and we conclude using the fact that f agrees with f on E. . . the above lemma shows that the k-th derivative Dk F (r) of F at r. Lemma 10. Given an aﬃne polynomial function F : A → E of polar degree m.

t. . m−1 = f (t. . if b0 = b1 = .5. . s−r m−1 m−1 and since f agrees with f on Am . . and consider a map F : E → E.m−1 ). we have DF (t) = m (b1. More generally. . k i (s − r) i=0 In particular. . b0 b1 = s−r s−r the last expression making sense in E. . . m−1 = f (t. and bk = bk+1 . . . bk In terms of the control points b0 .2 reads as follows: i=k mk k k D F (r) = (−1)k−i bi . . and it is given by DF (r) = − m m −→ (b1 − b0 ). . . the tangent to the B´zier curve at the point b0 is the line determined by b0 and b1 . However. . it will be necessary to generalize the above results to directional derivatives. δ) = m−1 s−r s−r m (f (t. e the tangent at the point bm is the line determined by bm−1 and bm (provided that these points are distinct). s)). Later on when we deal with surfaces. t. . . then DF (r) is the velocity vector of F at b0 . . . t. r) and b1. s). s−r Thus. . = bk . 2 (s − r) (s − r)2 the last expression making sense in E. . .m−1 − b0. In order to see that the tangent at the current point F (t) deﬁned by the parameter t. . . the above reasoning can be used to show that the tangent at the point b0 is determined by the points b0 and bk+1 . Similarly. . . we have justiﬁed the claims about tangents to B´zier curves made in section 5. if b0 = b1 .1. the acceleration vector D2 F (r) is given by D2 F (r) = − −→ − m(m − 1) m(m − 1) −→ (b0 b2 − 2b0 b1 ) = (b2 − 2b1 + b0 ). DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS 391 control points b0 . we have basically done all the work already. Recall from .10. bk . m−1 m−1 given by the de Casteljau algorithm. e Similarly. . . . note that since δ= and DF (t) = mf (t. Let us assume that E and E are normed aﬃne spaces. is determined by the two points b0. r) − f (t. This shows that when b0 and b1 are distinct. the formula of lemma 10. t. . t. .5.

392

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

− → → → − deﬁnition D.1.2, that if A is any open subset of E, for any a ∈ A, for any − = 0 in E , u → the directional derivative of F at a w.r.t. the vector − , denoted as Du F (a), is the limit, if u it exists, → F (a + t− ) − F (a) u lim , t→0,t∈U,t=0 t → where U = {t ∈ R | a + t− ∈ A}. u If F : E → E is a polynomial function of degree m, with polar form the symmetric multiaﬃne map f : E m → E, then → → F (a + t− ) − F (a) = F (a + t− ) − F (a), u u where F is the homogenized version of F , that is, the polynomial map F : E → E associated with the homogenized version f : (E)m → E of the polar form f : E m → E of F : E → E. Thus, Du F (a) exists iﬀ the limit → F (a + t− ) − F (a) u t→0, t=0 t lim exists, and in this case, this limit is Du F (a) = Du F (a). Furthermore, → → → F (a + t− ) = f (a + t− , . . . , a + t− ), u u u

m

and since

→ → → F (a + t− ) − F (a) = f (a + t− , . . . , a + t− ) − f (a, . . . , a), u u u

m m

**by multilinearity and symmetry, we have → → F (a + t− ) − F (a) = m t f (a, . . . , a, − ) + u u
**

m−1 k=m

k=2

m k

→ → tk f (a, . . . , a, − , . . . , − ), u u

m−k k

and thus,

Du F (a) = lim

→ F (a + t− ) − F (a) u → = mf (a, . . . , a, − ). u t→0, t=0 t

m−1

**However, we showed previously that Du F (a) = Du F (a), and thus, we showed that → u Du F (a) = mf (a, . . . , a, − ).
**

m−1

By a simple, induction, we can prove the following lemma.

10.5. DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS

393

the k-th directional derivative Du1 . . . Duk F (a) can be computed from the homogenized polar form f of F as follows: → → Du1 . . . Duk F (a) = mk f (a, . . . , a, −1 , . . . , −k ). u u

m−k

Lemma 10.5.3. Given an aﬃne polynomial function F : E → E of polar degree m, where E → → → − and E are normed aﬃne spaces, for any k nonzero vectors − , . . . , − ∈ E , where 1 ≤ k ≤ m, u u

1 k

and all k ≥ 1, and since E is of ﬁnite dimension, all multiaﬃne maps are continuous and the derivatives Dk F exist for all k ≥ 1 and are of class C ∞ (recall that Dk F (a) is a symmetric k-linear map, see Lang [48]). Furthermore, we know that → → Dk F (a)(−1 , . . . , −k ) = Du1 . . . Duk F (a). u u Thus, lemma 10.5.3 actually shows that → → → → u u Dk F (a)(−1 , . . . , −k ) = mk f (a, . . . , a, −1 , . . . , −k ). u u

m−k

Lemma 10.5.3 is a generalization of lemma 10.5.1 to any domain E which is a normed aﬃne space. We are going to make use of this lemma to study local approximations of a polynomial map F : E → E, in the neighborhood of a point F (a), where a is any point in E. In order to be sure that the polar form f : E m → E is continuous, let us now assume that E is of ﬁnite dimension, → → Since by lemma 10.5.3, the directional derivatives D . . . D F (a) exist for all − , . . . , − u u

u1 uk 1 k

**This shows that Dk F (a) is the symmetric k-linear map → → → → (−1 , . . . , −k ) → mk f (a, . . . , a, −1 , . . . , −k ). u u u u
**

m−k

Of course, for k > m, the derivative Dk F (a) is the null k-linear map. Remark: As usual, for k = 0, we agree that D0 F (a) = F (a). We could also relax the condition that E is of ﬁnite dimension, and assume that the polar form f is a continuous map. Now, let a be any point in E. For any k, with 0 ≤ k ≤ m, we can truncate the Taylor expansion of F : E → E at a at the (k + 1)-th order, getting the polynomial map Gk : E → E a deﬁned such that, for all b ∈ E, Gk (b) = F (a) + a → − → − 1 1 1 D F (a)( ab) + · · · + Dk F (a)( ab k ). 1! k!

The polynomial function Gk agrees with F to kth order at a, which means that a Di Gk (a) = Di F (a), a

394

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

for all i, 0 ≤ i ≤ k. We say that Gk osculates F to kth order at a. For example, in the case a of a curve F : A → E, for k = 1, the map G1 is simply the aﬃne map determined by the a tangent line at a, and for k = 2, G2 is a parabola tangent to the curve F at a. a

k As pointed out by Ramshaw, it is tempting to believe that the polar form ga of Gk is a simply obtained from the polar form f of F , by ﬁxing m − k arguments of f at the point a, more precisely, if k ga (b1 , . . . , bk ) = f (b1 , . . . , bk , a, . . . , a), m−k

for all b1 , . . . , bk ∈ E. Unfortunately, this is false, even for curves. The problem is a silly one, it has to do with the falling power mk . For example, if we consider a parabola F : A → A2 , it is easy to see from Taylor’s formula, that

1 Gb (a) = 2f (a, b) − f (b, b), 1 and Ga (b) = 2f (a, b) − f (a, a),

which means that f (a, b) is both the middle of the two line segments (f (a, a), G1 (b)) and a (f (b, b), G1 (a)), which happen to be tangent to F at F (a) and F (b). Unfortunately, it is not b true that G1 (b) = G1 (a) = f (a, b). a b It is possible to ﬁx this problem and to ﬁnd the relationship between the polar forms f k and ga , but this is done most conveniently using symmetric tensors, and will be postponed until section 11.1 (see lemma B.4.3). The ennoying coeﬃcients mk can also be washed out, if we consider the aﬃne subspaces spanned by the range of Gk , instead of osculating curves or surfaces. a Deﬁnition 10.5.4. Given any two normed aﬃne spaces E and E, where E is of ﬁnite dimension, for any polynomial map F : E → E of degree m, for any a ∈ E, for any k, with 0 ≤ k ≤ m, the polynomial map Gk : E → E is deﬁned such that, for all b ∈ E, a Gk (b) = F (a) + a → − → − 1 1 1 D F (a)( ab) + · · · + Dk F (a)( ab k ). 1! k!

We say that Gk osculates F to kth order at a. The osculating ﬂat Osck F (a) is the aﬃne a subspace of E generated by the range of Gk . a If F : A → E is a curve, then we say that F is nondegenerate iﬀ Osck F (a) has dimension k for all a ∈ A. In such a case, the ﬂat Osc1 F (a) is the tangent line to F at a, and Osc2 F (a) is the osculating plane to F at a, i.e., the plane determined by the point F (a), the velocity vector D1 F (a), and the acceleration vector D2F (a). The osculating plane is the usual notion used in diﬀerential geometry. The osculating plane to the curve F at the point F (a) is the limit of any plane containing the tangent line at F (a) and any other point F (b) on the curve F , when b approaches a.

10.5. DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS

395

→ → If F : P → E is a surface, assuming that (Ω, (−1 , −2 )) is an aﬃne frame of P, recall that e e we denote Dejk . . . Dej1 F (a) as ∂k F (a). ∂xj1 . . . ∂xjk → → These are the partial derivatives at a. Also, letting b = a + h1 −1 + h2 −2 , in terms of partial e e derivatives, the truncated Taylor expansion is written as Gk (b) = F (a) + a

1≤i1 +i2 ≤k

hi1 hi2 1 2 i1 !i2 !

∂ ∂x1

i1

∂ ∂x2

i2

F (a).

It is not too diﬃcult to show that there are k(k + 3) (k + 1)(k + 2) −1 = 2 2 partial derivatives in the above expression, and we say that the surface F is nondegenerate iﬀ Osck F (a) has dimension k(k+3) for all a ∈ P. For a nondegenerate surface, Osc1 F (a) is 2 the tangent plane to F at a, and Osc2 F (a) is a ﬂat of dimension 5, spanned by the vectors 2 2 ∂F ∂F ∂2F (a), ∂x2 (a), ∂ F (a), ∂ F (a), and ∂x1 ∂x2 (a). The ﬂat Osc3 F (a) is a ﬂat of dimension 9, and ∂x1 ∂x2 ∂x2 1 2 we leave as an exercise to list the vectors spanning it. Thus, plane curves are degenerate in the above sense, except lines, and surfaces in A3 are degenerate in the above sense, except planes. There is a simple relationship between osculating ﬂats and polar forms, but it is much more convenient to use tensors to prove it, and we postpone the proof until section 11.1 (see lemma B.4.4). Let us simply mention a useful corollary. Given a polynomial map F : E → E of degree m with polar form f : E m → E, the aﬃne subspace spanned by the range of the multiaﬃne map (b1 , . . . , bm−k ) → f (a, . . . , a, b1 , . . . , bm−k ),

k

is the osculating ﬂat Oscm−k F (a). This leads to a geometric interpretation of polar values. We note in passing that the geometric interpretation of polar forms in terms of osculating ﬂats, was investigated by S. Jolles, as early as 1886. Let F : A → E be a nondegenerate curve of degree 3 (and thus, a space curve). By the previous corollary, the polar value f (r, s, t) is the unique intersection of the three osculating planes Osc2 F (r), Osc2 F (s), and Osc2 F (t). The polar value f (s, s, t) is the intersection of the tangent line Osc1 F (s) with the osculating plane Osc2 F (t). More generally, given a nondegenerate curve or surface F : E → E, the polar value f (b1 , . . . , bm ) is the unique intersection of the osculating ﬂats corresponding to all of the distinct points a that occur in the multiset {b1 , . . . , bm }.

This interpretation is so nice that one wonders why it was not chosen as a deﬁnition of polar forms. Unfortunately, this idea does not work as soon as F : A → E is degenerate,

396

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

which happens a lot. Indeed, B´zier points are usually not aﬃnely independent. Thus, we e had to use a more algebraic deﬁnition. In the case of surfaces, osculating ﬂats intersect more often that we would expect. For example, given a nondegenerate cubic surface, we know that it lies in an aﬃne space of dimension 9. But for each a ∈ P, the osculating ﬂat Osc2 F (a) has dimension 5. In general, three 5-ﬂats in a 9-space do not intersect, but any three 5-ﬂats Osc2 F (a), Osc2 F (b), and Osc2 F (c), intersect at the polar value f (a, b, c). Readers who would like to have an in-depth understanding of the foundations of geometric design and a more conceptual view of the material on curves and surfaces are urged to read the next chapter on tensors. However, skipping this chapter will only have very minor consequences (basically, ignoring the proofs of a few results).

10.6

Problems

Problem 1 (10 pts). Prove that E as deﬁned in lemma 10.1.1 is indeed a vector space. Problem 2 (10 pts). Prove lemma 10.1.2. Problem 3 (10 pts). Fill in the missing details in the proof of lemma 10.2.1. Problem 4 (10 pts). Fill in the missing details in the proof of lemma 10.5.2. Problem 5 (10 pts). Give some vectors spanning the ﬂat Osc3 F (a) of dimension 9.

**Chapter 11 Tensor Products and Symmetric Tensor Products
**

11.1 Tensor Products

This chapter is not absolutely essential and can be omitted by readers who are willing to accept some of the deeper results without proofs (or are willing to go through rather nasty computations!). On the other hand, readers who would like to have an in-depth understanding of the foundations of computer-aided geometric design and a more conceptual view of the material on curves and surfaces, should make an eﬀort to read this chapter. We hope that they will ﬁnd it rewarding! First, tensor products are deﬁned, and some of their basic properties are shown. Next, symmetric tensor products are deﬁned, and some of their basic properties are shown. Symmetric tensor products of aﬃne spaces are also brieﬂy discussed. The machinery of symmetric tensor products is then used to prove some important results of CAGD. For example, an elegant proof of theorem 5.3.2 is given. We have seen that multilinear maps play an important role. Given a linear map f : E → → F , we know that if we have a basis (−i )i∈I for E, then f is completely determined by its u − ) on the basis vectors. For a multilinear map f : E n → F , we don’t know if there → values f ( ui is such a nice property, but it would certainly be very useful. In many respects, tensor products allow us to deﬁne multilinear maps in terms of their action on a suitable basis. Once again, as in section 10.1, we linearize, that is, we create a new vector space E ⊗ · · · ⊗ E, such that the multilinear map f : E n → F is turned into a linear map f⊗ : E ⊗ · · · ⊗ E → F , which is equivalent to f in a strong sense. If in addition, f is symmetric, then we can deﬁne a symmetric tensor product E ⊙ · · · ⊙ E, and every symmetric multilinear map f : E n → F is turned into a linear map f⊙ : E ⊙ · · · ⊙ E → F , which is equivalent to f in a strong sense. Tensor products can be deﬁned in various ways, some more abstract than others. We tried to stay down to earth, without excess! 397

398 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS Let K be a given ﬁeld, and let E1 , . . . , En be n ≥ 2 given vector spaces. First, we deﬁne tensor products, and then we prove their existence and uniqueness up to isomorphism. Deﬁnition 11.1.1. A tensor product of n ≥ 2 vector spaces E1 , . . . , En , is a vector space T , together with a multilinear map ϕ : E1 × · · · × En → T , such that, for every vector space F and for every multilinear map f : E1 ×· · ·×En → F , there is a unique linear map f⊗ : T → F , with → → → → f (−1 , . . . , −n ) = f⊗ (ϕ(−1 , . . . , −n )), u u u u → → for all − ∈ E , . . . , − ∈ E , or for short u u

1 1 n n

**f = f⊗ ◦ ϕ. Equivalently, there is a unique linear map f⊗ such that the following diagram commutes: E1 × · · · × En N
**

/ T NNN NNN f⊗ NNN f N&

ϕ

F

First, we show that any two tensor products (T1 , ϕ1 ) and (T2 , ϕ2 ) for E1 , . . . , En , are isomorphic. Lemma 11.1.2. Given any two tensor products (T1 , ϕ1 ) and (T2 , ϕ2 ) for E1 , . . . , En , there is an isomorphism h : T1 → T2 such that ϕ2 = h ◦ ϕ1 . Proof. Focusing on (T1 , ϕ1 ), we have a multilinear map ϕ2 : E1 × · · · × En → T2 , and thus, there is a unique linear map (ϕ2 )⊗ : T1 → T2 , with ϕ2 = (ϕ2 )⊗ ◦ ϕ1 . Similarly, focusing now on on (T2 , ϕ2 ), we have a multilinear map ϕ1 : E1 × · · · × En → T1 , and thus, there is a unique linear map (ϕ1 )⊗ : T2 → T1 , with ϕ1 = (ϕ1 )⊗ ◦ ϕ2 . But then, we get and ϕ1 = (ϕ1 )⊗ ◦ (ϕ2 )⊗ ◦ ϕ1 , ϕ2 = (ϕ2 )⊗ ◦ (ϕ1 )⊗ ◦ ϕ2 .

On the other hand, focusing on (T1 , ϕ1 ), we have a multilinear map ϕ1 : E1 × · · · × En → T1 , but the unique linear map h : T1 → T1 , with ϕ1 = h ◦ ϕ1

11.1. TENSOR PRODUCTS

399

is h = id, and since (ϕ1 )⊗ ◦ (ϕ2 )⊗ is linear, as a composition of linear maps, we must have (ϕ1 )⊗ ◦ (ϕ2 )⊗ = id. Similarly, we must have This shows that (ϕ1 )⊗ and (ϕ2 )⊗ are inverse linear maps, and thus, (ϕ2 )⊗ : T1 → T2 is an isomorphism between T1 and T2 . Now that we have shown that tensor products are unique up to isomorphism, we give a construction that produces one. Lemma 11.1.3. Given n ≥ 2 vector spaces E1 , . . . , En , a tensor product (E1 ⊗ · · · ⊗ En , ϕ) → → → → for E1 , . . . , En can be constructed. Furthermore, denoting ϕ(−1 , . . . , −n ) as −1 ⊗ · · · ⊗ −n , u u u u → → → the tensor product E1 ⊗ · · · ⊗ En is generated by the vectors −1 ⊗ · · · ⊗ −n , where −1 ∈ u u u − ∈ E , and for every multilinear map f : E × · · · × E → F , the unique linear → E1 , . . . , un n 1 n map f⊗ : E1 ⊗ · · · ⊗ En → F such that f = f⊗ ◦ ϕ, is deﬁned by → → → → f⊗ (−1 ⊗ · · · ⊗ −n ) = f (−1 , . . . , −n ), u u u u → → on the generators −1 ⊗ · · · ⊗ −n of E1 ⊗ · · · ⊗ En . u u Proof. First, we apply the construction of deﬁnition A.1.11 to the cartesian product I = E1 × · · · × En , and we get the free vector space M = K (I) on I = E1 × · · · × En . Recall that −→ − −→ − → the family (−i )i∈I is deﬁned such that (ei )j = 0 if j = i and (ei )i = 1. It is a basis of the vector e → space K (I) , so that every − ∈ K (I) can be uniquely written as a ﬁnite linear combination w − . There is also an injection ι : I → K (I) such that ι(i) = − for every i ∈ I. Since → → of the ei ei − is uniquely associated with some n-tuple i = (− , . . . , − ) ∈ E × · · · × E , we → → → every ei u1 un 1 n − as (− , . . . , − ). Also, by lemma A.2.4, for any vector space F , and for any → → → will denote e u u

i 1 n

(ϕ2 )⊗ ◦ (ϕ1 )⊗ = id.

function f : I → F , there is a unique linear map f : K (I) → F , such that f = f ◦ ι,

**as in the following diagram: E1 × · · · ×R n E
**

ι / K (E1 ×···×En ) RRR RRR RRR f RRR f RR(

F

**Next, let N be the subspace of M generated by the vectors of the following type: → → → → → → → → → → (−1 , . . . , −i + −i , . . . , −n ) − (−1 , . . . , −i , . . . , −n ) − (−1 , . . . , −i , . . . , −n ), u u v u u u u u v u → → → → → → (− , . . . , λ− , . . . , − ) − λ(− , . . . , − , . . . , − ). u u u u u u
**

1 i n 1 i n

400 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS We let E1 ⊗ · · · ⊗ En be the quotient M/N of the free vector space M by N, which is well deﬁned, by lemma A.3.1. Let π : M → M/N be the quotient map, and let → By construction, ϕ is multilinear, and since π is surjective and the ι(i) = −i generate M, e − , . . . , − ) ∈ E × · · · × E , the ϕ(− , . . . , − ) generate M/N. → → → → since i is of the form i = ( u1 un u1 un 1 n − , . . . , − ) as − ⊗ · · · ⊗ − , the tensor product E ⊗ · · · ⊗ E is → → → → Thus, if we denote ϕ( u1 un u1 un 1 n − ⊗ · · · ⊗ − , where − ∈ E , . . . , − ∈ E . → → → → generated by the vectors u1 un u1 un 1 n ϕ = π ◦ ι.

For every multilinear map f : E1 × · · · × En → F , if a linear map f⊗ : E1 ⊗ · · · ⊗ En → F → → exists such that f = f⊗ ◦ ϕ, since the vectors −1 ⊗ · · · ⊗ −n generate E1 ⊗ · · · ⊗ En , the map u u f⊗ is uniquely deﬁned by → → → → f⊗ (−1 ⊗ · · · ⊗ −n ) = f (−1 , . . . , −n ). u u u u On the other hand, because M = K (E1 ×···×En ) is free on I = E1 × · · · × En , there is a unique linear map f : K (E1 ×···×En ) → F , such that f = f ◦ ι, as in the diagram below: E1 × · · · ×R n E

ι / K (E1 ×···×En ) RRR RRR RRR f RRR f RR(

F

− → → → Because f is multilinear, note that we must have f (− ) = 0 , for every − ∈ N. But then, w w f : M → F induces a linear map h : M/N → F , such that → → → → by deﬁning h([− ]) = f (− ), for every − ∈ M, where [− ] denotes the equivalence class in z z z z − ∈ M: → M/N of z E1 × · · · × S n π◦ι / K (E1 ×···×En ) /N E

SSS SSS SSS SSS SSS f S)

h

f = h ◦ π ◦ ι,

F

Indeed, the fact that f vanishes on N insures that h is well deﬁned on M/N, and it is clearly linear by deﬁnition. However, we showed that such a linear map h is unique, and thus it agrees with the linear map f⊗ deﬁned by → → → → f⊗ (−1 ⊗ · · · ⊗ −n ) = f (−1 , . . . , −n ) u u u u on the generators of E1 ⊗ · · · ⊗ En .

11.1. TENSOR PRODUCTS

401

where h ∈ L(E1 ⊗ · · · ⊗ En ; F ). Indeed, h ◦ ϕ is clearly multilinear, and since by lemma 11.1.3, for every multilinear map f ∈ L(E1 , . . . , En ; F ), there is a unique linear map f⊗ ∈ L(E1 ⊗ · · · ⊗ En ; F ) such that f = f⊗ ◦ ϕ, the map − ◦ ϕ is bijective. As a matter of fact, its inverse is the map f → f⊗ . Remark: For F = K, the base ﬁeld, we obtain a natural isomorphism between the vector space L(E1 ⊗ · · · ⊗ En ; K), and the vector space of multilinear forms L(E1 , . . . , En ; K). However, L(E1 ⊗ · · · ⊗ En ; K) is the dual space (E1 ⊗ · · · ⊗ En )∗ , and thus, the vector space of multilinear forms L(E1 , . . . , En ; K) is naturally isomorphic to (E1 ⊗ · · · ⊗ En )∗ . When all the spaces have ﬁnite dimension, this yields a (noncanonical) isomorphism between the ∗ ∗ vector space of multilinear forms L(E1 , . . . , En ; K) and E1 ⊗ · · · ⊗ En . The fact that the map ϕ : E1 × · · · × En → E1 ⊗ · · · ⊗ En is multilinear, can also be expressed as follows: − ⊗ · · · ⊗ (− + − ) ⊗ · · · ⊗ − = (− ⊗ · · · ⊗ − ⊗ · · · ⊗ − ) + (− ⊗ · · · ⊗ − ⊗ · · · ⊗ − ), → → w → → → → → → → → u1 vi un u1 vi un u1 wi un i − ⊗ · · · ⊗ (λ− ) ⊗ · · · ⊗ − = λ(− ⊗ · · · ⊗ − ⊗ · · · ⊗ − ). → → → → → → u u u u u u

1 i n 1 i n

What is important about lemma 11.1.3 is not so much the construction itself, but the fact that a tensor product with the universal property with respect to multilinear maps stated in that lemma holds. Indeed, lemma 11.1.3 yields an isomorphism between the vector space of linear maps L(E1 ⊗ · · · ⊗ En ; F ), and the vector space of multilinear maps L(E1 , . . . , En ; F ), via the linear map − ◦ ϕ deﬁned by h → h ◦ ϕ,

However, there vectors are not linearly independent. This situation can be ﬁxed when considering bases, which is the object of the next lemma. − → Lemma 11.1.4. Given n ≥ 2 vector spaces E1 , . . . , En , if ( uk )i∈Ik is a basis for Ek , 1 ≤ i k ≤ n, then the family of vectors − → − → (u11 ⊗ · · · ⊗ unn )(i1 ,...,in )∈I1 ×...×In i i

Of course, this is just what we wanted! Tensors in E1 ⊗ · · · ⊗ En are also called n-tensors, → → → and tensors of the form −1 ⊗ · · · ⊗ −n , where −i ∈ Ei , are called simple (or decomposable) u u u n-tensors. Those n-tensors that are not simple are often called compound n-tensors. → → We showed that E ⊗ · · · ⊗ E is generated by the vectors of the form − ⊗ · · · ⊗ − . u u

1 n 1 n

**is a basis of the tensor product E1 ⊗ · · · ⊗ En . − → Proof. For each k, 1 ≤ k ≤ n, every v k ∈ Ek can be written uniquely as −k → v = − → k vj uk , j
**

j∈Ik

jn . We also mention the following useful isomorphisms.. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS k for some family of scalars (vj )j∈Ik ..5 (2)... i1 . and thus.. if ( uk )i∈Ik is a i − ∈ E ⊗ · · · ⊗ E can be written in a unique → basis for Ek .. We deﬁne the function f : E1 × · · · × En → F as follows: f( j1 ∈I1 − → 1 vj1 u11 . We will show that for every family −− (−i1 . the u11 ⊗ · · · ⊗ unn also i i i generate E1 ⊗ · · · ⊗ En .×In i i − → − → − → is linearly independent. they form a basis of E1 ⊗ · · · ⊗ En ..in ∈ K. there exists unique isomorphisms (1) E ⊗ F ≃ F ⊗ E (2) (E ⊗ F ) ⊗ G ≃ E ⊗ (F ⊗ G) ≃ E ⊗ F ⊗ G (3) (E ⊕ F ) ⊗ G ≃ (E ⊗ G) ⊕ (F ⊗ G) (4) K ⊗ E ≃ E such that respectively .jn ∈In 1 n − − vj1 · · · vjn −j1. there is some linear map h : E1 ⊗ · · · ⊗ En → F . ... .. F. By the universal property of the tensor product..2. Let F be any nontrivial vector space.1. ... all zero except for a ﬁnite number... Given 3 vector spaces E.×In for some unique family of scalars λi1 ....402 CHAPTER 11... In particular.. i i Then.in )∈I1 ×...in )(i1 .. since ( uk )i∈Ik is a basis for Ek ..in ) ∈ I1 ×. 1 ≤ k ≤ n. is the desired map h.×In .. by lemma A. However.. As a corollary of lemma 11..... the linear map f⊗ : E1 ⊗ · · · ⊗ En → F such that f = f⊗ ◦ ϕ. we see that the dimension of the − → tensor product E1 ⊗ · · · ⊗ En is m1 · · · mn ... then every tensor z 1 n way as − → − → − = → λ z u1 ⊗ · · · ⊗ un .in )∈I1 ×. when each Ik is ﬁnite and of size mk .in i1 in (i1 . G. j jn ∈In → n − vjn unn ) = j j1 ∈I1 .4.....5.. Lemma 11. it will follow that − → − → (u11 ⊗ · · · ⊗ unn )(i1 . w −→ It is immediately veriﬁed that f is multilinear.. w −→ of vectors in F .in .1. such that − → − → −− w −→ h(u11 ⊗ · · · ⊗ unn ) = −i1 ... ..

z w z from (E ⊗ F ) × G into E ⊗ F ⊗ G. − ) ⊗ − → (− ⊗ − .11. − ) → (− ⊗ − ) ⊗ − u v w u v w from E × F × G to (E ⊗ F ) ⊗ G. we can deﬁne h : E × F → E ′ ⊗ F ′ by → → → → h(− . − ) = f (− ) ⊗ g(− ). and thus. and thus. Given two linear maps f : E → E ′ and g : F → F ′ . − ⊗ − ) u v w u w v w → → 4. TENSOR PRODUCTS → → → → 1. and thus. → → → → → → such that f ((− ⊗ − ) ⊗ − ) = − ⊗ − ⊗ − . It is easily seen to be bilinear.1. u v u v It is immediately veriﬁed that h is bilinear. − ) → − ⊗ − ⊗ − u v u v w from E × F to E ⊗ F ⊗ G is bilinear. (− . Clearly. but they also act on linear maps (they are functors). These isomorphisms are proved using the universal property of tensor products. (− ⊗ − ) ⊗ − → − ⊗ (− ⊗ − ) → − ⊗ − ⊗ − u v w u v w u v w → → → → → → → 3. → → → → → such that fw (− ⊗ − ) = − ⊗ − ⊗ − . u u Proof. and thus. − ) → fw (− ). − ⊗ − → − ⊗ − u v v u 403 → → → → → → → → → 2. consider the map → → → (− . u v w u v w Also consider the map → → → → → → (− . We → illustrate the proof method on (2). it induces a linear map f : (E ⊗ F ) ⊗ G → E ⊗ F ⊗ G. Fix some − ∈ G. Not only do tensor products act on spaces. f ◦ g and g ◦ f are identity maps. and u v w u v w thus. it induces a unique linear map f ⊗ g : E ⊗ F → E ′ ⊗ F ′. The other cases are similar. such that → → → → (f ⊗ g)(− ⊗ − ) = f (− ) ⊗ g(− ). there is a linear map fw : E ⊗ F → E ⊗ F ⊗ G. − . there is a linear map g : E ⊗ F ⊗ G → (E ⊗ F ) ⊗ G. → → → → → → such that g(− ⊗ − ⊗ − ) = (− ⊗ − ) ⊗ − . It is trilinear. f and g are isomorphisms. λ ⊗ − → λ− . The map w → → → → → (− . u v u v w Next. u v u u .

1. First. When E is of ﬁnite dimension n. together with a symmetric multilinear map ϕ : E n → S. we deﬁne symmetric tensor products (powers). there is a more economical method. there is a unique linear map f⊙ : S → F . note that we have to restrict ourselves to a single vector space E. The generalization to the tensor product f1 ⊗ · · · ⊗ fn of n ≥ 3 linear maps fi : Ei → Fi is immediate. . and left to the reader. . −n ) = f⊙ (ϕ(−1 . so that symmetry makes sense. since we already have the notion of a tensor product. A symmetric n-th tensor power (or tensor product) of a vector space E. and construct symmetric tensor products from scratch. However. we conclude that → → u v (f ′ ◦ f ) ⊗ (g ′ ◦ g) = (f ′ ⊗ g ′ ) ◦ (f ⊗ g).2 Symmetric Tensor Products Our goal is to come up with a notion of tensor product that will allow us to treat symmetric multilinear maps as linear maps. First. Deﬁnition 11. for every vector space F and for every symmetric multilinear map f : E n → F . with → → → → f (−1 . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS If we also have linear maps f ′ : E ′ → E ′′ and g ′ : F ′ → F ′′ .3. The vector m called the tensor algebra of E. However. . it corresponds to the algebra of polynomials with coeﬃcients in K in n noncommuting variables. . rather then n vector spaces E1 . . and is called the m-th tensor power of E (with space T(E) = m≥0 1 E = E.404 CHAPTER 11. . We now turn to symmetric tensors. En . and E. Since these vectors generate E ⊗ F . where n ≥ 2. . such that.1. 11. u u u u . is an interesting object. −n )). .2. . . is a vector space S. Remark: The tensor product E ⊗···⊗E m is also denoted as m E. which is easily done. . We could proceed directly as in lemma 11. 0 E = K). we can easily verify that the linear maps (f ′ ◦ f ) ⊗ (g ′ ◦ g) and (f ′ ⊗ g ′ ) ◦ (f ⊗ g) agree on all vectors of the form − ⊗ − ∈ E ⊗ F . we would have to deﬁne a multiplication operation on T(E). .

. . ϕ1 ) and (S2 . the symmetric u u u u → → → → tensor power n E is generated by the vectors −1 ⊙ · · · ⊙ −n . there is a unique linear map f⊙ such that the following diagram commutes: F First. Let p : n E→( n E)/C be the quotient map. −n ∈ E. . We claim that the quotient u space ( n E)/C does the job. there is an isomorphism h : S1 → S2 such that ϕ2 = h ◦ ϕ1 . n}. Let ϕ : E n → ( → → → → (−1 . denoting ϕ(−1 . .2. . Proof. n} → {1. . Proof. . ϕ) for E can → → → → be constructed (n ≥ 2). ϕ1 ) and (S2 . Replace tensor product by symmetric n-th tensor power in the proof of lemma 11. . we deﬁne an appropriate quotient. Let C be the subspace of n E generated by the vectors of the form − ⊗ · · · ⊗ − − − → ⊗ · · · ⊗ − →. Lemma 11. Lemma 11. . −n ). ϕ2 ) for E. . → → u1 un u− u− π(1) π(n) → for all −i ∈ E.2. is deﬁned by → → → → f⊙ (−1 ⊙ · · · ⊙ −n ) = f (−1 .3. . . and for u u u u n every symmetric multilinear map f : E n → F . Furthermore. . . −n ∈ E. u u u u → → on the generators −1 ⊙ · · · ⊙ −n of u u n E.2. or for short u u 405 f = f⊙ ◦ ϕ. . −n ) → p(−1 ⊗ · · · ⊗ −n ). where −1 . a symmetric n-th tensor power ( n E. . SYMMETRIC TENSOR PRODUCTS → → for all −1 . . . . we show that any two symmetric n-th tensor powers (S1 . Given any two symmetric n-th tensor powers (S1 . . . . are isomorphic. .11. . . u u u u n E)/C be the map . and all permutations π : {1.1. Given a vector space E. . E nC ϕ / S CC CC f⊙ C f CC! Equivalently. and thus. . the unique linear map f⊙ : E → F such that f = f⊙ ◦ ϕ. The tensor power n E is too big. We now give a construction that produces a symmetric n-th tensor power of a vector space E. −n ) as −1 ⊙· · ·⊙ −n .2. ϕ2 ) for E. .2.

where ϕ0 (−1 . It may not be standard. Remark: The notation n E for the symmetric n-th tensor power of E. → → → → → → u u u u u u 1 i n 1 i n − ⊙ · · · ⊙ − = − → ⊙ · · · ⊙ − →. Thus. if a linear map f⊙ : ( ( n E)/C. . n E=( n E)/C and ϕ constitute a symmetric Again. It is clear that ϕ is symmetric. . n-th tensor power of E. such that h([ z z ⊗ z n n − ∈ → equivalence class in ( E)/C of z E: E n LL p◦ϕ0 / ( n E)/C LLL LLL h f LLLL % F However. . . Since the u u u u n → → → → vectors − ⊗ · · · ⊗ − generate u u E. → → w → → → → → → → → u1 vi un u1 vi un u1 wi un i − ⊙ · · · ⊙ (λ− ) ⊙ · · · ⊙ − = λ(− ⊙ · · · ⊙ − ⊙ · · · ⊙ − ). . −n ). . . Other authors use the notation Symn (E). we get z z n − ]) = f (− ). is borrowed from Ramshaw. as in the diagram below: E n GG n / E GG GG f⊗ G f GGG # ϕ0 n E→F F − → → → However. since the vectors −1 ⊙ · · · ⊙ −n generate u u → → → → f⊙ (−1 ⊙ · · · ⊙ −n ) = f (−1 . ϕ = p ◦ ϕ0 . we have f⊗ (− ) = 0 for every − ∈ n E. . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS → → → → or equivalently. we must have n → → E)/C → F exists. We will adopt Ramshaw’s notation. . Given any symmetric multilinear map f : E n → F . u u u u which shows that h and f⊙ agree. the actual construction is not important. −n ) as −1 ⊙ · · · ⊙ −n . . and p is surjective. where [− ] is the → → → an induced linear map h : ( E)/C → F . u u u u → → → → Let us denote ϕ(−1 . since f is symmetric. . The fact that the map ϕ : E n → as follows: n E is symmetric and multinear. the vectors − ⊙ · · · ⊙ − generate u u n 1 n 1 n ( E)/C. there is a linear map f⊗ : such that f = f⊗ ◦ ϕ0 . . −n ) = −1 ⊗ · · · ⊗ −n . can also be expressed − ⊙ · · · ⊙ (− + − ) ⊙ · · · ⊙ − = (− ⊙ · · · ⊙ − ⊙ · · · ⊙ − ) + (− ⊙ · · · ⊙ − ⊙ · · · ⊙ − ). What is important is that the symmetric n-th power has the universal property with respect to symmetric multilinear maps. Thus.406 CHAPTER 11. → → u1 un u− u− π(1) π(n) . or Sn (E).

its inverse is the map f → f⊙ .3 yields an isomorphism between the vector space of linear maps L( n E. the vector space of symmetric multilinear forms S(E n . . . AFFINE SYMMETRIC TENSOR PRODUCTS for all permutations π on n elements. and since by lemma 11. together with a symmetric multiaﬃne map ϕ : E n → S. there is a unique linear map f⊙ ∈ L( n E. K) is naturally isomorphic to ( n E)∗ .1. Those → → → u1 un ui symmetric n-tensors that are not simple are often called compound symmetric n-tensors. F ). . Indeed. or for short f = f⊙ ◦ ϕ. F ).2. and the vector space of symmetric multilinear maps S(E n . Symmetric tensors in n E are also called symmetric n-tensors. is an aﬃne space S. . F ). . we now brieﬂy discuss symmetric tensor powers of aﬃne spaces. .3. The motivation is to be able to deal with symmetric multiaﬃne maps f : E m → m F .3. are called simple (or decomposable) symmetric n-tensors. A symmetric n-th tensor power (or tensor product) of an aﬃne space E. Deﬁnition 11. since this might also be helpful to those readers who wish to study Ramshaw’s paper [65] carefully. using polynomials.2. It is also possible to deﬁne tensor products of aﬃne spaces. . . h ◦ ϕ is clearly symmetric multilinear. Lemma 11. As a matter of fact. K) and n E. . 11. it turns out that we can easily construct symmetric tensors powers of aﬃne spaces from what we have done so far. as aﬃne maps f⊙ : E → F . such that. we can view the → → symmetric tensor −1 ⊙ · · · ⊙ −n as a multiset. . Actually. via the linear map −◦ϕ deﬁned by h → h ◦ ϕ. . 407 where h ∈ L( n E. F ) such that f = f⊙ ◦ ϕ. an ∈ E.3. The last identity shows that the “operation” ⊙ is commutative. where n ≥ 2. the map − ◦ ϕ is bijective. an )). . this yields a (noncanonical) isomorphism between the vector space of symmetric multilinear forms S((E ∗ )n . Thus. F ). u u Remark: As in the case of general tensors. . an ) = f⊙ (ϕ(a1 . and symmetric tensor powers of aﬃne spaces. for every symmetric multilinear map f ∈ S(E n . for every aﬃne space F and for every symmetric multiaﬃne map f : E n → F . there is a unique aﬃne map f⊙ : S → F . with f (a1 .3 Aﬃne Symmetric Tensor Products Ramshaw gives a construction for the symmetric tensor powers of an aﬃne space. for all a1 .11. When the space E has ﬁnite dimension. and tensors of the form − ⊙· · ·⊙ − . where − ∈ E. Thus.

. It turns out that if we ﬁrst homogenize the aﬃne space E. where a1 .3. an are points in E. an aﬃne congruence on E is deﬁned as a relation ≡F on E. there is a more direct approach.. . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS Equivalently. where a1 . and then construct the symmetric tensor power n n E. is a symmetric n-th tensor power for E. .. the aﬃne space combinations of simple n-tensors of the form a1 ⊙ · · · ⊙ an .408 CHAPTER 11. In order to prove the existence of such tensor products. on the generators a1 ⊙ · · · ⊙ an of n E. . and behave well. whose proof is left as an exercise. getting the vector space E. . it is easy to show that symmetric tensor powers are unique up to isomorphism. . but with aﬃne spaces and aﬃne and multiaﬃne maps. However. an ∈ E. is deﬁned by f⊙ (a1 ⊙ · · · ⊙ an ) = f (a1 . are as follows: (1) The notion of aﬃne space freely generated by a set I makes sense. − − → → Then. an ).− → − ⊙ ··· ⊙ − → → → → u1 un u1 un from (E)n to n E. .. an are points in E. we can proceed in at least two ways. Given an aﬃne space E. it can be shown that E/ ≡F is an aﬃne space with associated vector space E / F . Indeed. . it is identical to the construction of the free vector space K (I) . . the reasons why tensor products of aﬃne spaces can be constructed. an ) is denoted as a1 ⊙· · ·⊙an . deﬁned as the restriction to E n of the multilinear map − . determined such that → → − − a ≡F b iﬀ ab ∈ F . . Lemma 11. the symmetric tensor power n E is spanned by the tensors a1 ⊙· · ·⊙an . . The following lemma. and together with the multiaﬃne map ϕ : E n → n E. The ﬁrst method is to mimick the constructions of this section. . the subset n E of the vector space n E consisting of all aﬃne combinations of simple n-tensors of the form a1 ⊙ · · · ⊙ an . . Given an aﬃne space − → − → E and a subspace F of E . then the symmetric tensor power E of the aﬃne space E already sits inside n n E consists of all aﬃne E as an aﬃne space! As a matter of fact. . . If ϕ(a1 . there is a unique aﬃne map f⊙ such that the following diagram commutes: E nC / S CC CC f⊙ C f CC! ϕ F As usual. . In fact.. . where a1 . .2. . . the unique aﬃne map n f⊙ : E → F such that f = f⊙ ◦ ϕ. is an aﬃne space. makes what we just claimed more precise. . and for every symmetric multiaﬃne map f : E n → F . (2) Quotients of aﬃne spaces can be deﬁned.

an ∈ E. . and that the set of all multisets over I is denoted as N(I) . . but they are not linearly independent. n} → dom(M).11. The existence of the symmetric tensor power E m justiﬁes the multiplicative notation f (a1 · · · am ) for the polar value f (a1 . if we let f = h ◦ ϕ. . the two approaches are equivalent. which is a ﬁnite set. We personally favor the reading n E. This is because Ramshaw deﬁnes the hat construction as a special case of his construction of the aﬃne symmetric tensor power. where a ∈ E. .1. and we simply followed an approach closer to traditional linear algebra. since f is symmetric multiaﬃne and h = f⊙ is the unique aﬃne map such that f (a1 . From lemma 11. . . we just have to show that a symmetric multiaﬃne map is uniquely determined by its behavior on the diagonal. . . By lemma 11. and write tensors a1 ⊙ · · · ⊙ am simply as a1 · · · am . . . |η −1 (i)| = M(i). am ) = f⊙ (a1 ⊙ · · · ⊙ am ). such that f (a1 .2. one may wonder what is the relationship between E and n E. . such that M(i) = 0 for ﬁnitely many i ∈ I. as follows: JM = {η | η : {1. . .3. . . but also by the simple n-tensors of the form an . for all a1 . recall that a (ﬁnite) multiset over a set I is a function M : I → N. The answer is that that they are isomorphic. Left as an exercise.4 Properties of Symmetric Tensor Products → → → → Going back to vector spaces. . this is a consequence of lemma 4. we call the aﬃne map f⊙ . −n ∈ E. u u u u n generate E. for all a1 . i ∈ dom(M). am ∈ E. We will prove a version of lemma 11. Following Ramshaw. PROPERTIES OF SYMMETRIC TENSOR PRODUCTS Proof. where −1 . 11. we deﬁne the set JM of functions η : {1. by lemma A. . .2. . it is suﬃcent to show that every linear map n h: E → F is uniquely determined by the tensors of the form an . For every multiset M ∈ N .1.4. since (I) i∈I M(i) = i∈dom(M ) M(i). the aﬃne blossom of F . 409 Let E and E be two aﬃne spaces. .4. again.5. In the end. an ) = h(a1 · · · an ). an ∈ E. . . . and this is quite easy to show.4 for symmetric tensor powers.2. .3. the vectors −1 ⊙ · · · ⊙ −n . For this. . . . n} → dom(M). where a1 . Indeed. . We let dom(M) = {i ∈ I | M(i) = 0}. . n Given an aﬃne space E. . . i∈I . . However. and dom(M) is ﬁnite. we can associate a unique aﬃne map f⊙ : E m → E. for any n ≥ 2. . whereas Ramshaw followed an approach in which aﬃne spaces played a more predominant role. . that is. note that the sum i∈I M(i) makes sense. given any polynomial aﬃne map F : E → E of degree m with polar form f : E m → E. omitting the symbol ⊙. M(i) = n}. am ): view the notation f (a1 · · · am ) as an abbreviation for f⊙ (a1 ⊙ · · · ⊙ am ). It is worth noting that the aﬃne tensor power n E is spanned not only by the simple n-tensors a1 · · · an . for any multiset M ∈ N(I) . Then. drop the subscript ⊙ from f⊙ . but Ramshaw favors the reading n E. . .

2.4. . . . . For any nontrivial vector space F . . i2 .. .1. it follow that the family − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) → → u i1 u ik M ∈N(I) . w we show the existence of a symmetric multilinear map h : M ∈ N(I) with i∈I M(i) = n. . The details are left as an exercise.. u We can now prove the following lemma. M (i1 ) M (i2 ) M (ik ) → Given any k ≥ 1. ik . .1.. we have → h(−1 ui − → 1 vj1 u11 . .4. consisting of M(i1 ) occurrences of i1 . n i∈I M (i)=n. . {i1 . i2 . . By the universal property of n the symmetric tensor product. We deﬁne the map f : E n → F as follows: f( j1 ∈I → n − vjn unn ) = j jn ∈I i∈I M ∈N(I) M (i)=n η∈JM It is not diﬃcult to verify that f is symmetric and multilinear. the linear map f⊙ : E → F such that f = f⊙ ◦ ϕ. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS In other words. where {i1 .. for any family of vectors → (− M )M ∈N(I) . . we denote u − ⊙···⊙− → → u u k →⊙k as − . ik }. . 1 Note that must have k ≤ n. M(i2 ) occurrences of i2 . such that for every →⊙M (ik ) ) = − . by lemma A. is the desired map h. if (−i )i∈I is a basis for E. Proof.ik }=dom(M ) is linearly independent. Then. if i∈I M(i) = n and dom(M) = {i1 . M(ik ) occurrences of ik . . .ik }=dom(M ) is a basis of the symmetric n-th tensor power E. i1 . . i∈I M (i)=n . . → ⊙ · · · ⊙ −k ui wM → 1 n w vη(1) · · · vη(n) −M . . they form a basis for n E. . j ⊙M (i1 ) n E → F . and thus. . .. we can also show that these vectors generate n E.5 (2). Using the commutativity of ⊙.. . ik } = dom(M). .. and any − ∈ E. . {i1 . then the family of u vectors → − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) → u u i1 ik M ∈N(I) . . . i∈I M (i)=n. . . . . Intuitively. any η deﬁnes a “permutation” of the sequence (of length n) i1 .. The proof is very similar to that of lemma 11.410 CHAPTER 11.. → Lemma 11.1 any function η ∈ JM speciﬁes a sequence of length n. . Given a vector space E. ik . .

and thus. This is not a coincidence! Symmetric tensor products are closely related to polynomials (for more on this. such that j1 +· · ·+jp = n. jp ).ik }=dom(M ) i∈I → →⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) .. where the monomials of total degree n are the symmetric tensors → − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) . We leave as an exercise to show p+n−1 p+n−1 that this number is . → → → → (f ⊙ g)(− ⊙ − ) = f (− ) ⊙ g(− ). lemma 11. − ) = f (− ) ⊙ g(− ). → Given a vector space E and a basis (−i )i∈I for E. all zero except for a ﬁnite number. Given two linear maps f : E → E ′ and g : E → E ′ . . Compare n n with the dimension of n E. This looks like a homogeneous polynomial of total degree n. jk ≥ 0. it induces a unique linear map 2 2 2 E ′ by f ⊙ g: such that E→ E ′.11. u v u u . Again. → u ik u i1 → in the “indeterminates” −i . In particular. when I is ﬁnite. this u is not a coincidence. we can deﬁne h : E × E → → → → → h(− . where i ∈ I (recall that M(i1 ) + · · · + M(ik ) = n). .. when p = 2.. . which is pn . the dimension of n E is the number of ﬁnite multisets (j1 .4.4. . u v u v It is immediately veriﬁed that h is bilinear. Remark: The number p+n−1 n is also the number of homogeneous monomials j j X1 1 · · · Xp p of total degree n in p variables (we have j1 + · · · + jp = n).. say of size p.1 shows that every symu − ∈ n E can be written in a unique way as → metric tensor z − = → z M ∈N(I) M (i)=n {i1 . the dimension of n E is n + 1. u ik λM − 1 ui for some unique family of scalars λM ∈ K. This can also be seen directly. see the next remark). Thus the dimension of n E is . Polynomials can be deﬁned in terms of symmetric tensors. PROPERTIES OF SYMMETRIC TENSOR PRODUCTS 411 As a consequence.

Remark: The vector space m S(E) = m≥0 E. . together with a multiplication operation which is bilinear. → → → → of the form − ⊗ − − − ⊗ − . If this is done. the vector space S(E) (also u denoted as Sym(E)).1). Then.5 Polar Forms Revisited When E = A. and left to the reader. we would have to deﬁne a multiplication operation on T(E). where 0 ≤ k ≤ n. 11. multisets of size n + 1 consisting of points u1 . it can be shown to correspond to the ring of polynomials with coeﬃcients in K in n variables (this can be seen from lemma 11. 2 . we can easily verify that (f ′ ◦ f ) ⊙ (g ′ ◦ g) = (f ′ ⊙ g ′ ) ◦ (f ⊙ g). . We could also have deﬁned S(E) from T(E). . The generalization to the symmetric tensor product f1 ⊙ · · · ⊙ fn of n ≥ 3 linear maps fi : E → F is immediate. When E is of ﬁnite dimension n.4. but this would also require deﬁning a multiplication operation (⊗) on T(E). Very elegant. (with 1 E = E. is an interesting object.412 CHAPTER 11. . → When E is of inﬁnite dimension and (−i )i∈I is a basis of E. called the symmetric tensor algebra of E. given any progressive sequence u1 . and if these tensors are linearly independent in n A. by the subspace of T(E) generated by all vectors in T(E). is that S(E) provides an intrinsic deﬁnition of a polynomial ring (algebra!) in any set I of variables. un+1 in A can be viewed as symmetric tensors u1 ⊙ · · · ⊙ un+1 . u2n .2. However. isn’t it? u v v u We can ﬁnally apply this powerful machinery to CAGD. . . . which is easily done. First. Let me tease the reader anyway.2. and we will continue to do so. This elegant proof is due to Ramshaw.3.2 What’s nice about the symmetric tensor algebra. When this operation is associative and has an identity. we recall theorem 5. we give a short proof of the hard part of theorem 5. . and 0 E = K).3. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS If we also have linear maps f ′ : E ′ → E ′′ and g ′ : E ′ → E ′′ . then S(E) is obtained as the quotient of T(E). As a reward to the brave readers who read through this chapter. corresponds to the ring of polynomials in inﬁnitely many variables in I. we have avoided talking about algebras (even though polynomial rings are a prime example of algebra). we have n + 1 tensors uk+1 ⊙ · · · ⊙ un+k . by saying that an algebra over a ﬁeld K (or a ring A) consists basically of a vector space (or module) structure. Actually. and a ring structure. an algebra essentially has both a vector space (or module) structure. then they form a basis of n A.

since then. we want to prove that there exists a polynomial curve F : A → E of degree m. . whose polar form f : Am → E satisﬁes the conditions f (uk+1. . whose polar form f : Am → E satisﬁes the conditions f (uk+1. we let g = h ◦ ϕ. . f (uk+1 . .5. whose polar form f : Am → E satisﬁes the conditions for every k. and so. By the ﬁrst half of theorem 5. . for every k. 0 ≤ k ≤ m. 0 ≤ k ≤ m. .2 Let u1. POLAR FORMS REVISITED 413 Theorem 5. using symmetric tensors. .4. . the dimension of A is m + 1 (which can also be seen directly). since we can deﬁne f as the restriction of g to Am . If we can show that there exists a symmetric multilinear map g : (A)m → E satisfying the conditions g(uk+1.3. .2. um+k ) = bk . Uniqueness has already be shown. um+k ) = bk . we will have succeeded. . We just have to show that they form a basis of m A. m However.3. u2m . since then. there will be a unique linear map m h: satisfying the conditions A → E. we have m+1 symmetric tensors uk+1 ⊙· · ·⊙um+k . 0 ≤ k ≤ m. as a corollary of lemma 11. Given any sequence of m+1 points b0 . . . Now. bm in some aﬃne space E. where 0 ≤ k ≤ m. um+k ) = bk . 0 ≤ k ≤ m. u2m be a progressive sequence of numbers ui ∈ R. . . h(uk+1 ⊙ · · · ⊙ um+k ) = bk . . . . .2. 0 ≤ k ≤ m. we know that for any sequence of m + 1 points b0 . . we just have to prove the existence of a linear map m h: satisfying the conditions A → E. . . by lemma A. bm in E (which is assumed nontrivial!).3. . . for every k. . Proof. . .1. .11. there is at most one polynomial curve of degree m. But this is easy! Indeed. . for every k. . given the progressive sequence u1 . um+k ) = bk . for every k. . there is a unique polynomial curve F : A → E of degree m. . . . h(uk+1 ⊙ · · · ⊙ um+k ) = bk .

is the polar form of the desired curve. the multiaﬃne map f which is the restriction of g = h ◦ ϕ to Am . Thus. r1 rm 0≤i≤m where σi (x1 . . and the dimension of m A is m + 1. for every θ ∈ A. form a basis of m A. this implies that the vectors uk+1 ⊙ · · · ⊙ um+k . . 0 ≤ k ≤ m. Since there are m + 1 vectors uk+1 ⊙ · · · ⊙ um+k . To avoid clashes. .. let us denote 1 as δ (this is a vector in R). without having to go through painful calculations. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS for every k. By lemma A. and thus. For example. The crucial point of the previous proof. Then. xm . As we already explained. for every k. omitting the symbol ⊙. 0 ≤ k ≤ m. we have θ1 θ2 θ3 = 2 3 u1 u2 u3δ 3 + (u1 u2 r3 + u1 u3 r2 + u2 u3 r1 )0δ 2 + (u1 r2 r3 + u2 r1 r3 + u3 r1 r2 )0 δ + r1 r2 r3 0 . every symmetric tensor θ1 · · · θm can be written as (u1 δ + r1 0) · · · (um δ + rm 0) = r1 · · · rm σi um u1 m−i i . for notational simplicity. h: satisfying the conditions A → E. the symmetric tensors uk+1 ⊙ · · · ⊙ um+k form a basis of m A. symmetric tensors θ1 ⊙ · · · ⊙ θm will be denoted simply as θ1 · · · θm . which proves the existence (and also uniqueness!) of a linear map m for every k.2. we know that (1. judicious use of linear and multilinear algebra allowed us to prove the existence of a polynomial curve satisfying the conditions of theorem 5. bases of A. This leads us to investigate bases of m A. . 0) is a basis for A. .. is that the symmetric tensors uk+1 · · · um+k .414 CHAPTER 11. 0 ≤ k ≤ m. . which implies that there is at most one linear map m h: satisfying the conditions A → E.2. h(uk+1 ⊙ · · · ⊙ um+k ) = bk . xm ) is the i-th elementary symmetric function in x1 . generate where 0 ≤ k ≤ m. where 0 ≤ k ≤ m..3. since θ = uδ + r0. .. . m A.5 (1). h(uk+1 ⊙ · · · ⊙ um+k ) = bk . 0 δ. For example. . As suggested earlier.

for points u1 . we can write θ = ur + vs. and Ω the origin of A2 .m} i∈I j∈J m−i 2 3 σi (u1 . where i + j + k = m. s are distinct points in A. . the family of symmetric tensors i i δ11 · · · δnn Ωm−i . Ω) for A2 . an ) for E. For reasons of convenience to be revealed in a moment. vj r m−k s k . (δ1 . of tensors i We could also have used the barycentric basis (r. .. if E is an aﬃne space of dimension n. s. . . . The above makes it clear that the m+1 symmetric tensors 0 δ i generate m A. .. Then. . um ∈ A. δ2 . to the symmetric tensor power m E. the family of tensors r m−k s k . where 0 ≤ i ≤ m. and call it the power basis. |J|=k I∪J={1. s). for every θ ∈ A (the condition u + v = 1 holding only iﬀ θ is a point).5. they form a basis of m A. also forms a basis of we call the B´zier basis. we have the power basis consisting of m i j the tensors δ1 δ2 Ω k . . If (a0 . then the family of symmetric tensors ai0 ai1 · · · ain . .. which It is easy to generalize these bases to aﬃne spaces of larger dimensions. . 1). and (Ω. Thus. the symmetric tensor u1 · · · um can be written as (u1 δ + 0) · · · (um δ + 0) = For example. where 0 ≤ k ≤ m. then we have a B´zier basis consisting of the tensors r i sj tk . and since m A is of dimension m + 1. . we have u1 u2 u3 = u1 u2 u3 δ 3 + (u1 u2 + u1 u3 + u2 u3 )0δ 2 + (u1 + u2 + u3 )0 δ + 0 . . For example. if we use the basis (δ1 . Considering any barycentric aﬃne frame (a0 . and every symmetric tensor θ1 · · · θm can be written as (u1 r + v1 s) · · · (um r + vm s) = ui I∩J=∅. where δ1 and δ2 denotes the unit vectors (1. where r. . an ) is a barycentric aﬃne frame for E. j. is a B´zier basis of m E. um)0 0≤i≤m m−i δi. . we prefer the family m m−i i 0 δ .4.11. is a basis of m E.. . POLAR FORMS REVISITED 415 In particular. . . k in A2 . It will also be useful to extend the e notion of weight function deﬁned for the homogenized version E of an aﬃne space E. In e general. . where i + j + k = m. considering the aﬃne plane A2 . where i = i1 + · · · + in . . e m A.1. This is also a direct consequence of lemma 11. If we consider a barycentric basis (r. t) i. δn )) is an aﬃne frame for E. 0) and (0. . n 0 1 where i0 + i1 + · · · + in = m.

u2m ) .2. . um ) σm (u2. . . We now give another proof that these tensors are linearly independent.2.3. it is easily seen that a tensor θ ∈ m E has weight 1 (ﬂavor 1) iﬀ it can be expressed as an aﬃne combination of simple m-tensors of the form b1 · · · bm .e. since for any barycentric aﬃne basis (a0 . using the basis (δ. . . . Thus. . uk+m )0 δ. . . . etc. Actually. 1 σ1 (um+1 . um+2 ) .5 showed. . the aﬃne tensor power of E. is nonnull. 0) for A. . dk = (uk+1 δ + 0) · · · (uk+mδ + 0) = 0≤i≤m The m + 1 tensors dk are linearly independent iﬀ the determinant of the (m + 1)(m + 1) matrice M = (mi. Then. we express every point u as uδ + 0. . ending by subtracting the ﬁrst row from the second. then the (m − 1)-th row from the m-th. . . . u2m ) (um+i − uj ). . . . is that the symmetric tensors dk = uk+1 · · · um+k form a basis of m A.416 CHAPTER 11... . We claim that det(M) = 1≤i≤j≤m σ1 (u1 . in view of lemma 11. If we subtract the m-th row from the (m + 1)-th (the last row). we notice that the ﬁrst column contains 1 in the ﬁrst row. .k ) = (σi (uk+1. . 0 1 n where i0 + i1 + · · · + in = m. .. . by computing a determinant. . . i. What lemma A. . . . . is a B´zier basis of m E. . n 0 1 where i0 + i1 + · · · + in = m. As earlier. . contain the factor (um+i−1 − ui−1). . . It is also worth noting that m E is generated by the simple m-tensors of the form a1 · · · am . the tensor power m E is even generated by the simple m-tensors of the form am . we can factor 2≤i≤m+1 (um+i−1 − ui−1 ) = 1≤i≤m (um+i − ui ). . . . the family of tensors ai0 ai1 · · · ain . where 0 ≤ i ≤ m. where a1 . . um+1 ) σm (u3. um+1 ) σ1 (u3 . where b1 · · · bm ∈ E. am ∈ E. 1 1 det(M) = 1 .. One way two compute det(M). . which is obvious. .. .2. ... . .3. and 1 ≤ k ≤ m + 1. is to imitate what we did in the computation of the Vandermonde determinant. . and we get m−i i σi (uk+1 . . um+2 ) . in view of the remark e just after lemma 11.. or de Casteljau pole system. . We will proceed by induction. . um ) σ1 (u2 . We call such a family of tensors a de Casteljau basis. . . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS m deﬁne the weight function (or ﬂavor function) ω : E → K. . . It is immediately seen that ω is independent of the chosen aﬃne frame. and that all the other entries on row i. . where a ∈ E. . . and 0 elsewhere. . σm (u1. σm (um+1 . This is certainly not obvious at ﬁrst glance. iﬀ θ ∈ m E. . uk+m)). . . ω(ai0 ai1 · · · ain ) = 1. as the unique linear map such that. . . an ) for E. . where 2 ≤ i ≤ m + 1 (counting from top down).

u3 ) = 1u1 u2 u3 + 1u1 u2 + 1u1 u3 + 1u2u3 + 3u1 + 3u2 + 3u3 − 5 f3 (u1 . and we now give such an example. We ﬁrst polarize F : A → A3 . −2 . POLAR FORMS REVISITED 417 and by expanding according to the ﬁrst column. u2. r1 ). for all i. . the result of homogenizing e e e3 3 3 f : A × A × A → A . course. −2 . r3 )) = 2u1 u2 u3 − 1u1 u2 r3 − 1u1 u3 r2 − 1u2 u3 r1 + 4u1 r2 r3 + 4u2 r1 r3 + 4u3r1 r2 − 8r1 r2 r3 f4 ((u1. r2 ). Note that we could have ﬁrst homogenized F : A → A3 . u2. r2 ). (u3 . . r3 )) = 7u1u2 u3 + 2u1 u2 r3 + 2u1u3 r2 + 2u2 u3 r1 − 1u1 r2 r3 − 1u2 r1 r3 − 1u3 r1 r2 + 4r1 r2 r3 f2 ((u1. (u2 .11. → → → deﬁned as follows (assuming the standard aﬃne frame (Ω. r3 )) = 0u1 u2 u3 + 0u1 u2 r3 + 0u1 u3 r2 + 0u2u3 r1 + 0u1 r2 r3 + 0u2r1 r3 + 0u3 r1 r2 + 1r1 r2 r3 . r1 ). Of. u2. − . u3 ) = 2u1 u2 u3 − 1u1u2 − 1u1 u3 − 1u2u3 + 4u1 + 4u2 + 4u3 − 8. but of size m × m. (u2 . r) = 0u3 + 0u2r + 0ur 2 + 1r 3 . namely. F3 (u. r2 ). and tensoring. (−1 . (u2 . . and involving only the 2m − 2 elements u2 . (u2 . It is also instructive to go through the steps of polarizing. (u3 . and (−1 .5. − )). for A3 ): e e e3 F1 (u) = 7u3 + 6u2 − 3u + 4 F2 (u) = 1u3 + 3u2 + 9u − 5 F3 (u) = 2u3 − 3u2 + 12u − 8. r1 ). (u3 . r) = 2u3 − 3u2 r + 12ur 2 − 8r 3 . homogenizing. getting F2 (u. (u3 . r1 ). getting f : A × A × A → A3 . Consider the polynomial curve F : A → A3 . → → → Taking the basis (δ. we get a similar determinant. det(M) = 0 iﬀ um+i = uj . given by f1 ((u1. Then. Ω) for A3 . r3 )) = 1u1 u2 u3 + 1u1u2 r3 + 1u1 u3 r2 + 1u2 u3 r1 + 3u1 r2 r3 + 3u2 r1 r3 + 3u3r1 r2 − 5r1 r2 r3 f3 ((u1. we can conclude by induction. we rediscover the condition for a progressive sequence. is f : (A) → A3 . r) = 7u3 + 6u2r − 3ur 2 + 4r 3 F4 (u. r2 ). u2m−1 . u3 ) = 7u1 u2 u3 + 2u1 u2 + 2u1 u3 + 2u2u3 − 1u1 − 1u2 − 1u3 + 4 f2 (u1 . with 1 ≤ i ≤ j ≤ m. given by f1 (u1 . 0) for A. explicitly. r) = 1u3 + 3u2r + 9ur 2 − 5r 3 F1 (u. j. .

Some results on osculating ﬂats can are also shown as well as a generalized version of lemma 5. are the B´zier control points of the curve F .. s) for A is used. we arrive at a geometric interpretation for the columns of the coeﬃcients 0 δ by k of the homogenized map F : the coeﬃcients of uk in the formula for the coordinates of F (u) are precisely the coordinates (except the last one) of the tensor (in this case. An advantage of the B´zier basis is that the tensors r m−k s k e are really points. k m . However. The columns of the above matrix have a geometric signiﬁcance. in the present case vectors. vector) (f )⊙ m m−k k 0 δ . we easily see that (f1 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 7a + 2b + −1c + 4d (f2 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 1a + 1b + 3c − 5d 2 2 3 3 2 3 2 3 2 3 (f4 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 0a + 0b + 0c + 1d. Note how tensoring eliminates duplicates that polarizing introduced. getting the same trilinear map f : (A)3 → A3 . (f )⊙ (δ 3 ). Section B. we compute the tensored version (f )⊙ : A → A3 of f : (A)3 → A3 . i. (f )⊙ (0 δ). and d = r1 r2 r3 . . for (u1 δ + r1 0) (u2δ + r2 0) (u3δ + r3 0).2 (conditions on polar forms for polynomial maps to agree to kth order). (f )⊙ (0δ 2 ). 3 Finally. Then. it is easy to see that the tensors (in this case. For example.4. and the last one is a a point. This is because symmetry is built-in. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS and then polarized F : A → A3 . we have a = u1 u2 u3 . points) f⊙ (r m−k s k ). Thus. if the aﬃne basis (r. this material is quite technical. that we write a symmetric tensor in 3 A as a δ 3 + b 0δ 2 + c 0 δ + d 0 .e. (f )⊙ (0 ).418 CHAPTER 11. Note that the four columns happen to be the tensors. b = (u1 u2 r3 + u1 u3 r2 + u2 u3 r1 ). k 2 3 (f3 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 2a − 1b + 4c − 8d This explains why it is interesting to rescale by Similarly. as abstract as it is. It can be be found in Chapter B. f⊙ carries some very e tangible geometric signiﬁcance.5. The ﬁrst three are vectors. Now if we rescale each tensor m m−k k . c = (u1 r2 r3 + u2 r1 r3 + u3 r1 r2 ). assuming 3 the power basis of A.

Show that if α(f. − − → → Prove that E/ ≡F is an aﬃne space with associated vector space E / F .5. − )(− ) = 0 for all − ∈ E. (1) Prove that the notion of an aﬃne space freely generated by a set I makes sense (mimic the construction of the free vector space K (I) ).6 Problems Problem 1 (10 pts). − → → → → → → − Hint. PROBLEMS 419 11. determined such that → → − − a ≡F b iﬀ ab ∈ F . Problem 3 (20 pts). Given an aﬃne space E and a − → − → subspace F of E . − ∈ F . v u u v Problem 4 (20 pts). Prove lemma 11. prove that (f ′ ◦ f ) ⊗ (g ′ ◦ g) = (f ′ ⊗ g ′ ) ◦ (f ⊗ g). Problem 5 (10 pts). an aﬃne congruence on E is deﬁned as a relation ≡F on E. Problem 2 (10 pts). (2) Quotients of aﬃne spaces can be deﬁned as follows. (3) Prove that tensor products of aﬃne spaces exist.1. Fill in the details of the proof of lemma 11.3. and g ′ : F ′ → F ′′ .11. Given some linear maps f : E → E ′ . Let α : E ∗ × F → L(E. F ). F ) be the map deﬁned such that → → → → α(f. Prove that α is bilinear and that the unique linear map v u α⊗ : E ∗ ⊗ F → L(E. v u u v → → for all f ∈ E ∗ . f ′ : E ′ → E ′′ .6. Let E and F be two vector spaces of ﬁnite dimension. g : F → F ′ . Prove that the number of homogeneous monomials j j X1 1 · · · Xp p . Problem 7 (10 pts).2. and − ∈ E. F ) induced by α is an isomorphism. Prove that n E and n E are isomorphic. Recall that the set of linear maps from E to F is denoted as L(E. then either f = 0 or − = 0 . − )(− ) = f (− )− . Problem 6 (10 pts).

u v u v u v Prove that the above structure is a complex vector space. . . Prove that the dimension of n E is p+n−1 . −2 ) = (−1 + −1 . Let E be a real vector space of dimension n. 0 ). jp ) such that j1 + · · · + jp = n. prove that C ⊗ E is isomorphic to EC . − ) = − + i− . jk ≥ 0. Viewing C as a vector space (of dimension 2) over R. . . −2 ) + (−1 . u u v v u v → → v and the multiplication by a complex scalar z = x + iy deﬁned such that → → → → → → (x + iy) · (− . we can deﬁne the tensor product C ⊗ E. . . − ) = i(− . . y − + x− ). µj ∈ R. − n ) is any basis of E. . u → → → → where λj . . Hint. . − ∈ R ⊗ E (and recall that R ⊗ E is isomorphic u v u v to E). 0 ). We call such a basis a real basis. − ) = (x− − y − . (ii) Consider the structure E × E under the addition operation → → → → → → u (−1 . i. −2 + −2 ). (− n . Show that every vector in C ⊗ E can be written as j → λj ⊗ −j + i u j → µj ⊗ −j . v v → → − and thus. . 0 )) is a basis of e e e e EC . of total degree n in p variables is Problem 8 (10 pts). TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS p+n−1 . we can deﬁne multiplication by a complex scalar z ∈ C as z· i → xi ⊗ −i = u i → zxi ⊗ −i . n Problem 9 (20 pts). 0 ).e. . Denoting the above vector space as EC . u v u v → → → → → − → − Prove that if (− 1 . Prove that this is also the number of ﬁnite n multisets (j1 . u (i) Prove that the above operation makes C ⊗ E into a complex vector space called the complexiﬁcation of E. as − + i− . u we can write → → → → (− . where xi ∈ C and −i ∈ E. identifying E with the subspace of EC consisting of all vectors of the form (− . where − . .420 CHAPTER 11. which is a real vector → → u u space. Note that − → → → → − ( 0 . Since every element of C ⊗ E is of the form i xi ⊗ −i . then ((− 1 .

if ϕ is symmetric.6. −2 + i−2 ) = ϕ(−1 . u v u v (iv) Prove that every bilinear form ϕ : E × E → R can be extended to a bilinear map ϕC : EC × EC → C deﬁned such that → → u → → → → → → u → v ϕC (−1 + i−1 . −2 ) − ϕ(−1 . −2 ) + ϕ(−1 . . −2 ) + i[ϕ(−1 . −2 )]. so is ϕC . u v → v u u v v v → u → Furthermore. PROBLEMS 421 (iii) Prove that every linear map f : E → E can be extended to a linear map fC : EC → EC deﬁned such that → → → → fC (− + i− ) = f (− ) + if (− ).11.

TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS .422 CHAPTER 11.

Part IV Appendices 423 .

424 .

(ai )i∈I = ∅. e e e e G´om´trie 1 and 2. and geometry: Linear Algebra and its Applications. Alg`bre lin´aire et g´om´trie classique. A family (ai )i∈I is ﬁnite if I is ﬁnite. Given a family (ui )i∈I . by Bertin [8]. In fact. by Berger [5. by Van Der Waerden [84]. We begin by reviewing some basic properties of vector spaces. a subfamily of (ui )i∈I is a family (uj )j∈J where J is any subset / of I. Alg`bre. 15]. and wk = v. by Walter Noll [57]. Given a family (ui )i∈I and any element v. where k is any index such that k ∈ I. by Mac Lane and Birkhoﬀ [52]. recall that a family (ai )i∈I of elements of A is simply a function a : I → A. 6]. If A is ring with additive identity 0. by Lang [47]. But beware. Given a set A. We agree that when I = ∅. projectives. Algebra. by Michael Artin [1]. Alg`bre Lin´aire et G´om´trie El´mentaire by Dieudonn´ [25]. by Bourbaki [14. we denote as (ui )i∈I ∪k (v) the family (wi )i∈I∪{k} deﬁned such that. by Strang [81]. where J is a ﬁnite subset of I (the support of the family). The ﬁrst two chapters of Strang [81] are highly recommended. Algebra. The appendices contain no original material.1 Vector Spaces The purpose of the appendices is to gather results of Linear Algebra and Analysis used in our treatment of the algorithmic geometry of curves and surfaces. e Algebra 1. and we advise our readers to proceed “by need”. the notation and terminology is a bit strange! The text Geometric Concepts for Geometric Design. polynomials. G´om´tries aﬃnes. e e e e e e Another useful and rather complete reference is the text Finite-Dimensional Spaces. wi = ui if i ∈ I. we say that a family (ai )i∈I has ﬁnite support iﬀ ai = 0 for all i ∈ I − J. 425 . Algebra. We can deal with an arbitrary set X by viewing it as the family (Xx )x∈X corresponding to the identity function id : X → X. by Boehm and Prautzsch [11] is also an excellent reference on geometry geared towards computer aided geometric design. there is probably more material than really needed. except perhaps for the presentation and the point of view. We recommend the following excellent books for an extensive treatment of linear algebra.Appendix A Linear Algebra A. and euclidiennes. by e e e e Tisseron [83].

. β ∈ K. . but readers may safely assume that K = R.1 and · : K × E → E (called scalar multiplication). we assume that all K-vector spaces are deﬁned with respect to a ﬁxed ﬁeld K. − . let Rn be the set of n-tuples x = (x1 . . a vector space over K (or K-vector space) is a set E (of vectors) together with two operations + : E × E → E (called vector addition). Thus. The ﬁeld K is often v v v called the ﬁeld of scalars. we get α · 0 = 0 . Rn is a vector space over R. β ∈ K. Unless speciﬁed otherwise or unless we are dealing with several diﬀerent ﬁelds. u v u v u v → → → → (V2) (α + β) · − = (α · − ) + (β · − ). . u u u → → → Given α ∈ K and − ∈ E. . Given a ﬁeld K. . . Deﬁnition A. The symbol + is overloaded. we get 0 · − = 0 . − → From (V0). . . . addition v v of vectors being addition in the ﬁeld. As noted earlier. we review the concepts of linear combination and linear independence. − ∈ E. . since it denotes both addition in the ﬁeld K and addition of vectors in E. The resulting algebraic structure has some interesting properties. − ∈ E. xn ) + (y1 . → However. with identity element 0 . Next. . xn ) = (λx1 . From − → − → → → → → − (V1). . u u u → → → (V4) 1 · − = − . the element α · − is also denoted as α− . . . although all deﬁnitions and proofs hold for any commutative ﬁeld K. xn + yn ). For simplicity.e. . for all − ∈ E. → → → → → → (V1) α · (− + − ) = (α · − ) + (α · − ). From (V2). of the form − . it is assumed that all families of scalars have ﬁnite support. . we also assume that K = R. unless speciﬁed otherwise.1. LINEAR ALGEBRA In this chapter. if we write elements of E as vectors. yn ) = (x1 + y1 . . for all α. xn ). − ∈ E. and α · (−− ) = −(α · − ). . for all α ∈ K. satisfying the following conditions: − → (V0) E is an abelian group w.1. and v v v → → (−α) · − = −(α · − ). .426 APPENDIX A. we will refer to a K-vector space simply as a vector space. . +. 1 . and thus is nonempty. For every n ≥ 1. i. . a vector space always contains the null vector 0 . for all α. The ﬁeld K itself can be viewed as a vector space over itself. u u u u → → → (V3) (αβ) · − = α · (β · − ).r. in the rest of this chapter. those of a vector space. and multiplication by a scalar being multiplication in the ﬁeld. the ﬁeld of real numbers. . . λxn ). Addition can be extended to Rn as follows: (x1 . it will always be clear from the type of u the arguments which + is intended. We begin by reviewing the deﬁnition of a vector space. The deﬁnition below is stated for an arbitrary ﬁeld K.t. We can also deﬁne an operation · : R × Rn → Rn as follows: λ · (x1 .

µ ∈ K.1.1. u → → − → When I = ∅. u j The notion of a subspace of a vector space is deﬁned as follows. u i∈I → Equivalently. . and all λ. VECTOR SPACES 427 → Deﬁnition A. u i∈I We agree that when I = ∅. a subset F of E is a linear subspace (or subspace) → → → → of E iﬀ F is nonempty and λ− + µ− ∈ F for all − . u − = → uj i∈(I−{j}) i∈I which implies that → −λ−1 λi −i . The subspace { 0 } will be denoted as 0 (with a mild abuse of notation). we stipulate that − = 0 . given a family (−i )i∈I . and motivate the following deﬁnition. Let E be a vector space.2. the family ∅ is linearly independent. Deﬁnition A. u v u v It is easy to see that a subspace F of E is closed under arbitrary linear combinations of vectors from F . → → A family (−i )i∈I is linearly dependent iﬀ some −j in the family can be expressed as a u u linear combination of the others vectors in the family. there is some family (λi )i∈I of scalars in K such that → → − λi −i = 0 and λj = 0 for some j ∈ I. → → − λi −i = 0 implies that λi = 0 for all i ∈ I. → Given a vector space E.A. and that any intersection of subspaces is a subspace. − → − → we see that every subspace contains the vector 0 . − ∈ F .1. a family (−i )i∈I is linearly dependent iﬀ there is some family (λi )i∈I of scalars u in K such that → → − λi −i = 0 and λj = 0 for some j ∈ I. We say that a family (−i )i∈I is linearly independent v u iﬀ for every family (λi )i∈I of scalars in K. the subset V of E consisting of the v − → → null vector 0 and of all linear combinations of (−i )i∈I is easily seen to be a subspace of v E. Indeed. Letting λ = µ = 0.3. A vector − ∈ E is a linear combination of a v − ) of elements of E iﬀ there is a family (λ ) of scalars in K such that → family ( ui i∈I i i∈I − = → v i∈I → λi −i . Subspaces having such a “generating family” play an important role. Given a vector space E.

1. If a subspace V of E is generated by a ﬁnite family (− ) . i∈I i i i i∈I Note that the proof of the above lemma holds for arbitrary vector spaces. the family B = ( uh h∈H∪{p} is linearly independent. Proof.4. We claim that u → B generates E. if B does not generate E. if v ui i∈I ui i∈I k → v − to the family (− ) is linearly independent (where k ∈ I). Thus. We begin with a crucial lemma. and since L ⊆ B ⊂ B ′ ⊆ S. then there is some −p ∈ S that is not u a linear combination of vectors in B (since S generates E). The next theorem also holds in general. It is a standard result of linear algebra that every vector space E has a basis. v u → → then µ has an inverse (because K is a ﬁeld). a family (−i )i∈I of v − ∈ V spans V or generates V iﬀ for every − ∈ V . Thus. B is a basis of E such that L ⊆ B ⊆ S. showv u − is a linear combination of (− ) and contradicting the hypothesis. We prove the above result in the case where a vector space is generated by a ﬁnite family. . → → by adding v ui i∈I / → → → − Proof. v v i∈I → → We also say that the elements of (−i )i∈I are generators of V and that V is spanned by (−i )i∈I . we u u have λi = 0 for all i ∈ I. every basis of E has n elements. if E u v has a ﬁnite basis of n elements. and that → → for any two bases (−i )i∈I and (−j )j∈J .5. there is some family (λ ) of → → vectors vi v i i∈I scalars in K such that − = → → λi −i .1. If µ = 0. we only prove the theorem for ﬁnitely generated vector spaces. we have λ − = 0 . µ = 0. for any family (λi )i∈I of scalars in K.6. Consider the set of linearly independent families B such that L ⊆ B ⊆ S. with p ∈ H.1.428 APPENDIX A. → → ing that v ui i∈I − → → → But then. then the family (− ) ∪ (− ) obtained → → → E. A family ( ui i∈I called a basis of V . Given a vector space E and a subspace V of E. v v − ) . Given any ﬁnite family S = (−i )i∈I generating a vector space E and any u −) → linearly independent subfamily L = ( uj j∈J of S (where J ⊆ I). by lemma / −) → ′ A. say B = (−h )h∈H . In particular. and thus we have − = − i∈I (µ−1 λi )−i . and the integer n is called the dimension of the vector space E. not only for ﬁnitely generated vector spaces.1. Then. LINEAR ALGEBRA → Deﬁnition A. → Theorem A. Given a linearly independent family (−i )i∈I of elements of a vector space u − ∈ E is not a linear combination of (− ) . but the proof is more sophisticated for vector spaces that do not have a ﬁnite set of generators (it uses Zorn’s lemma). we say → → or generated by ( vi i∈I vi i∈I − ) that spans V and is linearly independent is → that V is ﬁnitely generated . this contradicts the maximality of B. Since this → set is nonempty and ﬁnite. Assume that µ− + i∈I λi −i = 0 . and since the family (− ) is linearly independent.5. there is a basis B of E such that L ⊆ B ⊆ S. Indeed. I and J have the same cardinality. it has some maximal element. Thus. → Lemma A.

139-140). Appendix 2. §5 (pp. Then. and the families (−i )i∈(I−{p}) ∪(−→)l∈L and (−j )j∈J generate the same subspace u vρ(l) v ′ of E. let (−i )i∈I be any ﬁnite linearly independent family u −) → → in E. 878-884) and Chapter III. there exists a set L and an injection ρ : L → J → combination of ( vj j∈J → → such that L ∩ I = ∅. Given a vector space E. . → → |L| = n−m. Assume |I| = m + 1. In this case.6.1. |L| = n − m. The existence of such a maximal family can be shown using Zorn’s lemma. → Lemma A. → Proof. or Artin [1]. Since −p is a linear combination of (−j )j∈J and u v −) → −→) −) → → the families ( ui i∈(I−{p}) ∪ (vρ(l) l∈L and ( vj j∈J generate the same subspace of E. Appendix §1 (pp.6 should consult either Lang [47]. Consider → the linearly independent family (−i )i∈(I−{p}) . and replace ρ by the injection ρ′ which agrees with ρ on L − {p} and such that ρ′ (p′ ) = ρ(p). VECTOR SPACES 429 Theorem A. the problem is to garantee the existence of a maximal linearly independent family B such that L ⊆ B ⊆ S. If p ∈ L. we have i∈(I−{p}) → → u → − u λi −i − −p = 0 . and the families (−i )i∈I ∪ (−→)l∈L and (−j )j∈J generate u vρ(l) v the same subspace of E. where |J| = n. and u the lemma holds trivially with L = J (ρ is the identity). and let ( vj j∈J be any ﬁnite family such that every −i is a linear u − ) .8. (3) B is a minimal generating family of E.A. When m = 0. the family (−i )i∈I is empty. The following lemma giving useful properties characterizing a basis is an immediate consequence of theorem A. Given a vector space E.1. By the induction u hypothesis. m ≤ n. → → Thus. we can replace L by (L − {p}) ∪ {p } where p′ does not belong to I ∪ L. 588-589). −p is a u → linear combination of (−i )i∈(I−{p}) ∪ (−→)l∈L . §2 (pp.1. where p is any member of I. we can always assume that L ∩ I = ∅. there exists a set L and an injection ρ : L → J such that L ∩ (I − {p}) = ∅. where |I| = m.1. for any family B = (−i )i∈I of vectors of E.7. The following replacement lemma shows the relationship between ﬁnite linearly independent families and ﬁnite families of generators of a vector space.1. In particular. We proceed by induction on |I| = m.6 also holds for vector spaces that are not ﬁnitely generated. Readers who want to know more about Zorn’s lemma and the proof of theorem A. Let u vρ(l) − = → up i∈(I−{p}) → λi −i + u l∈L λl −→ vρ(l) (1) If λl = 0 for all l ∈ L. (2) B is a maximal linearly independent family of E. → Lemma A.1. the v following properties are equivalent: (1) B is a basis of E.

Indeed. because the Lj are ﬁnite.430 APPENDIX A. Let E be a ﬁnitely generated vector space. since otherwise (−i )i∈L u u −) would be another basis of E. Thus. Assume that (−i )i∈I and (−j )j∈J are bases of E. since otherwise. say u l = q. let Lj ⊆ I be the ﬁnite set → Lj = {i ∈ I | −j = v Let L = j∈J → vi −i . the second family is obtained from the ﬁrst by replacing −→ by − . Remark: Theorem A.6 and lemma A. let (−j )j∈J be a generating family of u v E.9. Any family (−i )i∈I generating u −) → E contains a subfamily ( uj j∈J which is a basis of E. J must be inﬁnite.8 implies theorem A. If (−j )j∈J is also a basis. LINEAR ALGEBRA → contradicting the fact that (−i )i∈I is linearly independent. since L ∩ I = ∅ and |L| = n − m imply that (L − {q}) ∩ I = ∅ and |L − {q}| = n − (m + 1). i i∈I j j∈J When |I| is inﬁnite. and assume that I is inﬁnite. Since (−i )i∈I is linearly u u v u −) → independent and ( vj j∈J spans E.1. → Theorem A. we obtain the following fundamental theorem. Since (−i )i∈I is a basis of E. Furthermore.1. we say that E is of inﬁnite dimension. this would contradict the fact that ( → u i i∈I is linearly independent. i i∈I j j∈J Proof. A symmetric argument yields |J| ≤ |I|. and vice-versa. The ﬁrst part follows immediately by applying theorem A. by a → standard result of set theory.1. I would be ﬁnite. v → → we obtain |J| ≤ |I|. one can prove that lemma A.1.6 with L = ∅ and → → → → S = (−i )i∈I . For every j ∈ J. since I = j∈J Lj with J inﬁnite and the Lj ﬁnite. we have |I| = |J| = n. |I| ≤ |J|. lemma A. and thus. λl = 0 for some l ∈ L.1.8 together. for every two bases → → (− ) and (− ) u v of E.1.1. Furthermore. and vρ(q) ui i∈I vρ(l) l∈(L−{q}) .9 also holds for vector spaces that are not ﬁnitely generated. we have −→ = v− ρ(q) → → (−λ−1 λi )−i + λ−1 −p + u q q u i∈(I−{p}) l∈(L−{q}) (−λ−1 λl )−→ vρ(l) q (2) → → We claim that the families (−i )i∈(I−{p}) ∪ (−→)l∈L and (−i )i∈I ∪ (−→)l∈(L−{q}) generate u vρ(l) u vρ(l) the same subset of E. and the lemma holds for L − {q} and the restriction of the injection ρ : L → J to L − {q}. by vρ(l) ρ(q) −→ is a linear combination of (− ) ∪ (−→) − → (1).1. we must have I = L. Let (−i )i∈I be a basis of E. Putting theorem A. |I| = |J| for any two bases (− ) and (− ) u v of E. The dimension of a vector space . u i∈I → → Lj .5. Since λq = 0. This → → can be shown as follows. the families − ) ∪ (−→) → −) → ( ui i∈I vρ(l) l∈(L−{q}) and ( vj j∈J generate the same subspace of E. vi = 0}. Thus.8 implies that |I| ≤ |J|.1. by a symmetric argument. Actually. the dimension |I| being a cardinal number which depends only on the vector space E. by (2).6 when the vector space if ﬁnitely generated. But then. and by lemma A. and − is a linear combination of (− ) → → → v− up up ui i∈(I−{p}) ∪ (−→)l∈L .

VECTOR SPACES 431 E is denoted as dim(E). . assume that (−i )i∈I is linearly independent. if (vi )i∈I is the unique u v family of scalars in K such that − = → → v vi −i . Thus dim(K) = 1. → Lemma A.1. then we have → → − (λi − µi )−i = 0 .A. there is a family (λ ) of scalars K such that → (u i i∈I i i∈I − = → v i∈I → λi −i . v u → → If (−i )i∈I is a basis of a vector space E. For any vector − ∈ E. u i∈I → and since (−i )i∈I is linearly independent. there would be a family (µi )i∈I of scalars not all null such that → → − µi −i = 0 u i∈I and µj = 0 for some j ∈ I. if the ﬁeld K itself is viewed as a vector space. Clearly. u A very important fact is that the family (λi )i∈I is unique. If (µi )i∈I is another family of u − = → − → scalars in K such that v i∈I µi ui . u with λj = λj +µj since µj = 0. since the family u v − ) generates E. u i∈I → each vi is called the component (or coordinate) of index i of − with respect to the basis v −) . for any vector − ∈ E. contradicting the assumption that (λi )i∈I is the unique family → → such that − = i∈I λi −i .10. we can form a vector space K (I) which. First. − = → v i∈I → → − λi −i + 0 = u i∈I → λi −i + u i∈I → µi −i = u i∈I → (λi + µi )−i . let (−i )i∈I be a family of vectors in E. → → v ui i∈I i∈I λi ui → Proof. → ( ui i∈I Given a ﬁeld K and any (nonempty) set I. Then. we must have λi − µi = 0 for all i ∈ I. and assume that − = → → − . the family (λ ) → v v i i∈I of scalars such that i∈I λi ui − = → − is unique iﬀ (− ) is linearly independent. is the standard vector space of dimension |I|. → → Let (−i )i∈I be a basis of a vector space E. If (−i )i∈I was linearly u dependent. Let u − ∈ E. The converse is shown by contradiction. Given a vector space E. that u → is. in some sense. then every family (a) where a ∈ K and a = 0 is a basis. But then.1. λi = µi for all i ∈ I.

2 We deﬁne addition and multiplication by a scalar as follows: (λi )i∈I + (µi )i∈I = (λi + µi )i∈I . K (I) = K I .2 Linear Maps A function between two vector spaces that preserves the vector space structure is called a homomorphism of vector spaces. a linear map between E and F is a function f : E → F satisfying the following two conditions: → → → → f (− + − ) = f (− ) + f (− ) x y x y − ) = λf (− ) → → f (λ x x → → for all − . The basic property of x y linear maps is that they transform linear combinations into linear combinations. In fact.1. let K (I) be the subset of the cartesian product K I consisting of families (λi )i∈I with ﬁnite support of scalars in K. u → u The above identity is shown by induction on the size of the support of the family (λi −i )i∈I .2. The → function ι : I → K (I) .1. Given a ﬁeld K and any (nonempty) set I. Given a → family (−i )i∈I of vectors in E. − ∈ E. or linear map. we get f ( 0 ) = 0 . K (I) is a vector space. . n}. . and λ · (µi )i∈I = (λµi )i∈I . using the properties of deﬁnition A. Further−→ − −→ − → → more. because families with ﬁnite support are considered. the family (− ) of vectors − deﬁned such that (e ) = 0 if j = i and (e ) = 1. but this is false when I is inﬁnite. A. such that ι(i) = −i for every i ∈ I.1. . LINEAR ALGEBRA Deﬁnition A. It is immediately veriﬁed that. . is clearly an injection. we denote K (I) as K n . x y → for all λ ∈ K. − ∈ E. When I = {1.11. but dim(K I ) is strictly greater when I is inﬁnite. dim(K (I) ) = |I|. 2 Where K I denotes the set of all functions from I to K.432 APPENDIX A. Linear maps formalize the concept of linearity of a function. is e e i i∈I i i j i i clearly a basis of the vector space K (I) . we have u f( i∈I → λi −i ) = u i∈I → λi f (−i ). given any family (λi )i∈I of scalars in K. e When I is a ﬁnite set. x − → − → − → → → Setting − = − = 0 in the ﬁrst identity. Given two vector spaces E and F . addition and multiplication by a scalar are well deﬁned.2. Thus. Deﬁnition A. .

→ f is surjective iﬀ ( vi i∈I → Proof.A. v . u and by linearity.2. we deﬁne its image (or range) Im f = f (E). Thus. every vector u − ∈ E can written uniquely as a linear combination → x − = → x i∈I → xi −i . f is injective iﬀ (−i )i∈I is linearly independent. If such a linear map f : E → F exists. we must have → f (− ) = x i∈I → xi f (−i ) = u i∈I → xi −i . y x y x − → and its Kernel (or nullspace) Ker f = f −1 ( 0 ). u v u v x y → → → → and thus.3. and thus. the set Im f is a subspace of F and the set Ker f is a subspace of E. Furthermore. µ ∈ K. x y x y → → − ) = − and f (− ) = − . for some − ∈ E}. → → → → → → Proof. → → we have f ( x 0 y 0 − → → → → → f (λ− + µ− ) = λf (− ) + µf (− ) = 0 . x x Lemma A. Note that f (− ) = f (− ) x y x y → − − − ) = − . as shown in the following lemma. x y x y → → → → that is.2.2. Given any two vector spaces E and F . as the set → → → → Im f = {− ∈ F | f (− ) = − . as the set − → → → Ker f = {− ∈ E | f (− ) = 0 }. → → iﬀ f ( x y 0 A fundamental property of bases in a vector space is that they allow the deﬁnition of linear maps as unique homomorphic extensions.2. → Lemma A. The linear map f : E → F is injective iﬀ Ker f = 0 (where 0 is − → the trivial subspace { 0 }). λ− + µ− ∈ Ker f . Given a linear map f : E → F . we have → → y v → → → → → → f (λ− + µ− ) = λf (− ) + µf (− ) = λ− + µ− . since (−i )i∈I is a basis of E. LINEAR MAPS 433 Given a linear map f : E → F . and for all λ. Given any − . and u v v − ) generates F . there are some − . − ∈ Im f . λ− +µ− ∈ Im f . − ∈ E such that − = f (− ) and x y u v x u − = f (− ). − ∈ Ker f . there is a unique linear map f : E → F such that → any other family of vectors ( vi i∈I → → → f (−i ) = −i for all i ∈ I. showing that Im f is a subspace of F . given u − ) in F . f is injective iﬀ Ker f = 0. Given any − . given any basis (−i )i∈I of E. showing that Ker f is a subspace of E.

The part where f is surjective is left as a simple exercise.11 has a universal property which amounts to saying that K (I) is the vector space freely generated by I. By the second part of lemma A. an injective linear map f : E → F sends a basis −) → → ( ui i∈I to a linearly independent family (f (−i ))i∈I of F . is an injection from I to K (I) . and obviously. → f : E → F is injective. we have → → − λi −i = 0 . It is easy to verify that f is indeed linear.1. (−i )i∈I is a basis of E. and assume that → → − λi −i = 0 . and f is injective. v i∈I → → Since −i = f (−i ) for every i ∈ I. and (−i )i∈I is linearly independent. Let (λi )i∈I be any family of scalars. f (−i ) = −i .1. LINEAR ALGEBRA → xi −i v → → for every − = i∈I xi −i . Recall that → ι : I → K (I) . we have v u f( i∈I → λi −i ) = u i∈I → λi f (−i ) = u i∈I → → − λi −i = 0 . u i∈I then i∈I → λi −i = v i∈I → λi f (−i ) = f ( u → → and λi = 0 for all i ∈ I.7). u v Now. Since (−i )i∈I is a basis of E. v u we just showed that Ker f = 0. which is also a basis when f is u → bijective. v Since f is injective iﬀ Ker f = 0.434 Deﬁne the function f : E → F . when E and F have the same ﬁnite dimension n. we have λi = 0 for all i ∈ I.3. assume that ( vi i∈I f( i∈I − → → λi −i ) = 0 u − → → λi −i ) = 0 . e . it is unique by the x u → → previous reasoning. If → Conversely.2. assume that f is injective. u i∈I → → and since (−i )i∈I is a basis. then (f ( ui i∈I We can now show that the vector space K (I) of deﬁnition A. u v − ) is linearly independent. by letting → f (− ) = x i∈I APPENDIX A. Also. and u − )) is a basis of F (by lemma A. such that ι(i) = −i for every i ∈ I. since (−i )i∈I is linearly independent.

every vector − ∈ E can written as some linear combination → → ( ui i∈I x − = → x i∈I → → (2) The family (−i )i∈I is linearly independent iﬀ for every family of vectors (−i )i∈I in F . for any vector space F . the following properties hold: u → → (1) The family (−i )i∈I generates E iﬀ for every family of vectors (−i )i∈I in F . However. Conversely. → → there is some linear map f : E → F such that f ( ui vi → xi −i . there is some vector w . with F nontrivial. there is at u v − ) = − for all i ∈ I. there is a unique linear map f : K (I) → F such that → f (−i ) = f (i) for every i ∈ I. there is some some vector y y 0 ui i∈I − ∈ E which is not in the subspace generated → does not generate E.2. since u v − ) generates E. which proves the existence and uniqueness of a linear map f e such that f = f ◦ ι.4. The following simple lemma will be needed later when we study spline curves. we must have → e f (i) = f (ι(i)) = f (−i ). and (f (i))i∈I is a family e of vectors in F . u v − ) = − for all i ∈ I.A. the family (−i )i∈I is a basis of K (I) . there is a unique linear map f : K (I) → F . and by lemma A.2. v → This shows that f is unique if it exists. LINEAR MAPS 435 Lemma A. Lemma A. such that f = f ◦ ι.5. (1) If there is any linear map f : E → F such that f (−i ) = −i for all i ∈ I.3.2. and for any function f : I → F . assume that (−i )i∈I does not generate u − ∈ F such that − = − .2. we must have → f (− ) = x i∈I → xi f (−i ) = u i∈I → xi −i . → for every i ∈ I. Given any two vector spaces E and F . Given any set I. given any family → (−i )i∈I of vectors in E. u and by linearity. since f = f ◦ ι. as in the following diagram: I CC / K (I) CC CC f C f C! C F Proof. If such a linear map f : K (I) → F exists. Since F is nontrivial. Since (− ) → → → → E. → → most one linear map f : E → F such that f ( ui vi ι → → Proof.

6 again. A. LINEAR ALGEBRA → → → by (−i )i∈I . there is a linearly independent subfamily (−i )i∈I0 of (−i )i∈I u u u −) → generating the same subspace. and − = −0 .436 APPENDIX A. such that fi (−i ) = u → − .1. we have. deﬁned as follows: For all − . for j ∈ I − {i}. Then. − ∈ E.3 Quotient Spaces Let E be a vector space.6. we would get → → y u 0 i j − → 0 = fi ( i∈I → λi −i ) = u i∈I → → λi fi (−i ) = λi − . By deﬁnition of the basis (−j )j∈I0 ∪J of E. for every i ∈ I. for all i ∈ I0 . and g(−j ) = 0 . for every i ∈ I. u y → → − → and since − = 0 .1. they are fundamental in algebra. Conversely. assume that (− ) u is linearly dependent.3. u i∈I → By the assumption. Thus. the relation ≡M is an equivalence relation with the following two congruential properties: → → → → → u → → → 1. → (2) if the family (−i )i∈I is linearly independent. for some j0 ∈ J. then the conclusion follows by lemma u → A. By lemma u − → → → → A. → → → → → such that −i = −i . g(−i ) = 0 for all e u i ∈ I. y u Although in this course.2. and u v u v u v v . (−i )i∈I is linearly independent. If −1 ≡M −1 and −2 ≡M −2 . and let M be any subspace of E. this implies λi = 0. u v − ≡ − iﬀ − − − ∈ M. Lemma A. deﬁning f : E → F to be the constant linear → family in F such that vi 0 − → − → → map with value 0 . The next section may be omitted until needed. then −1 + −2 ≡M −1 + −2 . this contradicts the fact that there is at most one such map. for all w y e − → → → j ∈ (I0 ∪ J) − {j0 }. The subspace M induces a relation → → ≡M on E. → → → → u v u v M We have the following simple lemma. Given any vector space E and any subspace M of E. there is a unique linear map g : E → F such that g(− ) = − .3. there is some family i i∈I (λi )i∈I of scalars (not all zero) such that → → − λi −i = 0 .2. Letting (−i )i∈I be the e u w ej v → − = − for all i ∈ I.1. we have a linear map such that f (−i ) = 0 for all i ∈ I. and by lemma A. there is some linear map fi : E → F .3. there is a basis ( ej j∈I0∪J of E. and since f = g. and they are needed to deﬁne tensor products. By lemma A. which are useful to provide nice conceptual proofs of certain properties of splines. and f (− ) = − . Then. we will not have many occasions to use quotient spaces.

2} . Deﬁnition A. then → → → → u v w w → → → λ− − λ− = λ− . For simplicity. Note that −1 ≡M −1 and −2 ≡M −2 u v u v − − − = − and − − − = − . we deﬁne the notion of direct sum and prove some simple lemmas. The vector space E/M is called the quotient space of E by the subspace M. A. 2}. but we want E ⊕ F = F ⊕ E. [− ] ∈ E/M. we deﬁne the following operations of addition and multiplication by a scalar on the set E/M of equivalence → → classes of the equivalence relation ≡M as follows: for any two equivalence classes [− ]. and it is immediately veriﬁed that Im f is isomorphic to the quotient space E/Ker f . u v u v 437 → → → → Proof. since M is a subspace of E. and thus λ− ≡M λ− . we have → → → → [− ] + [− ] = [− + − ]. then λ− ≡M λ− . It is obvious that ≡M is an equivalence relation. the above operations do not depend on the speciﬁc choice of representatives → → in the equivalence classes [− ]. u v u v − ] = [λ− ]. with − . Given any vector space E and any subspace M of E. It is possible to do so by considering the direct sum of a family (Ei )i∈{1.1 shows that we can deﬁne addition and multiplication by a scalar on the set E/M of equivalence classes of the equivalence relation ≡M . DIRECT SUMS → → → → 2. and thus. we begin by considering the case where I = {1. Thus. since M is a subspace of E. we know that Ker f is a subspace of E.A. and more generally of a family (Ei )i∈I . we don’t quite get the right notion because elements of E × F are ordered pairs. [− ] ∈ u v E/M.2.3. Given any linear map f : E → F . w u v Lemma A. If w u v v − − − = − .3. → → w → → → w → → w → are equivalent to u1 v1 u2 v2 w1 2 1 2 → u → → → → w → (−1 + −2 ) − (−1 + −2 ) = −1 + −2 . . we want to think of the elements of E ⊕ F as multisets of two elements. deﬁned such that π(− ) = [− ] for every − ∈ E. u u u is a surjective linear map called the natural projection of E onto E/F . with − ∈ M.4 Direct Sums Before considering linear forms and hyperplanes. which is that if we attempt to deﬁne the direct sum E ⊕ F of two vector spaces using the cartesian product E × F . if − ≡M − . u v w → → → and λ− ∈ M. → → λ[ u u By lemma A. There is a subtle point. − ∈ M. we have −1 + −2 ≡M −1 + −2 . It is also immediate to verify that E/M is a u v → → → vector space. u v v w → w → → u → → → and −1 + −2 ∈ M. The function π : E → E/F .1.4. Thus.3.

0 }. 2. E1 ⊕ E2 is just the product i∈{1. as the set → → → → E1 ⊕ E2 = {{ 1. elements of Of course. but as we just saw. −1 + −2 . .4. − } + { 1.438 APPENDIX A. . 2. − } = { 1. − } | − ∈ E1 .2} . LINEAR ALGEBRA Deﬁnition A.− + − . − ∈ E1 } = E1 ⊕ E2 . → → sisiting of the two vectors u v Remark: In fact. → v → v → → v u1 → u2 → u1 u2 → → v2 1 2 1 → → → → λ − . u u 1 and − → → → in2 (− ) = { 1. with addition and u v u v multiplication by a scalar deﬁned such that − . λ− . where − ∈ E1 . − . − } of E1 ⊕ E2 can be viewed as an unordered pair conu v − and − . 1. v v Note that → → → → E2 ⊕ E1 = {{ 2. 0 . − } | − ∈ E2 . −2 } = { 1. − → → → in (− ) = { 1.2} Ei of the family (Ei )i∈{1. = En . we can deﬁne E1 × · · · × En for any number of vector spaces. 2. − . 2. − }.2} Ei are unordered pairs! i∈{1. − . − . we denote this product as E n . 2. The following property holds. − ∈ E2 }. every member { 1. − = λ− . This is not to be confused with the cartesian product E1 × E2 .− + − . 2. u v u v with addition → → → → → u → → → { 1. and − ∈ E2 . 2. λ− . − . λ− }. The vector space E1 × E2 → → → → is the set of all ordered pairs − . that is. Given two vector spaces E1 and E2 . − . 2. we deﬁne the (external) direct sum E1 ⊕ E2 of E1 and E2 . and when E1 = . −1 + −2 }. −2 . . u v u v There is a bijection between i∈{1. −1 . as a multiset consisting of two elements. 2.2} Ei and E1 × E2 . u v u v We deﬁne the injections in1 : E1 → E1 ⊕ E2 and in2 : E2 → E1 ⊕ E2 as the linear maps deﬁned such that. u v1 u v u v v and scalar multiplication → → → → λ{ 1.− = − + − .1. v u v u → → Thus.

and (f + g) ◦ in2 = g. Lemma A. It is immediately veriﬁed that f + g is the unique linear u v map with the required properties. as in the following diagram: E nn6 O 1 nnn nnn π1 nnn nnn f ×g nn / E1 ⊕ E2 PPP PPP PPP π2 P g PPPP PP( f → → → → (f + g)({ 1. such that π1 ◦ (f × g) = f . there is a unique linear map f + g : E1 ⊕E2 → G. u v u v → → → π2 ({ 1. 2. DIRECT SUMS 439 Lemma A.3. It is immediately veriﬁed that f × g is the unique linear map with the w required properties. w w w . For every pair of linear maps f : E1 → G and g : E2 → G. − . − }) = f (− ) + g(− ). → → → (f × g)(− ) = { 1. Given two vector spaces E1 and E2 . as in the following diagram: PPP f PPP PPP PPP P( f +g / E1 ⊕ E2 O nn6 nnn nn in2 nnn nnn g nnn in1 E1 PPP G E2 Proof. − }) = − .A. − }) = − . g(− ) }. such that → → → π1 ({ 1. Given two vector spaces E1 and E2 . u v u and we have the following lemma. and π2 ◦ (f × g) = g. 2.2. We already noted that E1 ⊕ E2 is in bijection with E1 × E2 .4. such that (f + g) ◦ in1 = f . − . 2. − . u v v D E2 Proof. f (− ) . If we deﬁne the projections π1 : E1 ⊕ E2 → E1 and π2 : E1 ⊕ E2 → E2 . Deﬁne → for every − ∈ D. Deﬁne → → for every − ∈ E1 and − ∈ E2 . for every pair of linear maps f : D → E1 and g : D → E2 . E1 ⊕E2 is a vector space.4.4. 2. there is a unique linear map f × g : D → E1 ⊕ E2 .

2. denoted as E = U ⊕ V . Lemma A. assume that E is the direct sum of U and V .4. If − ∈ U ∩ V and − = 0 . since E and U ⊕ V are only isomorphic). It is also convenient to deﬁne the sum U + V of U and V . 3 Again. Thus U ∩ V = 0. there exist unique vectors − ∈ U and − ∈ V . −′ − → → − − → v − v = → − u′ . Note that by deﬁnition. where I and J are disjoint. → → → x x 0 0 x → → → → → → → → − − → − → − Conversely.3 iﬀ for every − ∈ E.4. → → → − Proof. → → Proof. u v − ) ∪ (− ) → → Clearly. we say that E is a direct (internal) sum of U and V .4. Let E be a vector space. LINEAR ALGEBRA It is a peculiarity of linear algebra that sums and products of ﬁnite families are isomorphic.440 APPENDIX A. and we write E = U ⊕ V (with a slight abuse of notation. U + V = V + U. Let E be a vector space. (2) E = U + V and U ∩ V = 0. V be any subspaces of E. The following two simple lemmas holds. u′ ∈ U and − .4.4. Let (−i )i∈I be a basis of U and let (−j )j∈J be a basis of V . ( ui i∈I vj j∈J is a basis of E. V are subspaces of a vector space E.5. When U. w w u v u v We say that E is the (internal) direct sum of U and V . for some − ∈ U and some − ∈ V }. We deﬁne the sum U + V of U and V as the set → → → → → → U + V = {− ∈ E | − = − + − . First. we must have u′ = − and v ′ = − . Since U ∩ V = 0. this is no longer true for products and sums of inﬁnite families. Lemma A. dim(E) = dim(U) + dim(V ). x u v x u v Then. Then. Deﬁnition A. However. u − → → → − → → − → → → − where v ′ − − ∈ V and − − u′ ∈ U. with a slight abuse of notation! . where − . Given a vector space E. → → → → → → x u v x u v It is immediately veriﬁed that U + V is the least subspace of E containing U and V . The following properties are equivalent: (1) E = U ⊕ V . v ′ ∈ V .6. assume that − = − + − and − = u′ + v ′ . since x x → → − can be written both as − + − and − + − . letting i1 : U → E and i2 : V → E be the inclusion maps. such that − = − + − . v u u v and thus E = U ⊕ V . let U. and U ⊕ V = V ⊕ U. when U ⊕ V is isomomorphic to E under the map i1 + i2 given by lemma A. and assume that E = U ⊕ V . we have a contradiction.

For every i ∈ I.A. such that. By theorem A. such that f ◦ s = idF . for all i ∈ I. By lemma A.9. The (external) direct sum i∈I Ei of the family (Ei )i∈I is deﬁned as follows: i∈I Ei consists of all f ∈ i∈I Ei . Deﬁnition A. We now deﬁne direct sums. deﬁned such that. We also have the following basic lemma about injective or surjective linear maps. there is a basis (− ) → → A. for all i ∈ I. If f : E → F is injective. πi ((fi )i∈I ) = fi . and r(− ) = − for all → → → → r : F → E can be deﬁned such that r( vi ui vj w Lemma A.2.1. Lemma A. We also have injection maps ini : Ei → where fi = x. λ(fi )i∈I = (λfi )i∈I .6.3. → Proof. then. Let (−i )i∈I be a basis of E. and let f : E → F be a linear map. let us recall the notion of the product of a family (Ei )i∈I . and addition and multiplication by a scalar are deﬁned as follows: (fi )i∈I + (gi )i∈I = (fi + gi )i∈I . such that r ◦ f = idE .8. Given a family of sets (Ei )i∈I . and for every family (hi )i∈I of linear maps hi : Ei → G.7.4. let (Ei )i∈I be a family of vector spaces.4. Since f : E → F is an injective linear map.4. i∈I Ei . by lemma u − )) is linearly independent in F . Let I be any nonempty set.3.4. The direct sum i∈I Ei is a vector space. such that. and fj = 0. there is an injective linear map s : F → E called a section. and let (Ei )i∈I be a family of vector spaces. for all j ∈ (I − {i}). ( i∈I hi ) ◦ ini = hi . there is a surjective linear map r : F → E called a retraction. then. DIRECT SUMS 441 We now give the deﬁnition of a direct sum for any arbitrary nonempty index set I. Let E and F be vector spaces. is the set of all functions f : I → i∈I Ei . f (i) ∈ Ei .11. In particular. is often denoted as (fi )i∈I . (I) Remark: When Ei = E. we denote . a linear map → → of F . if Ei = ∅ for every i ∈ I. there is a unique linear map hi : i∈I i∈I Ei → G. It is one of the many versions of the axiom of choice. ini (x) = (fi )i∈I . The following lemma is an obvious generalization of lemma A.1. where I ⊆ J. deﬁned such that. and where vi ui − ) = − . (f ( ui i∈I vj j∈J − = f (− ). If f : E → F is surjective.2. its product i∈I Ei . then i∈I Ei = ∅. for every i ∈ I.2. for all i ∈ I.4. we have the projection πi : i∈I Ei → Ei . First. when i∈I Ei as E (I) Ei = K. A member f ∈ i∈I Ei . and let G be any vector space. Let I be any nonempty set. we ﬁnd the vector space K of deﬁnition A. for all i ∈ I. for every i ∈ I. that. . which have ﬁnite support.

Ker g ⊕ Im s is isomorphic to F .4 → Proof. we have the following result. and the linear map f + s : E ⊕ G → F is an isomorphism.9 is obvious. − − s(g(− )) ∈ Ker g.10. The proof of (b) is very similar.4.442 APPENDIX A. The existence of a retraction r : F → E of f follows from lemma A. Thus.4. and so. u − → → → → → → → g(− − s(g(− ))) = g(− ) − g(s(g(− ))) = g(− ) − g(− ) = 0 . and assume that Im f = Ker g. which shows that − = s(− ) = 0 . by lemma A.4. then − = s(− ) for some − ∈ G because − ∈ Im s. As a corollary of lemma A. We now have the following fundamental lemma. Since f : E → F v − ∈ F . we have g ◦ s = idG . LINEAR ALGEBRA → → → − → → j ∈ (J − I). → u → → → → − g(− ) = g(s(− )) = − = 0 . The property of a short exact sequence given by lemma A. Since (− ) → → → → → is surjective. (a) For any section s : G → F of g.9. On the other hand. f + s : E ⊕ G → F is an isomorphism.2.5 f g f g . by lemma A.4. u u u u u u → → Thus. and for every − ∈ F . F = Ker g ⊕ Im s. u v v − → → → because g ◦ s = idG . v v j j F The converse of lemma A. 4 5 (b) For any retraction r : F → E of f .2. Im f = Ker g.4. for every vj uj uj vj vj j∈J is −)=−. there is a unique linear map s : F → E such that s( vj uj → → Also.3. Let (−j )j∈J be a basis of F . Im f ⊕ Ker r is isomorphic to F . The existence of a section s : G → F of g follows from lemma A.4. be three vector spaces. (a) Since s : G → F is a section of g. and this is denoted as 0 −→ E −→ F −→ G −→ 0. there is some − ∈ E such that f (− ) = − . Then. we have r ◦ f = idE .3 (again).2. Since r(f (−i )) = −i for all w w u u i ∈ I. we must have f ◦ s = id .9. since f and s are injective. Given a sequence of linear maps E −→ F −→ G. → → a basis of F . since f (s(− )) = − . and we have F = Ker g + Im s.10 is often described by saying f g that 0 −→ E −→ F −→ G −→ 0 is a (short) split exact sequence. by lemma A. F and G.3. But then. we say that we have a short exact sequence. when Im f = Ker g. where − is any given vector in E. f is injective and g is surjective. Lemma A. Let E. and u v since by assumption.10. → Now. assume that f : E → F is surjective. we say that the f g sequence E −→ F −→ G is exact at F . say − = 0 . g(− ) = − because → → → → → → u u v v u u 0 − ∈ Ker g. the following properties hold. f : E → F an injective linear map. g : F → G a surjective linear map. we have F = Im f ⊕ Im s. If in addition to being exact at F . if u u → − ∈ Ker g ∩ Im s.

there exists a unique → v = v w − .6. E is isomorphic to Ker f ⊕ Im f . Similarly. f is linear. u −′ −′ → → − → w − v = u′ . Thus. then w − w ∈ U. − ∈ R iﬀ − − − ∈ U. we apply lemma A. dim(E) = dim(Ker f ) + dim(Im f ). w v u . then. deﬁned such that − . and f is surjective. to get dim(E) = dim(Ker f ) + dim(Im f ). for every − ∈ W . Thus. Proof. i Ker f −→ E −→ Im f. If − −− =− → → → w v u and → → − where − . if − − − ∈ U w w w v → → − − −′ ∈ U. and let f : E → F a linear map. Lemma A. DIRECT SUMS 443 Lemma A.11. Thus. and → → and w v v v −′ → − →. and lemma A.A. − − − ∈ U. where f (− ) = − iﬀ − . U ∩ W = 0. Since E = U ⊕ V . u′ ∈ U.4. U ∩ V = 0. Consider where Ker f −→ E is the inclusion map. that is w ′ = − . Then. if u → where − ∈ U. − ∈ U × V .4. The following lemma will also be useful. then −′ − − ∈ U. Then. Similarly. and since U ⊕ W is a direct sum. If E = U ⊕ V and E = U ⊕ W . w v u − −− =− → → → w v u → → → λ− − λ− = λ− . f is injective.10 to any section Im f −→ E of f ′ to get an isomorphism between E and Ker f ⊕ Im f . If − − − ∈ U v w v w w v −′ − → → −′ − → → and w − v ∈ U. we have u → → − where − + u′ ∈ U.4. f′ i f′ → → → → − → − → − (− + w ′ ) − (− + v ′ ) = (− + u′ ). R is functional. and thus. Then. → → → → v w w v We claim that R is a functional relation that deﬁnes a linear isomorphism f : V → W → → → → → → between V and W . Let R be the relation between V and W . Let E be a vector space.4. then there is an isomorphism f : V → W between V and W . Proof.12. such that − = − + − . − ∈ R (R is the graph of f ). then we have u → where λ− ∈ U. and since U ⊕ V is a direct sum. and E −→ Im f is the surjection associated f s with E −→ F . and − → → − → − → → → → thus w ′ − − = 0 . Let E and F be vector spaces.4. We → → → → → → → pair u v w u v w v also need to verify that f is linear.

Since by lemma A. and thus we denote v − . then E = U ⊕ V for some subspace V of dimension 1.13. We claim that E = U ⊕ K − .7. .1. . In view of lemma A. −n ) and (−1 . .12 shows that the dimension of any subspace V such that E = U ⊕V depends only on U.4. which is generated by (f (−1 ). the rank of a matrix A is the dimension of the subspace of K m → → generated by the columns of A.4. We call dim(V ) the codimension of U. the rank rk(f ) of f is the dimension dim(Im f ) of the image subspace Im f of F . . The notion of rank of a linear map or of a matrix is often needed. since F and K m are isomorphic. If U is a hyperplane. we have rk(f ) ≤ dim(F ). .4. Since rk(f ) = dim(Im f ).t. (ii) rk(f ) + dim(Ker f ) = dim(E). Lemma A. for every matrix representing f . rk(f ) = dim(Im f ). let − ∈ E be a vector → → →/ → V as K v v v x − → − ∈ U (and thus. dim(F )). Since the rank rk(f ) of f is the u u v vm → → dimension of Im f . we have rk(f ) = codim(Ker f ). and let M(f ) v vm → → → → be its matrix w. . −n ) be u u → → a basis of E. We have the following simple lemma. and we write E = U ⊕ K − .14. Deﬁnition A. . the rank of f is the maximum u u → → number of linearly independent vectors in (f (−1 ). − = 0 ). − ∈ U. . . f (−n )).444 APPENDIX A. Thus. since Im f is a subspace of F . Given two vector spaces E and F and a linear map f : E → F . Proof. we have rk(f ) ≤ dim(E). − ).11. a → subspace V of dimension 1 is generated by any nonzero vector − ∈ V . Clearly. A subspace U of codimension 1 is called a hyperplane. lemma A. . . . . (iii) rk(f ) ≤ min(dim(E). Given a linear map f : E → F . and let (−1 . the bases (−1 . .4. . . Conversely. However. dim(E) = dim(Ker f )+dim(Im f ). since U is a → / → → such that x x x . Given a m × n-matrix A = (ai j ) over the ﬁeld K. . As for (iii). Let E and F be two vector spaces. the rank rk(A) of the matrix A is the maximum number of linearly independent columns of A (viewed as vectors in K m ). LINEAR ALGEBRA Given a vector space E and any subspace U of E. and (−1 . .4. The rank of a matrix is deﬁned as follows.15. . which is equal to the number u u of linearly independent columns of M(f ). and since rk(f ) + dim(Ker f ) = dim(E). Let f : E → F be a linear map. and by deﬁnition. . (ii) follows from dim(E) = dim(Ker f ) + dim(Im f ). .r. . . It can be shown using duality that the rank of a matrix A is also equal to the maximal number of linearly independent rows of A. we have rk(f ) = rk(M(f )). Deﬁnition A. f (−n )). the following properties hold: (i) rk(f ) = codim(Ker f ). Indeed. − ) a basis of F . and we denote it as codim(U). .

we have E = U ⊕ K − for some − ∈ U (with − = 0 ). where − ∈ U. since f (−0 ) = 0. E = H + K −0 . → → Proof. − → − − f( v )− → → v − ) v0 → f ( v0 → = f (− ) − v → f (− ) − v → − → − → − ) f ( v0 ) = f ( v ) − f ( v ) = 0. Also. Then.5.1. − ∈ E can be v v v x − = − + λ− . → → → v h → v0 f (−0 ) v − → → − = − + f( v )− . → f(v 0 − → − − f ( v ) − = − ∈ H.A. Thus. In the next section. a linear map f : E → K is called a linear form. H = Ker g iﬀ g = λf for some λ = 0 in K. and thus E = U ⊕ K − . called linear forms. → → v h − ) v0 → f ( v0 → → →/ → that is. → E = H ⊕ K v0 → → / → (b) If H is a hyperplane. For every v f Thus. → → → written in a unique way as v h v0 and . we have −0 ∈ H. HYPERPLANES AND LINEAR FORMS 445 → → →/ → − → hyperplane. there is a well deﬁned function f : E → K. The following properties hold: (a) Given any nonnull linear form f ∈ E ∗ . Let v v − ∈ E. The set of all linear forms f : E → K is a vector space called the dual space of E.5 Hyperplanes and Linear Forms Given a vector space E over a ﬁeld K. that is. and thus. we must have → → → → →/ written in a unique way as x u v u x − = −λ−1 − + λ−1 − . (c) Given any hyperplane H in E and any (nonnull) linear form f ∈ E ∗ such that H = Ker f . v u x v x →/ → → Since − ∈ U. Then. → → → → → λ = 0. and H is a hyperplane. A. for every linear form g ∈ E ∗ . there is some vector −0 ∈ E such that f (−0 ) = 0. Thus. we have → H = Ker f . E = H ⊕ K −0 for some −0 ∈ H. Let E be a vector space. its kernel H = Ker f is a hyperplane. This argument shows that a x x x hyperplane is a maximal proper subspace H of E. (a) If f ∈ E ∗ is nonnull. Since E = U ⊕ K − . this shows that E = U + K − . and since − ∈ U. and denoted as E ∗ . we have U ∩ K − = 0. H ∩ K −0 = 0. every − ∈ E can be v v v − = − + λ− . Lemma A. we shall see that hyperplanes are precisely the Kernels of nonnull linear maps f : E → K. there is a (nonnull) linear form f ∈ E ∗ such that H = Ker f .5. We now prove that hyperplanes are precisely the Kernels of nonnull linear forms. (b) For any hyperplane H in E. v v v v − .

for every − = x1 −1 + · · · + xn −n ∈ E. f (− ) = λ. −n ). . We leave as a simple exercise the veriﬁcation v v v − ) = 1. for any linear u u → → → form f ∈ E ∗ . with v → g(−0 ) v λ= − . . g = λf . . . Ker f = H. f ( →) v 0 → → If E is a vector space of ﬁnite dimension n and (−1 . Then. with respect to the basis (−1 . Clearly. observe that → → such that f ( v0 v0 → g(−0 ) v g− − f f ( →) v 0 → → → − → such that. Conversely. is the intersection of all hyperplanes that contain V . that is. assume that → → H = Ker g for some nonnull linear form g. for every − = h + λ−0 . From (a). Thus. but also vanishes on → K −0 . as expected. Thus. . . . we have E = H ⊕ K −0 . we have x u u → f (− ) = λ1 x1 + · · · + λn xn . x → → → where λi = f (−i ) ∈ K. . then H = Ker g. x x We leave as an exercise the fact that every subspace V = E of a vector space E. for some −0 v v − ) = 0 and g(− ) = 0. v is a linear form which vanishes on H. Since f ( v0 → is clear that λ = 0 iﬀ − ∈ H. and let f ∈ E ∗ be any (nonnull) linear form such that H = Ker f .446 APPENDIX A. Also. it → that f is a linear form. by deﬁnition. since both f and g vanish on H. for every i. u u u → → f (− ) is a linear combination of the coordinates of − . if g = λf for some λ = 0. 1 ≤ i ≤ n. the linear form f is nonnull. LINEAR ALGEBRA (c) Let H be a hyperplane in E. −n ) is a basis of E. .

2 Given an aﬃne map f : E → E ′ . 447 . λi ))i∈I of weighted points → − bx = i∈I − → λi bai for every b ∈ E. We begin with Lemma 2. − → for every a ∈ E and every v ∈ E Proof. Let a ∈ E be any point in E. λi ai is the barycenter of a family ((ai .Appendix B Complements of Aﬃne Geometry B. we get aa. a + λv = λ(a + v) + (1 − λ)a. f (a + λv) = λf (a + v) + (1 − λ)f (a). −− − − −→ −− − − −→ → since a + u + v = a + a(a + u) + a(a + v) − − Since f preserves barycenters. Indeed. If we recall that x = (with i∈I λi = 1) iﬀ i∈I a + u + v = (a + u) + (a + v) − a. We claim that the map deﬁned such that −− − − − − − − −→ f (v) = f (a)f (a + v) − → − → − → for every v ∈ E is a linear map f : E → E ′ . such that f (a + v) = f (a) + f (v).7. we can write −− − − −→ → since a + λv = a + λa(a + v) + (1 − λ)− and also aa.1 Aﬃne and Multiaﬃne Maps This section provides missing proofs of various results stated earlier. − → − → Lemma 2.7. there is a unique linear map f : E → E ′ .2.

. . . Lemma 4. k=|S| S={i1 ..ik }. there are 2m − 1 unique multilinear − → − → maps fS : E k → F . S = ∅. . . . . . . For any other point b ∈ E.. ai−1 . . v vm Proof. k≥1 → → fS (−1 . .. . . . ai . f (b)f (b + v) = f (a)f (a + v). −k ). . . −− − −→ −−−− −− − − − − − − −→ Thus. −− −→ − → where F is a vector space. we show that we can restrict our attention to multiaﬃne maps f : E m → F . . am + − ) = f (a1 . vi vi → → → − for all a1 . .. ai−1 . . . . −−− − −→ −− − −→ −−−− = f (a)f (b) + f (b)f (a + v). f is a linear map. . . The fact that f is unique is obvious: we must have f (v) = −− − − − − − − −→ f (a)f (a + v). since −− − − −→ → − − → → b + v = a + ab + v = a + a(a + v) − − + ab. We claim that h is multiaﬃne. and since f preserves barycenters.. . . m}.. which shows that the deﬁnition of f does not depend on the choice of a ∈ E.3 For every m-aﬃne map f : E m → F . . am ∈ E. and all −1 . which implies that −− − −→ −− − −→ −− − −−−− −−−− − −→ −− − − −→ f (b)f (b + v) = f (b)f (a + v) − f (b)f (a) + f (b)f (b). showing that f (λv) = λf (v). aa b + v = (a + v) − a + b..1.448 we get APPENDIX B. . ai+1 . we get f (b + v) = f (a + v) − f (a) + f (b). . .. − ∈ E . am ∈ E. −− − − − − − − −→ = f (a)f (a + v). where S ⊆ {1. such that → → f (a1 + −1 . am ) + v vm S⊆{1.m}. let fi : E → F be the map ai → f (a1 . . . . am ). . We also have from which we get −− − − − −→ −− − − − −−−−−− − − − − → −− − − − − − − −→ f (a)f (a + u + v) = f (a)f (a + u) + f (a)f (a + v). . . am ) ∈ E m . 1 ≤ i ≤ m. Consequently. so that f (a) = b + h(a). . . where h(a) = bf (a) for every a = (a1 . . and deﬁne h : E m → F . for every a1 . Pick any b ∈ F . showing that f (u + v) = f (u) + f (v). ai+1 . . For every i. . f (a + u + v) = f (a + u) + f (a + v) − f (a). COMPLEMENTS OF AFFINE GEOMETRY −− − − −→ −−−−− −− − − − − − − −→ −−− −−→ −− − − − − − − −→ f (a)f (a + λv) = λf (a)f (a + v) + (1 − λ)f (a)f (a) = λf (a)f (a + v). First. . . . . k = |S|.

. . . We prove (1). v− k+1 We claim that the following properties hold: → → (1) Each ∆vk · · · ∆v1 f (a) is k-linear in −1 . .. .B. it is aﬃne in its ﬁrst argument. .<ik ≤m → → f (a1 . Since f is m-aﬃne. . . . . . a2 . . . . . . . . → v ∆v1 f (a) = f (a1 + −1 . a2 . . am . am . . . . . am ) → is a linear map in −1 . . vi vi Properties (1) and (2) are proved by induction on k. . for − → → → every (−1 .1. . . which shows that − → hi is an aﬃne map with associated linear map fi . Since f is multiaﬃne. Thus. . . aik + −k . am ) − f (a1 . am ). . . . ∆vk+1 ∆vk · · · ∆v1 f (a) = ∆vk · · · ∆v1 f (a1 . for all i. . . and where fi is the linear map associated with fi . . . am ). we now assume that F is a vector space. . . . . . . . ai+1 . → hi (ai + u fi u bf (a) fi → u 449 − → where a = (a1 . ai−1 . . − ) ∈ E m . and generally. . 1 ≤ i ≤ m. am ) − f (a1 . . . a2 . am ) ∈ E m . . leaving (2) as an easy exercise. . a2 . and so.. a v vi 1 i−1 i i → ∆v1 f (a) = f (a1 + −1 . . . . . . a + − . . . we have −− − − − −→ −−−−−− −→ → → → − ) = b(f (a) + − (− )) = − − + − (− ). . . ak+1 + −→. . ai . am ). . − and (m − k)-aﬃne in ak+1 . . am ) − f (a1 . . . Thus. . . . . . → ∆ f (a) = f (a . and since it is the diﬀerence of two multiaﬃne maps in a2 . Given an m-aﬃne map f : E m → F . . . . v vk (2) We have m ∆vm · · · ∆v1 f (a) = (−1)m−k k=0 1≤i1 <. v i+1 . . . ai1 + −1 . am ) − ∆vk · · · ∆v1 f (a). am ). . am ). . am . . . it v is (m − 1)-aﬃne in a2 . . a2 . . . we have where 1 ≤ k ≤ m − 1. . . . a . we deﬁne v vm ∆vm ∆vm−1 · · · ∆v1 f inductively as follows: for every a = (a1 . . AFFINE AND MULTIAFFINE MAPS − → and let hi : E → F be the map ai → h(a1 . .

aik + −k . in view of (2). . . . . . ai1 + −1 . and all −1 . . . . . am ). . a ) − ∆ · · · ∆ f (a) v− vk+1 vk v1 vk v1 1 k+1 k+1 m vk v1 → → is linear in − →.. v We still have to prove the uniqueness of the linear maps in the sum. a + − ) = f (a . . .. − ∈ E . − . . . a ) + v 1 1 m m 1 m S i1 ik S⊆{1. . jn } ⊆ {1. . Indeed. . . − . . and conclude the uniqueness of all the fS . . and it is a sum of the above form.. .jn } (−1 . ... . ∆vm · · · ∆v1 f is a m-linear map. We claim the following slightly stronger property. we get ∆vm · · · ∆v1 f = f{1. g(a + − . and of 2m − 1 terms of the form (−1)m−k−1 f (a1 . where S ⊆ {1. . We can now show the uniqueness of the fS .. where {j1 . . am ) vi vi → → vm in the above sum contains at most m − 1 of the −1 . am ∈ E.. and since it is the diﬀerence of two k-linear maps in −1 .. it is v− v vk k+1 → (k + 1)-linear in −1 .. . .. .m}.. . we can write → → f (a + − . . from above... . . v v 1 1 m m 1 m S i1 ik S⊆{1. for 1 ≤ k ≤ m − 1. a ) + v v f (− .. where n = m − 1. k=|S| S={i1 . so we can apply the induction hypothesis. . . .ik }. am . Then.. . . . COMPLEMENTS OF AFFINE GEOMETRY → → Assuming that ∆vk · · · ∆v1 f (a) is k-linear in −1 . vi vi → → f (a1 . . . am . .m} is also m-aﬃne. This can be done using the ∆vm · · · ∆v1 f . . . . . As a consequence of (1). j1 < . −n ).. . . and a = (a1 . .. . a + −→.. . . . . . − ∈ E .<ik ≤m → → f (a1 .. am ).ik }. . .450 APPENDIX B. .. . . . − ). This concludes the induction. . ∆ ∆ · · · ∆ f (a) = ∆ · · · ∆ f (a . . k=|S| S={i1 .. . . . . . . which all cancel out except for a single f (a1 . − and (m − k)-aﬃne in ak+1 . . . .m} . it is (m − k − 1)-aﬃne in ak+2 . . . . . . that can be shown by induction on m: if → → → → v v v f (− . < jn . which gives us sums of k-linear maps. . . ... . . . . . . . a + − ) = f (a . .. . ai1 + −1 .. . since it is aﬃne in ak+1 . and all −1 . . . .. . . − ). . . . But g − f{1. . . . . k≥1 → → → − vm for all a1 . . a + − ) = v v 1 1 m m m−1 ∆vm · · · ∆v1 f (a) + and since every (−1)m−k−1 k=0 1≤i1 <. . am ). . n}. . v vk am . . . . . . . . . . . . m}. then v → → vj vj ∆vjn · · · ∆vj1 g(a) = f{j1 . we can apply the induction v hypothesis. which proves the existence of multilinear maps fS such that → → → → f (a + − . aik + −k . . . . ..m}. am ).. . . . −→. . by induction. . am ∈ E. .. . . .. k≥1 → → → − vm for all a1 . . S = ∅. and since it is the diﬀerence of two (m − k − 1)-aﬃne maps in v v− k+1 ak+2 ..

1} | η(i) = 0 for some i. and is given by the following expression: 1 m! (−1)m−k k m h H⊆{1....m}m η(i1 ) · · · η(im )f (ai1 .. k≥1 i∈H f (a1 . we have (η(1) + · · · + η(m))m h η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) η(1)a1 + · · · + η(m)am η(1)a1 + · · · + η(m)am = (η(1) + · · · + η(m))m f .B.. . . 1 ≤ i ≤ m}.. aim )..m} k=|H|... η(1) + · · · + η(m) η(1) + · · · + η(m) and h η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) =f η(1)a1 + · · · + η(m)am η(1)a1 + · · · + η(m)am .. . m}. . Then. . . the polar form f : E m → F of h is unique.. . k≥1 can be written as E= η∈C (−1)η(1)+···+η(m) (η(1) + · · · + η(m))m h η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) . AFFINE AND MULTIAFFINE MAPS 451 Lemma 4.. am ) = ai . . k Proof..1 Given two aﬃne spaces E and F .. . .. . η(1) + · · · + η(m) η(1) + · · · + η(m) = (i1 . for any polynomial function h of degree m. since f is multiaﬃne. ... the expression i∈H ai E= (−1)k k m h k H⊆{1. be the set of characteristic functions of all nonempty subsets of {1....im )∈{1. .m} k=|H|. Since η(m) η(1) +···+ = 1. Let C = {η : {1. ..4...1. m} → {0. . η(1) + · · · + η(m) η(1) + · · · + η(m) . .. .

am ). .. .. we have E= η∈C APPENDIX B.. .. . aim ) If (i1 . . let η ∗ be deﬁned such that. (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) = 0. . .. . m). im ) is not a permutation of (1. . aim ) = f (a1 . . and η ∗ (j) = 1. . .. . . aim ). then η(i1 ) · · · η(im ) = 0 iﬀ η(i) = 1 for every i ∈ {1. COMPLEMENTS OF AFFINE GEOMETRY (−1)η(1)+···+η(m) (η(1) + · · · + η(m))m h = η∈C (−1)η(1)+···+η(m) η∈C η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) (i1 .. . ..... m}. im ) is a permutation of (1. . in which case η∈C (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) = (−1)m . . . . m} such that j = i1 . . . . . and for every η ∈ J. . . . Then. η ∗ (i) = η(i).m}m = (i1 .. . . we get η∈C If (i1 . . . . η(i1 ) · · · η(im )f (ai1 . m). . in this case f (ai1 . Let J = {η ∈ C | η(j) = 0}. there is some j ∈ {1. ..im )∈{1. and since (−1)η ∗ (1)+···+η ∗ (m) η ∗ (i1 ) · · · η ∗ (im ) = (−1)η(1)+···+η(m)+1 η(i1 ) · · · η(im ) = −(−1)η(1)+···+η(m) η(i1 ) · · · η(im ). . . ...m}m (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) f (ai1 . . for every i = j.452 Thus.. . Note that η ∗ (1) + · · · + η ∗ (m) = η(1) + · · · + η(m) + 1. . . Since f is symmetric. . im . . .im )∈{1. . (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) = η∈J η∈C (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) + (−1)η η∈J ∗ (1)+···+η ∗ (m) η ∗ (i1 ) · · · η ∗ (im ).

.. −1 . . for λi = 0.. .. such that. . .. . − ∈ E . . . . . k=|S| S={i1 . for any m-aﬃne − → − → map f : E m → F . . . . . . k≥1 453 (−1)k k m h i∈H ai k .. . . . vi vi S⊆{1. . . ...2. . . . .. the above identity implies that f (a1 . .ik }. . .. .. . HOMOGENIZING MULTIAFFINE MAPS and since there are m! permutations of (1. . ai .. k≥1 → → fS (−1 . then → → f (−1 + λ1 a1 . . . −k . that → → → → f (a1 .3). .. − ∈ E . . . am ) = 1 m! (−1)m−k k m h i∈H H⊆{1. . .m} k=|H|. . . . − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 .. . . −k ).4. am + λ−1 − ). .1 Given any aﬃne space E and any vector space F .. . and (−1)m+k = (−1)m−k . k≥1 which concludes the proof. Furthermore.. Since (−1)m (−1)m = 1. .. . we have → → → → f (−1 + λ1 a1 . am ∈ E.. .ik }.m} k=|H|. k B. . v vm 1 ≤ i ≤ m.. − + λm am ) v vm = λ1 · · · λm f (a1 . . and all −1 .. where the fS are uniquely determined v vm multilinear maps (by lemma 4.. we get (−1)m m!f (a1 . . . We ﬁrst prove by induction on k. v vm 1 v m vm Proof. . k=|S| S={i1 . Let us assume that f exists.. . . −k ). . . . am ) + → → λj fS (−1 .. . am ∈ E. there is a unique m-linear map f : (E)m → F extending f .. . . and all λ1 . all −1 . .m}.. . am ) = H⊆{1. . . vi vi − → → → for all a1 . . . λm ∈ R. if → → f (a1 + −1 .1. . . −k ).2 Homogenizing Multiaﬃne Maps This section contains the proof of Lemma 10. .1. . . am + − ) = f (a1 . . vi vi vi vi . . . − → Lemma 10.. .4. . m).m} j ∈S / → → → − for all a1 .m}.. 1 ≤ k ≤ m.B. .. am ) = fS (−1 . am ) + v vm S⊆{1. . k≥1 j∈{1.

. . am ) vi v− i → → v f (− . . am ). a + −k+1 . a2 . we have → → v− vi = f (a1 . . . . . am ) = f (a1 . . a. . we have → → f (a1 + −1 . . . vi i i . . . such that S = {i1 . . am ) = f (a1 . . 1≤l≤k Since f extends f . .. . v v 1 m For k = 1. a + −1 . . . . . . since f is m-linear. . . . . COMPLEMENTS OF AFFINE GEOMETRY for every S ⊆ {1. . −l . . . . a2 . . . . .. a + −1 . . .jl } T ⊆S. . . . . for all a1 . a2 . . . v v v and using the expression of f in terms of the fS . −1 . am ). we also have → → → → v− v− vi f (a1 . . a + −k+1 . . . . a2 . . we also have → → f (a1 + −1 . . . − . . . . . . . am ) = f{1} (−1 ) v v Assume that the induction hypothesis holds for all l < k + 1. . . . . . . . . . a + −k+1 . . . . −1 . . for any a1 ∈ E. . . . . . . v + T j1 jl T ={j1 . a2 . −k+1 . 1≤l≤k → → f (a1 .. .. . . . . v v Thus. − . we get → → v− f (a1 . .. am ) + f (−1 . . . . . . . . . am ) + f (−1 . am ) vi v− i However. . . . . a. . . . a. . . . . . . . . . and since f extends f . . ik+1 }. . Since f is multilinear. by the induction hypothesis. . . . jl }. . am ) vi i → → = f (a1 . . . am ) = fT (−1 . −1 . v → → f (−1 . . . . . . a + −1 . . .. . we have → → → → f (a1 . . . ik } and k = |S|. . and → → → − all − . . m}. a + −k+1 . . . . . . . . .jl } T ⊆S. assuming for simplicity of notation that i1 = 1. . we have → → → f (a1 + −1 . a2 . . a2 . . am ). . . . for any a ∈ E. . . am ) i → → f (a . . . . . . .. . am ∈ E. . . am ) + f{1} (−1 ). . v v but since f extends f . −l ).454 APPENDIX B. −k+1 . am ) + f (a1 . . . . . am ) + f (a1 . − ). . a. . v v + 1 j1 jl m T ={j1 . vj vj vj vj for every T = {j1 . . . . . 1 ≤ l ≤ k. . with k + 1 = |S|. . . . . . . . am ) = f (a1 . . . . − ∈ E . . . . . . we have → → − for all −1 ∈ E . . . a2 . am ) = f (a1 + −1 . and let S = {i1 . a2 .. . a + −1 . . . . a ). . . . am ) = f (a1 . . . . . . a2 . .

. . Thus. am ) = fS (−1 . . a. am ) + → → vi vi λj fS (−1 . . .. .. . .. . −k+1 . 1 v m vm 1 v m vm Since f extends f .. .. . . . . Now. . we conclude that → → → → f (a1 . a + −1 . . . . −k+1 ). . .. . .2. − + λm am ) = f (λ1 (a1 + λ−1 −1 ). and we get → → f (a1 + λ−1 −1 .. −k ). We get → → → → vm f (−1 + λ1 a1 . .. .. . . vi v− vi v− i i − → This shows that f is uniquely deﬁned on E . . 1≤l≤k Thus. . the above deﬁnes a multilinear map. . . + T j1 jl T ={j1 . . am ) + fS (−1 . . . . −1 . k=|S| S={i1 . . .. . .. . .. . . .B. . . . am + λ−1 − ) = f (a1 .m} j ∈S / This expression agrees with the previous one when λi = 0 for some of the λi . . − + λm am ) v = λ1 · · · λm f (a1 .. .. we get 455 → → → → f (a1 . . . . .. . we get → → → → f (λ1 (a1 + λ−1 −1 ). . . 1 ≤ i ≤ m. 1 ≤ i ≤ m. . k≥1 j∈{1. −k+1 ) vi v− vi v− i i → → v v f (− . . .. . we get → → vm f (−1 + λ1 a1 . . . am ) + 1 v m vm S⊆{1. am + λ−1 − ).m}. .. am + λ−1 − ). . . . . . . . . .. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . . λm (am + λ−1 − )). . . . . . .ik }. k=|S| S={i1 . and this shows that f is uniquely deﬁned.. .. . .jl } T ⊆S. .. k≥1 → → vi vi λ−1 · · · λ−1 fS (−1 . .m}. . . a. S⊆{1. the above expression deﬁnes an m-linear map. v 1 v m vm and since f is m-linear. . and clearly. . the lemma is proved. Clearly. . a + −k+1 . . . . v vm 1 v m vm We can expand the right-hand side using the fS . . HOMOGENIZING MULTIAFFINE MAPS and by expanding this expression in terms of the fT .. − ).ik }. . λm (am + λ−1 − )) = λ1 · · · λm f (a1 + λ−1 −1 .. . . −k ). assume that λi = 0. . . . am ) = f (a1 . we get → → → → f (−1 + λ1 a1 . i1 ik and thus.

if M ∩ N = ∅. there is some w ∈ M ∩ N. (1) Pick any a ∈ M and any b ∈ N. where u ∈ M. where f is the composition of the inclusion map from M ∩ N to M with in1 .10 and lemma A. assume ac ac . → − → Since M = {− | x ∈ M} and N = { by | y ∈ N}. ab ∈ M + N. by deﬁnition of i and j. As a consequence. and at the notion of direct sum of aﬃne spaces which will be needed in the section on diﬀerentiation. with the deﬁnitions above. and g is the composition of the inclusion map from M ∩ N to N with in2 . which is possible since M and N are nonempty. The second part of the lemma follows from lemma A. We now prove a simple lemma about the intersection of aﬃne subspaces. we have the maps f + g : M ∩ N → M ⊕ N. we ax → → − − → → − → − → have ab = − − bc. Given a vector space E and any two subspaces M and N. → − (3) If S is the least aﬃne subspace containing M and N. We have the canonical injections i : M → M +N and j : N → M +N. Im (f + g) = Ker (i − j). as desired. we need a result of linear algebra. u = f (w). Then. which means that f + g is injective. Given a vector space E and any two subspaces M and N.456 APPENDIX B. with − ∈ M and bc ∈ N. injections f : M ∩N → M ⊕N.2.3. Assume that (i − j)(u + v) = 0. and thus.6. − − → → − → and M ∩ N = { 0 }. the following is a short exact sequence: 0 −→ M ∩ N −→ M ⊕ N −→ M + N −→ 0. and g : M ∩N → M ⊕N. and i − j : M ⊕ N → M + N. Lemma B. It is obvious that i − j is surjective and that f + g is injective. i − j is surjective. the following facts hold: → − (1) M ∩ N = ∅ iﬀ ab ∈ M + N for some a ∈ M and some b ∈ N. there are several interesting linear maps. and thus. and v ∈ N.4. Proof. we take a closer look at the intersection of aﬃne subspaces. and v = g(w). and that Im (f + g) = Ker (i − j). Then. then S = M + N + R ab. Conversely. for any two nonempty aﬃne subspaces M and N. i(u) = j(v) = w ∈ M ∩ N. for any c ∈ M ∩ N. First. the canonical injections in1 : M → M ⊕N and in2 : N → M ⊕N. Proof. Given any aﬃne space E. By deﬁnition of f and g. f +g i−j → − (2) M ∩ N consists of a single point iﬀ ab ∈ M + N for some a ∈ M and some b ∈ N. and thus.3.1. such that.4.3 Intersection and Direct Sums of Aﬃne Spaces In this section. and thus. i(u) = j(v). Lemma B. COMPLEMENTS OF AFFINE GEOMETRY B. we have the Grassmann relation: dim(M) + dim(N) = dim(M + N) + dim (M ∩ N).

3. Remarks: → − (1) The proof of Lemma B. Given an aﬃne space E and any two nonempty aﬃne subspaces M and N. if E = M ⊕ N. (2) Lemma B. then M∩N consists of a single point iﬀ M ∩ N = { 0 }.3. and since M ∩ N = { 0 }.3. We can now state the following lemma Lemma B. This fact together with what we proved in (1) proves (2). But we also have → − − → xy − → → ab = ax + − + yb. x ∈ M ∩ N. −−→ −− Since M ∩ N = c + M ∩ N for any c ∈ M ∩ N. and since − = 2 yb. if M ∩ N = ∅. Thus. b ∈ M} ∩ { ab | a. Thus. −1). 2) and yx (y. b is the middle of the segment xy xy → − → [x. then M ∩ N consists of a single point. since N being an aﬃne subspace. (2) Note that in general. Then. then ab ∈ E − → − → − → for all a ∈ M and all b ∈ N.2 shows that if M ∩ N = ∅ then ab ∈ M + N for all a ∈ M and all b ∈ N. it is closed under barycenters. Indeed. Thus x also belongs to N.2 implies that for any two nonempty aﬃne subspaces M and N. it follows that if M∩N = ∅. if S is the least aﬃne subspace containing M and N. − = 2 by.B. → → → − → − − → and thus. we get 0 = − + yb − by. because → − → − → − − − → → −−→ −− M ∩ N = { ab | a. INTERSECTION AND DIRECT SUMS OF AFFINE SPACES 457 → − → → − − → that ab ∈ M + N for some a ∈ M and some b ∈ N. we have − − → → M ∩ N = c + M ∩ N for any c ∈ M ∩ N. − − → → − → From this. x = 2b − y is the barycenter of the weighted points (b. that is. then −−→ − − −− → → M ∩N = M ∩ N. (3) It is left as an easy exercise. for some x ∈ M ax and some y ∈ N.3. then the following properties hold: .3. if E = → → − − M ⊕ N. the result follows from part (2) of the lemma. b ∈ N} = M ∩ N . b ∈ M ∩ N} = { ab | a. ab = − + by. y]. and M ∩ N = ∅.

Given an indexed family (Ei )i∈I of aﬃne spaces (where I is nonempty). i . then APPENDIX B. Thus.4. Proof. → (xi )i∈I + (−i )i∈I = (xi + ui )i∈I . i i a and xj = aj . i and we also call pa a projection. ai ) of the projection πi : i∈I Ei → Ei . as the − → following aﬃne space Ea . ai ) → Ei . we deﬁne the direct sum of the family (Ei )i∈I of aﬃne spaces.3. and let a = (ai )i∈I . the same aﬃne space is obtained no matter which points are chosen. When I is ﬁnite.1. we deﬁne an aﬃne space E whose associated vector space − → − → is the direct sum i∈I Ei of the family ( E i )i∈I . We also have functions pa : i i∈I (Ei .2 and lemma B. E . It is not diﬃcult. pa ((xi )i∈I ) = xi . and dim(S) = dim(M) + dim(N) + 1 − dim(M ∩ N).3. ai ) such that. +i . where each Ei is − → really an aﬃne space Ei . where each Ei is nonempty.458 (1) If M ∩ N = ∅. +i i∈I be a family of aﬃne spaces (where I is nonempty). − → +a : Ea × E → Ea is deﬁned such that. We deﬁne the direct sum i∈I (Ei . ai ) of the family (Ei )i∈I relative to a. ina (y) = (xi )i∈I . When I is inﬁnite. +a : Ea = {(xi )i∈I ∈ − → E = i∈I i∈I − → Ei . there is a diﬃculty if we take E to be the direct product i∈I Ei . where xi = y. because axiom (AF3) may not hold. Ei | xi = ai for ﬁnitely many i ∈ I}. Ei . we get isomorphic aﬃne spaces. but we leave it as an exercise. We now consider direct sums of aﬃne spaces. using lemma B. where pi is the restriction to i∈I (Ei . u We deﬁne the injections ina : Ei → i∈I (Ei . for all j ∈ I − {i}. Thus. (2) If M ∩ N = ∅. Let Ei . For each i ∈ I. COMPLEMENTS OF AFFINE GEOMETRY dim(M) + dim(N) < dim(E) + dim(M + N). However. relative to a ﬁxed choice of points (one point in each Ei ).3. let ai be some chosen point in Ei . − → Deﬁnition B. then dim(S) = dim(M) + dim(N) − dim(M ∩ N). Ei .

+i is also denoted simply as E1 × · · · × Em . and that designated origins are picked in each Ei . b1 ) ⊕ · · · ⊕ (Fm . . am + um ). ai ) are aﬃne maps. where ini : Ei → ai i∈I Ei is the injection from the vector − → − → space Ei into i∈I Ei . We leave as an exercise to prove the analog of lemma A. . . The injections ina : Ei → i∈I (Ei . It is also obvious that in1 ◦ π1 + · · · + inm ◦ πm = id. Sometimes. a1 ) ⊕ · · · ⊕ (Em . for every a ∈ E. . . + . Given any two points x. This is because for every y ∈ Ei .3. . ai ) is irrelevant. . we have f (a) = in1 (f1 (a)) + · · · + inm (fm (a)). . . . and yi = ai on a ﬁnite subset I ′′ of I. we have x = (xi )i∈I and y = (yi )i∈I . . fm (a)). .B. .3. bm ). . except that the order of the factors in (E1 . but the injections ina do. by deﬁnition of i∈I (Ei . instead of the unordered concept of the ﬁnite direct sum of aﬃne spaces (E1 . . am ) + (u1. we write f = in1 ◦ f1 + · · · + inm ◦ fm . Remark: Observe that the intersection of the aﬃne subspaces ina (Ei ) reduces to the single i point a. E . E = E1 × · · · × Em . a1 ) ⊕ · · · ⊕ (Em . we deﬁne the aﬃne space E. Ei . as follows: E = E1 × · · · × Em . The order of the factors (Ei . . When I = {1. E1 × · · · × Em and (E1 . . Ei . and thus. This is consistent with the corollary of lemma B. if E is an aﬃne space and F1 . . +i . In i this case. Given − → − → any m aﬃne spaces Ei . +i . . letting fi = pi ◦ f . ai ) as (E1 . we see immediately that f (a) = (f1 (a). and wi = 0. If the Fi are vector spaces. is deﬁned such that (a1 . where wi = −→. where xi = ai on a ﬁnite subset I ′ of I. it is − → → − w xi yi clear that the only vector w ∈ i∈I Ei such that y = x + w. m}. . ai ). am ) is irrelevant. . . The veriﬁcation that this is an aﬃne space is obvious. m}. Ei . a1 ) ⊕ · · ·⊕(Em . am ) are isomorphic. i − → − → → a we have ini (y) = a + ini (−y). is w = (−i )i∈I . um ) = (a1 + u1 . . Let us check (AF3).4. we have use for the ﬁnite (ordered) product of aﬃne spaces. Clearly. Fm are m aﬃne spaces. xm ). a1 ) ⊕· · ·⊕(Em . am ). . The ﬁnite product of the aﬃne spaces − → Ei . . Then. Ea and +a do not depend on the choice of a. y ∈ i∈I (Ei . called the (ﬁnite) − → − → − → − → product of the aﬃne spaces Ei . . − → and + : E × E → E. . . INTERSECTION AND DIRECT SUMS OF AFFINE SPACES 459 It is easy to verify that i∈I (Ei . .8 for a direct sum of aﬃne spaces and aﬃne maps. . for any function f : E → (F1 .3. m ≥ 1. am ). for all i ∈ I − (I ′ ∪ I ′′ ). . When I is ﬁnite and I = {1. . we write i∈I (Ei . and we denote each (xi )i∈I as (x1 . ai ) is an aﬃne space. . ai ). for i ∈ I ′ ∪ I ′′ .

First. . we just have to show that f (θ1 . and since f (θ1 .1 for the aﬃne symmetric tensor power of E. where θ1 . First. given a polynomial map F : E → E of degree m. . Since f⊙ is a linear map. for every polynomial map F : E → E of degree m with polar form f : E m → E. we have m Span(F (E)) = f⊙ Proof.4.4. . we relate Span(F (E)) to f⊙ m E . . and f⊙ : E → E is the unique linear m map from the tensor product E associated with f . we show that E . θm ) ∈ Span(F (E)). Since the tensors of the form θ1 · · · θm . Thus.1. its range is a vector space. m Span(F (E)) ⊆ Span(f ((E) )) ⊆ f⊙ The ﬁrst inclusion is trivial.2 (conditions on polar forms for polynomial maps to agree to kth order). Lemma B. m F : E → E is the polynomial map associated with f . if f : (E)m → E is the homogenized version of f . Now. this is an immediate consequence of lemma 4. we have f ((E)m ) ⊆ f⊙ m m E . However. .4 Osculating Flats Revisited This Section contains various results on osculating ﬂats as well as a generalized version of lemma 5. and a subset S of E. . E . .460 APPENDIX B. lemma 10. generate m E.3 can also be stated as follows in terms of f⊙ .5. . COMPLEMENTS OF AFFINE GEOMETRY B. θm ∈ E. . since a multilinear map is multiaﬃne. we denote as Span(S) the aﬃne subspace (the ﬂat) of E generated by S. Given any two aﬃne spaces E and E. the proof will be complete. . Remark: We can easily prove a version of lemma B. .1. . θm ) = f⊙ (θ1 · · · θm ). and the aﬃne blossom f⊙ of F : we have m Span(F (E)) = f⊙ E .5.4. and thus m Span(f ((E)m )) ⊆ f⊙ E . if we can show that f⊙ (θ1 · · · θm ) ∈ Span(F (E)). . Given an aﬃne space E.

δn ) is a basis of − → E . Dujk F (a) = mk f⊙ (am−k − 1 · · · − k ). for any k. since on one hand. with the polar form f of F .2. where E and E are normed aﬃne spaces. . Duk F (a) = mk f⊙ (am−k −1 · · · −k ). . j and thus. the polar form g : E k → E of the polynomial map Gk : E → E that osculates F to kth order at a. we have ∂ ∂x1 i1 ∂ ··· ∂xn i i Gk (a) = k i g⊙ (δ11 · · · δnn ak−i ). . u u k We can now ﬁx the problem encountered in relating the polar form ga of the polynomial k map Ga osculating F to kth order at a.4. .4. and on the other hand. . . for any a ∈ E. . . u u the k-th directional derivative Du1 . k for all θ ∈ k E. where i = i1 + · · · + in . Given an aﬃne polynomial function F : E → E of polar degree m. a . we get ∂ ∂x1 i1 in i i F (a) = mi f⊙ (δ11 · · · δnn am−i ).4. . form a basis of k E. . Duk F (a) can be computed from the homogenized polar form f of F as follows: → → Du1 . is determined such that a g⊙ (θ) = f⊙ (κ(θ) am−k ). Given an aﬃne polynomial function F : E → E of polar degree m. where 1 ≤ k ≤ m. κ is the unique linear map such that mi i1 i δ · · · δnn ak−i . with 0 ≤ k ≤ m. for any k nonzero vectors −1 . and where κ : E→ deﬁned as follows: since the tensors k E is a bijective weight-preserving linear map i i δ11 · · · δnn ak−i .3. −k .B. if E is of ﬁnite dimension n and (δ1 . Letting b = a + h1 δ1 + · · · + hn δn . where → → E and E are normed aﬃne spaces. we have → u → uj Duj1 . . . we have Gk (b) = F (a) + a 1≤i1 +···+in hi1 · · · hin 1 n i1 ! · · · in ! ≤k in ∂ ∂x1 i1 ··· ∂ ∂xn in F (a). . OSCULATING FLATS REVISITED 461 Lemma B.4.2. ∂ ··· ∂xn where i1 + · · · + in = i. By lemma B. . ki 1 i i κ(δ11 · · · δnn ak−i ) = Proof. Lemma B.

. . From lemma B. ki 1 k and thus. we know that k Span(G(E)) = g⊙ where g is the polar form of G. and where κ : E → k E is a bijective weight-preserving linear map. κ is weight-preserving. . Span(G(E)) = {g⊙ (θ) | θ is an aﬃne combination of simple k-tensors of points in E} k = g⊙ E . k for all θ ∈ k E. Given an aﬃne polynomial function F : E → E of polar degree m. the aﬃne subspace spanned by the range of the multiaﬃne map (b1 .4. we get E . From lemma B. . . and for any a ∈ E.462 APPENDIX B. we have g⊙ (θ) = f⊙ (κ(θ) am−k ). bk ) → f (a. At last. b1 . a.1. i i g⊙ (δ11 · · · δnn ak−i ) = f⊙ mi i1 i δ · · · δnn ak−i am−k .4. for all θ ∈ k E. . Clearly. that is. Since κ is weight-preserving and since Osck F (a) = Span(G(E)). . . ki 1 we have g⊙ (θ) = f⊙ (κ(θ) am−k ). for any k. where E and E are normed aﬃne spaces. Let G be the polynomial map osculating F to kth order at a. . Thus. such that mi i1 i δ · · · δnn ak−i . bk ). we obtain the relationship between osculating ﬂats and polar forms stated without proof in section 5. we conclude that i i i i k i g⊙ (δ11 · · · δnn ak−i ) = mi f⊙ (δ11 · · · δnn am−i ).4. Proof.4. we conclude that Osck F (a) = {f⊙ (θ am−k ) | θ is an aﬃne combination of simple k-tensors of points in E}. and E is of ﬁnite dimension n. . Lemma B.3. . deﬁning the bijective linear map κ : i i κ(δ11 · · · δnn ak−i ) = E→ k E. . . with 0 ≤ k ≤ m. m−k is the osculating ﬂat Osck F (a). COMPLEMENTS OF AFFINE GEOMETRY where i1 + · · · + in = i.4.

. By lemma B. . . . Lemma B. This can be restated as f⊙ (θ am−k ) = g⊙ (θ am−k ). .4. a.2. . bk ). . for all u1 . . for every k ≤ m. . .5. bk ) → f (a. . . . Du1 . OSCULATING FLATS REVISITED 463 However. since → → Du1 . i. . . . . . uk ∈ E. . a). since f agrees with f on E m . for every a ∈ E. . a. . . m−k is the osculating ﬂat Osck F (a). . where u1 . uk . . a. . b1 . Dui G(a) = mi g⊙ (am−i −1 · · · −i ). . . . Given any two aﬃne spaces E and E. . iﬀ f (u1. we have f⊙ (θ am−k ) = g⊙ (θ am−k ). Dui F (a) = mi f⊙ (am−i −1 · · · −i ) u u and → → u u Du1 . . . Dui F (a) = Du1 . . .e. We can also give a short proof of a generalized version of lemma 5. m−k m−k for all u1 . . . . . uk . . the aﬃne subspace spanned by the range of the multiaﬃne map (b1 . . Proof. for all k-tensors θ ∈ k E. k for all simple k-tensors θ ∈ E of the form u1 · · · uk . a) = g(u1.B. uk ∈ E. .5. iﬀ their polar forms f : E m → E and g : E m → E u u agree on all multisets of points that contain at least m − k copies of a. that is.2. . . . . . . We have shown that these tensors generate k E. iﬀ f⊙ (u1 · · · uk am−k ) = g⊙ (u1 · · · uk am−k ).4. where E is of ﬁnite dimension. two polynomial maps F : E → E and G : E → E of polar degree m agree to kth order at a. . where 0 ≤ i ≤ k. uk ∈ E. .4. . −i ∈ E . . . . and thus. → → by letting θ = ak−i −1 · · · −i in u u f⊙ (θ am−k ) = g⊙ (θ am−k ). . → → → − for all −1 . Assume that the polar forms agree as stated. Dui G(a).

. and much more. In particular. this tensor product has the property that − ∧ ···∧ − ∧ ···∧ − ∧···∧− = − → → → → → u1 ui uj un 0 → → whenever −i = −j . where i = i1 + · · · + in . We have shown that the family of tensors i i δ11 · · · δnn ak−i . we have f⊙ (am−k θ) = g⊙ (am−k θ). for all basis tensors θ of k E. Dui F (a) = mi f⊙ (am−i −1 · · · −i ) u u and i → → i letting −1 · · · −i = δ11 · · · δnn . assume that F and G agree to kth order at a. .4. . It follows that the exterior product changes sign when two u u factors are permuted. . by lemma B. Dui G(a). for all θ ∈ k E. the exterior (or alternating) tensor product (or Grassmann algebra). δn ) be a basis of E . . and since u u i → → i am−k θ = δ11 · · · δnn am−i = −1 · · · −i am−i . we mention that there is a third version of the tensor product. . uk ∈ E. for i = j. where i = → → Du1 . uk ∈ E. where u1 . . . . 3. COMPLEMENTS OF AFFINE GEOMETRY → → → → u u u u f⊙ (am−i −1 · · · −i ) = g⊙ (am−i −1 · · · −i ). . .2. . . f⊙ (u1 · · · uk am−k ) = g⊙ (u1 · · · uk am−k ). this is true for k-tensors of the form θ = u1 · · · uk . and thus. . Let (δ1 . since k i i E. The M¨bius strip even manages to show its tail! o To close this chapter. For those readers who got hooked on tensors. Du1 . u u → → u u Du1 . Letting θ = δ11 · · · δnn ak−i . and thus. . . for all u1.464 we have APPENDIX B. The corresponding algebra (E) plays an important role in diﬀerential . forms a basis of i1 + · · · + in . we mention that Ramshaw’s paper [65] m contains a fascinating study of the algebra and geometry of the tensor powers A and m A for m = 2. . since by assumption these derivatives agree. . Dui G(a) = mi g⊙ (am−i −1 · · · −i ). and thus. . we have shown that − → Conversely. Dui F (a) = Du1 . Roughly speaking. .

etc. . Chapter IV).4. the reader is urged to consult Bourbaki ([14] Chapter III. The exterior algebra (E) can also be obtained as the quotient of T(E). by the subspace of T(E) generated by → → all vectors in T(E). tensor algebras. of the form − ⊗ − (this requires deﬁning a multiplication operation u u (⊗) on T(E)). OSCULATING FLATS REVISITED 465 geometry. very extensive!) of tensors. Determinants can also be deﬁned in an intrinsic manner. and [15]. For an extensive treatment (in fact.B.

COMPLEMENTS OF AFFINE GEOMETRY .466 APPENDIX B.

metric spaces are deﬁned. Undergraduate Analysis. Let us give some examples of metric spaces. by Munkres [54]. by Schwartz [70. (D3) d(x. y) + d(y. y ∈ E. Deﬁnition C. 467 . y. and the Analysis Courses Analyse I-IV. and for a complex √ number x = a + ib. The chapter ends with the deﬁnition of a normed aﬃne space. condition (D3) expresses the fact that in a triangle with vertices x.Appendix C Topology C. as |x| = a2 + b2 . z)| ≤ d(x. y) ≥ 0. assigning a nonnegative real number d(x. 73].1 Metric Spaces and Normed Vector Spaces This appendix contains a review of basic topological concepts. and we ﬁrst review these notions. y. (D2) d(x. by Lang [48]. A metric space is a set E together with a function d : E × E → R+ . and their basic properties are stated. |x| = −x if x < 0. or distance. we immediately get |d(x. y) = 0 iﬀ x = y. (symmetry) (positivity) (triangular inequality) Geometrically. z) ≤ d(x. normed vector spaces are deﬁned. From (D3). Closed and open sets are deﬁned. z). and d(x. y) − d(y. and satisfying the following conditions for all x. z ∈ E: (D1) d(x. the length of any side is bounded by the sum of the lengths of the other two sides. We begin with metric spaces. 71. a First Course. Next.1.1. Recall that the absolute value |x| of a real number x ∈ R is deﬁned such that |x| = x if x ≥ 0. We recommend the following texts for a thorough treatment of topology and analysis: Topology. z. 72. y) to any two points x. z). First. x). y) = d(y. Most spaces considered in this book have a topological structure given by a metric or a norm. called a metric. Recall that R+ = {x ∈ R | x ≥ 0}.

. and the set is called the sphere of center a and radius ρ. is called the open ball of center a and radius ρ. the distance between the points (x1 . . b].2. the set B(a. y) = |x − y|. . For this. For example. excluding the boundary points on the circle. TOPOLOGY Example 1: Let E = R. In E = R with the distance |x − y|. (closed interval) (open interval) (interval closed on the left. an open ball of center a and radius ρ is the set of points inside the sphere of center a and radius ρ. Deﬁnition C. ρ). ρ) = {x ∈ E | d(a. x) ≤ ρ} is called the closed ball of center a and radius ρ. . we introduce some standard “small neighborhoods”.1. . ρ) ∪ S(a. y) = 1 iﬀ x = y. with ρ > 0. ρ) = B0 (a. . Given a metric space E with metric d. Example 4: For any a. we can deﬁne the discrete metric. ρ). and d(x. b[ = {x ∈ R | a ≤ x < b}. xn ) and (y1 . y) = |x − y|. we deﬁne the following sets: [a. b ∈ R such that a < b. This is the so-called natural metric on R. ρ) such that X ⊆ B(a. not +∞). ρ) = {x ∈ E | d(a. In E = R2 with the Euclidean metric. x) < ρ} S(a. b] = {x ∈ R | a ≤ x ≤ b}. d) is a metric space. and d(x. yn ). a closed ball of center a and radius ρ < 1 consists only of its center a. . One should be aware that intuition can be midleading in forming a geometric image of a closed (or open) ball. the absolute value of x − y.e. x) = 0. [a. and d(x. B(a. . It should be noted that ρ is ﬁnite (i. ]a. if d is the discrete metric. closed on the right) ]a. for every ρ ∈ R. x) = ρ} Let E = [a. open on the right) (interval open on the left. A subset X of a metric space E is bounded if there is a closed ball B(a. the set B0 (a. b]. b[ = {x ∈ R | a < x < b}. for every a ∈ E. Example 2: Let E = Rn (or E = Cn ). ([a. We have the Euclidean metric d2 (x. deﬁned such that d(x. an open ball of center a and radius ρ is the open interval ]a − ρ. ρ) = {x ∈ E | d(a. an open ball of center a and radius ρ is the set of points inside the disk of center a and radius ρ. We will need to deﬁne the notion of proximity in order to deﬁne convergence of limits and continuity of functions. Then.468 APPENDIX C. In E = R3 with the Euclidean metric. Example 3: For every set E. excluding the boundary points on the sphere. a + ρ[. y) = |x1 − y1 |2 + · · · + |xn − yn |2 1 2 . b] = {x ∈ R | a < x ≤ b}. . and a closed ball of center a and radius ρ ≥ 1 consists of the entire space! Clearly.

Given a normed vector space E. → → assigning a nonnegative real number − to any vector − ∈ E. deﬁned such that. with ρ < b − a. the absolute value of x.C. as in example 1. we easily get → → → → x y y x | − − − |≤ − −− . is in fact the interval [a. → → y x x y (positivity) (scaling) (convexity inequality) is called a normed vector space. . . − ). − . normed vector spaces. We now consider a very important special case of metric spaces. A vector space E together with a norm From (N3). Let E be a vector space over a ﬁeld K.3. x x → → − +− ≤ − + − . a + ρ[. y) = |x − y|. which is closed on the left. if we deﬁne d such that → → → → x y d(− . For every → (x1 .1. an open ball B0 (a.1. that is. x 1 − → x 1 = |x1 | + · · · + |xn |. → → → → → → d(− + − . METRIC SPACES AND NORMED VECTOR SPACES 469 If E = [a. Example 6: Let E = Rn (or E = Cn ). . Note that the metric associated with a norm is invariant under translation. and − = 0 iﬀ − = − . and satisfying the following u u → → → conditions for all − . and x = |x|. we can restrict ourselves to open or closed balls of center 0 . → x 0 x x → → λ− = |λ| − . and d(x. The associated metric is |x − y|. Deﬁnition C. . x y it is easily seen that d is a metric. where K is either the ﬁeld R of reals. b]. − ∈ E: x y z (N1) (N2) (N3) → → → − ≥ 0. − + − ) = d(− . Thus. ρ). There are three standard norms. x u y u x y − → For this reason. we have the norm − . as in example 4. or the ﬁeld C of complex numbers. Example 5: Let E = R. xn ) ∈ E. A norm on E is a function : E → R+ . Let us give some examples of normed vector spaces. every normed vector space is immediately a metric space. . − ) = − − − .

≤ n x 2 In a normed vector space. . ∞ Some work is required to show the convexity inequality for the Euclidean norm. ρ) ⊆ U. . 1 Recall that ρ > 0. . B0 (a.1. deﬁned such that. given n intervals [ai .1. or for every a ∈ U. x ∞ √ − → . . since for every a ∈ E. deﬁned such that. we deﬁne a closed ball or an open ball of radius ρ as a closed − → ball or an open ball of center 0 . The following inequalities hold for all − ∈ Rn (or − ∈ Cn ): x x − → x − → x − → x ∞ ∞ 2 → ≤ − x → x ≤ − → x ≤ − 1 2 1 → . xn ) ∈ E | ai ≤ xi ≤ bi . . bi ]. it is easy to show that the open n-cube {(x1 .4. The open sets satisfy some important properties that lead to the deﬁnition of a topological space. In E = Rn . but this can be found in any standard text. Note that the Euclidean distance is the distance associated with the Euclidean norm.5. The following lemma is easy to show. x ≤n − ∞ √ − ≤ n → . ρ) such that. TOPOLOGY − → x → and the sup-norm − x ∞ 2 = |x1 |2 + · · · + |xn |2 1 2 . x 2 APPENDIX C. We will now deﬁne the crucial notions of open sets and closed sets. Deﬁnition C. every open ball of center a is contained in E. → → Lemma C. 1 ≤ i ≤ n} is an open set. xn ) ∈ E | ai < xi < bi . with ai < bi . In fact. . and of a topological space. A subset U ⊆ E is an open set in E iﬀ either U = ∅. we can deﬁne the closed n-cube {(x1 . − → x = max{|xi | | 1 ≤ i ≤ n}. The set E itself is open. . 1 ≤ i ≤ n}.470 → we have the Euclidean norm − . . Let E be a metric space with metric d. there is some open ball B0 (a.1 A subset F ⊆ E is a closed set in E iﬀ its complement E − F is open in E. . . We may use the notation B(ρ) and B0 (ρ). which is a closed set. it is possible to ﬁnd a metric for which such open n-cubes are open balls! Similarly.

f (x)) ≤ ǫ. for any two distinct points a = b in E.6.2. then d2 (f (a). +1/n[. letting Un =] − 1/n. . for every x ∈ E. CONTINUOUS FUNCTIONS. . If each (Ei . the topology product on Rn is the standard topology induced by the Euclidean norm. there exist two open sets Ua and Ub such that. One can also verify that when Ei = R. such that. . 2 n 1 2 x1 + · · · + xn 1 . the family O of open sets deﬁned in deﬁnition C. we have under arbitrary unions. . in R under the metric |x − y|.1. LIMITS 471 Lemma C. O is closed under ﬁnite intersections. . For the last point. C. Furthermore. . b)/2 works too). xn ) (x1 . ρ) and Ub = B0 (b. (O3) ∅ ∈ O. xn ) 1 2 ∞ i∈I Ui ∈ O. i. if d1 (a. the family of open sets is not closed under inﬁnite intersections. Proof. such as Munkres [54]. . . letting ρ = d(a. and Ua ∩ Ub = ∅. f is continuous at a iﬀ for every ǫ > 0.e. which is the product topology. and E ∈ O. Given a metric space E with metric d. there is some η > 0. a ∈ Ua . x) ≤ η. . The reader is referred to standard texts on topology. i. (O2) For every arbitrary family (Ui )i∈I of sets Ui ∈ O. each Un is open. Limits If E and F are metric spaces deﬁned by metrics d1 and d2 . ρ). b)/3 (in fact ρ = d(a. xn ) (x1 . we can pick Ua = B0 (a. . = max{ x1 . the same set of open sets. which is not open. b ∈ Ub . It is easy to show that they all deﬁne the same topology. xn n }. The above lemma leads to the very general concept of a topological space. . with the standard topology induced by |x − y|. . i ) is a normed vector space. . . By the triangle inequality. . .e.2 Continuous Functions. we have U1 ∩ · · · ∩ Un ∈ O.1. that is. ∅ and E belong to O.5 satisﬁes the following properties: (O1) For every ﬁnite family (Ui )1≤i≤n of sets Ui ∈ O. O is closed = x1 = 1 + · · · + xn 2 1 n . .e. there are three natural norms that can be deﬁned on E1 × · · · × En : (x1 . we must have Ua ∩ Ub = ∅. It is straightforward. but n Un = {0}. i. One should be careful that in general. For example.C.

When E is a metric space with metric d. we can show easily that every real polynomial function is continuous. TOPOLOGY 1 Similarly. are continuous at a.2. where the space of translations E is a − → − → vector space over R or C. such that. Using lemma C. b) = ab . then f + g. Lemma C. . and f /g is continuous at a if g(a) = 0. if E and F are normed vector spaces deﬁned by norms → continuous at − iﬀ a → for every ǫ > 0. we consider normed aﬃne spaces. there is some n0 ≥ 0. there is some η > 0. such that. −n − − ≤ ǫ.3 Normed Aﬃne Spaces − → For geometric applications. Given a normed aﬃne space. Observe that this metric is invariant under translation.1. deﬁned such that → − d(a. a) ≤ ǫ. for all n ≥ n0 . E ) is a normed aﬃne space iﬀ E is a normed vector space with norm . a sequence (xn )n∈N converges to some → → for every ǫ > 0. E ) where the associated − → space of translations E is a vector space equipped with a norm.2. a sequence (xn )n∈N converges to some a ∈ E iﬀ When E is a normed vector space with norm a ∈ E iﬀ Finally. we will need to consider aﬃne spaces (E. Left as an exercise. x if − −− → → x a 1 and 2. there is a natural metric on E itself. x a C. The following lemma is useful for showing that real-valued functions are continuous. If E is a topological space. and (R. then → → f (− ) − f (− ) x a 2 ≤ ǫ. |x − y|) the reals under the standard topology. E ).472 APPENDIX C.1. there is some n0 ≥ 0. Proof. for all n ≥ n0 . d(xn . b + − ) = d(a. such that. f is ≤ η. for every − ∈ E. for any two functions f : E → R and g : E → R. for any a ∈ E. b). u u .3. for any λ ∈ R. if f and g are continuous at a. for every ǫ > 0. − → − → Deﬁnition C. that is → → d(a + − . we say that (E. Given an aﬃne space (E. f · g. λf .1.

. xn ) = max( x1 1 . h(y)) = λd(x. b) → ab from E × E to E is continuous. This will lead to tangent spaces to curves and surfaces (in normed aﬃne spaces). Of course.C. and each Ei is also a normed aﬃne space with norm i . by giving it the norm (x1 . . is we consider the map h : E → E. xn n ). . We are now ready to deﬁne the derivative (or diﬀerential) of a map between two normed aﬃne spaces. NORMED AFFINE SPACES 473 Also. . Similarly.3. then d(h(x). for every ﬁxed a ∈ E and λ > 0. the map − → a + − is a homeomorphism from E u u u to Ea . . a1 ) ⊕ · · · ⊕ (Em . the ﬁnite product E1 × · · · × Em is made into a normed aﬃne space. we make (E1 . a1 ) ⊕ · · · ⊕ (Em . am ). . Rn is a normed aﬃne space under the Euclidean metric. . In fact. y). and similarly for the map − → − → → → → a → a + − from E × E to E. . → h(x) = a + λ− ax. am ) into a normed aﬃne space. deﬁned such that. . If an aﬃne space E is a ﬁnite direct sum (E1 . → − − → Note that the map (a. and it is also complete. under the same norm.

474 APPENDIX C. TOPOLOGY .

Basic properties of derivatives are shown. . Deﬁnition D. We ﬁrst review the notion of derivative of a realvalued function whose domain is an open subset of R. the function f is approximated linearly by the map Part of the diﬃculty in extending this idea to more complex spaces. First. the map df a → f ′ (a) is denoted as f ′ . h = 0}.1 Directional Derivatives. h∈U h df (a).1. we deﬁne directional derivatives and the total derivative of a function f : E → F between normed aﬃne spaces. For any function f : A → R. where A is a nonempty open subset of R. Lang [48]. Let A be any nonempty open subset of R. We show how derivatives are represented by Jacobian matrices. we will use linear maps! Let us now review the formal deﬁnition of the derivative of a real-valued function. in some small open set U ⊆ A containing a). h→0. and Avez [2]. or Df .1. dx where U = {h ∈ R | a + h ∈ A. Let f : A → R. Of course. Total Derivatives This appendix contains a review of basic notions of diﬀerential calculus. is to give an adequate notion of linear approximation. including the chain rule. we review the deﬁnition of the derivative of a function f : R → R. or Df (a). and let a ∈ A. A thorough treatment of diﬀerential calculus can be found in Munkres [55]. This limit is denoted as f ′ (a). the derivative of f at a ∈ A is the limit (if it exists) f (a + h) − f (a) lim . is that locally around a (that is. Cartan [16]. Schwartz [71]. The main idea behind the concept of the derivative of f at a.Appendix D Diﬀerential Calculus D. we say that f is diﬀerentiable on A. Next. In this case. denoted as f ′ (a). and consider any a ∈ A. or . or 475 x → f (a) + f ′ (a)(x − a). dx If f ′ (a) exists for every a ∈ A.

we say that the derivative of f at a on the left. f (a + h) − f (a) lim . h∈U h where U = {h ∈ R | a + h ∈ A. in the → − rest of this chapter. h→0. f (a + h) = f (a) + f ′ (a) · h + ǫ(h)h. We can also deﬁne f ′ (a) as follows: there is some function ǫ(h). where E and F are normed aﬃne spaces. − → Since F is a normed aﬃne space. A − {a} is also open. it will be notationally convenient to assume that − → the vector space associated with E is denoted as E . how do we deﬁne the quotient by a vector? Well. then f is continuous on A. Remark: A function f has a derivative f ′ (a) at a iﬀ the derivative of f on the left at a and the derivative of f on the right at a exist. and derivative of f at a on the right. DIFFERENTIAL CALCULUS Note that since A is assumed to be open. that this quantity is a vector and not a point. The composition of diﬀerentiable functions is diﬀerentiable. We should note however. and if they are equal. whenever a + h ∈ A. the unique vector translating f (a) to f (a + h ). If f is diﬀerentiable on A. For example. if it exists. We would like to extend the notion of derivative to functions f : A → F . Thus. is the limit f ′ (a− ). Also. then it is continuous at a. h∈U lim ǫ(h) = 0. The ﬁrst diﬃculty is to make sense of the quotient f (a + h) − f (a) . If a function f as in deﬁnition D. Remark: We can also deﬁne the notion of derivative of f at a on the left.1 has a derivative f ′ (a) at a. U is indeed open and the deﬁnition makes sense. −− − − −→ −−−−− − → − → it is notationally more pleasant to denote f (a)f (a + h ) as f (a + h ) − f (a). we don’t! . in deﬁning derivatives. h < 0}. such that. But now. making sense of f (a + h ) − f (a) is easy: we can deﬁne −− − − −→ −−−−− − → − → this as f (a)f (a + h ). then f is continuous on the left at a (and similarly on the right). and since the function h → a + h is continuous and U is the inverse image of A − {a} under this function.476 APPENDIX D. and that the vector space associated − → with F is denoted as F . h If E and F are normed aﬃne spaces. Nevertheless. and h→0.1. if the derivative of f on the left at a exists. where ǫ(h) is deﬁned for all h such that a + h ∈ A. the vector ab will be denoted as b − a. and A is some nonempty open subset of E.

and we let − = 1 (i. TOTAL DERIVATIVES 477 → → − A ﬁrst possibility is to consider the directional derivative with respect to a vector − = 0 u − → → in E . DIRECTIONAL DERIVATIVES. where t ∈ R u (or C) (more exactly. u → f (a + t− ) − f (a) u t → makes sense.1.1. The directional derivative is sometimes called the Gˆteaux derivative. from u R to F (more exactly from [r.1. and yet not be continuous at a. As u a consequence. For any a ∈ A.3.2 makes sense. for t in some small closed interval [r. in the sense of deﬁnition D. a function can have all directional derivatives at a. and that the image of this line deﬁnes a curve in u F . u → the directional derivative of f at a w. the points → of the form a + t− form a line segment). and let f : A → F be any function. which is that their deﬁnition is not suﬃciently uniform. s] in A containing a. when E has dimension ≥ 2. When E = R (or E = C) and F is any normed vector space.1.2. all nonnull vectors − share something in common. Since the notion of limit is purely topological.D.1.r. the points of the form a + t− form a line. Two functions may have all directional derivatives in some open sets. let A be a nonempty open − → − → → subset of E. t = 0}). directional derivatives present a serious problem. and yet their composition may not. Now. and the deﬁnition of the limit in deﬁnition D. we introduce a more uniform notion. t∈U lim → f (a + t− ) − f (a) u . This leads us to the following deﬁnition.e. deﬁnes the direction of the tangent line at a to this curve. also denoted as f ′ (a). the real number 1. the vector − . The idea is that in E. u u → Since the map t → a + t− is continuous.t. a → → − In the special case where E = R and F = R.r. Indeed. However. denoted as D f (a). and the directional derivative Du f (a). for any − = 0 in E . t = 0} (or U = {t ∈ C | a + t− ∈ A. Thus. it is immediately veriﬁed that D1 f (a) = f ′ (a). the inverse image U u of A − {a} under the above map is open.1. and let f : A → F be any function. as long as they are equivalent norms. Deﬁnition D. Let E and F be two normed aﬃne spaces.t. We can consider the vector f (a + t− ) − f (a). curve which lies on the image f (E) of E under the map f : E → F (more exactly. s] to F ). Deﬁnition D. u viewed as a vector). t → → where U = {t ∈ R | a + t− ∈ A. let A be a nonempty open subset of E. Let E and F be two normed aﬃne spaces. we say that f is diﬀerentiable . there is no reason to believe → that the directional derivatives w. a small → curve segment on f (A)). provides a suitable generalization of the notion of derivative. the derivative D1 f (a). For any a ∈ A. where t ∈ R (or t ∈ C). and since A − {a} is open. This curve (segment) is deﬁned by the map t → f (a + t− ). the existence and value of a directional derivative is independent of the choice of norms in E and F . is the limit (if it u u exists) t→0.

The linear map L is denoted as Df (a). − → − → − → Since the map h → a + h from E to E is continuous. locally around a. or diﬀerential . Again. as long as they are equivalent norms. then f is − → − → → continuous at a. The condition for f to be diﬀerentiable at a amounts to the fact that the right-hand side of the above expression − → − − → − → → − → approaches 0 as h = 0 approaches 0 . such that − → − → − − → → f (a + h ) = f (a) + L( h ) + ǫ( h ) h − → − → − → − → for every a + h ∈ A. However. and u u furthermore. For any a ∈ A. h→0. when a + h ∈ A. and let f : A → F be any function. where ǫ( h ) is deﬁned for every h such that a + h ∈ A and h→0. the − → inverse image U of A − {a} under the above map is open in E .4. we note that the derivative Df (a) of f at a provides an aﬃne approximation of f . h∈U − → − → − → → − Note that for every h ∈ U. DIFFERENTIAL CALCULUS − → − → − → at a ∈ A iﬀ there is a linear continuous map L : E → F and a function ǫ( h ). or total diﬀerential . of f at a.1. or total e derivative. h = 0 }. or derivative. → Du f (a) = Df (a)(− ). Since the notion of limit is purely topological. and it is called the Fr´chet derivative. − → h − → and that the value ǫ( 0 ) plays absolutely no role in this deﬁnition. if it exists. if Df (a) is deﬁned. the next lemma implies this as a corollary. and it makes sense to say that − → − → lim ǫ( h ) = 0 . let A be a nonempty open subset of E. h∈U lim − → − → ǫ( h ) = 0 . − → − − → − → − → → where U = { h ∈ E | a + h ∈ A. Let E and F be two normed aﬃne spaces. The following lemma shows that our new deﬁnition is consistent with the deﬁnition of the directional derivative. or dfa . the existence and value of a derivative is independent of the choice of norms in E and F . Lemma D. and since A is open in E. In fact. or f ′ (a). or df (a). u . and f has a directional derivative D f (a) for every − = 0 in E . it does no harm to − → − → assume that ǫ( 0 ) = 0 . and we will assume this from now on. ǫ( h ) is uniquely determined since − → − → − → f (a + h ) − f (a) − L( h ) ǫ( h ) = . since h = 0 . or Dfa . Note that the continuous linear map L is unique.478 APPENDIX D.

for every a ∈ E. or ∂xj ∂f (a) for a partial derivative. we have a + t− ∈ A. . TOTAL DERIVATIVES 479 − → − − → → − → − → − → Proof.1. is a “logical obscenity”. Indeed. −n ) u u u u − → is a basis of E . then − → Df (a) = f . if E is of ﬁnite dimension → → n. for every a ∈ E. . and not a function from the aﬃne space E − − → → to the aﬃne space F . For any two normed aﬃne spaces E and F . . for every a ∈ E. f is continuous at a. . and letting h = t− . then Df (a) = 0. It is important to note that the derivative Df (a) of f at a is a continuous linear map − → − → from the vector space E to the vector space F . for every frame (a0 . . This way. . . the linear map associated with f . ∂j f (a). the variable xj really has nothing to do with the formal deﬁnition. for |t| ∈ R small enough (where t ∈ R or u − → → → t ∈ C). (−1 . are called the partial derivatives of f with → → respect to the frame (a0 . . . it is easily shown that every linear map is continuous. called the derivative of f on A. if they exist. The uniqueness of L follows from lemma D. we get a map Df : A → L( E . Also. . If h = 0 approaches 0 . we have u u → → → → f (a + t− ) = f (a) + tL(− ) + ǫ(t− )|t| − . (−1 . −n )). since L is continuous. The partial derivative Duj f (a) is also denoted as u u ∂f (a). Given two normed aﬃne spaces E and F . For any − = 0 in E . deﬁnition of partial derivatives. (−1 . for any frame (a0 . . If f : E → F is a continuous aﬃne map. for every function f : E → F .5. u u u u → f (a + t− ) − f (a) u |t| → → → u = L(− ) + ǫ(t− ) − . u u t t and the limit when t = 0 approaches 0 is indeed Du f (a). → → → → When E is of ﬁnite dimension n. . . if f : E → F is a constant function. This is just another of these situations where tradition is just too hard to overthrow! The notation We now consider a number of standard results about derivatives. Lemma D. although customary and going back to ∂xj Leibnitz.D. . If Df (a) exists for every a ∈ A. ǫ( h ) h approaches 0 . as follows.6. and → → − → − thus. Deﬁnition D. . DIRECTIONAL DERIVATIVES. − ) (actually. we obtain the u u 1 n and for t = 0. . and this assumption is then redundant. −n )) for E. . we can deﬁne the directional derivatives with respect to the vectors in the → → basis (− . where (−1 . F ). .1. and also denoted as df . u u the directional derivatives Duj f (a).1.4. . when E is of ﬁnite dimension. we can also do it for an inﬁnite frame). −n )) of E. . .1.

and → D(g ◦ f )(a) = − ◦ Df (a). Straightforward. for every a ∈ A. Straightforward. let A be an open set in E. APPENDIX D. and G. let A be some open subset in E.1.1. let f : A → B be a bijection from A to B. if Df (a) exists and Dg(f (a)) exists. b ) + f (− . Lemma D. and let B an open set in F . then D(g ◦ f )(a) exists. Proof. Then.1. b ) exists. − ) = f (− . and assume that Df exists on A and that Df −1 exists on B. Given three normed aﬃne spaces E. Df −1 (f (a)) = (Df (a))−1 . F . → and v 2 → → → − → → → − → → Df (− . . Proof. g → where − is the linear map associated with the aﬃne map g. for any a ∈ A. and D(g ◦ f )(a) = Dg(f (a)) ◦ Df (a). Df (− . We now state the very useful chain rule. Lemma D. For any functions f : A → F and g : B → G. and G. DIFFERENTIAL CALCULUS Lemma D. a u v u a v Proof. then D(f + g)(a) and D(λf )(a) exists. and D(f + g)(a) = Df (a) + Dg(a). Lemma D. F . It is not diﬃcult. We mention two corollaries. let B some open subset in F . Given three normed vector spaces E1 . D(g ◦ f )(a) exists.1. Given two normed aﬃne spaces E and F . but more involved than the previous two. let f : A → F such that Df (a) exists. Given a normed aﬃne space E and a normed vector space F . b ) ∈ E1 ×E2 .10. and let g : F → G be a continuous aﬃne map. g Lemma D. E2 . for any continuous bilinear → → → − → − → map f : E1 ×E2 → F .1. and for every − ∈ E1 a a u − ∈E . Given three normed aﬃne spaces E. b )(− . for any two functions f : E → F . − ). for every (− . for any open subset A in E.9 has many interesting consequences.480 Proof.8. if Df (a) and Dg(a) exists.7. such that f (A) ⊆ B.1. Straightforward. for every a ∈ E. for any a ∈ A.9. Lemma D. and F . Then. D(λf )(a) = λDf (a).11.

1. where fi : E → K (where K = R or K = C). Df (a) is equal to Dfb (a). For any two normed aﬃne spaces E and F . . v vm v vm a function f : E → F is diﬀerentiable at a iﬀ each fi is diﬀerentiable at a. . b1 ) ⊕ · · · ⊕ (Fm . . . . . for any function f : A → F . that the two vector spaces E and F have the same dimension. 0). implies a global property.9. − → − → Proof. fm ). fm ). . fb (x) = f (x) − b. . − → → → → → for any frame (b0 . b1 ) ⊕ · · · ⊕ (Fm . a local property. . such that f is diﬀerentiable on A and − → − → f −1 is diﬀerentiable on B. for every x ∈ E. (−1 . The lemma is then a simple application of lemma D. . . for every a ∈ E. we can work with the vector − → space F instead of the aﬃne space F . Then. Df (a) exists iﬀ every Dfi (a) exists. Observe that f (a + h ) − f (a) = (f (a + h ) − b) − (f (a) − b).1. . − )) of F .11 has the remarkable consequence that the two vector spaces E and F have the same dimension. given any open subset A of E. bm ). v vm . − )) (where K = R v vm or K = C).12. where (− . . for any a ∈ A. Thus. Given normed aﬃne spaces E and F = (F1 . In the special case where F is a normed aﬃne space of ﬁnite dimension m. . every point x ∈ F can be v v v v 0 1 m 1 m expressed uniquely as → → where (x1 . (−1 . 0) ⊕ · · · ⊕ (K. and → → → →v Df (a)(− ) = Df1 (a)(− )−1 + · · · + Dfm (a)(− )− . and Df (a) = in1 ◦ Df1 (a) + · · · + inm ◦ Dfm (a). TOTAL DERIVATIVES 481 − → − → Lemma D. where (−1 . Thus. bm ). where b = (b1 . . u → → x = b0 + x1 −1 + · · · + xm − . . . . every function f : E → F is represented by m functions (f1 .1. . .12. u u v u → m → → − for every − ∈ E . . . . letting f = (f1 . the coordinates of x in the frame (b0 . the existence of a bijection f between an open set A of E and an open set B of F .D.13.1. and → → f (x) = b0 + f1 (x)−1 + · · · + fm (x)− . We now consider the situation where the normed aﬃne space F is a ﬁnite direct sum F = (F1 . we note that F is isomorphic to the direct sum F = (K. − )) of F . . as far as dealing with derivatives. . (− . . . . .1. The following lemma is an immediate corollary of lemma D. In other words. where fb : E → F is deﬁned such that. letting Fi be the standard normed aﬃne space K with its natural structure. . .1. − ) is a basis of F . − ) is a basis of F . . − → and thus. Lemma D. . Lemma D. bm ). xm ) ∈ K m . . for any − → → → → → frame (b . . . if F is of ﬁnite dimension m. v vm for every x ∈ E. DIRECTIONAL DERIVATIVES.

.1. F ). v vm . . Given a normed aﬃne space E = (E1 . for every − ∈ E . . cn ) ∈ A. u and the two notions are consistent. Since every c ∈ E can be written as c = a + c − a. for any c = (c1 . deﬁned on (ic )−1 (A). cn ). and → → → → Df (c)(−1 . j − − → → at c. . an ) and a normed aﬃne space F . → → and a frame (a0 . fa (− ) = f (a + − ).9. . Note that Dj f (c) ∈ L(Ej . for every c ∈ A. we have functions f ◦ ic : Ej → F . . every function f : E → F is determined by m functions fi : E → R v vm (or fi : E → C). In fact. an ).1. u u u u → → − for every −i ∈ Ei .2 Jacobian Matrices → → If both E and F are of ﬁnite dimension. where → → f (x) = b0 + f1 (x)−1 + · · · + fm (x)− . − )). . We will use freely the notation ∂j f (c) instead of Dj f (c). we call it the partial derivative of f w. and then → Dj f (c)(λ−j ) = λ∂j f (c). u u u − → and thus. deﬁning − → → → → → − fa : E → F such that. given any open subset A of E. an ). for any function f : A → F . a1 ) ⊕ · · · ⊕ (En .r. If D(f ◦ic )(cj ) exists. and a normed aﬃne space F . . j ic (x) = (c1 . its jth argument. x.482 APPENDIX D. u u for some obvious (Ej . aj ) (as explained just after lemma lemma D. . . The same result holds for the ﬁnite product E1 × · · · × En . This notion is a generalization of the notion deﬁned in deﬁnition D. we deﬁne the continuous functions ic : Ej → E. an ). Lemma D. −n )) and F has a u u → → frame (b0 . The lemma is then a simple application of lemma D. cj+1 . The deﬁnition of ic and of Dj f (c) also makes sense for j a ﬁnite product E1 × · · · × En of aﬃne spaces Ei .1. . cj−1. we identify the two notions. (−1 . . The following lemma holds. . (−1 . which j j contains cj .14. given any open subset A of E. . . whereas Dj f (c) is the corresponding linear map. . −n ) = D1 f (c)(−1 ) + · · · + Dn f (c)(−n ). . u Proof. j For any function f : A → F .1. . We also denote this derivative as Dj f (c). Given a normed aﬃne space E = (E1 . 1 ≤ i ≤ n. . such that. D. and E has a frame (a0 .5. . (−1 . −n )) has been chosen. where a = (a1 . a1 ) ⊕ · · · ⊕ (En . .5 is really that of the vector derivative. The notion ∂j f (c) introduced in deﬁnition D. Df (c) = Dfa (c − a). .12). we can work with the function fa whose domain is the vector space E . then each Dj f (c) exists. clearly. . . .1.if Df (c) exists. . Although perhaps confusing. a1 ) ⊕ · · · ⊕ (En . when E is of dimension n. .t. DIFFERENTIAL CALCULUS We now consider the situation where E is a ﬁnite direct sum. . . . we can write E = (E1 . . .

− ) representing Df (a).t. We simply treat the function fi : Rn → R as a function of its j-th partial derivatives ∂xj argument.1.. .. the usual derivative. For example.1. we know that this determinant in fact only depends on Df (a). . When E = Rn and F = Rm . ∂n f1 (a) ∂2 f2 (a) . . u and from lemma D. This matrix is called the Jacobian matrix of Df at a.1. . that is. θ) = (r cos θ. . . . JACOBIAN MATRICES for every x ∈ E. r sin θ). consider the function f : R2 → R2 . ∂2 f1 (a) . However. the linear map Df (a) is determined by the m × n-matrix J(f )(a) = v vm ∂fi (a))): (∂j fi (a)). ∂n fm (a) . . ∂n f2 (a) . . . . is equal to the components of the vector Df (a)(−j ) over v vm u → → the basis (−1 .13. .. . From a previous remark.r. f (r. u u → u → u vm that is. .. . (or J(f )(a) = ( ∂xj ∂1 f1 (a) ∂1 f2 (a) J(f )(a) = . . . . .1. it is easy to compute the ∂fi (a). . . deﬁned such that. . . Its determinant det(J(f )(a)) is called the Jacobian of Df (a). ∂f1 (a) ∂xn ∂f2 (a) ∂xn .. leaving the others ﬁxed. . . . ∂fm (a) ∂xn or ∂f1 ∂f1 ∂x1 (a) ∂x2 (a) ∂f2 ∂f2 ∂x (a) ∂x (a) 2 J(f )(a) = 1 . . for any function f : Rn → Rm . −n ) and u u → → → (−1 . .. partial derivatives give a means for computing it.. . .2. . .D. → → → → Df (a)(−j ) = ∂j f1 (a)−1 + · · · + ∂j fi (a)−i + · · · + ∂j fm (a)− .4. − ). . ∂1 fm (a) ∂2 fm (a) . and not on speciﬁc bases. we have → → v → v → → Df (a)(−j ) = Df1 (a)(−j )−1 + · · · + Dfi (a)(−j )−i + · · · + Dfm (a)(−j )− . . we have → Df (a)(−j ) = Duj f (a) = ∂j f (a). and compute the derivative as in deﬁnition D. the bases (−1 .. u v v vm 483 → → Since the j-th column of the m × n-matrix J(f )(a) w. . From lemma D. . . ∂fm ∂fm (a) (a) ∂x1 ∂x2 . .

we also let Df (a) denote the vector Df (a)( 1 ) = D1 f (a). 1] → R3 deﬁnes a (parametric) curve in R3 . f3 ). its Jacobian matrix at a ∈ R2 is ∂f ∂f ∂u (a) ∂v (a) ∂g (a) ∂g (a) J(ϕ)(a) = ∂v ∂u ∂h ∂h (a) (a) ∂u ∂v . its Jacobian matrix at a ∈ R is ∂f1 ∂t (a) ∂f2 J(f )(a) = ∂t (a) ∂f 3 (a) ∂t When E = R2 . and we assume their existence. and F = R3 . Letting ϕ = (f. b] is not open. and F = R3 . this column vector is just D1 f (a). This case is suﬃciently important to warrant a deﬁnition. θ) = APPENDIX D. It is often useful to consider functions f : [a. as in the case of a real-valued function. 1]. In fact. when E = [0. b]. b] ⊆ R to a normed aﬃne space F . and the left derivative D1 f (b− ) at b.484 Then. a function ϕ : R2 → R3 deﬁnes a parametric surface. for every λ ∈ R (or λ ∈ C). f2 . Deﬁnition D. θ)) = r. Given a function f : R → F (or f : C → F ). h). When E = R. and its derivative Df (a) on [a. Df (a)(λ) = λD1 f (a). a function f : [0. the vector Df (a)(1) = D1 f (a) is called the vector derivative. In this case. or velocity vector (in the real case) at a. even though [a. In the case where E = R (or E = C). the physical interpretation is that f deﬁnes a (parametric) curve which is the trajectory of some particle moving in Rm as a function of time. we deﬁne the right derivative D1 f (a+ ) at a.2. DIFFERENTIAL CALCULUS cos θ −r sin θ sin θ r cos θ and the Jacobian (determinant) has value det(J(f )(r. for any function f : R → F (or f : C → F ). − → By abuse of notation.1. we have J(f )(r. the Jacobian matrix of Df (a) is a column vector. Then. We usually identify Df (a) with its Jacobian matrix D1 f (a). and the vector D1 f (a) is the velocity of the moving particle f (t) at t = a. where F is a normed aﬃne space. For example. g. Letting f = (f1 . b] → F from a closed interval [a. which is the column vector corresponding to D1 f (a).

. . − )) is an aﬃne frame for F . . . . . . . −p ) and (−1 . .. . JACOBIAN MATRICES 485 When E = R3 . .. . if A is an open subset of E. .. ∂gm ∂gm (b) (b) ∂y1 ∂y2 .t the bases (−1 . . . . . . . for any functions f : A → F and g : B → G. . the Jacobian matrix at a ∈ Rn is the row vector J(f )(a) = ∂f ∂f (a) · · · (a) . . if Df (a) exists and Dg(b) exists. ∂f1 (a) . −m ).9. ∂gm ∂fn (a) (b) ∂x1 ∂yn k=n . −m ) is the product of the Jacobian matrices J(g)(b) u u w → → → → → → w. . . ∂n gm (b) or ∂g1 ∂g1 (b) (b) ∂y1 ∂y2 ∂g2 ∂g2 ∂y (b) ∂y (b) 2 J(h)(a) = 1 . . . and h = g ◦ f . . −m )) is an aﬃne frame for v vn w w G. . such that f (A) ⊆ B. . denoted as gradf (a) or ∇f (a). −p )) is an aﬃne frame for u u → → → → E. . . . . . −p ) and v vn w w u u → → (−1 . F .. . .2. ... . . and F = R.r. ∂x1 ∂xn Its transpose is a column vector called the gradient of f at a. . . ∂yk ∂xj . .r. . ∂x2 ∂f2 (a) . note that v ∂f ∂f → → Df (a)(− ) = v (a) v1 + · · · + (a) vn = gradf (a) · − . given any − ∈ Rn . by lemma D. . . letting b = f (a)..D. . .t the bases (−1 . (b0 . . . (−1 . . ∂n g2 (b) ∂1 f2 (a) ∂2 f2 (a) . . . ∂x2 Thus. (−1 . . . . (−1 . . . ∂p f2 (a) J(h)(a) = .1. . B is an open subset of F . for a function f : R3 → R. ∂x ∂y ∂z More generally. . . and (c0 . . . . − ) and (−1 . . . ∂p f1 (a) ∂1 g1 (b) ∂2 g1 (b) . and J(f )(a) w. ∂fn (a) ∂xp ∂hi (a) = ∂xj k=1 ∂gi ∂fk (b) (a).. . the Jacobian matrix at a ∈ R3 is J(f )(a) = ∂f ∂f ∂f (a) (a) (a) . and G have ﬁnite dimensions. . ∂x2 . . . . and (a0 . . . ∂fn (a) . ∂n g1 (b) ∂1 g2 (b) ∂2 g2 (b) . we have the familiar formula ∂f1 (a) ∂xp ∂f2 (a) ∂xp . the Jacobian matrix J(h)(a) = J(g ◦ f )(a) → → → → w w. . . v → → When E. . . . . . . → Then. . . . . . .r. ∂f1 ∂g1 (a) (b) ∂yn ∂x1 ∂g2 ∂f2 (a) (b) ∂yn ∂x1 .. . . . . . . for any a ∈ A. − ): v vn ∂1 f1 (a) ∂2 f1 (a) . . ∂p fn (a) ∂1 gm (b) ∂2 gm (b) .t the bases (−1 . v ∂x1 ∂xn → the scalar product of gradf (a) and − .. ∂1 fn (a) ∂2 fn (a) . . when f : Rn → R. .

b] is the set of all points a + λ(b − a). If f is diﬀerentiable on A. if a function f : A → F is diﬀerentiable at a ∈ A.a+h[ max Df (x) ≤ M. It turns out that the continuity of the partial derivatives on A is a necessary and suﬃcient condition for Df to exist and to be continuous on A. if the closed segment [a. We ﬁrst state a lemma which plays an important role in the proof of several major results of diﬀerential calculus. λ ∈ R. − → − → and let f : A → F be a continuous function on A. f (x. where 0 ≤ λ ≤ 1. deﬁned such that. b ∈ E. if f : A → F is diﬀerentiable at every − → point of the open segment ]a. the closed segment [a. y) = (0. there are suﬃcient conditions on the partial derivatives for Df (a) to exist. letting − = u u k − → − → → h2 k f ( 0 + t− ) − f ( 0 ) u = 2 4 . b[ is the set of all points a + λ(b − a). λ ∈ R. . if Df (0) existed. where 0 < λ < 1. but the explicit formula for Du f (0) is not linear. Given any a ∈ A and any h = 0 in − → − → E . 0). then − → − → f (a + h ) − f (a) ≤ M h . y) = 1 . and the open segment ]a. and not even continuous at a. 0). However. x + y2 → h → − → . the function is not diﬀerentiable at a. 0) = 0. Lemma D. and we would have → Du f (0) = Df (0)(− ) = αh + βk. the function f is not continuous at (0. f (0. Let E and F be two normed aﬃne spaces.486 APPENDIX D. then its Jacobian matrix is well deﬁned. and when we approach the origin on this parabola. for some M ≥ 0. y) = 4 if (x. it would be u a linear map Df (0) : R2 → R represented by a row matrix (α β). given an open subset A of E. let A be an open subset of E. namely continuity of the partial derivatives. As a u matter of fact. One should be warned that the converse is false. given any two points a. For example. f (0.2.2. If E is an aﬃne space (over R or C). − → → Thus. consider the function f : R2 → R. F ). t t h + k2 so that Du f (0) = 0 h2 k if k = 0 if k = 0. then f deﬁnes a − − → → function Df : A → L( E . Du f (0) exists for all − = 0 . DIFFERENTIAL CALCULUS Given two normed aﬃne spaces E and F of ﬁnite dimension. a + h [. a + h ] is contained in A. we have For any − = 0 . There are functions such that all the partial derivatives exist at some a ∈ A. For example. the limit is 1 . and x2 y f (x. but yet. and x∈]a. On the other hand. on the parabola y = x2 . 0) = 0. when 2 2 in fact.

assuming that E = (E1 .2. 1 ≤ j ≤ n. iﬀ Df exists and is continuous on A. a1 ) ⊕ · · · ⊕ (En . given any u u − − → → function f : A → F . where M = maxx∈]a. . Given two normed aﬃne spaces E and F . (−1 .3 holds. if F is of ﬁnite dimension m. .3 gives a necessary and suﬃcient condition for the existence and continuity of the derivative of a function on an open set. JACOBIAN MATRICES − → − → As a corollary.2. Since the existence of the derivative on an open set implies continuity.2. we say that a function f : A → F is of class C 0 on A. Deﬁnition D. the v vm − − → → derivative Df : A → L( E . . 1 ≤ j ≤ n. for all i.2. 1 ≤ i ≤ m. the derivative Df : A → L( E . For a complete treatment of higherorder derivatives and of various versions of the Taylor formula. F ) is deﬁned and continuous on A iﬀ every partial derivative ∂fi ∂j fi (or ) is deﬁned and continuous on A.2 can be used to show the following important result. Given two normed aﬃne spaces E and F .1. Lemma D. then − → − → − → f (a + h ) − f (a) − L( h ) ≤ M h . a C 1 -function is of course a C 0 -function. .2.2. if L : E → F is a continuous linear map. (−1 . for all j.2. and an open subset A of E. Lemma D.3. 487 The above lemma is sometimes called the “mean-value theorem”. − )) is a frame of F .4. It should be noted that a more general version of lemma D. or a C 0 -function on A. F ) is deﬁned and continuous on A iﬀ ∂f every partial derivative ∂j f (or ) is deﬁned and continuous on A. .14. j.a+h[ Df (x) − L . an ). Lemma D. given any open subset A of E.D. ∂xj → → As a corollary. . It is also possible to deﬁne higher-order derivatives. or E = E1 × · · · × En . and where (a0 . . ∂xj Lemma D. iﬀ f is continuous on A. see Lang [48]. . or a C 1 -function on A. It is easy to show that the composition of C 1 -functions (on appropriate open sets) is a C 1 -function. where E is of ﬁnite dimension → → n. and using the more general partial derivatives Dj f introduced before lemma D. and (b0 . We say that f : A → F is of class C 1 on A. −n )) is a frame of E.3 gives a necessary and suﬃcient condition for a function f to be a C 1 -function (when E is of ﬁnite dimension). .

488 APPENDIX D. DIFFERENTIAL CALCULUS .

Alg`bre lin´aire et g´om´trie classique. Boehm and H.Bibliography [1] Michael Artin. [6] Marcel Berger. Masson. ﬁrst edition. curves. [5] Marcel Berger. 15:345–352. English edition: Diﬀerential e geometry. and surfaces. 1984. Farin. Prautzsch. Geometric Concepts for Geometric Design. e [10] W. 1990. e [3] A. Computer Aided Design. ﬁrst edition. Bartels. [4] Richard H. 1:1–60. Ball and D. o 1983. ﬁrst edition. A survey of curve and surface methods in CAGD. ﬁrst edition. English edition: Geometry 1. courbes et sure e e ee faces. John C. 1983.A. Prentice Hall. 1991.T. G. Morgan Kaufmann. Boehm and G. 1994. [2] A. Masson. Universitext. G´om´trie 2. Kahman. G´om´trie diﬀ´rentielle: vari´t´s. Barsky. Letter to the editor. An Introduction to Splines for Use in Computer Graphics and Geometric Modelling. 1987. Conditions for tangent plane continuity over recursively generated B-spline surfaces. 1992. manifolds. G´om´trie 1. e e Springer Verlag. Springer Verlag. second edition. GTM No. [7] Marcel Berger and Bernard Gostiaux. 7(2):83–102. 15(5):260–261.J. 489 . [8] J. e e e e [9] W. 115. and Brian A. Computer Aided Geometric Design. [12] Wolfgang B¨hm. 1988. Nathan. Collection Math´matiques. 1990. 1981. e e Springer Verlag. Storry. ACM Transactions on Computer Graphics. [11] W. 1991. Computer Aided Design. Avez. Subdividing multivariate splines.E. Boehm. AK Peters. Puf. and J. Beatty. English edition: Geometry 2. Universitext. Concerning subdivison of B´zier triangles. ﬁrst edition. Nathan. Algebra. Bertin. Farin. Calcul Diﬀ´rentiel.

An algorithm for high-speed curve generation. 1974. pages 85–94.490 BIBLIOGRAPHY [13] J. Davis. Michael Kass. 1995. Discrete B-splines and subdivision techniques in computer aided geometric design and computer graphics. 14(2):87–111. 1978. ﬁrst edition. and Tien Truong. Computer Aided Design. Masson. 1998. Doo. Shape Mathematics and CAD. [22] Carl de Boor. 1990. [14] Nicolas Bourbaki. Riesenfeld. Alg`bre. . [18] G. In Proceedings on Interactive Techniques in computer aided design. Oxbridge. Doo and M.M.-D. 10(6):350–355. Cohen. Clark.W. 1976. Computer Aided Design. French edition: Masson. In Computer Graphics (SIGGRAPH ’98 Proceedings). Collection M´thodes. PhD thesis.H. Hermann. [19] P. Yvinec. El´ments de Math´matiques. Subdivision surfaces in character animation. second edition. e e ﬁrst edition. Catmull and J. Alg`bre Lin´aire et G´om´trie El´mentaire. [24] Tony DeRose. Chaikin. second edition. 1978. ACM. 1989. A practical Guide to Splines. Springer Verlag. 1981. IEEE. Recursively generated B-spline surfaces on arbitrary topological meshes. 1994. pages 157–165. Diﬀerential Geometry of Curves and Surfaces. e e e e e e 1965. [20] E. A subdivision algorithm for smoothing down irregularly shaped polyhedrons. 1978. do Carmo. Ediscience International. Brunel University. Hermes. Computer Graphics and Image Processing. Dissertation. Italy. T.G. 1970. [23] Paul de Faget de Casteljau. and R. 1980. [26] Manfredo P. Behavior of recursive division surfaces near extraordinary points. AMS Chelsea Publishing. Hermann. IEEE Computer Graphics and Image Processing. e e e [15] Nicolas Bourbaki. 1978. [25] Jean Dieudonn´. Cambridge University Press. 3:346–349. Cours de Calcul Diﬀ´rentiel. [28] D. Alg`bre. Chapitres 4-7. e e [17] E. [27] D. Introduction to Numerical Matrix Analysis and Optimization. e e e [16] Henri Cartan. Circulant Matrices. ﬁrst edition. Doo. 1994. 1986. Boissonnat and M. 10(6):356–360. Chapitres 1-3. Hermann. Lyche. Bologna. A recursive subdivision algorithm for ﬁtting quadratic surfaces to irregular polyhedrons. England. [29] D. Prentice Hall. G´om´trie Algorithmique. Ciarlet. ﬁrst edition. El´ments de Math´matiques. Sabin. [21] Philip J. 1978.

Computer Aided Design. [42] D. Principles of Dynamics. ﬁrst edition. Subdivision algorithms for B´zier triangles. 1989.-C. CRC Press. 1998. Hilbert and S. Stuetzle. 1994. 1989. Geometry and the Imagination. ﬁrst edition. second edition. AK Peters. ﬁrst edition. NURB Curves and Surfaces. Advanced Book Classics. Schweitzer. 1996. DeRose. Courbes Splines Rationelles. Curves and Surfaces for CAGD. Addison Wesley. Hoschek and D. Computer e Aided Design.BIBLIOGRAPHY 491 [30] G. J. Fiorot and P. N. 1995. Springer Verlag. RMA 24. Algebraic Geometry. Computer Aided Geometric Design. 1986. Duchamp. 1988. Lasser. ﬁrst edition. e 3:83–127. [37] William Fulton. T. Greenwood. second edition. 1989. Masson. [41] Joe Harris. Fiorot and P. Koenderink. In Computer Graphics (SIGGRAPH ’94 Proceedings). 1993. 1992. [46] Jan J. . [36] J. 18:74–78. Cohn-Vossen. Jeannin. Morgan Kaufmann. [34] D. ﬁrst edition. 1992. [44] H. Three-Dimensional Computer Vision. T. Geometric and Solid Modeling. [31] Gerald Farin. Academic Press. Hoppe. Jeannin. [38] R. GTM No. Computer Aided Geometric Design. ﬁrst edition. MIT Press. Piecewise smooth surface reconstruction. 1997. 133. [39] A. Triangular Bernstein-B´zier patches. Courbes et Surfaces Rationelles. [35] J. fourth edition.. e 15:159–166. [33] Olivier Faugeras. Filip. Farin. Adapative subdivision algorithms for a set of B´zier triangles. ﬁrst edition. Goldman. A geometric Viewpoint. McDonald. M. Gray. Jin. RMA 12. ACM. [43] Christoph M. 1983. Modern Diﬀerential Geometry of Curves and Surfaces. ﬁrst edition. Prentice Hall. Halstead. Hoﬀman. [32] Gerald Farin. J. and W. from Projective Geometry to practical use. the MIT Press. AK Peters. [40] Donald T. 1986. Masson.J. 1952. pages 295–302. A ﬁrst course.-C. Chelsea Publishing Co. ﬁrst edition. 1990. Solid Shape. [45] J. Algebraic Curves. H.

1998. [50] Charles Loop. Computational Geometry: An Introduction. Unterteilungsalgorithmen f¨r multivariate splines. ﬁrst edition. 1995. 1987. Peters and U. Reif. 1997. University of Utah. Nasri. Germany. 1994. Algebra. [53] Dimitris N. Peters and U. BIBLIOGRAPHY [48] Serge Lang. [54] James R. a First Course. ACM Transactions on Computer Graphics. The NURBS Book. [64] F. [55] James R. 1988. Geometry. Physics-Based Deformable Models. UTM. Masters’s thesis. 1997. 1975. 1991. 1997. ﬁrst edition. 1984. 1993. ﬁrst edition. Lawrence Cowsar. Algebra. Munkres.P. [59] Dan Pedoe. Macmillan. Reif. and David Dobkin. Polyhedral subdivision methods for free-form surfaces. ﬁrst edition. Springer Verlag. Utah. SIAM Journal of Numerical Analysis. [49] Aaron Lee. Wim Sweldens. MAPS: Multiresolution adaptive parameterization of surfaces. Peter Schroder. Computational Geometry in C. Smooth Subdivision Surfaces based on triangles. Addison Wesley.492 [47] Serge Lang. 1988.I. Department of Mathematics.H. Metaxas. [52] Saunders Mac Lane and Garrett Birkhoﬀ. Topology. A comprehensive course. Kluwer Academic Publishers Group. Undergraduate Analysis. . second edition. 16(4). Dissertation. [56] A. Analysis of generalized B-spline subdivision algorithms. Preparata and M. third edition. Analysis on Manifolds. Computer Aided Geometric Design. 35(2). The simplest subdivision scheme for smothing polyhedra. [60] J. 1994. 1997. ACM Transactions on Graphics. Monograph in Visual Communications. TU u Braunschweig. [62] Les Piegl and Wayne Tiller. ﬁrst edition. ACM. In Computer Graphics (SIGGRAPH ’98 Proceedings). [57] Walter Noll. Braunschweig. ﬁrst edition. Dover. Kluwer Academic Publishers. PhD thesis. Salt Lake City. Munkres. Springer Verlag. [51] Charles Loop. 6(1):29–73. Springer Verlag. 1967. 1987. Finite-Dimensional Spaces. ﬁrst edition. [61] J. pages 95–104. Addison Wesley. [58] Joseph O’Rourke. Shamos. ﬁrst edition. PhD thesis. [63] Helmut Prautzsch. A G1 triangular spline surface of arbitrary topological type. Prentice Hall. 11:303–330. 1987. Cambridge University Press.

12. 1992. e e [77] Ernst Snapper and Troyer Robert J. ﬁrst edition. Metric Aﬃne Geometry. [68] J. Mathematical Methods for CAD. ﬁrst edition. Seidel. Undergraduate Texts in Mathematics. Collection e e Enseignement des Sciences. Stollnitz. A general subdivision theorem for B´zier triangles. [71] Laurent Schwartz. Analyse IV. IEEE Computer Graphics and Image Processing. [67] R. [74] Thomas Sederberg. Calcul Int´gral. and Malcom Sabin. 1992. Mass. Reif. ﬁrst edition. 1989. Calcul Diﬀ´rentiel et Equations Diﬀ´rentielles. In Computer Graphics (SIGGRAPH ’98 Proceedings).P.BIBLIOGRAPHY 493 [65] Lyle Ramshaw. Analyse III. Collection Enseignee ment des Sciences. ﬁrst edition. Analyse II. Non-uniform recursive subdivision surfaces. ﬁrst edition. [69] Pierre Samuel. Projective Geometry. Analyse I. [78] Jos Stam. Collection Enseignement des Sciences. Mathematical Methods in Computer Aided Geometric Design. [75] H. Report No. Springer Verlag. ACM. In Tom Lyche and Larry e Schumaker. Masson. 1975. [79] Eric J. David Sewell. On Chaikin’s algorithm. Digital SRC. [66] U. Jianmin Zheng. 1993. 1993. CA 94301. 4:304–310. Wavelets for Computer Graphics Theory and Applications. Tony D. Salesin. 1989. Morgan Kaufmann. e Hermann. Wellesley-Cambridge Press. Blossoming: A connect-the-dots approach to splines. Hermann. Dover. 1998. 1993. InterEditions. pages 395–404.F. Sidler. ﬁrst edition. 1988.-J. G´om´trie Projective. Introduction to Applied Mathematics. . Th´orie des Ensembles et Topologie. 19. Risler. pages 387–394. pages 573–581. In Computer Graphics (SIGGRAPH ’98 Proceedings). Applications ` la Th´orie de la Mesure. [72] Laurent Schwartz. and David H. 1986. [80] Gilbert Strang. [73] Laurent Schwartz. Technical report. ACM. 1987. Boston. DeRose.-C. Collection a e Enseignement des Sciences. A uniﬁed appproach to subdivision algorithms near extraordinary vertices. Riesenfeld. Academic Press. [70] Laurent Schwartz. [76] J. Hermann. 1998. Exact evaluation of Catmull-Clark subdivision surfaces at arbitrary parameter values. editors. 1995. 1991. Palo Alto. 1996. Hermann. Computed Aided Geometric Design.

Hermann. Schroder. PhD thesis. Veblen and J. No. ACM. [89] Denis Zorin. 1938. California. third edition. Projective Geometry. The Classical Groups. Young. Wellesley-Cambridge Press. Saunders HBJ. 1997.L. Veblen and J. Young. [84] B. Ginn. Ginn. Projective Geometry. Interpolation subdivision for meshes with arbitrary topology. e e 1994. 1946. et euclidiennes. Wavelets and Filter Banks. . 1. Vol. Vol. Vol. [87] Hermann Weyl. 1973. Ungar. second edition. Their Invariants and Representations. G´om´tries aﬃnes. Princeton mathmetical Series. Algebra. Princeton University Press. [85] O. Sweldens. Zorin. [83] Claude Tisseron. 1988. Van Der Waerden. Linear Algebra and its Applications. 1946. Pasadena. P. Caltech.494 BIBLIOGRAPHY [81] Gilbert Strang. ﬁrst edition. seventh edition. 1. Subdivision and Multiresolution surface representation. ﬁrst edition. 2. and W. W. 1996. projectives. [88] D. Dissertation. In Computer Graphics (SIGGRAPH ’96 Proceedings). [82] Gilbert Strang and Nguyen Truong. pages 189– 192. second edition. second printing edition. 1. W. [86] O. 1997.

- 02 Adjacency Data Structures
- Array-Based Mesh Data Structures
- 24318702-Is-808-1989-Steel-Table
- 808
- Steel Hollow Sections
- 02 Adjacency Data Structures
- Binary_Search & Binary_Insert A_ Into Sorted Array
- 10.1.1.55.1517
- Binary_Search & Binary_Insert A_ Into Sorted Array
- 35952760 Computer Graphics 2
- Brief Introduction to Vectors and Matrices Chapter3

- Quantum Mechanics II - Homework 10
- Geometric Modelling
- Multiplierless Constant Multiplication
- Kreider Introduction to Linear Analysis
- Calculus of Variations examples
- Methods for Solving Mathematical Physics Problems 1904602053
- Agoshkov v Dubovski p Shutyaev-rešavanje Matem Prob u Fizici
- 16S-ME507-TH2
- Lecture 2
- The Curvelet Transform for Image Strategy, Implementation and Experiments
- EE536TH_14_15
- Algorithem
- 7 Adams W.W., Loustaunau P.-an Introduction to Groebner Bases (Graduate Studies in Mathematics, Vol 3)-American Mathematical Society(1994)
- Decoupling and Pole Assignment in Linear Multivariable Systems AGeometric Approach
- Hw-06-W13.pdf
- 1327_Bk
- MP463_Ch5and6
- dl-logics
- L05
- Optimal Cfa design
- Uniqueness in the Generalized Representation by Fuzzy Sets
- Antiderivative of Tanx
- ADomainDecompositionFrameworkForFSIProblems
- ThesisDemanet
- zzzzfhgdgmsdfdskjkjydj
- Dahlquist Bjorck Vol 1
- lect22
- what-is
- coursework_2.pdf
- 4e3 a Maths Prelim Exam Paper 1

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue listening from where you left off, or restart the preview.

scribd