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 Affine Geometry
2 Basics of Affine Geometry 2.1 Affine Spaces . . . . . . . . . . . . . . 2.2 Examples of Affine Spaces . . . . . . . 2.3 Chasles’ Identity . . . . . . . . . . . . 2.4 Affine Combinations, Barycenters . . . 2.5 Affine Subspaces . . . . . . . . . . . . 2.6 Affine Independence and Affine Frames 2.7 Affine Maps . . . . . . . . . . . . . . . 2.8 Affine Groups . . . . . . . . . . . . . . 2.9 Affine 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 Classification 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 Defined by Control Points . . . 3.10 Problems . . . . . . . . . . . . . . . . . . . . . . . . v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61
63 63 74 77 81 86 93 98 101 106 116

vi 4 Multiaffine Maps and Polar Forms 4.1 Multiaffine Maps . . . . . . . . . . . . . . . . . . . . 4.2 Affine Polynomials and Polar Forms . . . . . . . . . . 4.3 Polynomial Curves and Control Points . . . . . . . . 4.4 Uniqueness of the Polar Form of an Affine 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 Affine Polynomial Functions . . . . . . . . . . . 5.6 Problems . . . . . . . . . . . . . . . . . . . . . . . . . .

6 B-Spline Curves 6.1 Introduction: Knot Sequences, de Boor Control Points . 6.2 Infinite 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 Affine Space in a Vector Space 10.1 The “Hat Construction”, or Homogenizing . . . 10.2 Affine Frames of E and Bases of E . . . . . . . 10.3 Extending Affine Maps to Linear Maps . . . . . 10.4 From Multiaffine Maps to Multilinear Maps . . 10.5 Differentiating Affine Polynomial Functions . . . 10.6 Problems . . . . . . . . . . . . . . . . . . . . . .

11 Tensor Products and Symmetric Tensor Products 11.1 Tensor Products . . . . . . . . . . . . . . . . . . . . 11.2 Symmetric Tensor Products . . . . . . . . . . . . . 11.3 Affine 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 Affine Geometry B.1 Affine and Multiaffine Maps . . . . . . . . . . B.2 Homogenizing Multiaffine Maps . . . . . . . . B.3 Intersection and Direct Sums of Affine Spaces B.4 Osculating Flats Revisited . . . . . . . . . . .

C Topology C.1 Metric Spaces and Normed Vector Spaces . . . . . . . . . . . . . . . . . . . . C.2 Continuous Functions, Limits . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Normed Affine Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

viii

CONTENTS

D Differential Calculus 475 D.1 Directional Derivatives, Total Derivatives . . . . . . . . . . . . . . . . . . . . 475 D.2 Jacobian Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

This is also useful to establish the notation and terminology. Our main goal is to provide an introduction to the mathematical concepts needed in tackling problems arising notably in computer graphics. Although we will touch some of the topics covered in computational geometry (for example. but in our opinion.Preface This book is primarily an introduction to geometric concepts and tools needed for solving problems of a geometric nature with a computer. This book is an attempt to fill this gap. We present some of the main tools used in computer aided geometric design (CAGD). which is a main theme of this book. but our goal is not to write another text on CAGD. In this respect. This book consists of four parts. triangulations). we are flirting with the intuitionist’s ideal of doing mathematics from a “constructive” point of view. mechanical engineers). or else rather specialized and application-oriented. Readers 1 . Such a point of view if of course very relevant to computer science. Many problems in the above areas require some geometric knowledge. books dealing with the relevant geometric material are either too theoretical. • Part I provides an introduction to affine geometry. This ensures that readers are on firm grounds to proceed with the rest of the book. and motion planning. 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. and engineers interested in geometric methods (for example. In particular. we provide an introduction to affine geometry. geometric modeling. 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 book should be of interest to a wide audience including computer scientists (both students and professionals). Thus. we are more interested in dealing with curves and surfaces from an algorithmic point of view . computer vision. just to mention some key areas. In brief. in particular the study of curves and surfaces. This material provides the foundations for the algorithmic treatment of polynomial curves and surfaces. mathematicians.

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

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

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

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

6 CONTENTS .

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

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

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

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

Part I Basics of Affine Geometry 11 .

12 .

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

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

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

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

where E is a set of points (with no structure) and − → E is a vector space (of free vectors) acting on the set E. we mean − → that for every force u ∈ E . u v u v → − and for any two points a.1. the first copy corresponding to points. a3 + v3 ). unless λ + µ = 1. 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. b. we make explicit the important fact that the vector space R3 acts → on the set of points R3 : given any point a = (a1 . are all that is needed to define the abstract notion of affine space (or affine structure). − . λa2 + µb2 − ω2 . For example. 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. 17 Thus. we can think of the − → elements of E as forces moving the points in E. We can v − is placed such that its origin coincides with a and that its tip coincides with → imagine that v b. λa3 + µb3 − ω3 ). a3 ) and any vector − = (v1 . . AFFINE SPACES → → → of λa + µb with respect to the frame (Ω.2. Furthermore. a2 . v3 ). it is natural that E is a vector space. The effect − → of applying a force (free vector) u ∈ E to a point a ∈ E is a translation. where we forget the vector space structure. and the second copy corresponding to free vectors. we discovered a major difference between vectors and points: the notion of linear combination of vectors is basis independent. v2 . there is a unique free vector ab such that → − b = a + ab. Since − → translations can be composed. λa3 + µb3 − (λ + µ)ω3 ) which are different from (λa1 + µb1 − ω1 . It turns out that the above properties. This action + : R3 × R3 → R3 satisfies some crucial properties. some restriction is needed: the scalar coefficients must add up to 1. We duplicate R3 into two copies. By this. although trivial in the case of R3 . − → a + 0 = a. v → which can be thought of as the result of translating a to b using the vector − . λa2 + µb2 − (λ + µ)ω2. (−1 . The basic idea is − → to consider two (distinct) sets E and E . v we obtain the point → a + − = (a1 + v1 . −3 )) are e e2 e (λa1 + µb1 − (λ + µ)ω1 . Intuitively. In order to salvage the notion of linear combination of points. a2 + v2 . considered as physical particles. where the vector space structure is important. but the notion of linear combination of points is frame dependent. → → → → (a + − ) + − = a + (− + − ).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Given an affine space E. If the family (−→)j∈(I−{i}) is linearly independent for some i ∈ I.32 (ai )i∈I . + . Given a nonempty subset S of E. the set of all points (1 − λ)a + λb. then (−→)j∈(I−{i}) is linearly a− j a− j ia ia independent for every i ∈ I. For example. and similarly for planes. b . If V contains at least two points. λ ∈ R. Proof. then the smallest affine subspace containing (ai )i∈I must contain the set V of barycenters i∈I λi ai . the smallest affine subspace of E generated by S is often denoted as S . then V = ∅.1. 2. − → Lemma 2. which is immediately verified.6 Affine Independence and Affine Frames Corresponding to the notion of linear independence in vector spaces. that is. Given a family (ai )i∈I of points in an affine space E. Assume that the family (−→)j∈(I−{i}) is linearly independent for some specific i ∈ I. If (ai )i∈I is empty.6. a− j a− i a− j ka ka ia . b ∈ V . E . because of the condition i∈I λi = 1. it is enough to show that V is closed under affine combinations. the set V contains all barycentric combinations of a and b. let (ai )i∈I be a family of points in E. If (ai )i∈I is nonempty. we will reduce the notion of (affine) independence of these points to the (linear) independence of the families (−→)j∈(I−{i}) of vectors obtained by chosing any ai as an origin. a− j ia Let k ∈ I with k = i. a nonempty subset V of E is an affine subspace iff for every two points a. b ∈ V . CHAPTER 2. ka j∈(I−{k}) Since − → = −→ + −→. 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. and thus. or even (a. we have the notion of affine independence. the following lemma a− j ia shows that it sufficient to consider only one of these families. BASICS OF AFFINE GEOMETRY Proof. a line specified by two distinct points a and b is denoted as a. b). and assume that there are some scalars (λj )j∈(I−{k}) such that − → a− j λj − → = 0 . etc. First. the set V contains the line determined by a and b. V is an affine subspace iff for any two distinct points a.

a− j ia λj −→.2 is reasonable. . Given an affine space E. A similar result holds for affinely independent points. + . a0 am ) is linearly independent.6. . . .6.k}) j∈(I−{k}) and thus j∈(I−{i.2. Then. However. Given an affine space E. . a− k ia  λj  −→. u − → Lemma 2. . E . . k}) and j∈(I−{k}) λj = 0. . . . Recall that x= i=0 m i=0 m λi ai iff − x = a→ 0 m λi −→.6. a− j ia Definition 2. the family i=0 i=0 m −→ − −→ − (λ0 . Let x ∈ E. which implies that λj = 0 for all j ∈ (I − {k}). .k}) Since the family (−→)j∈(I−{i}) is linearly independent. then the λi are unique. . and assume that x = m λi ai . . a− k ia  → λi −i u i=1 → of the −i .1. λm ) such that x = i=0 λi ai is unique iff the family (a0 a1 . am ) be a family of m + 1 points in E. .2. a family (ai )i∈I of points in E is affinely independent if the family (−→)j∈(I−{i}) is linearly independent for some i ∈ I. Proof. λm ) such that −x = a→ 0 m λi −→ a− i 0a i=1 . it is a well known result of linear algebra that the family where (λ1 . 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 −→. a− j ia j∈(I−{i. + . − ) is that if a vector − is a linear combination u um v − = → v m a− j λj −→ −  ia  j∈(I−{k}) − → λj  −→ = 0 . a− i 0a i=1 λi = 1. let (a0 . E . since by Lemma 2. . where m λi = 1. A crucial property of linearly independent i → → → vectors (−1 . . . .k}) = j∈(I−{k}) λj −→ + a− i ka λj −→ −  a− j ia  = j∈(I−{i.6.3. we must have λj = 0 for all j ∈ a− j ia (I − {i. . We define affine independence as follows. − → Definition 2. . the independence of the family a− j a (−→)j∈(I−{i}) does not depend on the choice of ai .6.

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

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

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

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

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 ). c. d) is the parallelogram (a′ . Note that the condition 2. b′ . b. Let us consider one more example. The map x1 x2 → 1 1 1 3 x1 x2 + 3 0 . The image of the square (a. i∈I As a more concrete example.12. The effect of this shear on the square (a.12: The effect of a shear −−−− −−−→ λi b(b + h(vi )) = b + i∈I i∈I and λi (b + h(vi )) = b + i∈I λi h(vi ).38 CHAPTER 2. BASICS OF AFFINE GEOMETRY d′ c′ d c a′ a b′ b Figure 2.4. d′ ). b. It is a “shear” followed by a translation. c. c′ . the map x1 x2 → 1 2 0 1 x1 x2 + 3 1 defines an affine map in A2 .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 ). d) is shown in figure 2.

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

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

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

and b denote the column vectors of components (x1 . 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 (− →. bm ) in F being analogous. . can be expressed as x x − = x − → + · · · + x − →. letting x. . x x −− − − − − − − −→ −− → −−→ → Since − . .42 CHAPTER 2. . followed by a stretch (by a factor of 2 along the x-axis. . . The affine 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. xn ). A less trivial example is given by the affine map x1 x2 → 1 0 0 −1 x1 x2 + 1 . . yn ). . . Thus. . there is a point a0 such that f (a0 ) = a0 . . bn ). unless it has a fixed point.e. BASICS OF AFFINE GEOMETRY general case where an affine map f : E → F is represented with respect to two affine frames (a0 .. → − − x 1 a0 a1 n a0 an −−→ −− a0 f (a0 ) = b1 − → + · · · + bn − →. and (b1 . . −− − − − − − − −→ − − → − −− → → → a0 f (a0 + − ) = a0 f (a0 ) + f (− ) x x is equivalent to y = Ax + b. The vector b is the “translation part” of the affine map. . . . . . f is generally not a linear transformation. and a0 f (a0 + − ). 0 This map is a reflection about the x-axis followed by a translation along the x-axis. . a0 f (a0 ). we have x −− − − − − − − −→ − − → − −− → → → a0 f (a0 + − ) = a0 f (a0 ) + f (− ). followed by a . i. a− 1 a− n 0a 0a −− − − − − − − −→ → a0 f (a0 + − ) = y1 − → + · · · + yn − →. an ) in E and (b0 . Obviously. . and by a factor of 1/2 along the y-axis). Since − → → → f (a0 + − ) = f (a0 ) + f (− ) x x → → − for all − ∈ E . . . Note that b = 0 unless f (a0 ) = a0 . Affine maps do not always have a fixed point. . 0a 0a y. nonnull translations have no fixed point. (y1 . − →). . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60 CHAPTER 2. BASICS OF AFFINE GEOMETRY .

Part II Polynomial Curves and Spline Curves 61 .

62 .

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

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

represents a curve known as a twisted cubic. the function F : A2 → A3 defined such that F1 (u. the function F : A → A3 defined such that F1 (t) = t. v) = u2 − v 2 . it looks like a saddle (an infinite one!). in the 3D affine space A3 . For an example of a surface. F3 (u. represents what is known as an elliptic paraboloid . v) = 2u2 + v 2 . v) = v F3 (u. Roughly speaking. F2 (t) = t2 . represents what is known as a hyperbolic paraboloid .1. The function F : A2 → A3 defined such that F1 (u. 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. F2 (u.2: A hyperbolic paraboloid For a fancier example of a space curve. F2 (u. F3 (t) = t3 .3. v) = u. v) = v. v) = u. .

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

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

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

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

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

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

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

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

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

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

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

x2 (t) = a2 t + b2 . Observe that each function t → ai t + bi is affine. Given any affine frame (r. since every polynomial has roots (possibly complex numbers). where r = s. 3. Thus. the mismatch between the parametric representation and the implicit representation can be resolved.3. if we view our curves as the real trace of complex curves. F : A → A3 is itself an affine map. we must have t = (1 − λ)r + λs = r + λ(s − r). where i = 1. s) for A. every t ∈ A can be writen uniquely as t = (1 − λ)r + λs.8: A parabola Remark: In the degenerate case of a half line. The general philosophy is to linearize (or more exactly. let us begin with straight lines. 2. 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. multilinearize) polynomials. is of the form x1 (t) = a1 t + b1 . the mismatch goes away. In this case. The parametric definition of a straight line F : A → A3 . 3.3 First Encounter with Polar Forms (Blossoming) As a warm up. FIRST ENCOUNTER WITH POLAR FORMS (BLOSSOMING) 77 Figure 3. In fact.3. x3 (t) = a3 t + b3 . .

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

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

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

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

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

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

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

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

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

a2 b3 = a3 b2 . Case 1.5. we can always assume that either a3 = 0 (or b3 = 0). let ρ = a2 + b2 . since its leading term is ρt3 . we get y x1 (t) = a2 b3 − a3 b2 2 a1 b3 − a3 b1 a0 b3 − a3 b0 t + t+ . 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 . then x1 (t) is a constant and y1 (t) can be arbitrary. 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+ . y1 (t) = ρt3 + ρ ρ ρ The effect of this rotation is that the curve now “stands straight up” (since ρ > 0). ρ .12: A parabola (amounting to a rotation). If a3 = 0 and b3 = 0.3. POLYNOMIAL CURVES OF DEGREE 3 87 F (1/2) b0 b1 b2 Figure 3. If a1 b3 = a3 b1 also holds.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

j : bi.1).j = s − tj s−r bi. t2 . and computations of the coordinates of control points. Example 1.0 b1 = b1.2 b1. where 1 ≤ j ≤ 3.j−1 + tj − r s−r bi+1. Let us give a few examples of the computation of polar forms associated with parametric representation of cubics. Consider the plane cubic defined as follows: F1 (t) = 3t. t3 ) = 3t1 t2 t3 − (t1 + t2 + t3 ). t2 .2 b2.1 b2 = b2. The de Casteljau algorithm enjoys many nice properties that will be studied in chapter 5 (section 5.0 b3 = b3. We have f (t1 . INTRODUCTION TO POLYNOMIAL CURVES 0 b0 = b0. t3 ) = t1 + t2 + t3 . and 0 ≤ i ≤ 3 − j.0 We also have the following inductive formula for computing bi.j−1 . The polar forms of F1 (t) and F2 (t) are: f1 (t1 .0 1 b0. . 3. F2 (t) = 3t3 − 3t. there is very little difference 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.1 b0. t3 ) = b0.3 b1. Thus.9 Examples of Cubics Defined by Control Points We begin with example of plane cubics.3 . f2 (t1 .106 CHAPTER 3.1 2 3 b0. t2 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

142 CHAPTER 4. MULTIAFFINE MAPS AND POLAR FORMS .

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

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

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

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

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

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

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

s_. b = {}.1. r_. res}. 1. lseg = Append[lseg. {i. 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__}. {j. bb[[i+1]]. j. {i. j}. t_] := Block[ {bb = {cpoly}.1. b = {}. t]]. Do[ Do[ b = Append[b. t]].150 ´ CHAPTER 5. s. bb = b. r. 1. {b[[i . lseg = {}. m . (m = Length[bb] . m} ]. bb[[1]] ) ]. bb = b. m. res ) ]. s_. If[i > 1. (* computes the point F(t) and the line segments involved in computing F(t) using the de Casteljau algorithm *) decas[{cpoly__}. lerp[bb[[i]]. {j. Do[ Do[ b = Append[b. 1.j + 1} ]. r. m} ]. i. t_] := Block[ {bb = {cpoly}. bb[[1]]]. (m = Length[bb] . b[[i]]}]] . .1]]. res := Append[lseg. lerp[bb[[i]]. r_. bb[[i+1]]. b = {}. i. b = {}. The following function pdecas creates a list consisting of Mathematica line segments and of the point of the curve. m. ready for display. s. 1. m .j + 1} ].

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

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

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

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

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

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

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

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

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

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

1 iteration .2. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 161 Figure 5.5.5: Subdivision.

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

7: Subdivision. 3 iterations . SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 163 Figure 5.2.5.

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

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

10: Subdivision. 6 iterations .166 ´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.

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

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

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

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.

Definition 5.3.1. A sequence u1, . . . , u2m of numbers ui ∈ R is progressive iff 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 define 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 difficult, 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 first 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 coefficients of f (u1, u2 ) and f (u3 , u4 ) are symmetric in t1 and t2 , but it is certainly not obvious that the coefficient of f (u2 , u3 ) is symmetric in t1 and t2 . Actually, by doing more calculations, it can be verified 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 affine space E, there is a unique polynomial curve F : A → E of degree m, whose polar form f : Am → E satisfies 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-defined because the sequence u1, . . . , u2m is progressive. The existence of a curve is much more difficult 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 affine 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 affine polynomial functions F : Am → E will be given in section 10.5, as an application of the homogenization of an affine 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 find 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 affine space, the derivative DF (a) of F at a − → is a vector in E , and not a point in E. Since coefficients 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 define 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 affine 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 specified 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) defined 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 specified 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 Affine 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 definition.

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

Definition 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, iff 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 definition 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 affine 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, iff 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, iff 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 defined 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.

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

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

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

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

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

or any other available software in which graphics primitives are available. Problem 9 (30 pts). 5 1 5 5 H2 (t) = B (t). for t = 1/2). Hermite interpolants were defined with respect to the interval [0. over [0. 0 ≤ i ≤ 3. 1] in terms of their control points. Problem 15 (30 pts). 0 ≤ i ≤ 5. over [0. What if F and G have a common component? What if F and G have different degrees? Problem 14 (30 pts). Problem 10 (20 pts). Problem 12 (20 pts). 185 Compute explicitly the polynomials Hi5 (t).6. Use your implementation of the subdivision version of the Casteljau algorithm to experiment with cubic and quintic Hermite interpolants. Draw diagrams showing C 3 -continuity for curves of degree 4.5. 1 5 5 5 H1 (t) = (B1 (t) + 2B2 (t)). Draw diagrams showing C 5 -continuity . Plot the Hermite polynomials Hi5 (t). 1]. PROBLEMS where 5 5 5 5 H0 (t) = B0 (t) + B1 (t) + B2 (t). Plot the Hermite polynomials Hi3 (t). s]. Draw diagrams showing C 4 -continuity for curves of degree 5. 1]. Assume that two Bezier curve segments F and G are defined over [0. What happens if the affine 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). 0 ≤ i ≤ 5. H3 (t) = 20 3 1 5 5 5 H4 (t) = − (2B3 (t) + B4 (t)). 5 5 5 5 5 H5 (t) = B3 (t) + B4 (t) + B5 (t). You may use Mathematica. 1]. Problem 13 (30 pts). Try many different cases. over some interval [r. Show that they are linearly independent. Write a computer program implementing the progressive version of the de Casteljau algorithm. Use the de Casteljau algorithm to design a curve of degree four whose third control point b2 belongs to the curve (in fact. 20 2 1 5 5 B (t). The polynomials Hi5 (t) are called the quintic Hermite polynomials. Give a method for finding all the intersection points between the curve segments F and G.

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

We know that it takes m(m+1) 2 steps to compute a point on the curve. this may be too costly. In order to 187 . we will have to compute control points from points on the curve. For the above reasons. We also discuss interpolation using B-splines. Each segment of the curve will be controlled by some small subpolygon of the global polygon. de Boor Control Points Polynomial curves have many virtues for CAGD.1 Introduction: Knot Sequences. 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. Given a control polygon containing m sides (m + 1 vertices). and thus impractical. 3. When m is large. and the segments will be joined together in some smooth fashion. This leads to systems of linear equations. the degree of the polynomial curve determined by these control points is m. and briefly present the more traditional approach to B-splines in terms of basis functions. people thought about segmenting a curve specified by a complex control polygon into smaller and more manageable segments. 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. in the sense that moving a control point only affects a small region of the curve. Moving any control point will affect the entire curve. If we are interested in interpolation rather than just approximating a shape. In this chapter. It would be desirable to have better local control. This is the idea behind splines. 2.Chapter 6 B-Spline Curves 6. as well as the useful knot insertion algorithm. and solving such a system can be impractical when the degree of the curve is large.

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

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

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

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

. 1.14. 15. 5. . . 11.6. . 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.1: Part of a cubic spline with knot sequence .3. . 2. . Thick segments are images of [6. 8]. . . 8.9.192 CHAPTER 6.

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

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

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

2.2. and [9. d2 . 11] (previously [9. 5. 5] and [5. [5. we see how the knot multiplicity can be used to control the degree of continuity of joins between curve segments. 8. 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 are also shrinking the corresponding curve segment to a single point. We can now provide a better intuition for the use of multiple knots. 8] to the empty interval. Open B-Spline Curves We begin with knot sequences. 9] (previously [8. 5] this will have the effect that the corresponding curve segment shrinks to a single point. 6. . . . 5] and [5. say [5. . we will denote knots as points of the real affine line A. d6 . d5 . 6]. . 8] (which used to be [6. Going back to the previous example of the (portion of a) knot sequence . 3. the curve segments corresponding to the intervals [3. A knot sequence is a bi-infinite nondecreasing sequence uk k∈Z of points uk ∈ A (i.4). 11]. Definition 6.1. to the empty interval [5. 1. . and in fact. . d4 . . The extreme is to squeeze one more interval. . . 6. as u ∈ A (as explained in section 5. we may not even have C 1 -continuity. 8]) will be lower. 9]). d1 . 9.e. uk ≤ uk+1 for all k ∈ Z). 9]) will join with even less continuity. This time. we can see that these control points determine five curve segments.3 shows the construction of the B´zier control points of the five B´zier segments forming e e this part of the spline. . As usual. 6]. 11]) may not even join at the point associated with the knot 5. If we “squeeze” any of these intervals. and the result will be that the degree of continuity of the junction between the curve segments associated with [3. 8]. . 11. meaning that the tangents may not agree. now that 5 is a triple knot. d7 .196 CHAPTER 6.3.2 Infinite Knot Sequences. say [5. d3 . 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). 9]. . 14. and now. such that every knot in the sequence has finitely many . 5]. corresponding to the intervals [3. Figure 6. 15. 9] (previously [8. B-SPLINE CURVES We recognize the progressive version of the de Casteljau algorithm presented in section 5. [8. [6. in the sense that the curve segments associated with [3. If we also squeeze the interval [5. 5] and [5. and the (portion of a) sequence of control points . Thus. . we may even have a discontinuity at the parameter value 5. to distinguish between real numbers in R and points in A. d8 .

. . 1. . . 15. 11. 8. . 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.6.3: Part of a cubic spline with knot sequence . 5. and some of its B´zier control points e .9.3. .6. 2..2.14. INFINITE KNOT SEQUENCES.

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

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

0. . or equivalently. . the polar values are denoted as triplets of consecutive knots ui ui+1 ui+2 . . For simplicity of notation. . . . 6. .2. 3.2. we often say that the spline has floating ends. 4. they should be denoted as fk (ui . Figure 6. By lemma 5. 5. B-SPLINE CURVES 456 567 012 234 345 Figure 6. 1. .4. when in fact. for some appropriate k. 5. .200 123 CHAPTER 6. 0. 2. .5. The following figure represents a part of a cubic spline based on the uniform knot sequence .6. 7. ui+2 ). 1. 3. When considering part of a spline curve obtained by restricting our attention to a finite subsequence of an infinite knot sequence. ui+1 . iff 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 . the curve segments Fi and Fi+n join with continuity C m−n at q = ui+1 (where 1 ≤ n ≤ m + 1). . 7. .5 shows the construction of the control points for the three B´zier curve segments e constituting this part of the spline (with floating ends).4: Part of a cubic spline with knot sequence . iff the polar forms fi : Am → E and fi+n : Am → E agree on all multisets (supermultisets) of . .

. 5.4.5: Construction of part of a cubic spline with knot sequence .2. . 7. 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. .2.6. 1. . .6. . INFINITE KNOT SEQUENCES. . 0. 3.

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

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

u) and h(v. u) CHAPTER 6. v. v) = f (s. s) g = k(u. The following figure illustrates this situation. . u.204 f = g = k(s. Let us now go back to our original figure showing part of a cubic spline corresponding to the knot sequence . k(v. s. g(u. u). and the two curve segments between f (s. only with C 1 -continuity. in the limit. t) = g(u. u) on the line segment between f (s. r). r) Figure 6. t). and between k(v. with C 2 -continuity at the knots s. and if we let u and v converge to a common value. v. u. f (s. u. s). v. u. and k(t. v. f (r. t). . t) (since the polar form h vanishes). 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. u) f = g(s. u) f = g(r. t. s) g = k(u. t) f = g(r.7: Part of a cubic spline with C 1 -continuity at the knot u f (r. . f (r. v). end up joining at the new point g(u. r. the curve segment between g(u. t) f (r. u. s) f = g(r. r. u). s. s. r. t) do not change. r. . s. t. r. u. t. that is. t). . and let us see what happens when the knot s becomes a knot of multiplicity 3. u. u. u) with different acceleration vectors. s. t. u. v) and k(t. . v) (displayed as a dashed curve) is contracted to the single point g(u. u. t. B-SPLINE CURVES f = g(s. u. u) and g(u. v. s) and g(u. u. . u. t) k(u. u) k(t. t. v. s. s.

2. s) (since the polar forms g and h vanish). only with C 0 -continuity. f (r. v) and k(t. f (s. . 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. u) f = g = h(s. t) end up joining at f (s. s) and between k(v.3 tells us about the values of polar forms on multisets of arguments of the form {uk+1 . s. t. v) h = k(v. u. if we assume that the points labeled f (r. u. 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. s. v. t) h = k(v. . v. s). As in the previous case. t) k(t. g(u. v. that is. t) do not change. and v converge to a common value. in the limit. s. u. s. u. v. r) and f (s. v) (displayed as dashed curves) are contracted to the single point f (s. u. s. and if we let s. v) = f (s. u. s) f = g(r. uk+m }.2. v) = f (s. v) g = h = k(u. s) with different tangents. v). v. INFINITE KNOT SEQUENCES. u. v. t. OPEN B-SPLINE CURVES f = g = h = k(s. . t. v) f = g = h(s. s. t. . the two curve segments between f (s. s) and g(u. u) and between g(u. and the two curve segments between f (r. v) 205 f = g(r. u) f = g(s. r. The following figure illustrates this situation. t). s. and k(t. u) f = g = h(r. u) g = h(u. f (r. s. t). s. u. u. s) f (r. u. r) Figure 6. u. let us see what lemma 6.8: Part of a cubic spline with C 2 -continuity at the knots s. t. r. t) h = k(v. r. t) g = h = k(u. . u) and h(v. s. s. u). If F is a spline curve of degree m. k(v. s) g = h = k(u. r). r. v.6. r.

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

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

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

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

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

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

6.2. 3.1.4. 6 . B-SPLINE CURVES 123 456 566 112 666 111 234 345 Figure 6. 5. 6. 1.212 CHAPTER 6.10: A cubic spline with knot sequence 1.6. 1.

5. 6 . 1.6.6.6. FINITE KNOT SEQUENCES.4. 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.3. 6. 1.1.11: Construction of a cubic spline with knot sequence 1.2. 3.

T ∈ N. the nodes labeled 112. We now consider closed B-spline curves over cyclic knot sequences. 4. 10. 6. The next two figures show a cubic spline with knot sequence 0. 7.12 shows another cubic spline with knot sequence 0. For example. 1. 0. the corresponding part of the spline is also pulled towards the control polygon.1. 7. 0. 3/4. 0. Since the knot sequence is non-uniform. 9. and the construction of the control points of the B´zier curves that constitute the spline. 2. Figure 6. where L. cycle length N. Closed (Cyclic) B-Spline Curves First. we define cyclic knot sequences. 8. uj+N . 1/3. 12. 11. 10 with intervening double knot 8.13 shows the construction of the control points for the B´zier curve segments e constituting the previous spline. 8. 3.e. 0. 7. 0. 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-infinite nondecreasing sequence uk k∈Z of points uk ∈ A (i. 2. 2/3. 223. 13. .4 Cyclic Knot Sequences. 2/3. 9. 1. 7. 0. 5. 667. the interpolation ratios vary. 1. 566. 335. e The example in figure 6.214 CHAPTER 6. 233. and period size T . 556. 10. 3. and thus. 122. 5. 0. L ≥ 2. . 5. 1/4. such that there is some subsequence uj+1.4. 677. correspond to the ratios 1/3. 555. 11. 3/4. 6. . 0. 10. 2/3. 11. 355. uk ≤ uk+1 for all k ∈ Z). Definition 6. 1/2. 13. 13. B-SPLINE CURVES Figure 6. A cyclic knot sequence of period L. 7. 222.16 shows a cubic spline based on the non-uniform knot sequence 0. 1/4. 13. 4. 10. 1/2. 3. 0. and 666. 6. 1/2. 1/2. N. 7. 333. and N ≥ L. 7. 6. 1/3. 2. 8.

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

3. 5. 0. 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. 6. 2. 0. 0. 7.13: Construction of a cubic spline with knot sequence 0. 7 . 7.216 CHAPTER 6. 7. 4. 1.

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, iff every knot has multiplicity at most m. As before, a knot sequence (finite, or cyclic) is uniform iff uk+1 = uk + h, for some fixed 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 define 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 define 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 Definition 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 affine 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 definition 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 , satisfies 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 defined 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 figure 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 figure 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 modified to hold for finite 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 finite 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 affine 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 finite 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-infinite periodic sequence dk k∈Z of period N of points in some affine 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 finite 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

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

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.228 CHAPTER 6.22: Construction of another closed cubic spline .

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

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

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

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

6. uI+k ) associated with the sequences . where r is the multiplicity of the knot uI when t = uI .m−r . and r = 0 when uI < t < uI+1 (1 ≤ r ≤ m). and in the latter case.6. F (t) := dI+1−r.j−1 + um+i−j − ui−1 t − ui−1 di. .j = where 1 ≤ j ≤ m − r.j := um+i−j −t um+i−j −ui−1 di−1.j−1 endfor endfor. . This is the de Boor algorithm. and with di. 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. if t = uI then r := multiplicity(uI ) else r := 0 endif.j−1.j as dj . and write our di. when I − m + 1 ≤ i ≤ I + 1 − r. Knot insertion can be used either to construct new control points. . THE DE BOOR ALGORITHM AND KNOT INSERTION 233 di. and even e for computing a point on a spline curve. the effect will be to increase the degree of multiplicity of w by 1. for j := 1 to m − r do for i := I − m + j + 1 to I + 1 − r do di. um+i−j − ui−1 begin I = max{k | uk ≤ t < uk+1 }.j−1 + t−ui−1 um+i−j −ui−1 di.0 = di−1 . for i := I − m + 1 to I + 1 − r do di. 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. B´zier control points associated with the curve segments forming a spline curve. inserting the knot w will affect the m − 1 − r control points f (uI−m+k+1 . .0 := di−1 endfor.m−r end 6. Note that other books often use a superscript for the “round index” j.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. I − m + j + 1 ≤ i ≤ I + 1 − r.

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

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

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

7 Polar forms of B-Splines Our multiaffine 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. Strong convex hull property. given a straight line of the form l(u) = au + b. This is a variation diminishing property. the resulting spline curve reproduces the straight line. where u0 and uN +1 are of multiplicity m + 1. this affects m+1 curve segments. u1 . u2 . uN +1 . a spline curve passes through the first and the last de Boor control points. for which the variation diminishing e property has been established. uN .7. and we learned that the current point F (t) on a spline curve F can be expressed as an affine combination of its de Boor control points. In case of a finite knot sequence u0 . . .6. uN −1 . m where 0 ≤ i ≤ N + m. This property is inherited from the corresponding property of the B´zier e segments. uN +1 . uN −1 . Variation diminishing property. In the traditional theory of B´zier curves. . At that stage. Linear Precision. since it consists in affine interpolation steps. . which we now briefly e review. uN . The coefficients of the de Boor points can be viewed as real functions of the real parameter t. An easy way to prove this property is to use knot insertion. Every point on the spline curve lies in the convex hull of no more than m + 1 nearby de Boor control points. u1 . . . where u0 and uN +1 are of multiplicity m + 1. Endpoint interpolation. if we read off 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 ). The spline curve is not intersected by any straight line more often that is the control polygon. Affine invariance. u2 . 6. Local control. Insert every knot until it has multiplicity m. . a B´zier curve e e is viewed as the result of blending together its B´zier control points using the Bernstein e . the control polygon consists of B´zier subpolygons. Given a finite knot sequence u0 . If one of de Boor control points is changed.

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

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

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

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.25: The computation lattice underlying the de Boor algorithm when m = 3 .7.

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

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

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

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

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

ui+1 − ui−1 ui+1 − ui−1 ui+1 − ui−1 xi = with (ui+1 − ui )2 .6. βi = ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 . it is easily verified that we get α1 β1 γ1 d0 + d1 + d2 . = uN − uN −2 uN − uN −2 uN − uN −2 x1 = xN −1 .29: Computation of xi from di−1 .1 : ui ui ui+1 di−1 : ui−2 ui−1 ui di+1 : ui ui+1 ui+2 Figure 6.8.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. di . γi = ui+2 − ui−1 αi = At the end points. 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 ) + . we get αi βi γi di−1 + di + di+1 .

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

since the condition x0 = xN implies that d0 = dN . .. 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       . when ui < ui+1 for all i. For example. for all i. where . xN −1 . N. . see Farin [32]. 0 ≤ i ≤ N − 1. so that we can write a system of N linear equations in the N unknowns d0 . . r0 6x1 6x2 . . . . 0 ≤ i ≤ N − 1.  =  . .. . uN . such that F (ui ) = xi . . . . .   .8. this can be shown by expressing each spline segment in terms of the Hermite polynomials. . with ui < ui+1 for all i. . We can also solve the problem of finding a closed interpolating spline curve. . . dN −1 .   . . . for all k ∈ Z. and a sequence of N +1 knots u0 . find a C 2 closed cubic spline curve F . . .   .  . and such that uk+N = uk + uN − u0 . which means that we consider the infinite cyclic knot sequence uk k∈Z which agrees with u0 .   0 1 4 1   1 7 2 1                       =      dN −2  6xN −2      3  dN −1  6xN −1  2 rN 1 dN d0 d1 d2 .   . and we observe that we are now looking for N de Boor control points d0 . Writing the C 2 conditions leads to a tridiagonal system which is diagonally dominant when the knot sequence is strictly increasing. . 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. we consider the cyclic knot sequence determined by the N +1 knots u0 . formulated as follows.    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. . . CUBIC SPLINE INTERPOLATION      249 3 7 1 2 2  1 4 1 0   . This time. . .  . . . that is. For details. dN −1 . .6. . . uN .  . where we let xN = x0 . . . Problem 2: Given N data points x0 .

250 CHAPTER 6. if we let ∆i = ui+1 −ui . uN − uN −2 + u1 − u0 The system is no longer tridiagonal. we also get α0 = β0 = γ0 = α1 = β1 = γ1 = αN −1 = βN −1 = γN −1 = (u1 − u0 )2 . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) βi = + . but it can still be solved efficiently. ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 γi = . and for all i. βi . uN − uN −1 + u2 − u0 u3 − u0 (u1 − u0 )2 . u3 − u0 (uN − uN −1 )2 . since the knot sequence is cyclic. uN − uN −1 + u2 − u0 (u2 − u1 )(uN − uN −1 + u1 − u0 ) (u1 − u0 )(u3 − u1 ) + . B-SPLINE CURVES for all i. The coefficients αi . r0 = (uN − uN −1 + u1 − u0 ) x0 . ui+2 − ui−1 Since the knot sequence is cyclic. uN − uN −2 + u1 − u0 (u1 − u0 )(uN − uN −2 ) (uN − uN −1 )(u2 − u0 ) + . uN − uN −1 + u2 − u0 (u2 − u1 )2 . 2 ≤ i ≤ N − 2. we have αi = (ui+1 − ui )2 . uN − uN −2 + u1 − u0 uN − uN −1 + u2 − u0 (uN − uN −1 )2 . uN − uN −3 (uN − uN −1 )(uN −1 − uN −3 ) (uN −1 − uN −2)(uN − uN −1 + u1 − u0 ) + . It is immediately verified . uN − uN −3 uN − uN −2 + u1 − u0 (uN −1 − uN −2 )2 . γi can be written in a uniform fashion for both the open and the closed interpolating C 2 cubic spline curves. 1 ≤ i ≤ N − 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 ). (a) The first method consists in specifying the tangent vectors m0 and mN at x0 and xN . 3 uN − uN −1 mN . ∆i−2 + ∆i−1 + ∆i ∆i−1 + ∆i + ∆i+1 ∆2 i−1 . (d) Finally. several end conditions have been proposed to determine r0 = d0 and rN = dN . and we quickly review these conditions. In the case of an open C 2 cubic spline interpolant. In this method. x2 . the method consists in picking the tangent vector to this parabola at x0 . This amounts to requiring that D3 F is continuous at u1 and at uN −1 . ∆−1 = ∆N = 0.6. which forces the first two cubic segments to merge into a single cubic segment and similarly for the last two cubic segments. we have the not-a-knot condition. x1 . . u1 − u0 u1 − u0 m0 . γi = ∆i−1 + ∆i + ∆i+1 251 where in the case of an open spline curve.8. 3 One specific method is the Bessel end condition. usually called the clamped condition method. ∆−2 = ∆N −2 . (c) Another method is the natural end condition. If we consider the parabola interpolating the first three data points x0 . and in the case of a closed spline curve. xN −1 . we require that D2 F (u0 ) = D2 F (u1 ) and D2 F (uN −1 ) = D2 F (uN ). ∆i−2 + ∆i−1 + ∆i ∆i (∆i−2 + ∆i−1 ) ∆i−1 (∆i + ∆i+1 ) βi = + . we require that − → D2F (u0 ) = D2 F (uN ) = 0 . xN . (b) Another method is the quadratic end condition. ∆−1 = ∆N −1 . CUBIC SPLINE INTERPOLATION that we have αi = ∆2 i . A similar selection is made using the parabola interpolating the last three points xN −2 . In this method.

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

Determine the tangent at F (5/4). 3).6. and whose knot sequence is uniform and consists of simple knots. Consider the following quadratic spline F with finite knot sequence 0. (iii) Which knot should be inserted to that (−3/4. d4 = (3. 3. 2. Repeat the problem for a uniform knot sequence in which all knots have multiplicity 2. 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). 5. 4. and 33. and with the de Boor control points: d−2 = (−6. 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). Show that if a B-spline curve consisting of quadratic curve segments (m = 2) has an inflexion point. 5. 5). Implement the de Boor algorithm for finite and closed splines. d0 = (−3. Find the B´zier control points of a closed spline of degree 4 whose e control polygon consists of the edges of a square.9. 444. 333.5 three times. d−1 = (−5. (ii) Compute F (5/4) by repeated knot insertion. labeled 34. (i) Compute the B´zier points corresponding to 11. 5. 2). PROBLEMS 253 (i) Compute the B´zier points corresponding to 222. labeled 01. 4. 0). Implement the knot insertion algorithm. 0. then this point is associated with a knot. labeled 00.5. labeled 44. . 1). 3). d2 = (0. 3/2) becomes a control point? Problem 4 (30 pts). d1 = (−1. Problem 5 (50 pts). d5 = (1. 2). labeled 55. Design a subdivision version of the de Boor algorithm Problem 6 (30 pts). labeled 45. Problem 2 (10 pts). 1. 22. Contruct (geometrically) the tangent at t = 3. Give a geometric construction of the point F (3. 0. d3 = (3. −1). labeled 23. Problem 3 (30 pts). (ii) Insert the knot 3. labeled 12.5) on the spline curve. and 555.

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

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

where αi . . xn ) and (y1 . 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. Study the interpolation problem when the end conditions are to prescribe the first and the second derivative at x0 .8 (Problem 1 and Problem 2). 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 . Prove that the matrix below is invertible. (i) Show that interpolating cubic B-splines reproduce straight lines. (ii) Prove a similar result for quadratic and cubic polynomial curves. Show that n ai j = 1 j=1 for every i. .. . .256 CHAPTER 6. Problem 16 (30 pts). say n yi = j=1 ai j xj . i. βi are defined in section 6. γi . . .   . B-SPLINE CURVES for all i. 1 ≤ i ≤ N − 1.e. and assume that each point yi is an affine combination of the points xj . Let A = (ai j ) be the n × n matrix expressing the yi in terms of the xj .. provided that the end conditions are clamped. 1 ≤ i ≤ n. Prove that if A is invertible.    0 1 4 1    7  1 2 3 2 1 Problem 14 (40 pts). Problem 13 (20 pts). (b) Quadratic end condition (c) Natural end condition (d) Not-a-knot condition. yn ) be two sequences of n points (say in A3 ). . and that the tangents are read off the straight line.   1 3 7 1  2 2   1 4 1  0     . . Problem 15 (20 pts). .

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

B-SPLINE CURVES .258 CHAPTER 6.

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

260 .

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

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

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

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

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

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

(U2 . (U2 . . t) 1 ( . s. F3 (U. (0. . 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 . 0. 0) 3 f (r. V2 ). V ) = U 2 − V 2 .7. ) 3 3 3 f (s. s. ) 3 3 f (s. r. t) 1 (0. V1 ). V2 ). s. we find the following 10 control points: f1 ((U1 . 1) 3 f (r. 0. V1 ). 0) 3 f (t. (U3 . and defined such that F1 (U. s) 2 (0. . POLARIZING POLYNOMIAL SURFACES Example 3. V ) = U 2 − V 2 . s) 2 2 1 ( . 3 3 and evaluating these polar forms for argument pairs (U1 . s.1. (U2 . V2 ). 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 . .− ) 3 3 3 f (s. . t) 2 1 (0. and (U3 . 0) f (r. 0). V1 ). r) 2 ( . t) (0. 0. Example 4. V ) = U. s) 2 2 1 ( . . −1) 3 Let us consider two more examples. V3 )) = − . V ) = V. 1) and (0. t) 2 1 ( . ranging over (1. V3 )) = f (r. V ) = V − + U 2V 3 F3 (U. F1 (U. Let F be the surface considered as a total degree surface. 0). F2 (U. t. V3 ). V1 ). t. . t. V2 ). (U3 . r. 267 Let us also find the polar forms of the Enneper’s surface. considered as a total degree surface (of degree 3): U3 + UV 2 3 V3 F2 (U. r. 0) 3 3 f (r. − ) 3 3 f (r. 0. (U3 . t) 1 1 ( . (U2 .

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

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

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

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

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

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

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

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

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

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

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

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

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

starting from the left lower corner. .1 is identical to the class of polynomial surfaces. . a) = m (i.1.4. j. For example. . . . .k (λ.J. . k )(i.1 is a polynomial surface of total degree m in polar form as in definition 7. s. j. . . k . .. . |I| |J| |K| where ai = λi r + µi s + νi t. t). t. .2. . . the class of polynomial surfaces of total degree m in polar form as in definition 7. j. k) ∈ ∆m . and 1 ≤ i ≤ m.2.4. . can be thought of as a triangular grid of points in P. . . s.k)∈∆m of (m+1)(m+2) points in E. ν) f (r. r. . Given a reference triangle ∆rst in the affine plane P. as in definition 7. µ. i j k where a = λr + µs + νt. . i j k for all (i. . . .4. Indeed. A point F (a) on the surface m! m F can be expressed in terms of the Bernstein polynomials Bi. . . . TOTAL DEGREE SURFACES IN POLAR FORM 281 Lemma 7. .. also starting from the left lower corner. s. when m = 5. . j. . k) ∈ N3 | i + j + k = m}. j.. or B´zier net. . s. . Note that the points in e ∆m = {(i. k)∈∆m m Bi. The control net N = (bi. A family N = (bi. 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. Furthermore. defined by a symmetric m-affine polar form f : P m → E.k)∈∆m .4.k)∈∆m of (m+1)(m+2) points in E.1. . k )(i. as F (a) = f (a. .j. f is given by the expression f (a1 . . is called a (triangular) control 2 net. . t.j.7. t). t. We can show that when E is of finite dimension. . with λ + µ + ν = 1. . j.1.k (U. . am ) = I∪J∪K={1.. . s. . k )(i. . . s.j. . we have already shown using polarization.m} I. there is a unique surface F : P → E of total degree 2 m.j. simply apply lemma 4.3. . For the converse.K pairwise disjoint i∈I λi j∈J µj k∈K νk f (r. with λi + µi + νi = 1. t) = bi. that a polynomial surface according to definition 7. and j be the column index. . j. such that f (r. r. r.j.1. T ) = i!j!k! U i V j T k . V. given any family (bi.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

We rediscovered this algorithm. 1/2. we split ∆art into the two triangles ∆bat and ∆bar. o However. and c = (1/2. b = (1/2. where a = (0. we need the barycentric coordinates of b with respect to the triangle ∆art. the nets N art. This algorithm is also sketched in B¨hm [12] (see pages o 348-349).8. which turns out (0. Then. ∆bac. B¨hm [12]. Boehm and Farin [9]. N brt. 1/2. 1/2). 1/2. as shown in the diagram below: The first step is to compute the control net for the reference triangle ∆bat. rt and rs respectively. In the first step. 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]. This can be done using two steps. which is more expensive than the standard 3-dimensional version. and Kahman [10]. and Seidel [75] (see also Boehm. and ∆sca. the nets N bat. 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. The subdivision strategy that we will follow is to divide the reference triangle ∆rst into four subtriangles ∆abt. Farin. are the middle points of the sides st. some of these authors were not particularly concerned with minimizing the number of calls to the de Casteljau algorithm. 1/2. N ast.1. ∆crb. 1/2). split the triangle ∆rst into the two triangles ∆art and ∆ars. and present a variant of it below. and we throw away N ast (which is degenerate anyway). and N ars are obtained. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s 303 sca a bac abt crb c t b r Figure 8. and N bar are obtained. and we throw away N brt. 0). For this. 1/2) is the middle of st. where a = (0. Using the function sdecas3 (with a = (0. 0. and Filip [34]). 1/2. . and they use a version of the de Casteljau algorithm computing a 5-dimensional simplex of polar values. Using the function sdecas3.

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

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

1. barcor2 = {0. stop. s. res}.306 CHAPTER 8. res = res + i] ]. stop = 1. m]. m. 1}. i. res = 1. i = i + 1. 1/2}. debug]. res ) ]. 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 *) *) *) *) . 1/2. *) barcor1 = {-1.1. barcor2]. (ll = Length[cc]. newnet. and crb *) *) *) *) *) mainsubdecas4[{net__}. art = newnet[[1]]. newnet = sdecas3[cc. stop = 0. i = 1. res = i . debug_] := Block[ {cc = {net}. 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. ll. While[i <= s && stop === 1. (* (* (* (* (* Subdivides into four subpatches. newnet = nsubdecas4[art. oldm_. ars. bac. ars = newnet[[3]]. m. If[(res === ll). art. (* (* (* (* Subdivides into four subpatches. 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. sca. barcor2}. m. s = N[Sqrt[2 * ll]]. (* Print[" calling mainsubdecas4 with netsize = ". (m = netsize[cc]. ars. newnet ) ].

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

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

{4. 2}. 0. 3. {3. 1 iteration {1.7: Subdivision. {5. After only three subdivision steps. 0. 5}. 2. {3. 2}. Another example of a cubic patch specified by the control net sink is shown below. the triangulation approximates the surface patch very well. 2}. 2}. {2. 0. 0}.8. . 0. 0}}. {2. 2. {4. 2}.1. 2. 6. We show the output of the subdivision algorithm for n = 1. 0}. {6. 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. 4. 4. sink = {{0. 2.

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

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

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

5 0 -0.10: Subdivision.8.5 1 z 0.1. 3 iterations .5 0 2 x 4 60 2 6 4 y Figure 8. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 313 1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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 specified 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 affine bases [a, b] and [c, d], from a control net N over some affine bases [r1 , s1 ] and [r2 , s2 ]. If d = r2 and b = r1 , we first 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 finally 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 specified 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 final 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 defined 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 defined 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: first 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] defined 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 specified 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 defined by a triangular control net N = (bi, j, k )(i,j,k)∈∆m , w.r.t. the affine frame ∆rst. For any n points pi = ui r + vi s + wi t (where ui + vi + wi = 1), define 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 define 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 defined by the property that
p q

satisfies

(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 define 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 specified by its control points e (c0 , . . . , cm ) (where each ci is inside the grid defined by p,q ).

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

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

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

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

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

q. q. fA. images of the diamond (p. p. r). r. p.B (p. p. q. but this is not enough to ensure C 2 continuity. q. 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. Note that the polar values fA (p. s). p.B (p. fA. s) fA.B (p. s). p) Figure 9. the vertices of each of these diamonds must be coplanar. p. s).B (q. s)). r) = fB (p. s) = fB (p. denoting these common polar values as fA.B (p. r).B (s. r). s) are not control points of the original nets. p. r) fB (q.3: Control nets of cubic surfaces joining with C 2 continuity Again. r) and fA (p. q. q. r) fA. q. (fA. r)). fA. q. In particular. fA. fA.B (s. . fA.342CHAPTER 9. q. q) fA (p. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES fA. p.B (q. q. p. For example.B (r.B (·. r) fA.B (r. s). p. p.B (p. s) fA.B (p. s) fA. ·.B (q. p. ·).B (q. note that these polar values naturally form the vertices of four diamonds. the left two diamonds are (fA.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 . . .. define the sequences   3 1 1 M =  . . as observed earlier.. . Note that these sequences are even! We also define the sequence P l as P l = (pl . . . 0. Then. his F (f ) and our f are identical. pl surrounding v l also tend to the same limit as q l . we get Pl = M− 5 A ⋆ P l−1 + Ql . With these remarks in mind. From these equations. To do so. n n .. .9. . 0 n−1 and treat q l and v l as constant sequences Ql and V l of length n. 0. . . what saves his argument is that for even sequences. even though Loop appears to be using an incorrect definition of the Fourier transform. pl ). . 8 q = i=0 l 1 l p n i is rewritten as Ql = A ⋆ P l . 8 8 8 pl = i n−3 A= 1 1 . . 8 . SUBDIVISION SURFACES 365 Neverthless. both of length n.4. we go back to Loop’s proof that the ordinary vertices pl . 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. 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 .. .

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

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

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

Prove that the Fourier transform of Loop’s matrix R= M− 5 A 8 . . . e−ik2π/n . . 0 ≤ k ≤ n − 1. . 0 ≤ j ≤ n − 1. . 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) . 1. which means that f−j = fj for all j ∈ Z (viewed as a periodic sequence). or equivalently. Problem 7 (30 pts). . The matrix Fn is called a Fourier matrix . (1) Letting Fn = e−i2πkl/n 0≤k≤n−1 0≤l≤n−1 be the conjugate of Fn . prove that the Fourier transform f is expressed as n−1 f (k) = j=0 fj cos (2πjk/n) . for every k. . . the standard k-th row now being indexed by k − 1 and the standard l-th column now being indexed by l − 1. assuming that we index the entries in Fn over [0. each patch is defined by 3(n + 1)2 − 2 control points. . . . prove that Fn Fn = Fn Fn = n In . . . 1. n − 1]. . PROBLEMS 369 are independent. . e−i2π/n . n − 1] × [0. (3) If the sequence f = (f0 . and that in this case. Let Fn be the symmetric n × n-matrix (with complex coefficients) Fn = ei2πkl/n 0≤k≤n−1 0≤l≤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. . . fn−1 ) is even. Problem 8 (10 pts). e−i(n−1)2π/n . (2) Prove that H(f )Fn = Fn f . . .5. Hint. .9. that fn−j = fj for all j.

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

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

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

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

a− 1 2a λ1 λ1 +λ2 where λ1 − → denotes the translation associated with the vector λ1 − →. λ1 + a2 . → Given a translation defined by − and a dilatation a. λ1 + λ2 . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a1 . xa → xa u → − → → and so. 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. u We can now use the definition of the above operations to state the following lemma. the points a1 and a2 assigned the weights have a barycenter λ1 λ2 b= a1 + a2 . since ab = λ−1 − . since λ = 0. . λ . λ1 + λ2 λ1 + λ2 and λ2 λ1 +λ2 the dilatation associated with the point b and the scalar λ1 + λ2 . a− 1 a− 1 2a 2a (2) λ1 + λ2 = 0. we have u → u → → λ− + − = λ(− + λ−1 − ). λ2 = λ2 λ1 a1 + a2 . u → → → → The sum of two translations − and − is of course defined as the translation − + − . λ2 = λ1 − →. and we let → → a. u u → the dilatation of center a + λ−1 − and ratio λ. λ + − = a + λ−1 − . λ = a. λ1 + a2 . λµ . λ . In this case. we have u u → → − → → − → → u xa xa u xa → λ− + − = λ(− + λ−1 − ) = λ(− + ab) = λxb. u u − → → where λ− is the product by a scalar in E . λ1 + λ2 λ1 + λ2 such that → − λ1 − λ2 − → → xb = xa1 + xa2 .374 we let CHAPTER 10. we let a1 . u v u v It is also natural to define multiplication by a scalar as follows: µ · a. λ1 + λ2 λ1 + λ2 Since → − → → xa xa λ1 − 1 + λ2 − 2 = (λ1 + λ2 )xb. and → → λ · − = λ− . letting b = a + λ−1 − .

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

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

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

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

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

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

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

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

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

. For example. . . . we have . . 1). If this linear map h is equal to the homogenized version f of an affine map f . the last column contains the coordinates (µ1 . a0 ) in E. . . . . since − → → → f (− + λa) = f (− ) + λf (a). and vectors are represented by vectors whose last coordinate is 0. . . and since u u v v 1 n 1 m → → f (a0 + − ) = f (− + a0 ). 1) and (y1 . . 1). 0. − ) and (− . 1) → → of f (a0 ) with respect to the basis (−1 . for X = (x1 . . consider the following affine map f : A2 → A2 defined as follows: y1 = ax1 + bx2 + µ1 . points are represented by vectors whose last cooru u dinate is 1. . 0. 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. 1)⊤ . ym. . we have y = f (x) iff Y = AX. .384 CHAPTER 10. . . . b0 ). . . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE (m + 1) × (n + 1) matrix A. − . −n . . . . . . . u u → → since over the basis (−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 → → → → (− . y2 = cx1 + dx2 + µ2 . . . . xn . . with coordinates (x1 . with m occurrences of 0. ym . the last row of the matrix A = M(f ) with respect to the given bases is (0. µm . . . − ). xn . 1)⊤ and Y = (y1 . . u u given any x ∈ E and y ∈ F . . . . . .

− ∈ E ... .3). . . y2 = cx1 + dx2 + µ2 x3 . . . .2. . k≥1 j∈{1. − ∈ E .4. . . and all λ1 .ik }. . there is a unique m-linear map f : (E)m → F extending f . am + λ−1 − ). we obtain the following useful lemma. .. there is a unique m-linear map f : (E)m → F extending f as in the diagram below. vi vi − → → → for all a1 . . − → Lemma 10. . am ∈ E. v 1 v m vm Proof..4 From Multiaffine Maps to Multilinear Maps We now show how to homogenize multiaffine maps. 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 .4. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . k=|S| S={i1 .m}. for λi = 0. Furthermore. −k ). . such that. . Lemma 10.. and all −1 . v vm 1 ≤ i ≤ m. . . . .. . .1. . Given any affine space E and any vector space F . . . . . . 10. Em j×···×j f / F j (E)m   f / F . where the fS are uniquely determined v vm multilinear maps (by lemma 4.ik }. −k ). .. we have → → → → vm f (−1 + λ1 a1 . . . . . . λm ∈ R. .m} j ∈S / → → → − for all a1 . . all −1 .m}. am ∈ E. − + λm am ) v = λ1 · · · λm f (a1 ..10. ... k=|S| S={i1 .. . Section B. .. . As a corollary. . k≥1 → → fS (−1 . vi vi S⊆{1... y3 = x3 .2.. . . if → → f (a1 + −1 . am + − ) = f (a1 .1. The proof is very technical and can be found in Chapter B. .. Given any two affine spaces E and F and an m-affine map f : E m → F .. am ) + → → λj fS (−1 .. . .4. . .. am ) + v vm S⊆{1. then → → vm f (−1 + λ1 a1 . for any m-affine map − → − → f : E m → F .. . . .

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

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

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

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

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

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

392

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

− → → → − definition 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 multiaffine 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 iff 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 affine polynomial function F : E → E of polar degree m, where E → → → − and E are normed affine spaces, for any k nonzero vectors − , . . . , − ∈ E , where 1 ≤ k ≤ m, u u
1 k

and all k ≥ 1, and since E is of finite dimension, all multiaffine 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 affine 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 finite 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 finite 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 defined 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 affine 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 fixing 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 fix this problem and to find 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 coefficients mk can also be washed out, if we consider the affine subspaces spanned by the range of Gk , instead of osculating curves or surfaces. a Definition 10.5.4. Given any two normed affine spaces E and E, where E is of finite 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 defined 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 flat Osck F (a) is the affine 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 iff Osck F (a) has dimension k for all a ∈ A. In such a case, the flat 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 differential 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 affine 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 difficult 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 iff 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 flat of dimension 5, spanned by the vectors 2 2 ∂F ∂F ∂2F (a), ∂x2 (a), ∂ F (a), ∂ F (a), and ∂x1 ∂x2 (a). The flat Osc3 F (a) is a flat 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 flats 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 affine subspace spanned by the range of the multiaffine map (b1 , . . . , bm−k ) → f (a, . . . , a, b1 , . . . , bm−k ),
k

is the osculating flat 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 flats, 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 flats 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 definition 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 affinely independent. Thus, we e had to use a more algebraic definition. In the case of surfaces, osculating flats intersect more often that we would expect. For example, given a nondegenerate cubic surface, we know that it lies in an affine space of dimension 9. But for each a ∈ P, the osculating flat Osc2 F (a) has dimension 5. In general, three 5-flats in a 9-space do not intersect, but any three 5-flats 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 defined 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 flat 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 effort to read this chapter. We hope that they will find it rewarding! First, tensor products are defined, and some of their basic properties are shown. Next, symmetric tensor products are defined, and some of their basic properties are shown. Symmetric tensor products of affine spaces are also briefly 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 define 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 define 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 defined 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 field, and let E1 , . . . , En be n ≥ 2 given vector spaces. First, we define tensor products, and then we prove their existence and uniqueness up to isomorphism. Definition 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 defined 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 definition 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 defined 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 finite 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 defined, 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 defined 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 defining 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 defined on M/N, and it is clearly linear by definition. However, we showed that such a linear map h is unique, and thus it agrees with the linear map f⊗ defined 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 field, 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 finite 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 − ◦ ϕ defined by h → h ◦ ϕ,

However, there vectors are not linearly independent. This situation can be fixed 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

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

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

u u u u . with → → → → f (−1 . and left to the reader. . However. Remark: The tensor product E ⊗···⊗E m is also denoted as m E.404 CHAPTER 11. −n ) = f⊙ (ϕ(−1 . . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS If we also have linear maps f ′ : E ′ → E ′′ and g ′ : F ′ → F ′′ . since we already have the notion of a tensor product. . is an interesting object. is a vector space S. such that. 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 . . rather then n vector spaces E1 . where n ≥ 2.1. together with a symmetric multilinear map ϕ : E n → S. 0 E = K). First. it corresponds to the algebra of polynomials with coefficients in K in n noncommuting variables. and is called the m-th tensor power of E (with space T(E) = m≥0 1 E = E. . and E. which is easily done. When E is of finite dimension n. there is a unique linear map f⊙ : S → F . for every vector space F and for every symmetric multilinear map f : E n → F . . Since these vectors generate E ⊗ F . The generalization to the tensor product f1 ⊗ · · · ⊗ fn of n ≥ 3 linear maps fi : Ei → Fi is immediate. Definition 11. . . . we define symmetric tensor products (powers). The vector m called the tensor algebra of E. and construct symmetric tensor products from scratch. . First. . there is a more economical method. We now turn to symmetric tensors. −n )). note that we have to restrict ourselves to a single vector space E.3.2.1. En . so that symmetry makes sense. However. 11.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. We could proceed directly as in lemma 11. we conclude that → → u v (f ′ ◦ f ) ⊗ (g ′ ◦ g) = (f ′ ⊗ g ′ ) ◦ (f ⊗ g). we would have to define a multiplication operation on T(E). A symmetric n-th tensor power (or tensor product) of a vector space E. .

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

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

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

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

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

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

when p = 2. where i ∈ I (recall that M(i1 ) + · · · + M(ik ) = n).11. . This can also be seen directly... lemma 11. .4. and thus.. Polynomials can be defined in terms of symmetric tensors. we can define h : E × E → → → → → h(− . In particular. → Given a vector space E and a basis (−i )i∈I for E. − ) = f (− ) ⊙ g(− ). jp ). Compare n n with the dimension of n E. → → → → (f ⊙ g)(− ⊙ − ) = f (− ) ⊙ g(− ). . This looks like a homogeneous polynomial of total degree n. PROPERTIES OF SYMMETRIC TENSOR PRODUCTS 411 As a consequence.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 . see the next remark). . Again. Thus the dimension of n E is . We leave as an exercise to show p+n−1 p+n−1 that this number is . which is pn . the dimension of n E is the number of finite multisets (j1 . such that j1 +· · ·+jp = n. 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).ik }=dom(M ) i∈I → →⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) . → u ik u i1 → in the “indeterminates” −i . This is not a coincidence! Symmetric tensor products are closely related to polynomials (for more on this. u ik λM − 1 ui for some unique family of scalars λM ∈ K.. where the monomials of total degree n are the symmetric tensors → − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) . it induces a unique linear map 2 2 2 E ′ by f ⊙ g: such that E→ E ′. the dimension of n E is n + 1. Given two linear maps f : E → E ′ and g : E → E ′ .4. jk ≥ 0. all zero except for a finite number. u v u u . this u is not a coincidence. when I is finite. say of size p. u v u v It is immediately verified that h is bilinear.

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

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

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

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

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

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

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

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

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

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

422 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS .

Part IV Appendices 423 .

424 .

a subfamily of (ui )i∈I is a family (uj )j∈J where J is any subset / of I. e Algebra 1. We recommend the following excellent books for an extensive treatment of linear algebra. e e e e e e Another useful and rather complete reference is the text Finite-Dimensional Spaces. by Strang [81]. and wk = v. where k is any index such that k ∈ I. projectives. But beware. The appendices contain no original material. we denote as (ui )i∈I ∪k (v) the family (wi )i∈I∪{k} defined such that. 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 Lang [47]. Algebra.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. 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. recall that a family (ai )i∈I of elements of A is simply a function a : I → A. Given a family (ui )i∈I . and euclidiennes. and we advise our readers to proceed “by need”. except perhaps for the presentation and the point of view. 425 . and geometry: Linear Algebra and its Applications. by Walter Noll [57]. Alg`bre lin´aire et g´om´trie classique. Algebra. by Bertin [8]. G´om´tries affines. (ai )i∈I = ∅. polynomials. wi = ui if i ∈ I. e e e e G´om´trie 1 and 2. by e e e e Tisseron [83]. In fact. where J is a finite subset of I (the support of the family). by Michael Artin [1]. we say that a family (ai )i∈I has finite support iff ai = 0 for all i ∈ I − J. the notation and terminology is a bit strange! The text Geometric Concepts for Geometric Design. by Berger [5. The first two chapters of Strang [81] are highly recommended. by Bourbaki [14. Given a set A. 15]. Given a family (ui )i∈I and any element v. Algebra. We begin by reviewing some basic properties of vector spaces. A family (ai )i∈I is finite if I is finite. We agree that when I = ∅. If A is ring with additive identity 0. Alg`bre.Appendix A Linear Algebra A. 6]. by Van Der Waerden [84]. Alg`bre Lin´aire et G´om´trie El´mentaire by Dieudonn´ [25]. by Mac Lane and Birkhoff [52].

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

VECTOR SPACES 427 → Definition A. µ ∈ K. u j The notion of a subspace of a vector space is defined as follows. → → − λi −i = 0 implies that λi = 0 for all i ∈ I. we stipulate that − = 0 . A vector − ∈ E is a linear combination of a v − ) of elements of E iff there is a family (λ ) of scalars in K such that → family ( ui i∈I i i∈I − = → v i∈I → λi −i . Indeed. u → → − → When I = ∅. the family ∅ is linearly independent. Letting λ = µ = 0. u − = → uj i∈(I−{j}) i∈I which implies that → −λ−1 λi −i . − ∈ F .1. → Given a vector space E. .A. The subspace { 0 } will be denoted as 0 (with a mild abuse of notation). − → − → we see that every subspace contains the vector 0 .1. u i∈I We agree that when I = ∅. 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 . and all λ. a subset F of E is a linear subspace (or subspace) → → → → of E iff F is nonempty and λ− + µ− ∈ F for all − . a family (−i )i∈I is linearly dependent iff there is some family (λi )i∈I of scalars u in K such that → → − λi −i = 0 and λj = 0 for some j ∈ I. and that any intersection of subspaces is a subspace. Let E be a vector space. there is some family (λi )i∈I of scalars 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 iff for every family (λi )i∈I of scalars in K.3. Subspaces having such a “generating family” play an important role.1. 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. given a family (−i )i∈I . Definition A. and motivate the following definition.2. → → A family (−i )i∈I is linearly dependent iff some −j in the family can be expressed as a u u linear combination of the others vectors in the family. Given a vector space E. u i∈I → Equivalently.

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

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

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

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

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

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

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

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

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

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

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

3. − }) = f (− ) + g(− ). f (− ) . such that π1 ◦ (f × g) = f . Lemma A. Given two vector spaces E1 and E2 . such that → → → π1 ({ 1. We already noted that E1 ⊕ E2 is in bijection with E1 × E2 . Define → → for every − ∈ E1 and − ∈ E2 . such that (f + g) ◦ in1 = f . and (f + g) ◦ in2 = g.4. If we define the projections π1 : E1 ⊕ E2 → E1 and π2 : E1 ⊕ E2 → E2 . DIRECT SUMS 439 Lemma A. u v v D E2 Proof.2. − . It is immediately verified that f + g is the unique linear u v map with the required properties.4. It is immediately verified that f × g is the unique linear map with the w required properties.4. Define → for every − ∈ D. − }) = − . 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. E1 ⊕E2 is a vector space. g(− ) }. → → → (f × g)(− ) = { 1.A. w w w . there is a unique linear map f × g : D → E1 ⊕ E2 . 2. and π2 ◦ (f × g) = g. u v u and we have the following lemma. Given two vector spaces E1 and E2 . − . For every pair of linear maps f : E1 → G and g : E2 → G. 2. for every pair of linear maps f : D → E1 and g : D → E2 . u v u v → → → π2 ({ 1. there is a unique linear map f + g : E1 ⊕E2 → G. − }) = − . 2. 2. 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. − .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . iff 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. Lemma B. for all u1 . .4. uk ∈ E. Dui G(a). . . a. . OSCULATING FLATS REVISITED 463 However. . . we have f⊙ (θ am−k ) = g⊙ (θ am−k ).e. By lemma B. . . a. . .5. . a. . uk ∈ E. . and thus. where 0 ≤ i ≤ k. bk ). . . → → by letting θ = ak−i −1 · · · −i in u u f⊙ (θ am−k ) = g⊙ (θ am−k ). . . . bk ) → f (a. Dui F (a) = Du1 . . . . . . . m−k m−k for all u1 . b1 . uk . a) = g(u1. → → → − for all −1 . . We have shown that these tensors generate k E. for every k ≤ m. . . where u1 . −i ∈ E . k for all simple k-tensors θ ∈ E of the form u1 · · · uk . where E is of finite dimension. . for all k-tensors θ ∈ k E. . . . i. .4. iff f (u1.4. . Assume that the polar forms agree as stated. This can be restated as f⊙ (θ am−k ) = g⊙ (θ am−k ). that is. . Dui G(a) = mi g⊙ (am−i −1 · · · −i ). the affine subspace spanned by the range of the multiaffine map (b1 . a). since f agrees with f on E m . Given any two affine spaces E and E. . We can also give a short proof of a generalized version of lemma 5. .2.5.2. . Dui F (a) = mi f⊙ (am−i −1 · · · −i ) u u and → → u u Du1 . Proof. . since → → Du1 . iff f⊙ (u1 · · · uk am−k ) = g⊙ (u1 · · · uk am−k ). . Du1 . . . two polynomial maps F : E → E and G : E → E of polar degree m agree to kth order at a. . uk . . . . . . for every a ∈ E. uk ∈ E. . m−k is the osculating flat Osck F (a). . . .B.

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

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

466 APPENDIX B. COMPLEMENTS OF AFFINE GEOMETRY .

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

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

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

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

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

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

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

474 APPENDIX C. TOPOLOGY .

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

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

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

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

and letting h = t− . . . . if they exist. −n )). . ∂j f (a). −n )) of E. . if f : E → F is a constant function.1. although customary and going back to ∂xj Leibnitz. we get a map Df : A → L( E . DIRECTIONAL DERIVATIVES. we have u u → → → → f (a + t− ) = f (a) + tL(− ) + ǫ(t− )|t| − . for every a ∈ E. (−1 . we obtain the u u 1 n and for t = 0. then − → Df (a) = f . ǫ( h ) h approaches 0 . u u t t and the limit when t = 0 approaches 0 is indeed Du f (a). u u u u → f (a + t− ) − f (a) u |t| → → → u = L(− ) + ǫ(t− ) − . . Given two normed affine spaces E and F . as follows. and this assumption is then redundant. definition of partial derivatives. . If f : E → F is a continuous affine map. for every function f : E → F . Lemma D. f is continuous at a. . .D. If Df (a) exists for every a ∈ A. . (−1 . we have a + t− ∈ A. for every frame (a0 .1. .1. when E is of finite dimension. 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 a ∈ E. and → → − → − thus.4. This way. . it is easily shown that every linear map is continuous. Definition D. . then Df (a) = 0. . . . u u the directional derivatives Duj f (a). since L is continuous. Indeed. for |t| ∈ R small enough (where t ∈ R or u − → → → t ∈ C). we can define the directional derivatives with respect to the vectors in the → → basis (− . −n )) for E. . For any two normed affine spaces E and F . −n ) u u u u − → is a basis of E . 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. For any − = 0 in E . for any frame (a0 . F ). . we can also do it for an infinite frame). If h = 0 approaches 0 . (−1 . the variable xj really has nothing to do with the formal definition. is a “logical obscenity”. Also.5. and not a function from the affine space E − − → → to the affine space F . for every a ∈ E. The partial derivative Duj f (a) is also denoted as u u ∂f (a). − ) (actually. TOTAL DERIVATIVES 479 − → − − → → − → − → − → Proof. called the derivative of f on A. . . are called the partial derivatives of f with → → respect to the frame (a0 . and also denoted as df .6. or ∂xj ∂f (a) for a partial derivative. the linear map associated with f .1. if E is of finite dimension → → n. . The uniqueness of L follows from lemma D. where (−1 . → → → → When E is of finite dimension n.

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

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

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

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

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

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

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

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

DIFFERENTIAL CALCULUS .488 APPENDIX D.

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful