geometry for computer graphics.pdf

359
Geometry for Computer Graphics

Upload: vuduong

Post on 14-Jan-2017

232 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Geometry for Computer Graphics.pdf

Geometry for Computer Graphics

00 29/09/04 15:36 Page i

Page 2: Geometry for Computer Graphics.pdf

John Vince

Geometry for Computer GraphicsFormulae, Examples and Proofs

123

00 29/09/04 15:36 Page iii

Page 3: Geometry for Computer Graphics.pdf

John Vince MTech, PhD, CEng, FBCSNational Centre for Computer AnimationBournemouth University, UK

British Library Cataloguing in Publication DataVince, John (John A.)

Geometry for computer graphics : formulae, examples and proofs 1. Computer graphics 2. Geometry – Data processing I. Title516′.0028566ISBN 1852338342

Library of Congress Cataloging-in-Publication DataA catalog record for this book is available from the Library of Congress

Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under theCopyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any formor by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction inaccordance with the terms of licences issued by the Copyright Licensing Agency. Enquiries concerning reproductionoutside those terms should be sent to the publishers.

ISBN 1-85233-834-2 Springer-Verlag London Berlin HeidelbergSpringer Science�Business Media springeronline.com

© Springer-Verlag London Limited 2005Printed in the United States of America

The use of registered names, trademarks etc. in this publication does not imply, even in the absence of a specificstatement, that such names are exempt from the relevant laws and regulations and therefore free for general use.

The publisher makes no representation, express or implied, with regard to the accuracy of the information contained inthis book and cannot accept any legal responsibility or liability for any errors or omissions that may be made.

Typesetting: Gray Publishing, Tunbridge Wells, UK34/3830-543210 Printed on acid-free paper SPIN 10981696

00 29/09/04 15:36 Page iv

Page 4: Geometry for Computer Graphics.pdf

Dedication

This book is dedicated to my family, Annie, Samantha, Anthony, Megan, and Monty, who havenot seen much of me over the past two years.

00 29/09/04 15:36 Page v

Page 5: Geometry for Computer Graphics.pdf

Preface

Anyone who has written programs for computer graphics, CAD, scientific visualization, computergames, virtual reality or computer animation will know that mathematics is extremely useful.Topics such as transformations, matrix algebra, vector algebra, curves and surfaces are at theheart of any application program in these areas,but the one topic that is really central is geometry,which is the theme of this book.

I recall many times when writing computer animation programs my own limited knowledgeof geometry. I remember once having to create a 3D lattice of dodecahedrons as the basis for acell growth model.At the time, I couldn’t find a book on the subject and had to compute Platonicsolid dihedral angles and vertex coordinates from scratch. The Internet had not been inventedand I was left to my own devices to solve the problem. As it happened, I did solve it, and my newfound knowledge of Platonic objects has never waned.

Fortunately, I no longer have to write computer programs, but many other people still do, andthe need for geometry has not gone away. In fact, as computer performance has increased, it hasbecome possible to solve amazingly complex three-dimensional geometric problems in real time.

The reason for writing this book is threefold: to begin with, I wanted to coordinate a wealth ofgeometry that is spread across all sorts of math books and the Internet; second,I wanted to illustratehow a formula was used in practice; third, I wanted to provide simple proofs for these formulas.

Personally, whenever I see an equation I want to know its origin. For example, why is the volumeof a tetrahedron one-sixth of a set of vertices? Where does the ‘one-sixth’ come from? Take anotherexample: why is the volume of a sphere four-thirds,p, radius cubed? Where does the ‘four-thirds’come from? Why isn’t it ‘five-sixths’? This may be a personal problem I have about the origins offormulas but I do find that my understanding of a subject is increased when I understand its origins.

Quaternions are another example. There is still some mystique about what they are and howthey work. I can think of no better way of understanding quaternions than to read about SirWilliam Rowan Hamilton and discover how he stumbled across his now famous non-commutativealgebra.

I am the first to admit that I am not a mathematician, and this book is not intended to be readby mathematicians. A mathematician would have approached the subject with a greater logicalrigour and employed formal structures that are relevant to the world of mathematics, but of

vii

00 29/09/04 15:36 Page vii

Page 6: Geometry for Computer Graphics.pdf

little interest to a programmer wanting to find a formula for a parametric line equation intersectinga spherical surface.

For example, hyperplanes are a very powerful mathematical instrument for analyzing complexgeometric scenarios, but this is not very relevant to a programmer who simply wants to know theline of intersection between two planes. Consequently, I have avoided the mathematicalhierarchies used by mathematicians to compress their language into the smallest number ofsymbols. This is why I have avoided statements such as Hn � Rn�1 � {xn | xn ≥ 0 (xn � R)}, butincluded formulas such as: A � �r2!

When I started this book I had no idea of its final structure. I asked colleagues if they had bookson geometry that I could borrow. The first book I came across was Mathematics Encyclopediaedited by Max Shapiro. There I found a source of definitions that gave some initial breadth tothe subject. I then discovered that I had in my own library The VNR Concise Encyclopedia ofMathematics edited by Gellert, Gottwald, Hellwich, Hästner and Kustner. This book helped meunderstand some of the strategies used by mathematicians to resolve some standard geometricproblems.

Then I discovered one of Springer’s ‘yellow’ math books: Handbook of Mathematics andComputational Science by John Harris and Horst Stocker. Further ‘yellow’ books emerged fromSpringer: Geometry I by Marcel Berger, Geometry: Plane and Fancy by David Singer, andGeometry: Our Cultural Heritage by Audun Holme.

One of my favourite math books is Mathematics: From the Birth of Numbers by Jan Gullberg.It is a work of art, and Gullberg’s clarity of writing inspired me to make my own explanationsas precise and informative as possible.

It was only when I was half-way through my manuscript that I came across one of myfavourite books A Programmer’s Geometry by Adrian Bowyer and John Woodwark. When Iopened it I realized that this is what my own book was about – a description of the geometricconditions that arise when lines, planes and spheres are brought into contact.

Early in my career I had met Adrian and John when they were at the University of Bath andthey had showed me their ray casting programs and animations. Geometry was obviously animportant part of their work. However, although their book covers a wide range of topics, itdoes not show the origins of their equations, and I spent many weeks devising compact proofsto substantiate their results. Nevertheless, their book has had a great impact on this book and Iopenly acknowledge their influence.

My personal library of math books is not extensive but reasonable. But there were manyoccasions when I had to resort to the Internet and do a Google search on topics such as ‘Heron’sformula’, ‘quaternions’, ‘Platonic objects’, ‘plane equations’, etc. Such searches producedvolumes of data but frequently the information I wanted was just not there. So over the past twoyears I have had no choice but to sit down and work out a solution for myself.

The book’s scope was a problem – where should it start, and where should it end? I decided that Iwould begin with some important concepts of Euclidean plane geometry. For example, recognizingsimilar or congruent triangles is a very powerful problem-solving technique and provided somesolid foundations for the rest of the book.Where to end was much more difficult.Some reviewers ofearly manuscripts suggested that I should embrace the geometric aspects of rendering, radiosity,physics, clipping, NURBS, and virtually the rest of computer graphics. I declined this advice as itwould have changed the flavor of the book,which is primarily about geometry.Perhaps,I should nothave included Bézier curves and patches, but I was tempted to include them as they developed theideas of parametric formulas to control geometry.

viii Preface

00 29/09/04 15:36 Page viii

Page 7: Geometry for Computer Graphics.pdf

Mathematicians have still not agreed upon a common notation for their mathematicalinstruments, which has made my life extremely frustrating in preparing this book. For example,some math books refer to vectors as a→ whilst others employ a. The magnitude of a vector isexpressed as |a→| by one community and ||a|| by another. The scalar product is sometimes writtenas a→• b

or a • b and so on.Some mathematicians use arctan � in preference to tan�1� as the superscript is thought

to be confusing. Even plane equations have two groups of followers: those that useax � by � cz � d � 0 and others who prefer ax � by � cz � d. The difference may seemminor but one has to be very careful when applying the formulas involving these equations. Butperhaps the biggest problem of all is the use of matrices as they can be used in two transposedmodes. In the end, I selected what I thought was a logical notation and trust that the reader willfind the usage consistent.

The book is designed to be used in three ways: the first section provides the reader with list offormulas across a wide range of geometric topics and hopefully will reveal a useful solution whenreferenced. Where relevant, I have provided alternative formulas for different mathematicalrepresentations. For example, a 2D line equation can be expressed in its general form orparametrically, which gives rise to two different solutions to a problem. I have also shown how aformula is simplified if a line equation is normalized or a normal vector has a unit length.

The second section places all the equations in some sort of context. For example, how tocompute the angle between two planes; how to compute the area of an irregular polygon; orhow to generate a parametric sinusoidal curve. I anticipate that this section will be useful tostudents who are discovering some of these topics for the first time.

The third section is the heart of the book and hopefully will be useful to lecturers teaching thegeometric aspects of computer graphics. Students will also find this section instructive for tworeasons: first it will show the origins of the formula; and second, it will illustrate differentstrategies for solving problems. I learnt a lot deriving these proofs. I discovered how importantit was to create a scenario where the scalar product could be introduced, as this frequentlyremoved an unwanted variable and secured the value of a parameter (often �) which determinedthe final result. Similarly, the cosine rule was very useful as an opening problem-solving strategy.

Some proofs took days to produce. There were occasions when I after several hours work I had proved that 1 � 1! There were occasions when a solution seemed impossible, but thenafter scanning several books I discovered a trick such as completing the square, or making apoint on a line perpendicular to the origin.

This project has taught me many lessons: the first is that mathematics is nothing more thana game played according to a set of rules that keeps on growing. When the rules don’t fit, theyare changed to accommodate some new mathematical instrument.Vectors and quaternions aretwo such examples. Another lesson is that to become good at solving mathematical problemsone requires a knowledge of the ‘tricks of the trade’ used by mathematicians. Alas, such tricksoften demand knowledge of mathematics that is only taught to mathematicians.

I would like to acknowledge the advice given by my colleague Prof. Jian Zhang who offeredconstructive suggestions whilst preparing the manuscript. Also I would like to thank RebeccaMowatt who provided vital editorial support throughout the entire project.

Finally, I thank the authors of all the books listed in the bibliography, as they made the bookpossible, and last, but not least, a very big thank you to Robert Gray who typeset the book.

John VinceRingwood

Preface ix

00 29/09/04 15:36 Page ix

Page 8: Geometry for Computer Graphics.pdf

Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

1 Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Lines, angles and trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.1 Points and straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.2 Angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.3 Trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.1 Properties of circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.2 Ellipses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3 Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.1 Types of triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.2 Similar triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.3 Congruent triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.4 Theorem of Pythagoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.5 Internal and external angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.6 Sine, cosine and tangent rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.7 Area of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.8 Inscribed and circumscribed circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.9 Centroid of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.10 Spherical trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4 Quadrilaterals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5 Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.5.1 Internal and external angles of a polygon . . . . . . . . . . . . . . . . . . . . . . . . . 191.5.2 Alternate internal angles of a cyclic polygon . . . . . . . . . . . . . . . . . . . . . . 191.5.3 Area of a regular polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.6 Three-dimensional objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.6.1 Prisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.6.2 Pyramids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.6.3 Cylinders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.6.4 Cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.6.5 Spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

xi

00 29/09/04 15:36 Page xi

Page 9: Geometry for Computer Graphics.pdf

1.6.6 Tori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.6.7 Platonic solids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.7 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.7.1 Cartesian coordinates in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.7.2 Cartesian coordinates in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.7.3 Polar coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.7.4 Cylindrical coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.7.5 Spherical coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.8 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.8.1 Vector between two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.8.2 Scaling a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.8.3 Reversing a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.8.4 Unit Cartesian vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.8.5 Algebraic notation for a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.8.6 Magnitude of a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.8.7 Normalizing a vector to a unit length . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.8.8 Vector addition/subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.8.9 Compound scalar multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.8.10 Position vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.8.11 Scalar (dot) product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.8.12 Angle between two vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.8.13 Vector (cross) product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.8.14 The commutative law does not hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.8.15 Scalar triple product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.8.16 Vector triple product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.8.17 Vector normal to a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.8.18 Area of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.9 Quaternions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.9.1 Definition of a quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.9.2 Equal quaternions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.9.3 Quaternion addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.9.4 Quaternion multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.9.5 Magnitude of a quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.9.6 The inverse quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.9.7 Rotating a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.9.8 Quaternion as a matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.10 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.10.1 Scaling relative to the origin in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.10.2 Scaling relative to a point in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.10.3 Translation in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.10.4 Rotation about the origin in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.10.5 Rotation about a point in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.10.6 Shearing along the x-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.10.7 Shearing along the y-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.10.8 Reflection about the x-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.10.9 Reflection about the y-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

xii Contents

00 29/09/04 15:36 Page xii

Page 10: Geometry for Computer Graphics.pdf

1.10.10 Reflection about a line parallel with the x-axis in �2 . . . . . . . . . . . . . . . 371.10.11 Reflection about a line parallel with the y-axis in �2 . . . . . . . . . . . . . . . 371.10.12 Translated change of axes in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.10.13 Rotated change of axes in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.10.14 The identity matrix in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.10.15 Scaling relative to the origin in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.10.16 Scaling relative to a point in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.10.17 Translation in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.10.18 Rotation about the x-axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.10.19 Rotation about the y-axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.10.20 Rotation about the z-axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.10.21 Rotation about an arbitrary axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.10.22 Reflection about the yz-plane in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.10.23 Reflection about the zx-plane in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.10.24 Reflection about the xy-plane in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.10.25 Reflection about a plane parallel with the yz-plane in �3 . . . . . . . . . . 401.10.26 Reflection about a plane parallel with the zx-plane in �3 . . . . . . . . . . 401.10.27 Reflection about a plane parallel with the xy-plane in �3 . . . . . . . . . . 401.10.28 Translated change of axes in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.10.29 Rotated change of axes in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.10.30 The identity matrix in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1.11 Two-dimensional straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.11.1 Normal form of the straight line equation . . . . . . . . . . . . . . . . . . . . . . . . 421.11.2 General form of the straight line equation . . . . . . . . . . . . . . . . . . . . . . . . 421.11.3 Hessian normal form of the straight line equation . . . . . . . . . . . . . . . . 421.11.4 Parametric form of the straight line equation . . . . . . . . . . . . . . . . . . . . . 421.11.5 Cartesian form of the straight line equation . . . . . . . . . . . . . . . . . . . . . . 431.11.6 Straight-line equation from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.11.7 Point of intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . 441.11.8 Angle between two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.11.9 Three points lie on a straight line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.11.10 Parallel and perpendicular straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . 461.11.11 Position and distance of a point on a line perpendicular

to the origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461.11.12 Position and distance of the nearest point on a line to a point . . . . . 471.11.13 Position of a point reflected in a line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471.11.14 Normal to a line through a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481.11.15 Line equidistant from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481.11.16 Two-dimensional line segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

1.12 Lines and circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.12.1 Line intersecting a circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.12.2 Touching and intersecting circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

1.13 Second degree curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.13.1 Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.13.2 Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Contents xiii

00 29/09/04 15:36 Page xiii

Page 11: Geometry for Computer Graphics.pdf

1.13.3 Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.13.4 Hyperbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

1.14 Three-dimensional straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.14.1 Straight line equation from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.14.2 Intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.14.3 The angle between two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.14.4 Three points lie on a straight line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.14.5 Parallel and perpendicular straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . 561.14.6 Position and distance of a point on a line perpendicular

to the origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.14.7 Position and distance of the nearest point on a line to a point . . . . . 561.14.8 Shortest distance between two skew lines . . . . . . . . . . . . . . . . . . . . . . . 561.14.9 Position of a point reflected in a line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.14.10 Normal to a line through a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

1.15 Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.15.1 Cartesian form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.15.2 General form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.15.3 Hessian normal form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . 581.15.4 Parametric form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.15.5 Converting from the parametric form to the general form . . . . . . . . . 591.15.6 Plane equation from three points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.15.7 Plane through a point and normal to a line . . . . . . . . . . . . . . . . . . . . . . . 601.15.8 Plane through two points and parallel to a line . . . . . . . . . . . . . . . . . . . 601.15.9 Intersection of two planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601.15.10 Intersection of three planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.15.11 Angle between two planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.15.12 Angle between a line and a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.15.13 Intersection of a line and a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.15.14 Position and distance of the nearest point on a plane

to a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.15.15 Reflection of a point in a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.15.16 Plane equidistant from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.15.17 Reflected ray on a surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

1.16 Lines, planes and spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.16.1 Line intersecting a sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.16.2 Sphere touching a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.16.3 Touching spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

1.17 Three-dimensional triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.17.1 Point inside a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.17.2 Unknown coordinate value inside a triangle . . . . . . . . . . . . . . . . . . . . . . 66

1.18 Parametric curves and patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.18.1 Parametric curve in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.18.2 Parametric curve in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.18.3 Planar patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.18.4 Modulated surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

xiv Contents

00 29/09/04 15:36 Page xiv

Page 12: Geometry for Computer Graphics.pdf

1.18.5 Quadratic Bézier curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.18.6 Cubic Bézier curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.18.7 Quadratic Bézier patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.18.8 Cubic Bézier patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

1.19 Second degree surfaces in standard form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

2.1 Trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

2.2 Circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

2.3 Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792.3.1 Checking for similar triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792.3.2 Checking for congruent triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792.3.3 Solving the angles and sides of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . 802.3.4 Calculating the area of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.3.5 The center and radius of the inscribed and

circumscribed circles for a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

2.4 Quadrilaterals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

2.5 Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

2.6 Three-dimensional objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882.6.1 Cone, cylinder and sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882.6.2 Conical frustum, spherical segment and torus . . . . . . . . . . . . . . . . . . . . . . 882.6.3 Tetrahedron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

2.7 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902.7.1 Cartesian coordinates in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902.7.2 Cartesian coordinates in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902.7.3 Polar coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902.7.4 Cylindrical coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912.7.5 Spherical coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

2.8 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.1 Vector between two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.2 Scaling a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.3 Reversing a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.4 Magnitude of a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.5 Normalizing a vector to a unit length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.6 Vector addition/subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.8.7 Position vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952.8.8 Scalar (dot) product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952.8.9 Angle between two vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952.8.10 Vector (cross) product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952.8.11 Scalar triple product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962.8.12 Vector normal to a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962.8.13 Area of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Contents xv

00 29/09/04 15:36 Page xv

Page 13: Geometry for Computer Graphics.pdf

2.9 Quaternions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.9.1 Quaternion addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 972.9.2 Quaternion multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.9.3 Magnitude of a quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.9.4 The inverse quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.9.5 Rotating a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.9.6 Quaternion as a matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

2.10 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.10.1 Scaling relative to the origin in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.10.2 Scaling relative to a point in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.10.3 Translation in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.10.4 Rotation about the origin in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002.10.5 Rotation about a point in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002.10.6 Shearing along the x-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002.10.7 Shearing along the y-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.10.8 Reflection about the x-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.10.9 Reflection about the y-axis in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.10.10 Reflection about a line parallel with the x-axis in �2 . . . . . . . . . . . . . 1022.10.11 Reflection about a line parallel with the y-axis in �2 . . . . . . . . . . . . . 1022.10.12 Translated change of axes in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022.10.13 Rotated change of axes in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032.10.14 The identity matrix in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032.10.15 Scaling relative to the origin in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032.10.16 Scaling relative to a point in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042.10.17 Translation in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042.10.18 Rotation about the x-axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042.10.19 Rotation about the y-axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052.10.20 Rotation about the z-axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052.10.21 Rotation about an arbitrary axis in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . 1052.10.22 Reflection about the yz-plane in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062.10.23 Reflection about the zx-plane in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062.10.24 Reflection about the xy-plane in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062.10.25 Reflection about a plane parallel with the yz-plane in �3 . . . . . . . . 1072.10.26 Reflection about a plane parallel with the zx-plane in �3 . . . . . . . . 1072.10.27 Reflection about a plane parallel with the xy-plane in �3 . . . . . . . . 1072.10.28 Translated axes in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082.10.29 Rotated axes in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082.10.30 The identity matrix in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

2.11 Two-dimensional straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092.11.1 Convert the normal form of the line equation to its

general form and the Hessian normal form . . . . . . . . . . . . . . . . . . . . . 1092.11.2 Derive the unit normal vector and perpendicular

from the origin to the line for the line equation . . . . . . . . . . . . . . . . . 1092.11.3 Derive the straight-line equation from two points . . . . . . . . . . . . . . 1102.11.4 Point of intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . . 1112.11.5 Calculate the angle between two straight lines . . . . . . . . . . . . . . . . . 1122.11.6 Test if three points lie on a straight line . . . . . . . . . . . . . . . . . . . . . . . . . 113

xvi Contents

00 29/09/04 15:36 Page xvi

Page 14: Geometry for Computer Graphics.pdf

2.11.7 Test for parallel and perpendicular lines . . . . . . . . . . . . . . . . . . . . . . . . 1142.11.8 Find the position and distance of the nearest point

on a line to the origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152.11.9 Find the position and distance of the nearest point

on a line to a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.11.10 Find the reflection of a point in a line passing through the origin . . . 1172.11.11 Find the reflection of a point in a line . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182.11.12 Find the normal to a line through a point . . . . . . . . . . . . . . . . . . . . . . . 1192.11.13 Find the line equidistant from two points . . . . . . . . . . . . . . . . . . . . . . 1202.11.14 Creating the parametric line equation for a line segment . . . . . . . 1212.11.15 Intersecting two line segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.12 Lines and circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.12.1 Line intersecting a circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.12.2 Touching and intersecting circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

2.13 Second degree curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282.13.1 Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282.13.2 Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282.13.3 Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282.13.4 Hyperbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

2.14 Three-dimensional straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302.14.1 Derive the straight-line equation from two points . . . . . . . . . . . . . . 1302.14.2 Intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302.14.3 Calculate the angle between two straight lines . . . . . . . . . . . . . . . . . 1312.14.4 Test if three points lie on a straight line . . . . . . . . . . . . . . . . . . . . . . . . . 1312.14.5 Test for parallel and perpendicular straight lines . . . . . . . . . . . . . . . . 1322.14.6 Find the position and distance of the nearest point on

a line to the origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322.14.7 Find the position and distance of the nearest point on

a line to a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322.14.8 Find the reflection of a point in a line . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332.14.9 Find the normal to a line through a point . . . . . . . . . . . . . . . . . . . . . . . 1332.14.10 Find the shortest distance between two skew lines . . . . . . . . . . . . . 134

2.15 Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352.15.1 Cartesian form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . . . . 1352.15.2 General form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352.15.3 Hessian normal form of the plane equation . . . . . . . . . . . . . . . . . . . . 1352.15.4 Parametric form of the plane equation . . . . . . . . . . . . . . . . . . . . . . . . . 1362.15.5 Converting a plane equation from parametric

form to general form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362.15.6 Plane equation from three points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372.15.7 Plane through a point and normal to a line . . . . . . . . . . . . . . . . . . . . . 1382.15.8 Plane through two points and parallel to a line . . . . . . . . . . . . . . . . . 1382.15.9 Intersection of two planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392.15.10 Intersection of three planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412.15.11 Angle between two planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432.15.12 Angle between a line and a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Contents xvii

00 29/09/04 15:36 Page xvii

Page 15: Geometry for Computer Graphics.pdf

2.15.13 Intersection of a line and a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442.15.14 Position and distance of the nearest point on a plane to a point . 1442.15.15 Reflection of a point in a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452.15.16 Plane equidistant from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452.15.17 Reflected ray on a surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

2.16 Lines, planes and spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1482.16.1 Line intersecting a sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1482.16.2 Sphere touching a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1492.16.3 Touching spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.17 Three-dimensional triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1512.17.1 Coordinates of a point inside a triangle . . . . . . . . . . . . . . . . . . . . . . . . . 1512.17.2 Unknown coordinate value inside a triangle . . . . . . . . . . . . . . . . . . . . 152

2.18 Parametric curves and patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.18.1 Parametric curves in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.18.2 Parametric curves in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.18.3 Planar patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622.18.4 Parametric surfaces in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632.18.5 Quadratic Bézier curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652.18.6 Cubic Bézier curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652.18.7 Quadratic Bézier patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1662.18.8 Cubic Bézier patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

2.19 Second degree surfaces in standard form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

3 Proofs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

3.1 Trigonometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713.1.1 Trigonometric functions and identities . . . . . . . . . . . . . . . . . . . . . . . . . 1713.1.2 Cofunction identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713.1.3 Pythagorean identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713.1.4 Useful trigonometric values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723.1.5 Compound angle identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733.1.6 Double-angle identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.1.7 Multiple-angle identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.1.8 Functions of the half-angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1763.1.9 Functions of the half-angle using the perimeter of a triangle . . . . 1773.1.10 Functions converting to the half-angle tangent form . . . . . . . . . . . 1783.1.11 Relationships between sums of functions . . . . . . . . . . . . . . . . . . . . . . 1803.1.12 Inverse trigonometric functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

3.2 Circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1833.2.1 Angles subtended by the same arc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1833.2.2 Alternate segment theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1833.2.3 Area of a circle, sector and segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1843.2.4 Chord theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.2.5 Secant theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.2.6 Secant–tangent theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.2.7 Area of an ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

xviii Contents

00 29/09/04 15:36 Page xviii

Page 16: Geometry for Computer Graphics.pdf

3.3 Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1893.3.1 Theorem of Pythagoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1893.3.2 Properties of triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1893.3.3 Altitude theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1923.3.4 Area of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1933.3.5 Internal and external angles of a triangle . . . . . . . . . . . . . . . . . . . . . . . . 1963.3.6 The medians of a triangle are concurrent at its centroid . . . . . . . . . . 1963.3.7 Radius and center of the inscribed circle for a triangle . . . . . . . . . . . 1983.3.8 Radius and center of the circumscribed circle for a triangle . . . . . . . 201

3.4 Quadrilaterals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.4.1 Properties of quadrilaterals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.4.2 The opposite sides and angles of a parallelogram are equal . . . . . . 2103.4.3 The diagonals of a parallelogram bisect each other . . . . . . . . . . . . . . 2103.4.4 The diagonals of a square are equal, intersect at right

angles and bisect the opposite angles . . . . . . . . . . . . . . . . . . . . . . . . . . . 2113.4.5 Area of a parallelogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2123.4.6 Area of a quadrilateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2123.4.7 Area of a general quadrilateral using Heron’s formula . . . . . . . . . . . . 2143.4.8 Area of a trapezoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2163.4.9 Radius and center of the circumscribed circle for a rectangle . . . . . 217

3.5 Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183.5.1 The internal angles of a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183.5.2 The external angles of a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183.5.3 Alternate internal angles of a cyclic polygon . . . . . . . . . . . . . . . . . . . . . 2193.5.4 Area of a regular polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2203.5.5 Area of a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2213.5.6 Properties of regular polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

3.6 Three-dimensional objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2243.6.1 Volume of a prism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2243.6.2 Surface area of a rectangular pyramid . . . . . . . . . . . . . . . . . . . . . . . . . . . 2253.6.3 Volume of a rectangular pyramid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2263.6.4 Volume of a rectangular pyramidal frustum . . . . . . . . . . . . . . . . . . . . . . 2273.6.5 Volume of a triangular pyramid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2273.6.6 Surface area of a right cone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2283.6.7 Surface area of a right conical frustum . . . . . . . . . . . . . . . . . . . . . . . . . . . 2283.6.8 Volume of a cone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293.6.9 Volume of a right conical frustum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2303.6.10 Surface area of a sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2303.6.11 Volume of a sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313.6.12 Area and volume of a torus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2333.6.13 Radii of the spheres associated with the Platonic solids . . . . . . . . . . 2333.6.14 Inner and outer radii for the Platonic solids . . . . . . . . . . . . . . . . . . . . . . 2383.6.15 Dihedral angles for the Platonic solids . . . . . . . . . . . . . . . . . . . . . . . . . . . 2423.6.16 Surface area and volume of the Platonic solids . . . . . . . . . . . . . . . . . . . 246

Contents xix

00 29/09/04 15:36 Page xix

Page 17: Geometry for Computer Graphics.pdf

3.7 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493.7.1 Cartesian coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493.7.2 Polar coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2493.7.3 Cylindrical coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2503.7.4 Spherical coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

3.8 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523.8.1 Magnitude of a vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523.8.2 Normalizing a vector to a unit length . . . . . . . . . . . . . . . . . . . . . . . . . 2523.8.3 Scalar (dot) product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523.8.4 Commutative law of the scalar product . . . . . . . . . . . . . . . . . . . . . . . 2533.8.5 Associative law of the scalar product . . . . . . . . . . . . . . . . . . . . . . . . . . 2533.8.6 Angle between two vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2533.8.7 Vector (cross) product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543.8.8 The non-commutative law of the vector product . . . . . . . . . . . . . . 2543.8.9 The associative law of the vector product . . . . . . . . . . . . . . . . . . . . . 2553.8.10 Scalar triple product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

3.9 Quaternions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2563.9.1 Definition of a quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

3.10 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2603.10.1 Scaling in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2603.10.2 Translation in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613.10.3 Rotation in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613.10.4 Shearing in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2623.10.5 Reflection in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2633.10.6 Change of axes in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2643.10.7 Identity matrix in �2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653.10.8 Scaling in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653.10.9 Translation in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2663.10.10 Rotation in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2663.10.11 Reflection in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2683.10.12 Change of axes in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2703.10.13 Identity matrix in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

3.11 Two-dimensional straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2723.11.1 Cartesian form of the line equation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2723.11.2 Hessian normal form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2733.11.3 Equation of a line from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2733.11.4 Point of intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . 2753.11.5 Angle between two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2763.11.6 Three points lie on a straight line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.11.7 Parallel and perpendicular straight lines . . . . . . . . . . . . . . . . . . . . . . . 2783.11.8 Shortest distance to a line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.11.9 Position and distance of a point on a line

perpendicular to the origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.11.10 Position and distance of the nearest point on a line to a point . . 2803.11.11 Position of a point reflected in a line . . . . . . . . . . . . . . . . . . . . . . . . . . . 2813.11.12 Normal to a line through a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

xx Contents

00 29/09/04 15:36 Page xx

Page 18: Geometry for Computer Graphics.pdf

3.11.13 Line equidistant from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2843.11.14 Equation of two-dimensional line segment . . . . . . . . . . . . . . . . . . . . 2853.11.15 Point of intersection of two two-dimensional line segments . . . . 286

3.12 Lines and circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2883.12.1 Line and a circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2883.12.2 Touching and intersecting circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

3.13 Second degree curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2933.13.1 Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2933.13.2 Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2933.13.3 Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2953.13.4 Hyperbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

3.14 Three-dimensional straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973.14.1 Straight-line equation from two points . . . . . . . . . . . . . . . . . . . . . . . . 2973.14.2 Intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973.14.3 Angle between two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2983.14.4 Three points lie on a straight line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2983.14.5 Parallel and perpendicular straight lines . . . . . . . . . . . . . . . . . . . . . . . 2983.14.6 Position and distance of a point on a line

perpendicular to the origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2993.14.7 Position and distance of the nearest point on a line to a point . . . . 2993.14.8 Position of a point reflected in a line . . . . . . . . . . . . . . . . . . . . . . . . . . 3003.14.9 Normal to a line through a point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3013.14.10 Shortest distance between two skew lines . . . . . . . . . . . . . . . . . . . . 302

3.15 Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033.15.1 Equation to a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033.15.2 Plane equation from three points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3063.15.3 Plane through a point and normal to a line . . . . . . . . . . . . . . . . . . . . 3083.15.4 Plane through two points and parallel to a line . . . . . . . . . . . . . . . . 3083.15.5 Intersection of two planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3083.15.6 Intersection of three planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3103.15.7 Angle between two planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3113.15.8 Angle between a line and a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3113.15.9 Intersection of a line and a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3113.15.10 Position and distance of the nearest point on a plane to a point . . . 3123.15.11 Reflection of a point in a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3133.15.12 Plane equidistant from two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3133.15.13 Reflected ray on a surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

3.16 Lines, planes and spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3153.16.1 Line intersecting a sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3153.16.2 Sphere touching a plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3163.16.3 Touching spheres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

3.17 Three-dimensional triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3183.17.1 Point inside a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3183.17.2 Unknown coordinate value inside a triangle . . . . . . . . . . . . . . . . . . . 318

Contents xxi

00 29/09/04 15:36 Page xxi

Page 19: Geometry for Computer Graphics.pdf

3.18 Parametric curves and patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3193.18.1 Planar surface patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3193.18.2 Bézier curves in �2 and �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3193.18.3 Bézier surface patch in �3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

4 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

5 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

xxii Contents

00 29/09/04 15:36 Page xxii

Page 20: Geometry for Computer Graphics.pdf

1 Geometry

Let no one enter who does not know geometry.Inscription on Plato’s door, probably at the Academy of Athens (c. 429–347 BC).

This section contains formulas often required in computer graphics and is organised into 19 groups:

1.1 Lines, angles and trigonometry1.2 Circles1.3 Triangles1.4 Quadrilaterals1.5 Polygons1.6 Three-dimensional objects1.7 Coordinate systems1.8 Vectors1.9 Quaternions1.10 Transformations1.11 Two-dimensional straight lines1.12 Lines and circles1.13 Second degree curves1.14 Three-dimensional straight lines1.15 Planes1.16 Lines, planes and spheres1.17 Three-dimensional triangles1.18 Parametric curves and patches1.19 Second degree surfaces in standard form

Most of these formulas are developed in the section on Proofs and placed in context in thesection on Examples.

1

01 29/09/04 15:36 Page 1

Page 21: Geometry for Computer Graphics.pdf

Undefined results

The reader will probably be aware that the simplest of formulas must be treated with great care. For example x � a/b appears rather innocent, but is undefined when b � 0.Similarly, s � ��t will only generate a real value when t � 0. Therefore similar care must be exercised when using vectors and quaternions. For example, if a vector is accidentally set null, e.g. n � ai � bj � ck where a � b � c � 0 then n • n � 0. This in itself is not aproblem, but if this dot product is in the denominator of a formula, then the result isundefined and will terminate a computer program unless this condition is detected prior to the division.

Determinants

Some formulas in this section are expressed in determinant form simply because they providea neat and compact notation. However, a determinant can be zero, therefore its value must bedetermined if it is used as a denominator in a formula.

Vectors

Formulas involving vectors can often be simplified if they are unit vectors. For example,the angle a between two vectors n1 and n2 is given by

but if ||n1|| � ||n2|| � 1 a� cos�1(n1 • n2)

which saves unnecessary computation.

Matrices

Matrix transformations are another source of error when developing computer programs.Unfortunately, two systems are still in use and create untold havoc when a matrix is copiedfrom a book or technical paper without knowing the source of the transform. For example,this text employs column vectors:

where x� � ax � byy� � cx � dy

xy

a bc d

xy

��

� �⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

a� �cos

|| || · || ||1 1 2

1 2

n n

n n

i⎛

⎝⎜⎞

⎠⎟

2 Geometry for computer graphics

01 29/09/04 15:36 Page 2

Page 22: Geometry for Computer Graphics.pdf

However, when using row vectors we have

where x� � ax � cyy� � bx � dy

which does not produce the same result!The second example can be made identical to the first by transposing the matrix:

where x� � ax � byy� � cx � dy

which is what the reader will have to do if they discover such a matrix. For example, a rotation matrix using row vectors is

but when transposed creates the more familiar column vector form

Readers not familiar with matrices should appreciate that matrix multiplication is notcommutative, i.e. in general TA � TB � TB � TA. This is easily seen using a simple example:

Given

then

whereas

It is obvious that they do not produce the same result.

Efficiency

The formulas listed in this section are not selected on the basis of speed. Such strategies arebeyond the scope of this book and the reader should investigate how these formulas havebeen developed by authors and researchers to improve their efficiency.

T T e fg h

a bc d

ae cf be dfag chB A� � � � � �

�⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥ bbg dh�

⎡⎣⎢

⎤⎦⎥

T T a bc d

e fg h

ae bg af bhce dgA B� � � � � �

�⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥ ccf dh�

⎡⎣⎢

⎤⎦⎥

T a bc d T e f

g hA B� �⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

cos sinsin cosa aa a

�⎡⎣⎢

⎤⎦⎥

cos sinsin cosa aa a�

⎡⎣⎢

⎤⎦⎥

x y x y a cb d� � � �⎡⎣ ⎤⎦ ⎡⎣ ⎤⎦

⎡⎣⎢

⎤⎦⎥

x y x y a bc d� � � �⎡⎣ ⎤⎦ ⎡⎣ ⎤⎦

⎡⎣⎢

⎤⎦⎥

Geometry 3

01 29/09/04 15:36 Page 3

Page 23: Geometry for Computer Graphics.pdf

1.1.1 Points and straight lines

The building blocks of Euclidian geometry are the point and the straight line. A pointindicates position in space and has no size or magnitude. A moving point describes a line,which has length but no width. From these two concepts evolve the following axioms:

1. Only one straight line can be drawn between two points.2. Two straight lines intersect in one point only.3. Two straight lines cannot enclose a space.

As soon as we introduce two or more lines, the idea of a plane surface emerges. Such a surfacecan be tested as follows:

A straight line joining two points on a plane surface will also reside on that surface.

From these simple definitions explode the subject of two-dimensional Euclidian geometry.

Parallel lines

Parallel lines remain a constant distance apart and reside on a common surface.

1.1.2 Angles

An angle is formed when two straight lines meet at a point. An angle is a spatial quantity andmeasures the rotational offset between the two lines when rotated about their common pointor vertex. By definition, anti-clockwise angles are positive and clockwise angles are negative.Furthermore, by definition, one revolution equals 360° or 2p radians.

Acute, obtuse, right and straight angles

0° acute angle (right angle � 90°) obtuse angle (straight angle � 180°)

Complementary angles

Complementary angles sum to 90°.

1.1 Lines, angles and trigonometry

4 Geometry for computer graphics

a � b � 90°

ab

01 29/09/04 15:36 Page 4

Page 24: Geometry for Computer Graphics.pdf

Supplementary angles

Supplementary angles sum to 180°.

Vertical angles

Two pairs of vertical angles are created by two intersecting straight lines.

Interior, exterior, corresponding and opposite angles

Interior, exterior, corresponding and opposite angles arise when a straight line intersects a pair of parallel lines.

Interior angles a2 b2 u1 f1

Alternate interior angles

Corresponding angles Opposite angles

Exterior angles a1 b1 u2 f2 Alternate exterior angles

1.1.3 Trigonometry

Angular measurement

By definition

Right angle 90°

Straight angle 180° p [radians]

One revolution 360° 2p [radians]

p

2[radians]

a u

b f1 2

1 2

a u

f b

a u

f b

1 1

1 1

2 2

2 2

a a

b b

f f

u u

1 2

1 2

1 2

1 2

u a

f b1 2

1 2

Geometry 5

a � b � 180°

a b

a � a� and b � b�

a

a�

b�b

b1a1

f1 u1

b2a2

f2 u2

01 29/09/04 15:36 Page 5

Page 25: Geometry for Computer Graphics.pdf

Radians

An angle of one radian subtends an arc length r with a circle of radius r.

Transcendental trigonometric functions

Useful trigonometric values

a 0° 30° 36° 45° 54° 60° 90°

sina 0 1

cosa 1 0

tana 0 1

a 0° 30° 45° 60° 90°

sin2a

cos2a04

14

24

34

44

44

34

24

14

04

35 2 55

�5 2 5�

33

12

10 2 54

�22

1 54

�32

32

1 54

�22

10 2 54

�12

sin cos tan

cscsin

seccos

a a a

aa

a

� � �

� � �

ac

bc

ab

ca

1 1aa

aa

aa

aa

a

� � �

� �

cb

ba

cottan

tansincos

cotcossin

1

aa

6 Geometry for computer graphics

r

rr

1 [rad]

a

b

c

a

b

01 29/09/04 15:36 Page 6

Page 26: Geometry for Computer Graphics.pdf

Cofunction identities

Even–odd identities

sin(�a) � �sina cos(�a) � cosa tan(�a) � �tanacsc(�a) � �csca sec(�a) � seca cot(�a) � �cota

Pythagorean identities

sin2a� cos2a� 1 1 � tan2a� sec2a 1 � cot2a� csc2a

Compound angle identities

sin(a� b) � sina cosb� cosa sinb sin(a� b) � sina cosb� cosa sinb

cos(a� b) � cosa cosb� sina sinb cos(a� b) � cosa cosb� sina sinb

Double-angle identities

sin 2a� 2 sina cosa cos 2a� 1 � 2 sin2a

cos 2a� cos2a� sin2a

Multiple-angle identities

sin 3a� 3 sina� 4 sin3a cos 3a� 4 cos3a� 3 cosa

sin 4a� 4 sina cosa� 8 sin3a cosa cos 4a� 8 cos4a� 8 cos2a� 1

cotcot cot

cot cot4

6 1

4 4

4 2

3a

a a

a a�

� �

�tan

tan tan

tan tan4

4 4

1 6

3

2 4a

a a

a a�

� �

cotcot cot

cot3

3

3 1

3

2a

a a

a�

�tan

tan tan

tan3

3

1 3

3

2a

a a

a�

cotcot

cot2

12

2

aa

a�

tantan

tan2

2

1 2a

a

a�

tan( )tan tan

tan tana b

a b

a b� �

�1tan( )

tan tantan tan

a ba b

a b� �

�1

cot tan tana a b��

� �2

⎛⎝⎜

⎞⎠⎟sec csc csca a b�

�� �

2⎛⎝⎜

⎞⎠⎟csc sec seca a b�

�� �

2⎛⎝⎜

⎞⎠⎟

tan cot cota a b��

� �2

⎛⎝⎜

⎞⎠⎟cos sin sina a b�

�� �

2⎛⎝⎜

⎞⎠⎟sin cos cosa a b�

�� �

2⎛⎝⎜

⎞⎠⎟

Geometry 7

01 29/09/04 15:36 Page 7

Page 27: Geometry for Computer Graphics.pdf

Functions of the half-angle

Functions converting to the half-angle tangent form

Relationships between sums of functions

Inverse trigonometric functions

sin(sin�1 x) � x cos(cos�1 x) � x tan(tan�1 x) � x

sin�1(�x) � �sin�1 x cos�1(�x) � p� cos�1 x tan�1(�x) � �tan�1 x

cot cotsin( )sin sin

a ba b

a b� � �

�cot cot

sin( )sin sin

a ba b

a b� �

tan tansin( )cos cos

a ba b

a b� �

�tan tan

sin( )cos cos

a ba b

b� �

cos cos sin sina ba b a b

� ��� �

22 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟cos cos cos cosa b

a b a b� �

� �2

2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

sin sin cos sina ba b a b

� �� �

22 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟sin sin sin cosa b

a b a b� �

� �2

2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

cottan

tana

a

a�

�1

2

2

2

2

2

sectan

tana

a

a�

1

1

2

2

2

2

csctan

tana

a

a�

�1

2

2

2

2

tantan

tana

a

a�

2

1 2

2

2

costan

tana

a

a�

1

1

2

2

2

2

sintan

tana

a

a�

2

1 2

2

2

cotcoscos

a a

a2�

11

tancoscos

a a

a2�

11

coscosa a

2�

�12

sincosa a

2�

�12

cotcot cot cot

cot cot5

10 5

5 10 1

5 3

4 2a

a a a

a a�

� �

� �tan

tan tan tan

tan tan5

5 10

1 10 5

3 5

2 4a

a a a

a a�

� �

� �

cos cos cos cos5 16 20 55 3a a a a� � �sin sin sin sin5 16 20 55 3a a a a� � �

8 Geometry for computer graphics

01 29/09/04 15:36 Page 8

Page 28: Geometry for Computer Graphics.pdf

Geometry 9

1.2.1 Properties of circles

A circle is the locus of all points in a plane equidistant from acenter point.

Circle

Area of a circle

Perimeter 2pr � pd

Length of arc

Area of sector

Area of segment

Length of chord

Chords

A chord is a straight line joining two points on the circumference of a circle.The rotational symmetry of a circle ensures that chords of equal lengths areequidistant from the center and vice versa.

The chord theorem

If two chords intersect, then the product of the intercepts on one chordequals the product of the intercepts on the other.

c r��

2 sin2

rr rad rad2

2

360 2 2ap

aa a

�� �

sinsin

⎛⎝⎜

⎞⎠⎟ (or [ ] [ ] ))

up a

�360 22

2

rr rador [ ]

s d s r rad��

��

ap a

360or [ ]

p pr d2 2� 14

1.2 Circles

c

r

d

s

ua

radius

diameter

sector

segment

tangent

secant

arcchord

da

da

a d

c b

ab � cd

01 29/09/04 15:36 Page 9

Page 29: Geometry for Computer Graphics.pdf

Peripheral angles subtended by a chord

Peripheral angles subtended by a common chord are equal.

Secants

A secant of a circle is a straight line that intersects the circle’s circumference in two points.

The secant theorem

If two secants intersect at O outside a circle, then the product ofthe intercepts between O and the circle on one is equal to theproduct of the two intercepts on the other.

The secant–tangent theorem

If two secants intersect at O outside a circle, and one of them is tangent to the circle, then the length of the intercept on the tangent between O and the point of contact is the geometricmean of the lengths of the intercepts of the other secant.

Arcs

The central angle subtended by an arc is twice the angle on the circle.

When the central angle is 180° the angle at the periphery is 90°; and the arcis half the circumference.

1.2.2 Ellipses

Area on an ellipse

Area of an ellipse A � 4pab

10 Geometry for computer graphics

aa

ab

dc

O

a(a�b) � c(c�d)

ab

t

O

t2 � a(a�b)

2a

a

aa

b

01 29/09/04 15:36 Page 10

Page 30: Geometry for Computer Graphics.pdf

Geometry 11

1.3.1 Types of triangle

Acute-angled triangle Obtuse-angled triangle Right-angled triangle

a,b and x are acute. One angle (x) is obtuse. One angle (a) equals 90°.

1.3 Triangles

a b

x

a b

x

ba

x

b

a a 60˚60˚

60°

ba

x

Isosceles triangle Equilateral triangle Scalene triangle

Two equal sides and two All sides are equal and all All sides are unequal and equal base angles. angles equal 60°. all angles unequal.

1.3.2 Similar triangles

Two triangles are similar (�) if corresponding angles are equal, and corresponding sidesshare a common ratio.

Conditions for similarity First triangle Second triangle

Three corresponding sides are in the same ratio.

Two corresponding sides are in the same ratio, and the included angles are equal.

a� a�

aa

cc�

��

aa

bb

cc�

��

�� a

bc

a

c

aa�

a�

c�

a�

b�c�

01 29/09/04 15:36 Page 11

Page 31: Geometry for Computer Graphics.pdf

Two corresponding anglesare equal.

a� a�b� b�

1.3.3 Congruent triangles

Two triangles are congruent (identical �) if corresponding sides and angles are equal.

Conditions for congruency First triangle Second triangle

Three sides are equal.

a � a�b � b�c � c�

Two sides and the included angle are equal.

a � a�b � b�a� a�

One side and the adjoining angles are equal.

a � a�a� a�b� b�

1.3.4 Theorem of Pythagoras

Pythagorean formula

In a right-angled triangle, the square of the hypotenuse equals the sum of the squares of the other two sides.

a2 � b2 � c2

12 Geometry for computer graphics

a b

a

cb

a

b

a

aba

a�

b�

a�

a�

a� b�

a

b

c

b� c�

a�

a� b�

01 29/09/04 15:36 Page 12

Page 32: Geometry for Computer Graphics.pdf

1.3.5 Internal and external angles

Internal and external angles

a� b� x� 180° [internal angles]

a� � b� � x� � 360° [external angles]

1.3.6 Sine, cosine and tangent rules

Sine rule

Cosine rule

a2 � b2 � c2 � 2bc cos Ab2 � a2 � c2 � 2ac cos Bc2 � a2 � b2 � 2ab cos C

Tangent rule

1.3.7 Area of a triangle

Normal formula

Heron’s formula

Determinant formula

Note: If the vertices are anti-clockwise, Area is �ve, else �ve.

Areax yx yx y

A A

B B

C C

� 12

111

Area s s a s b s c s a b c� � � � � � �( )( )( ) ( )where 12

Area bc A� 12

sin

Area base height ch� � �12

12

aA

bB

cCsin sin sin

� �

Geometry 13

b�ba

a�

x

x�

a

c b

B C

A

A B

C

ab

c

h

d

a ba b

A B

A B

��

tan

tan

2

2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

b cb c

B C

B C

��

tan

tan

2

2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

c ac a

C A

C A

��

tan

tan

2

2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

01 29/09/04 15:36 Page 13

Page 33: Geometry for Computer Graphics.pdf

1.3.8 Inscribed and circumscribed circles

General triangle

A(xA, yA), B(xB, yB), C(xC, yC) are the vertices of atriangle with sides a, b, c.

r is the radius of the inscribed circle.

R is the radius of the circumscribed circle.

M(xM, yM) is the center of the inscribed circle.

P(xP, yP) is the center of the circumscribed circle.

and yAC � yC � yA etc.

or

or

Equilateral triangle

r a

R a

x x x x

y y y yM A B C

M A B C

� � �

� � �

16

13

13

13

3

3

( )

( )

y yR

abcb xc xP A

AC

AB

� �2

2x xR

abcy by cP A

AC

AB

� �2

2

y y

b xc x

ABCP A

AC

AB� ��

2

2

4 Area �x x

y by c

ABCP A

AC

AB� ��

2

2

4 Area �

y y

b xc x

x yx y

P A

AC

AB

AB AB

AC AC

� �12

2

2

x x

y by c

x yx y

P A

AC

AB

AB AB

AC AC

� �12

2

2

yay by cy

sMA B C�

� �

2x

ax bx cx

sMA B C�

� �

2

Rabc

ABC�

�4 Area �r

ABC�

Areas�

s a b c� � �12

( )

14 Geometry for computer graphics

ab

c BA

C

R

r

MP

a

BA

C

R

rM

a

a

01 29/09/04 15:36 Page 14

Page 34: Geometry for Computer Graphics.pdf

Right-angled triangle

1.3.9 Centroid of a triangle

The medians of a triangle are concurrent, and intersect at its centroid two-thirds along amedian connecting a vertex to the mid-point of the opposite side. The centroid is also thecenter of gravity of the triangle.

General triangle

AE, BF and CD are medians and P is the centroid.

1.3.10 Spherical trigonometry

Trigonometric rules

Sine rule

Cosine rule cos a� cos b cos x� sin b sin x cos Acos A � �cos B cos C � sin B sin C cos a

Area of a spherical triangle

Area rE

E A B C� � � � � �p 2

180180where

sinsin

sinsin

sinsin

A B Ca b

� ��

AP AE

BP BF

CP CD

232323

rabs

R hypotenuse

2

12

Geometry 15

ab

cBA

C

R

rM

P

A B

C

D

EFP

A

BC

xb

a

01 29/09/04 15:36 Page 15

Page 35: Geometry for Computer Graphics.pdf

16 Geometry for computer graphics

Square

Diagonal

Area

Inradius

Circumradius

Symmetry properties: A square has equal sides and equal diagonals, which bisect each otherand the interior angles, and they intersect at right angles. The interior angles are right angles.

Rectangle

Diagonal

Area A � ab

Circumradius

Symmetry properties: A rectangle has equal diagonals, which bisect each other, and theinterior angles are right angles.

Parallelogram (rhomboid)

Diagonals

Altitude h � b sina

Area A � ah � ab sina

Symmetry properties: A parallelogram has two pairs of parallel sides with equal oppositesides. Adjacent interior angles are supplementary and opposite interior angles are equal.The diagonals bisect each other.

d d a b12

22 2 22� � �( )

d a b ab22 2 2� � � cos�

d a b ab12 2 2� � � cos �

R d� 12

d a b� �2 2

Ra

�2

r a� 12

A a d� �2 12

2

d a� 2

1.4 Quadrilaterals

a

d

d Rr

aa

a

a

a

bb dd R

a

a

bbd1

d2h

ba

01 29/09/04 15:36 Page 16

Page 36: Geometry for Computer Graphics.pdf

Geometry 17

Rhombus

Diagonals

Altitude h � a sin a

Area

Symmetry properties: A rhombus has two pairs of parallel, equal sides. Adjacent interiorangles are supplementary and opposite interior angles are equal. The diagonals bisect eachother and the interior angles, and intersect at right angles.

Trapezium

Diagonals

Altitude h � d sin a� b sinb

Area

Symmetry properties: A trapezium has one pair of parallel sides.

General quadrilateral

Area

where

Symmetry properties: A general quadrilateral has all sides of different lengths and no sidesparallel. The sum of interior angles � 360°, and the sum of exterior angles � 360°.

s a b c d� � � � � �12

12

( ) ( )and e a b

A s a s b s c s d abcd� � � � � �( )( )( )( ) cos2e

A d d b d a c� � � � �14 1

222 2 2 2 2 24 ( )

A b d a c for� � � � �14

2 2 2 2 90( ) tan u u

A d d� 12 1 2 sin�

A a c h� �12

( )

d a d ad22 2 2� � � cos�

d a b ab12 2 2� � � cos �

A ah a d d� � �2 12 1 2sina

d d a12

22 24� �

d a2 2 sin2

�a

d a1 2 cos2

�a

a

a

a

ad1

d2h

a

c

d bd1

d2

h

� �

a

c

db

d2

d1

a

b

u

01 29/09/04 15:36 Page 17

Page 37: Geometry for Computer Graphics.pdf

Tangent quadrilateral

Area

A � sr

where

Symmetry properties: A tangent quadrilateral must have an inscribed circle.

Cyclic quadrilateral

Diagonals

d1d2 � ac + bd

Area

where

Circumscribed radius

Symmetry properties: A cyclic quadrilateral must have a circumscribed circle. Oppositeinterior angles are supplementary (sum to 180°).

Rac bd ad bc ab cds a s b s c s

�� � �

� � � �14

( )( )( )( )( )( )( dd)

s a b c d� � � �12

( )

A s a s b s c s d� � � � �( )( )( )( )

dac bd ad bc

ab cd2 �� �

( )( )

dab cd ac bd

ad bc1 �� �

( )( )

s a b c d� � � �12

( )

A r a b c d� � � �12

( )

18 Geometry for computer graphics

r

d b

a

c

abR

cd d2

d1a

b

01 29/09/04 15:36 Page 18

Page 38: Geometry for Computer Graphics.pdf

Geometry 19

1.5.1 Internal and external angles of a polygon

The internal angles of an n-gon sum to (n � 2) � 180°.Quadrilateral (n � 4)

The external angles of an n-gon sum to 360°.Quadrilateral (n � 4)

1.5.2 Alternate internal angles of a cyclic polygon

The alternate internal angles of a cyclic n-gon sum to (n � 2) � 90°[n � 4 and is even].Cyclic hexagon (n � 6)

a1 � a3 � a5 � a2 � a4 � a6 � 360°

1.5.3 Area of a regular polygon

Area of a polygon using the number of edges

or

or Area nrn

�12

22 sinp⎛

⎝⎜

⎞⎠⎟

Area nrn n

� 2 sin cosp p⎛

⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

Area nsn

�14

2 cotp⎛

⎝⎜

⎞⎠⎟

aii�

� �1

4

360∑

aii�

� �1

4

360∑

1.5 Polygons

a4

a1 a2

a3

a4

a1

a2

a3

a5 a4

a3

a2

a1

a6

01 29/09/04 15:36 Page 19

Page 39: Geometry for Computer Graphics.pdf

where n � number of sidess � length of sider � radius of circumscribed circle

Area of a polygon using Cartesian coordinates

where the n vertices (x, y) are defined in counter-clockwise sequence.

Area x y y xi i n i i ni

n

� �� �

12 1 1

0

1

( )(mod ) (mod )

20 Geometry for computer graphics

01 29/09/04 15:36 Page 20

Page 40: Geometry for Computer Graphics.pdf

Geometry 21

1.6.1 Prisms

General prism

V � Ah

Parallelepiped

V � Ah

Rectangular parallelepiped

S � 2(ab � ah � bh)V � abh

1.6.2 Pyramids

Rectangular pyramid

when a � b

Volume of a frustum

V h A A A A� � �13 1 2 1 2( )

V abh� 13

S a a h a� � �2 2 24

S ab a h b b h a� � � � �12

( )4 42 2 2 2

1.6 Three-dimensional objects

A

Vh

A

Vh

ab

hV

a b

h

AA11 h

A2

01 29/09/04 15:36 Page 21

Page 41: Geometry for Computer Graphics.pdf

Tetrahedron

O is the origin.

1.6.3 Cylinders

Irregular cylinder

V � Ah

Cylinder

S � 2pr(r � h)V � pr2h

1.6.4 Cones

Right circular cone

Lateral surface area AL � prsS � pr(r � s)

Right circular conical frustum

Lateral surface area SL � ps(r1 � r2)

1.6.5 Spheres

Sphere

S � 4pr2

V r� 43

3�

V h r r r r� � �13 1

222

1 2� ( )

S r r s r r� � � ��( ( ))12

22

1 2

V r h� 13

2�

Vx y zx y zx y z

a a a

b b b

c c c

� 16

22 Geometry for computer graphics

C

B

O

A

Ah

r

h

h s

r

h s

r2

r1

r

01 29/09/04 15:36 Page 22

Page 42: Geometry for Computer Graphics.pdf

Spherical segment

when r1 � 0

1.6.6 Tori

Circular torus

S � 4p2rR

V � 2p2r2R

1.6.7 Platonic solids

There are five Platonic solids: tetrahedron, cube (hexahedron), octahedron, dodecahedron andicosahedron.

Tetrahedron Cube Octahedron Dodecahedron Icosahedron

Each object is constructed from a common regular polygon and the inherent symmetryensures that every vertex lies on a circumsphere of radius Rc. A second inner-sphere ofradius Rin touches the mid-point of each face, whilst a third mid-sphere of radius Rint touchesthe mid-point of each edge. These radii, together with the surface area A, volume V and thedihedral angle between any neighboring pair of faces � can be expressed in terms of theparameters p, q, f and s, where

p � the number of edges in a faceq � the number of edges associated with a vertexf � the number of facess � the edge length

The following steps show the formulas used for calculating Rin, Rint, Rc, �, A and V.

Ratio of in-sphere radius Rin to edge length s

R

sp q

q p

in �

12 2 2

cot cos

sin cos

p p

p p

V h r h� 16 2

2 23� ( )+

V h r r h� � �16 1

222 23 3� ( )

S rh� 2p

Geometry 23

hr

r1

r2

Rr

01 29/09/04 15:36 Page 23

Page 43: Geometry for Computer Graphics.pdf

Ratio of mid-sphere radius Rint to edge length s

Ratio of circumsphere radius Rc to edge length s

Dihedral angle �

Ratio of the surface area A to edge length s

Ratio of the volume V to edge length s

V

sARin3

13

A

sf p

p2� cot

p

� � �2 1sincos

sin

p

p

q

p

⎜⎜⎜⎜

⎟⎟⎟⎟

R

sq

q p

c �

12 2 2

sin

sin cos

p

p p

R

sp

q p

int �

12 2 2

cos

sin cos

p

p p

24 Geometry for computer graphics

01 29/09/04 15:36 Page 24

Page 44: Geometry for Computer Graphics.pdf

Geometry 25

Cha

ract

eris

tic

Tetr

ahed

ron

Cub

eO

ctah

edro

nD

odec

ahed

ron

Icos

ahed

ron

Vert

ices

48

620

12Ed

ges

612

1230

30Fa

ces

46

812

20Ed

ges/

face

(p)

34

35

3Ed

ges/

vert

ex (q

)3

34

35

Dih

edra

l ang

le (

�)

70.5

2878

°90

.0°

109.

4712

2°11

6.56

505°

138.

1896

Are

a (A

)6s

2

Volu

me

(V)

s3

Rin

/s

�0.

2041

24�

0.5

�0.

4082

48�

1.11

3516

�0.

7557

61

Rin

t/s

�0.

3535

54�

0.70

7107

�0.

5�

1.30

9017

�0.

8901

7

Rc/

s

�0.

6123

72�

0.86

6025

�0.

7071

07�

1.40

1259

�0.

9510

57

A/s

26

�1.

7320

51�

3.46

4102

�20

.645

728

�8.

6602

54

V/ s

31

�0.

1178

51�

0.47

1405

�7.

6631

19�

2.18

1695

5 123

5(

)�

1 415

75

()

�2 3

2 12

53

32 5

1 05

�2

33

1 410

25

�1 4

186

5+

2 23 2

6 4

1 46

25

�1 4

146

5�

1 22 2

2 4

1 1242

185

�1 20

250

110

5�

6 61 2

6 12

5 123

53 s

()

�s3

157

54

()

�s3

23

s32

12

53

2 s3

2510

52 s

�2

32 s

s33

01 29/09/04 15:36 Page 25

Page 45: Geometry for Computer Graphics.pdf

26 Geometry for computer graphics

1.7.1 Cartesian coordinates in �2

The Cartesian coordinates of a point in �2 are given by the ordered pair (x, y).

Distance in �2

Given two points (x1, y1) and (x2, y2) in �2, the distance between them is given by

1.7.2 Cartesian coordinates in �3

The Cartesian coordinates of a point in �3 are given by the ordered triple (x, y, z). The systemillustrated is right handed with the z-axis coming towards the viewer. A left-handed axialsystem has the z-axis directed away from the viewer.

1

2

3

12 3 4

�1�2�3

12

34�1

�2

�1 �2

X

Y

Z

(3, 3, 2)

d x x y y� � � �( ) ( )2 12

2 12

X

Y

1

1

�1

�1�2�3�4

�2

�3

2

2

3

3

4

(3, 2)

(3, �2)

(�3, 2)

(�3, �2)

0

First quadrantSecond quadrant

Third quadrant Fourth quadrant

1.7 Coordinate systems

01 29/09/04 15:36 Page 26

Page 46: Geometry for Computer Graphics.pdf

Geometry 27

Distance in �3

Given two points (x1, y1, z1) and (x2, y2, z2) in �3, the distance between them is given by

1.7.3 Polar coordinates

The polar coordinates of a point (x, y) in �2 are given by the ordered pair (r, u)

where x � r cos uy � r sin u

and

u� tan�1 (1st and 4th quadrants only)

Distance in �2

Given two points (r1, u1) and (r2, u2) in �2, the distance between them is given by

1.7.4 Cylindrical coordinates

The cylindrical coordinates of a point (x, y, z) in �3 are given by the ordered triple (r, u, z)

XY

Z (r, u, z)

(x, y, z)

ru

d r r r r� � � �12

22

1 2 2 12 cos( )u u

yx

⎛⎝⎜

⎞⎠⎟

r x y� �2 2

X

Y(r, u)(x, y)

r

x

y

u

d x x y y z z� � � � � �( ) ( ) ( )2 12

2 12

2 12

01 29/09/04 15:36 Page 27

Page 47: Geometry for Computer Graphics.pdf

where x � r cos uy � r sin uz � z

and

u� tan�1 (1st and 4th quadrants only)

z � z

1.7.5 Spherical coordinates

The spherical coordinates of a point (x, y, z) in �3 are given by the ordered triple (r, u,f)

where x � r sin f cos uy � r sin f sin uz � r cos f

and

u� tan�1 (1st and 4th quadrants only)

Note: The z-axis is normally taken as the vertical axis.

f�� �

�cos 1

2 2 2

z

x y z

⎝⎜⎜

⎠⎟⎟

yx

⎛⎝⎜

⎞⎠⎟

r� � �x y z2 2 2

XY

Z(r, u, f)

(x, y, z)rf

u

yx

⎛⎝⎜

⎞⎠⎟

r x y� �2 2

28 Geometry for computer graphics

01 29/09/04 15:36 Page 28

Page 48: Geometry for Computer Graphics.pdf

Geometry 29

To simplify this summary all vectors have been described as 3D vectors, although whereappropriate, the rules equally apply to 2D vectors.

1.8.1 Vector between two points

Given P1(x1, y1, z1) and P2 (x2, y2, z2). a is a vector from P1 to P2.

1.8.2 Scaling a vector

1.8.3 Reversing a vector

1.8.4 Unit Cartesian vectors

1.8.5 Algebraic notation for a vector

a � xai � yaj � zak

i j k� � �100

010

001

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

a a� � ����

xyz

xyz

a

a

a

a

a

a

⎢⎢

⎥⎥

⎢⎢

⎥⎥

ssxsysz

a

a

a

a �⎡

⎢⎢

⎥⎥

P Px xy yz z

xyz

a

a

a

1 2

2 1

2 1

2 1

� ���� �

���

�a⎡

⎢⎢

⎥⎥

⎢⎢⎢

⎥⎥

1.8 Vectors

a

P2(x2, y2, z2)

P1(x1, y1, z1)

saa

�aa

XZ

j

Y

k i

01 29/09/04 15:36 Page 29

Page 49: Geometry for Computer Graphics.pdf

1.8.6 Magnitude of a vector

1.8.7 Normalizing a vector to a unit length

1.8.8 Vector addition/subtraction

Commutative law of addition a � b � b � a

Associative law of addition (a � b) � c � a � (b � c)

1.8.9 Compound scalar multiplication

Distributive law of multiplication r(sa) � (rs)ar(a � b) � ra � rb and(r � s)a � ra � sa

1.8.10 Position vector

Point P1(x1, y1, z1) has a position vector a

a � x1i � y1j � z1k

1.8.11 Scalar (dot) product

If a is a unit vector a • a � 1

a b a bi � 0 ⇔ ⊥

a a ai � || ||2

a b ai � � � � �x x y y z za b a b a b || || || ||b cosa

a b a b� � � x

yz

xyz

x xy

a

a

a

b

b

b

a b

a

⎢⎢

⎥⎥

⎢⎢

⎥⎥

yz z

b

a b

⎢⎢

⎥⎥

aa

ia

ja

k� � �x y za a a

|| || || || || ||

|| ||a � � �x y za a a2 2 2

30 Geometry for computer graphics

a

||a||

1

aa

a

ba � b

a

P(x1, y1, z1)

X

Y

Z

cos a

ba

a

||b||||a||

01 29/09/04 15:36 Page 30

Page 50: Geometry for Computer Graphics.pdf

Commutative law of multiplication a • b � b • a

Distributive law of multiplication a • (b � c) � a • b � a • c(ra) • (sb) � rs(a • b)

1.8.12 Angle between two vectors

When a and b are unit vectors

a� cos�1(xaxb � yayb � zazb)

1.8.13 Vector (cross) product

a � b � c

where

a, b, c form a right-handed system

or

a � a � 0

1.8.14 The commutative law does not hold: a � b � �b � a

Distributive law (ra) � (sb) � rs(a � b)a � (b � c) � a � b � a � ci � j � k j � k � i k � i � j j � i � �kk � j � �i i � k � �j

1.8.15 Scalar triple product

Volume V � [a, b, c]

[ , , ] ( )a b c a b c� � �ix y zx y zx y z

a a a

b b b

c c c

a bi j k

� � x y zx y z

a a a

b b b

a b i j k� � � �y zy z

z xz x

x yx y

a a

b b

a a

b b

a a

b b

|| || || || || || sinc a b� � a

a�� �

��cos 1 x x y y z za b a b a b

|| || || ||a b

⎝⎜⎞

⎠⎟

a i j kb i j k

� � �

� � �

x y zx y z

a a a

b b b

Geometry 31

a

b

a

c b

aa

cb

a

V

01 29/09/04 15:36 Page 31

Page 51: Geometry for Computer Graphics.pdf

[a, b, c] � [b, c, a] � [c, a, b] � �[c, b, a] � �[b, a, c] � �[a, c, b]are coplanar are right-handed.

1.8.16 Vector triple product

a � (b � c) � (a • c)b � (a • b)c (a � b) � c � (a • c)b � (b • c)a

1.8.17 Vector normal to a triangle

Given three points P1, P2, P3 defined in counter- clockwise sequence, n is the normal vector:

1.8.18 Area of a triangle

Given three points P1, P2, P3, area A is:

Ax xy yz z

x x� � �

���

��

12

2 1

2 1

2 1

3 1|| ||a b a b

⎢⎢

⎥⎥

yy yz z

3 1

3 1

��

⎢⎢

⎥⎥

a b����

����

x xy yz z

x xy yz z

2 1

2 1

2 1

3 1

3 1

3 1

⎢⎢

⎥⎥

⎣⎣

⎢⎢

⎥⎥

n a b� �

( , , )�0 ⇔ a b c[ , , ] , ,a b c a b c� 0 ⇔

32 Geometry for computer graphics

n b

a

P1(x1, y1, z1)

P2(x2, y2, z2)

P3(x3, y3, z3)

01 29/09/04 15:36 Page 32

Page 52: Geometry for Computer Graphics.pdf

Geometry 33

1.9.1 Definition of a quaternion

A quaternion is a four-tuple formed by a scalar and a vector:

q � [s, v]

where s is a scalar and v is a vector.

Algebraically q � [s � xi � yj � zk]

where s, x, y and z are all scalars.

1.9.2 Equal quaternions

Given q1 � [s1 � x1i � y1j � z1k]

and q2 � [s2 � x2i � y2j � z2k]

q1 � q2 if s1 � s2 x1 � x2 y1 � y2 z1 � z2

1.9.3 Quaternion addition and subtraction

Given q1 � [s1 � x1i � y1j � z1k]

and q2 � [s2 � x2i � y2j � z2k]

q1 q2 � [(s1 s2) � (x1 x2)i � (y1 y2)j � (z1 z2)k]

1.9.4 Quaternion multiplication

Given q1 � [s1 � x1i � y1j � z1k]

and q2 � [s2 � x2i � y2j � z2k]

Hamilton’s rules i2 � j2 � k2 � �1 � ijk

ij � k jk � i ki � j

ji � �k kj � �i ik � �j

and summarized as

i j kijk

k jk ij i

� �� �

� �

11

1

⎝⎜⎜

⎠⎟⎟

1.9 Quaternions

01 29/09/04 15:36 Page 33

Page 53: Geometry for Computer Graphics.pdf

which can be rewritten using the scalar and vector product notation

q1q2 � [(s1s2 � v1 • v2), s1v2 � s2v1 � v1 � v2]

Note that quaternion multiplication is non-commutative.

1.9.5 Magnitude of a quaternion

Given q � [s � xi � yj � zk]

1.9.6 The inverse quaternion

Given q � [s � xi � yj � zk]

then

and qq�1 � q�1q � 1

1.9.7 Rotating a vector

A vector p is rotated to p� by a unit quaternion using:

p� � qpq�1

where

V is the axis of rotation and u the angle of rotation.

1.9.8 Quaternion as a matrix

Given q � [s, v] where

It is equivalent to the following matrix

s x y z xy sz xz syxy sz s y x

2 2 2 2

2 2 22 2

2� � � � �

� � �( ) ( )

( ) �� �� � � � �

z yz sxxz sy yz sx s z x y

2

2 2 2 22

2 2( )

( ) ( )

⎢⎢⎢⎢

⎥⎥⎥

s � �cos , ˆ sinu u

2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟v n

q V� cos , sin ˆu u

2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

⎣⎢⎢

⎦⎥⎥

qi j k

q� �

� � �12

[ ]

|| ||

s x y z

|| ||q � � � �s x y z2 2 2 2

q q1 2 1 2 1 2 1 2 1 2 1 2 2 1 1� � � � � � �[( ) (s s x x y y z z s x s x y zz y zs y s y z x z x s z s z

2 2 1

1 2 2 1 1 2 2 1 1 2 2

� � � � � �

)( )

ij ( 11 1 2 2 1� �x y x y )k]

34 Geometry for computer graphics

01 29/09/04 15:36 Page 34

Page 54: Geometry for Computer Graphics.pdf

Geometry 35

The following transformations are divided into two groups: �2 and �3. The matrices areexpressed in their homogeneous form, which ensures that they can be combined together.The reader should be aware that, in general, these transformations are not commutative, i.e.T1 � T2 � T2 � T1.

1.10.1 Scaling relative to the origin in �2

Sx � x-axis scaling factorSy � y-axis scaling factor

1.10.2 Scaling relative to a point in �2

Sx � x-axis scaling factorSy � y-axis scaling factor(xp, yp) � the reference point

1.10.3 Translation in �2

Tx � the x-axis translationTy � the y-axis translation

1.10.4 Rotation about the origin in �2

a� the angle of rotation

xy�� �

1

00

0 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥

cos sinsin cos

� �� �

⎥⎥

⎣⎢⎢

⎦⎥⎥

�xy1

xy

TT

xy

x

y

�� � �

1

1 00 10 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢

⎤⎤

⎦⎥⎥

xy

S x SS y S

x P x

y P y

��

��

1

0 10 10 0 1

⎣⎢⎢

⎦⎥⎥

=⎡

⎢⎢

( )( )

⎤⎤

⎥⎥

⎣⎢⎢

⎦⎥⎥

�xy1

xy

SS

xy

x

y

�� � �

1

0 00 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢

⎤⎤

⎦⎥⎥

1.10 Transformations

X

Y

x

y

Syy

Sxx

(x�, y�)

(x, y)

X

Y

x

y

x�

y�

xP

yP

(x�, y�)

(x, y)

(xp, yp)

X

Y

x

y

x�

y� (x�, y�)

(x, y)

Ty

Tx

X

Y(x�, y�)

(x, y)

01 29/09/04 15:36 Page 35

Page 55: Geometry for Computer Graphics.pdf

1.10.5 Rotation about a point in �2

a� the angle of rotation(xp, yp) � the point of rotation

1.10.6 Shearing along the x-axis in �2

a� the shear angle

1.10.7 Shearing along the y-axis in �2

a� the shear angle

1.10.8 Reflection about the x-axis in �2

1.10.9 Reflection about the y-axis in �2

xy

xy

�� �

��

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎦⎥⎥

xy

xy

�� � � �

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎦⎥⎥

xy

xy

�� � �

1

1 0 01 0

0 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢tan�⎢⎢

⎦⎥⎥

xy

xy

�� � �

1

1 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢

tan�

⎢⎢

⎦⎥⎥

xy

x yP P�� �

� � �

1

1⎡

⎣⎢⎢

⎦⎥⎥

cos sin cos sinsin

� � � �( )�� � � �cos cos siny x

xyP P( )1

0 0 1 1� � �

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

36 Geometry for computer graphics

X

Y

a

(x�, y�)

(x, y)

(xp, yp)

X

Y(x�, y�)(x, y)

y tan a

a

X

Y

(x�, y�)

(x, y)

x tan aa

X

Y

(x�, y�)

(x, y)

Y

(x�, y�) (x, y)

X

01 29/09/04 15:36 Page 36

Page 56: Geometry for Computer Graphics.pdf

1.10.10 Reflection about a line parallel with the x-axis in �2

y � yP the axis of reflection

1.10.11 Reflection about a line parallel with the y-axis in �2

x � xP the axis of reflection

1.10.12 Translated change of axes in �2

(xT, yT) � the translation

1.10.13 Rotated change of axes in �2

a� the angle of rotation

1.10.14 The identity matrix in �2

xy

xy

�� � �

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥⎥

xy�� � �

1

00

0 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥

cos sinsin cos

� �� �

⎥⎥

⎣⎢⎢

⎦⎥⎥

�xy1

xy

xy

xy

T

T

�� �

�� �

1

1 00 10 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

xy

x xy

P�� �

��

1

1 0 20 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

xy y

xyP

�� � � �

1

1 0 00 1 20 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

Geometry 37

X

Y

yP

(x�, y�)

(x, y)

X

Y

xP

(x�, y�) (x, y)

O X

Y Y�

X�

xT

yT

P

x

yy�

x� O�

X

Y

Y�

X�

P P�

x

y

y� x� �

01 29/09/04 15:36 Page 37

Page 57: Geometry for Computer Graphics.pdf

1.10.15 Scaling relative to the origin in �3

Sx � x-axis scaling factorSy � y-axis scaling factorSz � z-axis scaling factor

1.10.16 Scaling relative to a point in �3

Sx � x-axis scaling factorSy � y-axis scaling factorSz � z-axis scaling factor(xp, yp, zp) � the reference point

1.10.17 Translation in �3

(Tx, Ty, Tz) � the translation

1.10.18 Rotation about the x-axis in �3

a� the angle of pitch about the x-axis

xyz

���

� �

1

1 0 0 00 00 0

⎢⎢⎢

⎥⎥⎥

cos sinsin cos

� �� �

00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

xyz

TTT

x

y

z

���

1

1 0 00 1 00 0 10 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎤⎤

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xyz

S x SS y S

x P x

y P y

���

��

1

0 0 10 0 10

⎢⎢⎢

⎥⎥⎥

( )( )

00 10 0 0 1 1

S z S

xyz

z P z( )��

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

xyz

SS

S

x

y

z

���

1

0 0 00 0 00 0 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎤⎤

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

38 Geometry for computer graphics

X

Y

Z

xz

y

Syy

SxxSzz

(x�, y�, z�)

(x, y, z)

XZ

YSyy

Szz Sxx

(x�, y�, z�)

(xp, yp, zp)

(x, y, z)

y

xz

XZ

Y

Tz

Ty

Tx

(x�, y�, z�)

z�

z

y�

x�x

y(x, y, z)

X

Y

Z

(x�, y�, z�)

(x, y, z)

01 29/09/04 15:36 Page 38

Page 58: Geometry for Computer Graphics.pdf

1.10.19 Rotation about the y-axis in �3

a� the angle of yaw about the y-axis

1.10.20 Rotation about the z-axis in �3

a� the angle of roll about the z-axis

1.10.21 Rotation about an arbitrary axis in �3

K � 1 � cosaaxis v � ai � bj � ck and ||v|| � 1a� the angle of rotation about v

1.10.22 Reflection about the yz-plane in �3

1.10.23 Reflection about the zx-plane in �3

xyz

���

� �

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xyz

���

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xyz

a K abK c acK b���

� � �

1

2⎡

⎢⎢⎢

⎥⎥⎥

cos sin sin� � ��� � ��

002abK c b K bcK a

acK b bcK� � �� �

sin cos sinsin aa c K

xyzsin cos� �2 0

0 0 0 1 1�

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎤⎤

⎥⎥⎥

xyz

���

1

0 00 0

0 0 1 0

⎢⎢⎢

⎥⎥⎥

cos sinsin cos

� �� �

00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

xyz

���

��

1

0 00 1 0 0

0 0

⎢⎢⎢

⎥⎥⎥

cos sin

sin cos

� �

� �00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

Geometry 39

Y

XZ

(x�, y�, z�)(x, y, z)

Y

ZX

(x�, y�, z�)

(x, y, z)

Y

v

XZ

(x�, y�, z�)

(x, y, z)

X

Y

Z

(x�, y�, z�)(x, y, z)

X

Y

Z(x�, y�, z�)

(x, y, z)

01 29/09/04 15:36 Page 39

Page 59: Geometry for Computer Graphics.pdf

1.10.24 Reflection about the xy-plane in �3

1.10.25 Reflection about a plane parallel with the yz-plane in �3

x � xp the position of the yz-plane

1.10.26 Reflection about a plane parallel with the zx-plane in �3

y � yp the position of the zx-plane

1.10.27 Reflection about a plane parallel with the xy-plane in �3

z � zp the position of the xy-plane

1.10.28 Translated change of axes in �3

(xT, yT, zT) � the translation

′′′

⎢⎢⎢

⎥⎥⎥

⎢xyz

xyz

T

T

T1

1 0 00 1 00 0 10 0 0 1

���⎢⎢

⎥⎥⎥

⋅⎡

⎢⎢⎢

⎥⎥⎥

xyz1

′′′

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎤xyz zP1

1 0 0 00 1 0 00 0 1 20 0 0 1

��

⎦⎦

⎥⎥⎥

⋅⎡

⎢⎢⎢

⎥⎥⎥

xyz1

′′′

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎤xyz

yP

1

1 0 0 00 1 0 20 0 1 00 0 0 1

� �

⎦⎦

⎥⎥⎥

⋅⎡

⎢⎢⎢

⎥⎥⎥

xyz1

′′′

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎤xyz

xP

1

1 0 0 20 1 0 00 0 1 00 0 0 1

⎦⎦

⎥⎥⎥

⋅⎡

⎢⎢⎢

⎥⎥⎥

xyz1

xyz

���

��

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

40 Geometry for computer graphics

X

Y

Z

(x�, y�, z�)

(x, y, z)

X

Y

Z

xP

(x�, y�, z�)

(x, y, z)

X

Y

Z

yP

(x�, y�, z�)

(x, y, z)

X

Y

Z

zP

(x�, y�, z�)(x, y, z)

Y

XZ

X�Z�

Y�

xT

yT

zT

x

y

z

x�

y�

z�

P

01 29/09/04 15:36 Page 40

Page 60: Geometry for Computer Graphics.pdf

1.10.29 Rotated change of axes in �3

r11, r12, r13 are the direction cosines of the secondary x-axisr21, r22, r23 are the direction cosines of the secondary y-axisr31, r32, r33 are the direction cosines of the secondary z-axis

1.10.30 The identity matrix in �3

′′′

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥

xyz1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎥⎥⋅

⎢⎢⎢

⎥⎥⎥

xyz1

′′′

⎢⎢⎢

⎥⎥⎥

xyz

r r rr r rr r

1

00

11 12 13

21 22 23

31 3�

22 33 00 0 0 1 1

r

xyz

⎢⎢⎢

⎥⎥⎥

⋅⎡

⎢⎢⎢

⎥⎥⎥

Geometry 41

X

Y

Z

Z�

X�

Y�

x

y

x�

y�

z

z�

01 29/09/04 15:36 Page 41

Page 61: Geometry for Computer Graphics.pdf

42 Geometry for computer graphics

1.11.1 Normal form of the straight line equation

Given y � mx � c

then the slope of the line

and c � the intercept with the y-axis

1.11.2 General form of the straight line equation

Given ax � by � c � 0

then n � ai � bj

1.11.3 Hessian normal form of the straight line equation

Given x cosa � y sina � p

|p| is the perpendicular distance from the origin to the line,

and and

unit vector

ax � by � c � 0 is converted into the Hessian normal form

by

1.11.4 Parametric form of the straight line equation

Given p � t � lv

where t � xTi � yTj

and v � xvi � yvj

T(xT, yT) is a point on the line and l is a scalar.

ax

a b

by

a b

c

a b2 2 2 2 2 20

��

��

��

ˆ cos sinn i j� �a a

yp

� ��sin

xp

� �cosa

myx

��

1.11 Two-dimensional straight lines

X

cm

∆y

∆x

Y

Y

X

n

Y

X

n

p

x�

y�

a

t

v

p

PY

X

T

λv

01 29/09/04 15:36 Page 42

Page 62: Geometry for Computer Graphics.pdf

Geometry 43

1.11.5 Cartesian form of the straight line equation

Given ax � by � c

then c � d ||n|| � ax0 � by0

where P0 (x0, y0) is a point on the line.

The normalized form is

1.11.6 Straight line equation from two points

Normal form of the line equation

Given P1(x1, y1) and P2(x2, y2)

and y � mx � c

then

and

General form of the line equation

Given P1(x1, y1) and P2 (x2, y2)

and Ax � By � C � 0

then A � y2 � y1

B � x1 � x2

C � �(x1y2 � x2y1)

Cartesian form of the line equation

Given P1(x1, y1) and P2(x2, y2)

and ax � by � c

then a � y2 � y1 b � x1 � x2 c � x1y2 � x2y1

or 11

11

1

2

1

2

1 1

2 2

yy x x

x y x yx y� �

c y xy y

x x� �

�1 12 1

2 1

⎝⎜⎞

⎠⎟

my y

x x�

�2 1

2 1

ax

by d

|| || || ||n n� �

Y

X

P2(x2, y2)

P1(x1, y1)

Y

X

P2(x2, y2)

P1(x1, y1)

Y

X

n

d P0(x0, y0)

Y

X

c

m

P2(x2, y2)

P1(x1, y1)

01 29/09/04 15:36 Page 43

Page 63: Geometry for Computer Graphics.pdf

44 Geometry for computer graphics

Parametric form of the line equation

Given P1(x1, y1) and P2(x2, y2)

and p � p1 � lv

and v � p2 � p1

P is between P1 and P2 for l�[0, 1].

1.11.7 Point of intersection of two straight lines

General form of the line equation

Given a1x � b1y � c1 � 0a2x � b2y � c2 � 0

then

Intersect at

The lines are parallel if a1b2 � a2b1 � 0

Parametric form of the line equation

Given p � r � la q � s � �b

where r � xRi � yRj s � xSi � ySj

and a � xai � yaj b � xbi � ybj

then

and

Point of intersection xP � xR � lxa yp � yR � lya

or xP � xS � �xb yP � yS � �yb

The lines are parallel if xbya � xayb � 0

e�� � �

x y y y x x

x y x ya S R a S R

b a a b

( ) ( )

l�� � �

x y y y x x

x y x yb S R b S R

b a a b

( ) ( )

ya c a c

a b a bP ��

�2 1 1 2

1 2 2 1

xc b c b

a b a bp ��

�2 1 2

1 2 2 1

1

x

c bc b

y

a ca c

a ba b

P P

1 1

2 2

1 1

2 2

1 1

2 2

1� �

P

Y

X

p1

p2p

P1

P2

λv

Y

X

P(xp, yp)

s

a

bp

P

Y

X

r

R

S

01 29/09/04 15:36 Page 44

Page 64: Geometry for Computer Graphics.pdf

Geometry 45

1.11.8 Angle between two straight lines

General form of the line equation

Given a1x � b1y � c1 � 0 a2x � b2y � c2 � 0

where n � a1i � b1j m � a2i � b2j

angle

If ||n|| � ||m|| � 1 a� cos�1(n • m)

Normal form of the line equation

Given y � m1x � c1 y � m2x � c2

angle

or

If the lines are perpendicular m1m2 � �1.

Parametric form of the line equation

Given p � r � la q � s � �b

angle

If ||a|| � ||b|| � 1 a� cos�1(a • b)

1.11.9 Three points lie on a straight line

Given P1(x1, y1), P2(x2, y2) and P3(x3, y3)

and and

The three points lie on a straight line when s � lr.

s � P P1 3

� ���r � P P1 2

� ���

a� �cos 1 a ba bi

|| || || ||⋅⎛⎝⎜

⎞⎠⎟

a��

��tan 1 1 2

1 21

m m

m m

⎝⎜⎞

⎠⎟

a��

� �

�cos 1 1 2

12

22

1

1 1

m m

m m

⎝⎜⎜

⎠⎟⎟

� � �cos 1 n mn mi

|| || || ||⋅⎛⎝⎜

⎞⎠⎟

Y

X

nma

Y

X

m1m2

a

sa

b

Y

X

r

R

S

a

sP1

P2

P3

r

01 29/09/04 15:36 Page 45

Page 65: Geometry for Computer Graphics.pdf

46 Geometry for computer graphics

1.11.10 Parallel and perpendicular straight lines

General form of the line equation

Given a1x � b1y � c1 � 0 a2x � b2y � c2 � 0

where n � a1i � b1j m � a2i � b2j

The lines are parallel if n � lm.

The lines are mutually perpendicular if n • m � 0.

Normal form of the line equation

Given y � m1x � c1 y � m2x � c2

The lines are parallel if m1 � m2.

The lines are mutually perpendicular if m1m2 � �1.

Parametric form of the line equation

Given p � r � la q � s � �b

The lines are parallel if a � kb.

The lines are mutually perpendicular if a • b � 0.

1.11.11 Position and distance of a point on a line perpendicular to the origin

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

q � ln

where

If ||n|| � 1 l� �c

Distance OQ � ||q ||

l��c

n ni

Y

X

n

m

Y

X

m1m2

s a

bY

X

r

R

S

Q

n

Y

X

q

O

01 29/09/04 15:36 Page 46

Page 66: Geometry for Computer Graphics.pdf

Geometry 47

Parametric form of the line equation

Given q � t � lv

where

If ||v|| � 1 l� �v • t

Distance OQ � ||q||

1.11.12 Position and distance of the nearest point on a line to a point

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

q � p � ln

where

If ||n|| � 1 l� �n • p � c

Distance PQ � ||ln||

Parametric form of the line equation

Given q � t � lv

where

If ||v|| � 1 l� v • (p � t)

Distance PQ � ||p � t � lv||

1.11.13 Position of a point reflected in a line

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

Q is P’s reflection in the line q � p � ln

If ||n|| � 1 l� 2(n • p � c)

l��2( )n p

n nii

c

l��v p t

v v( )ii

l� ��n p

n nii

c

l��v tv vii

P

Q

Y

X

q

p

r

n

O

Y

X

T

P

v

pr

q

tQ

λv

n

Q

P

O

Y

X

p

q

Q

T

Y

XO

q v

t

01 29/09/04 15:36 Page 47

Page 67: Geometry for Computer Graphics.pdf

48 Geometry for computer graphics

Parametric form of the line equation

Given s � t � lv

Q is P’s reflection in the line

q � 2t � �v � p

where

If ||v|| � 1 � � 2v • (p � t)

1.11.14 Normal to a line through a point

General form of the line equation

Given line m ax � by � c � 0 and a point P(xp, yp)

Line n is �bx � ay � bxp � ayp � 0

Parametric form of the line equation

Given line m q � t � lv and a point P

u � p � (t � lv)

where

If || v || � 1 l� v • (p � t)

Line n is n � p � �u where � is a scalar.

1.11.15 Line equidistant from two points

General form of the line equation

Given P1(x1, y1) and P2(x2, y2)

The line equation is

( )x x x y y y x x y y2 1 2 112 2

212

22

12 0� � � � � � � �( ) ( )

l��v p t

v v( )ii

e��2v p t

v v( )ii

T

v

Q

P

O

Y

X

p

q

t

X

YP

mn

X

YP

T

t

pu

qQ

n

mλv

P1

P2

X

Y

P(x, y)

01 29/09/04 15:36 Page 48

Page 68: Geometry for Computer Graphics.pdf

Parametric form of the line equation

Given P1(x1, y1) and P2(x2, y2)

q � p � lv

v � �(y2 � y1) i � (x2 � x1) j

1.11.16 Two-dimensional line segment

Line segment

P1(x1, y1) and P2(x2, y2) define a line segment and p1 and p2 are their respective position vectors.

Therefore p � p1 � la

where a � p2 � p1

therefore xP � x1 � l(x2 � x1)

yP � y1 � l(y2 � y1)

P is between P1 and P2 for l�[0, 1].

Intersection of two line segments

Given p � r � la and q � s � �b

where a � xai � yaj and b � xbi � ybj

then

and

If 0 � l� 1 and 0 � � � 1 the lines intersect or touch one another. A possible point ofintersection is given by

xP � x1 � lxa yP � y1 � lya

or xP � x3 � �xb yP � y3 � �yb

The line segments are parallel if xbya � xayb � 0.

l�� � �

x y y y x x

x y x yb b

b a a b

( )3 1 3 1( )

e�� � �

x y y y x x

x y x ya a

b a a b

( )3 1 3 1( )

p p p� �12 1 2( )

Geometry 49

pp2

λaP

p1 P2

P1

X

Y

P1

P2

v

up

X

Y

P Q

q

P4

P3 P2

P1

X

YP

pb

as

r q

01 29/09/04 15:36 Page 49

Page 69: Geometry for Computer Graphics.pdf

The table below illustrates the relative positions of the line segments for different values ofl and �.

l � � �

0 0 0 � 1 1

0 l 1 0 0 � 1 1

1 0 0 � 1 1

bab

a

b

a

ba

b

a

b

a

bab

ab

a

50 Geometry for computer graphics

01 29/09/04 15:36 Page 50

Page 70: Geometry for Computer Graphics.pdf

Geometry 51

1.12.1 Line intersecting a circle

General form of the line equation

Given a line ax � by � c � 0 where a2 � b2 � 1 and a circle radius r with center (xC, yC).

The potential intersection coordinates are given by

where cT � axC � byC � c

Miss cT2 (b2 � 1) � a2r2 0

Touch cT2 (b2 � 1) � a2r2 � 0

Intersect cT2 (b2 � 1) � a2r2 � 0

Parametric form of the line equation

Given a line p � t � �v where ||v || � 1 and a circle radius r with center (xC, yC) with position vector c � xCi � yCj.

The potential intersection coordinates are given by

xP � xT � lxv

yP � yT � lyv

where

s � c � tMiss (s • v)2 � ||s ||2 � r2 0Touch (s • v)2 � ||s ||2 � r2 � 0Intersect (s • v)2 � ||s ||2 � r2 � 0

1.12.2 Touching and intersecting circles

Given two circles with radii r1 and r2 centered at C1 (xC1, yC1) and C2 (xC2, yC2) respectively.

Touch d � r1 � r2

l� � �s v s v si i( )2 2 2|| || r

y y bc c b a rC T T� � � �2 2 2 21( )

x x ac c a b rC T T� � � �2 2 2 21( )

1.12 Lines and circles

Y

X

r

P

P�

(xC, yC)

Y

X

r

PT

t

v

p (xC, yC)

P�

C1

C2

r1

r2

P

d

01 29/09/04 15:36 Page 51

Page 71: Geometry for Computer Graphics.pdf

Touch point

Separate d � r1 � r2

Intersect r1 � r2 � d � |r1 � r2|

Point(s) of intersection

where

and e l� �r

d12

22

l�� �r r d

d12

22 2

22

x x x yy y y x

P C d d

P C d d

1 1

1 1

� � �

l e

l e+

y yr

dy yP C C C� � �1

12 1( )

x xr

dx xP C C C� � �1

12 1( )

52 Geometry for computer graphics

01 29/09/04 15:36 Page 52

Page 72: Geometry for Computer Graphics.pdf

Geometry 53

1.13.1 Circle

General equation

Center origin x2 � y2 � r2

Center (xc, yc) (x � xc)2 � (y � yc)2 � r2

Parametric equation

Center origin

Center (xc, yc)

1.13.2 Ellipse

General equation

Center origin

Center (xc, yc)

Parametric equation

Center origin

Center (xc, yc) x x a ty y b t

tc

c

� �

� �� �

cossin

⎫⎬⎭

0 2p

x a ty b t

t��

� �cossin

⎫⎬⎭

0 2p

( ) ( )x x

a

y y

bc c�

��

�2

2

2

21

x

a

y

b

2

2

2

21� �

x x r ty y r t

tc

c

� �

� �� �

cossin

⎫⎬⎭

0 2p

x r ty r t

t��

� �cossin

⎫⎬⎭

0 2p

1.13 Second degree curves

X

Y

P

r

x

y

t

X

Y

P

ax

y

t

b

01 29/09/04 15:36 Page 53

Page 73: Geometry for Computer Graphics.pdf

1.13.3 Parabola

General equation

Vertex origin y2 � 4 fx

Vertex (xc, yc) (y � yc)2 � 4 f (x � xc)

where f is the focus.

Reversing the axes x2 � 4 fy

Parametric equation

Vertex origin

Vertex (xc, yc)

Reversing the axes

1.13.4 Hyperbola

General equation

Centered at the origin, with the transverse axis coincident with the x-axis.

Foci at ( c, 0)

Parametric equation

Center origin x a ty b t

��

sectan

c a b� �2 2

x

a

y

b

2

2

2

21� �

x f ty t

22

x x ty y t

c

c

� �

� �

2

2

x ty f t

2

2

54 Geometry for computer graphics

X

Y�bxay �

bxay �

(�c, 0) (c, 0)

a

a

X

Y

P

a

a

( f, 0)

01 29/09/04 15:36 Page 54

Page 74: Geometry for Computer Graphics.pdf

Geometry 55

1.14.1 Straight line equation from two points

Given P1 and P2

v � p2 � p1

p � p1 � lv

P is between P1 and P2 for l�[0, 1].

If ||v|| � 1,l corresponds to the linear distance along v.

1.14.2 Intersection of two straight lines

Given p � t � la and q � s � �b

where t � xti � ytj � ztk and s � xsi � ysj � zsk

and a � xai � yaj � zak and b � xbi � ybj � zbk

If a � b � 0 the lines are parallel and do not intersect.

If (t �s) • (a � b) � 0 the lines do not intersect.

Solve lxa � �xb � xs � xtlya � �yb � ys � ytlza � �zb � zs � zt

for values of l and �.

1.14.3 The angle between two straight lines

Given p � r � laand q � s � �b

Angle

If ||a|| � ||b|| � 1 � � cos�1(a • b)

1.14.4 Three points lie on a straight line

Given three points P1, P2, P3.

Let

The points lie on a straight line when s � lr where l is a scalar.

r s� �P P P P1 2 1 3

� ��� � ���and

a��

�cos|| || || ||

1 a bai

b

⎛⎝⎜

⎞⎠⎟

1.14 Three-dimensional straight lines

Z

Y

X

P1

P2

p1

p2

pλvP

X

Y

Z

T Sa

t s

b

Z

Y

X

R

sr

a

b

S

Z

Y

X

P1

P3

P2

s

r

01 29/09/04 15:36 Page 55

Page 75: Geometry for Computer Graphics.pdf

1.14.5 Parallel and perpendicular straight lines

Given p � r � ma

and q � s � �b

The lines are parallel if a � lb where l is a scalar.

The lines are perpendicular if a • b � 0.

1.14.6 Position and distance of a point on a line perpendicular to the origin

Given p � t � lv

where

If ||v|| � 1 l� �v • t

Distance OP � ||p||

1.14.7 Position and distance of the nearest point on a line to a point

Given q � t � lv

where

If ||v || � 1 l� v • (p � t)

Distance PQ � ||p � t � lv||

1.14.8 Shortest distance between two skew lines

Given p � q � tv

and p� � q� � tv�

Shortest distance d �� � � �

� �

|( ) ||| ||

q q v vv vi( )

l��v p t

v v( )ii

l��v tv vii

56 Geometry for computer graphics

Z

Y

X

R sr

abS

Z

Y

X

p

t

P

T

v

O

T

r

Q

P

λv

p

t

q

X

Y

Z

Y

Z X

O

Q� Q

T

T�

q�q

v

v�

d

01 29/09/04 15:36 Page 56

Page 76: Geometry for Computer Graphics.pdf

1.14.9 Position of a point reflected in a line

Given s � t � lv

and a point P with reflection Q

q � 2t � �v � p

where

If ||v|| � 1 � � 2v • (p � t)

1.14.10 Normal to a line through a point

Given q � t � lv

the normal is u � p � (t � lv)

where

If ||v|| � 1 l� v • (p � t)

l��v p t

v v( )ii

e��2v p t

v v( )ii

Geometry 57

Z

Y

X

p

q

P

Q

Ttv

T

u

Q

P

λv

p

t

q

X

Y

Z

01 29/09/04 15:36 Page 57

Page 77: Geometry for Computer Graphics.pdf

58 Geometry for computer graphics

1.15.1 Cartesian form of the plane equation

Given ax � by � cz � d

where n � ai � bj � ck

If P0 is on the plane, and h is the perpendicular distance from the origin to the plane

d � n • p0 � h||n||

The normalized form is Ax � By � Cz � D

where

1.15.2 General form of the plane equation

Given Ax � By � Cz � D � 0where n � Ai � Bj � Ck

Its relationship to the Cartesian form is as follows:

A � a B � b C � c D � �n • p0 � �d

1.15.3 Hessian normal form of the plane equation

Given Ax � By � Cz � D � 0

The Hessian normal form is n1x � n2y � n3z � p � 0

In vector form: P(x, y, z) is a point on the plane with position vector p

then p � xi � yj � zk

and n � n1i � n2j � n3k

therefore n • p � �p

nA

A B Cn

B

A B C

nC

A B Cp

D

A B

1 2 2 2 2 2 2 2

3 2 2 2 2

�� �

�� �

�� �

�� 22 2�C

where

Aa

Bb

Cc

D h� � � �|| || || || || ||n n n

1.15 Planes

n

h P0

X

Y

Z

p0

n

h P0

X

Y

Z

p0

01 29/09/04 15:36 Page 58

Page 78: Geometry for Computer Graphics.pdf

Geometry 59

1.15.4 Parametric form of the plane equation

Given p � t � la � eb

T(xT, yT, zT) is on the plane with position vector t.a and b are two unique vectors parallel to the planea point on the plane is given by

xP � xT � lxa � exb

yP � yT � lya � eyb

zP � zT � lza � ezb

1.15.5 Converting from the parametric form to the general form

Given p � t � la � eb

where ||a|| � ||b|| � 1

and

and

The normal vector is p � xPi � yPj � zPk

||p|| is the perpendicular distance from the plane to the origin

therefore Ax � By � Cz � D � 0

where

1.15.6 Plane equation from three points

Given R, S, T and P(x, y, z) are on a plane

then ax � by � cz � d � 0

a y y z zy y z z

b z z x xz z x x

S R S R

T R T R

S R S R

T R T

�� �� �

�� �� � RR

S R S R

T R T R

R R R

c x x y yx x y y

d ax by cz

�� �� �

�� � �( )

Ax

By

Cz

DP P P� � � ��|| || ||

||p p p

p|| || ||

||

e��

( )( )a b t t

a b

a b

( )

i i i

i1 2

l��

( )( )a b b t a t

a b( )

i i i

i1 2

b

pT

X

Y

Z

P

a

c

t

b

pT

X

Y

Z

P

a

c

t

PS

R

Tw

v

u

u � v

where

01 29/09/04 15:36 Page 59

Page 79: Geometry for Computer Graphics.pdf

1.15.7 Plane through a point and normal to a line

Given n � ai � bj � ck

Q(xQ, yQ, zQ) is on the plane with position vector q

P(x, y, z) is any point on the plane with position vector p

then n • (p � q) � 0

or ax � by � cz � (axQ � byQ � czQ) � 0

1.15.8 Plane through two points and parallel to a line

Given M(xM, yM, zM) and N(xN, yN, zN)

and the line p � r � la

where a � xai � yaj � zak

then b � (xN � xM)i � (yN � yM)j � (zN � zM)k

and a � b � n � ai � bj � ck

where

Plane equation is ax � by � cz � (axM � byM � czM) � 0

1.15.9 Intersection of two planes

Given a1x � b1y � c1z � d1 � 0

and a2x � b2y � c2z � d2 � 0

where n1 � a1i � b1j � c1k

and n2 � a2i � b2j � c2k

The line of intersection is p � p0 � ln3

where n3 � n1 � n2 � a3i � b3j � c3k

a y zy z b z x

z x c x yx y

a a

b b

a a

b b

a a

b b� � �

ay zy zy z

bx zx zx z

cx yx

R R

S S

T T

R R

S S

T T

R R

S

� �

111

111

1yy

x yd ax by czS

T T

R R R11

�� � �( )

60 Geometry for computer graphics

P

n

X

Y

Z

Qq

p

M

Nb

λa

n

X

Y

Z

X

Y

Z

PP0

n1

n2

n3

pp0

or

01 29/09/04 15:36 Page 60

Page 80: Geometry for Computer Graphics.pdf

Geometry 61

and

If DET � 0 the line and plane are parallel.

1.15.10 Intersection of three planes

Given a1x � b1y � c1z � d1 � 0

a2x � b2y � c2z � d2 � 0

and a3x � b3y � c3z � d3 � 0

P(x, y, z) is the point of intersection

where

If DET � 0, two of the planes, at least, are parallel.

1.15.11 Angle between two planes

Given ax1 � by1 � cz1 � d1 � 0

and ax2 � by2 � cz2 � d2 � 0

where n1 � a1i � b1j � c1k

and n2 � a2i � b2j � c2k

z

a b da b da b d

DETDET

a b ca b ca b

� � �

1 1 1

2 2 2

3 3 3 1 1 1

2 2 2

3 33 3c

x

d b cd b cd b c

DETy

a d ca d ca d

� � � �

1 1 1

2 2 2

3 3 3

1 1 1

2 2 2

3 3 cc

DET3

DETa b ca b ca b c

�1 1 1

2 2 2

3 3 3

xd b c

b c d b cb c

DET

yd a c

a c d

0

21 1

3 31

2 2

3 3

0

23 3

1 11

�aa ca c

DET

zd a b

a b d a ba b

DET

3 3

2 2

0

21 1

3 31

2 2

3 3�

X

Y

Z

P

X

Y

a

Z

n2

n1

and

01 29/09/04 15:36 Page 61

Page 81: Geometry for Computer Graphics.pdf

62 Geometry for computer graphics

If ||n1|| � ||n2|| � 1 a� cos�1(n1 • n2)

1.15.12 Angle between a line and a plane

Given ax � by � cz � d � 0

where n � ai � bj � ck

and the line equation is p � t � lv

then

If ||n|| � ||v|| � 1 a� cos�1(n • v)

When the line is parallel with the plane n • v � 0

1.15.13 Intersection of a line and a plane

Given ax � by � cz � d � 0

where n � ai � bj � ck

and line p � t � lv

for the intersection point P

If ||n|| � ||v|| � 1 l� �(n • t � d)

If n • v � 0 the line and plane are parallel.

1.15.14 Position and distance of the nearest point on a plane to a point

Given ax � by � cz � d � 0

where n � ai � bj � ck

and Q is the nearest point on the plane to P

Position vector q � p � ln

Distance PQ � ||ln||

where

If ||n|| � 1 l� �(n • p � d)

l�� �( )n p

n nii

d

l�� �( )n t

n vii

d

a� �cos|| || || ||

1 n vn ni⋅

⎛⎝⎜

⎞⎠⎟

a� �cos|| || || ||

1 1 2

1 2

n n

n n

i⋅

⎝⎜⎞

⎠⎟

Z

Y

X

T

tv

p na

P

Z

Y

X

T

t

vP

p

n

P

Q

Y

X

q

p

r

n

O

Z

01 29/09/04 15:36 Page 62

Page 82: Geometry for Computer Graphics.pdf

1.15.15 Reflection of a point in a plane

Given ax � by � cz � d � 0

where n � ai � bj � ck

and Q is P’s reflection.

Position vector q � p � ln

where

If ||n|| � 1 l� �2(n•p � d)

1.15.16 Plane equidistant from two points

Given P1(x1, y1, z1) and P2(x2, y2, z2)

where P(x, y, z) is any point on the plane.

Plane equation is

or

1.15.17 Reflected ray on a surface

Given n the surface normal vector

s the incident ray

r the reflected ray

then r � s � ln

where

If ||n|| � 1 l� �2n • s

l��2n s

n nii

( ) ( ) ( )(

x x x y y y z z zx x y y

2 1 2 1 2 112 2

212

22

� � � � � �

� � � 112

22

12 0� � �z z )

( ) ( )p p p p p2 112 2 1 0� � � �( )i

l�� �2( )n p

n nii

d

Geometry 63

p

O

nq

Q P

X

Y

Z

P1

P2

p

X

Y

P

p2

p1

Z

su u

r

n

01 29/09/04 15:36 Page 63

Page 83: Geometry for Computer Graphics.pdf

64 Geometry for computer graphics

1.16.1 Line intersecting a sphere

Given a sphere with radius r centered at C with position vector c

and a line p � t � �v

where ||v || � 1

Position vector p � t � �v

where

and s � c � t

Miss (s • v)2 � ||s ||2 � r2 0

Touch (s • v)2 � ||s ||2 � r2 � 0

Intersect (s • v)2 � ||s ||2 � r2 � 0

1.16.2 Sphere touching a plane

Given a sphere with radius r centered at P

and a plane ax � by � cz � d � 0

where n � ai � bj � ck

then q � p � �n

where

If ||n || � 1 l� �(n • p � d)

they touch at Q when ||ln || � r

1.16.3 Touching spheres

Given two spheres: radius r1, center C1 (xC1, yC1, zC1) and radius r2, center C2 (xC2, yC2, zC2)

Intersect r1 � r2 � d � |r1 � r2|

Separate d � r1 � r2

d x x y y z zC C C C C C= ( )2 12

2 12

2 12� � � � �( ) ( )

l���n p

n nii

d

l� ��� �� �s v s v si i( )2 2 2r

1.16 Lines, planes and spheres

X

Y

Z

Tt

cC

rP p

λv

np

q Q

P

X

Y

Z

r

C1

C2

r1

r2

P

d

01 29/09/04 15:36 Page 64

Page 84: Geometry for Computer Graphics.pdf

Touch d � r1 � r2

Touch point

z zr

dz zP C C C� � �1

12 1( )

y yr

dy yP C C C� � �1

12 1( )

x xr

dx xP C C C� � �1

12 1( )

Geometry 65

01 29/09/04 15:36 Page 65

Page 85: Geometry for Computer Graphics.pdf

66 Geometry for computer graphics

1.17.1 Point inside a triangle

Given the vertices P1(x1, y1, z1,), P2(x2, y2, z2) and P3(x3, y3, z3) using barycentric coordinates we can write

x0 � �x1 � lx2 � bx3

y0 � �y1 � ly2 � by3

z0 � �z1 � lz2 � bz3

where � � l� b� 1

P0 is within the boundary of the triangle if � � l� b� 1 and (�,l,b) ∈ [0, 1].

1.17.2 Unknown coordinate value inside a triangle

Given the vertices P1, P2, P3 and a point P0(x0, y0, z0) where only two of the coordinates are known, the third coordinate can be determined within the boundary of the triangle using barycentric coordinates. For example, if x0 and z0 are known we can find y0 using barycentric coordinates:

y0 � �y1 � ly2 � by3

where

P0 is within the boundary of the triangle if � � l� b� 1 and (�,l,b) ∈ [0, 1].

e

x zx zx z

x zx zx z

x zx z

0 0

2 2

3 3

0 0

3 3

1 1

1 1

2

111

111

1

1�

��

22

3 3

11x z

1.17 Three-dimensional triangles

P1

P2

P0

P3

x0 z0

y0

X

Y

Z

P1

P2

P0

P3

x0 z0

y0

X

Y

Z

01 29/09/04 15:36 Page 66

Page 86: Geometry for Computer Graphics.pdf

Geometry 67

1.18.1 Parametric curve in �2

A parametric curve in �2 has two functions sharinga common parameter, with each function havingindependent control over the x and y-coordinates.

e.g.

1.18.2 Parametric curve in �3

A parametric curve in �3 has three functions sharing acommon parameter, with each function having independentcontrol over the x, y and z-coordinates.

e.g.

1.18.3 Planar patch

Given P00, P10, P11, P01 in �2 or �3 that form a patch

where (u, v) ∈ [0, 1].

In matrix form

P u P PP Puv � � �[ ]1 1 1

1 01 1

1 0⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

⎡00 01

10 11 ⎣⎣⎢⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

v1

P v u P uP v u P uPuv � � � � � � �( )[ ]1 1 100 10 01 11( ) [( ) ]

x ty tz t

t���

cossin [ ,

⎫⎬⎪

⎭⎪∈ 0 4 ]p

x f ty g tz h t

t t t���

( )( )( )

[ , ]min max

⎫⎬⎪

⎭⎪∈

t

at

tx ty a t

t t

max

max

m

2

1

[0

� �

��

p

cos,

⎪⎪⎪

⎪⎪⎪

∈ aax ]

x f ty g t

t t t��

( )( )

[ , ]⎫⎬⎭

∈ min max

1.18 Parametric curves and patches

1 2 3 4 5 6

�0.4

�0.2

0.2

0.4

0.6

0.8

1

X�1

Y�1

Z�4π

P00 P10

P11P01

u

v Puv

01 29/09/04 15:36 Page 67

Page 87: Geometry for Computer Graphics.pdf

1.18.4 Modulated surface

A function can be represented as a modulatedsurface by making the function’s value modulateone of the Cartesian coordinates of the surface.

e.g.

1.18.5 Quadratic Bézier curve

Given two points (x1, y1) and (x2, y2) and a control point (xC, yC) a quadratic Bézier curve has the form:

or

1.18.6 Cubic Bézier curve

Given two points (x1, y1) and (x2, y2) and two control points(xC, yC) and (xD, yD) a cubic Bézier curve has the form:

or

1.18.7 Quadratic Bézier patch

Definition p p( , ) ( ), 2 , 2 ,0

2

0

2

u v B u B vi j i jji

� ( )==∑∑

p( )t t t t�

� ��

�[ 1]

1 3 3 13 6 3 03 3 0 01 0 0 0

3 2

⎢⎢⎢

⎥⎥⎥

ppppp

1

2

C

D

⎢⎢⎢

⎥⎥⎥

p p p p p( ) ( ) ( ) ( )t t t t t t tC D� � � �13 2 2

233 31 1 1− − −

pppp

( )t t t C��

�[ 1]1 2 12 2 01 0 0

2 1

2

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥⎥

p p p p( ) ( ) ( )t t t t tC� � � � �12

221 2 1

y f x zy x z x z

� �

( , )[ ]= } ∈sin( ) ( , ) ,p p

68 Geometry for computer graphics

�2

0

2�2

0

2

�1

00.5

1

�0.5

X

Y

p1

p2

pC

X

Y

p1

p2

pC

pD

01 29/09/04 15:36 Page 68

Page 88: Geometry for Computer Graphics.pdf

where

as a matrix

or

1.18.8 Cubic Bézier patch

Definition

where

as a matrix

or

p( , )u v u u u�

� ��

�[ 1]

1 3 3 13 6 3 03 3 0 01 0 0 0

3 2

⎢⎢⎢

⎥⎥⎥⎥

p p p pp p p pp p p pp p

00 01 02 03

10 11 12 13

20 21 22 23

30 331 32 33

1 3 3 13 6 3 03 3 0 01 0 0 0p p

⎢⎢⎢

⎥⎥⎥

⎢⎢

� ��

�⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

vvv

3

2

1

p

p p p p

( , ) ( ) ( ) ( )u v u u u u u u� [ 1 3 1 3 ]00 01 02

− − −3 2 2 31003

10 11 12 13

20 21 22 23

30 31 32 33

p p p pp p p pp p p p

⎢⎢⎢⎢

⎥⎥⎥

−−−

⎢⎢⎢

⎥⎥⎥

( )( )( )

13 13 1

3

2

2

3

vv vv v

v

B u i u u B v jii i

j, ,( ) ( ) ( )333 1� �

⎛⎝⎜

⎞⎠⎟ − ⎛

⎝⎜⎞− and 2

2 ⎠⎠⎟ − −v vj j( )1 3

p p( , ) ( ) ( ), , ,u v B u B viji

j i j� 3 3==∑∑

0

3

0

3

pp p pp( )u v u u, [ 1]

1 2 12 2 01 0 0

2 00 01 02�

��

⎣⎢⎢

⎦⎥⎥ 110 11 12

20 21 22

1 2 12 2 01 0 0

p pp p p

⎢⎢

⎥⎥

⎣⎢⎢

�� ⎥⎥

⎢⎢

⎥⎥

vv2

1

pp p pp p p( ) ( )u v u u u u, [(1 ) 2 1 ]2 2 00 01 02

10 11 12� � �pp p p20 21 22

2

2

12

⎢⎢

⎥⎥

⎢⎢

⎥⎥

( )( )�

�v

v vv1

B u i u u B v jii i

j, 22

, 22 1 and 2( ) ( ) ( )� � ��⎛

⎝⎞⎠

⎛⎝

⎞⎠⎠v vj j( )1 2� �

Geometry 69

01 29/09/04 15:36 Page 69

Page 89: Geometry for Computer Graphics.pdf

70 Geometry for computer graphics

Sphere Ellipsoid

x2 � y2 � z2 � r2

Elliptic cylinder Elliptic paraboloid

Elliptic cone Elliptic hyperboloid of one sheet

1.19 Second degree surfaces in standard form

x

a

y

b

z

c

2

2

2

2

2

21� � �

X

Y

Z

r

r

r

X

Y

Z

a

b

X

Y

Z

X

Y

Z

a

b

c

XZ

Y

X

Y

Z

x

a

z

by

2

2

2

2� �

x

a

z

b

y

c

2

2

2

2

2

20� � �

x

a

z

b

y

c

2

2

2

2

2

21� � �

y

a

z

b

2

2

2

21� �

01 29/09/04 15:36 Page 70

Page 90: Geometry for Computer Graphics.pdf

Geometry 71

Elliptic hyperboloid of two sheets

X

Y

Z

XZ

Y

x

a

z

b

y

c

2

2

2

2

2

21� � � � y

x

b

z

a� �

2

2

2

2

01 29/09/04 15:36 Page 71

Page 91: Geometry for Computer Graphics.pdf

2 Examples

Example is the school of mankind, and they will learn at no other.Edmund Burke (1729–1797)

This section, like the previous section, is organised into 19 groups:

2.1 Trigonometry2.2 Circles2.3 Triangles2.4 Quadrilaterals2.5 Polygons2.6 Three-dimensional objects2.7 Coordinate systems2.8 Vectors2.9 Quaternions2.10 Transformations2.11 Two-dimensional straight lines2.12 Lines and circles2.13 Second degree curves2.14 Three-dimensional straight lines2.15 Planes2.16 Lines, planes and spheres2.17 Three-dimensional triangles2.18 Parametric curves and patches2.19 Second degree surfaces in standard form

The following examples illustrate how geometric formulas are used in practice. Hopefully, thereader will see the advantages of using unit vectors, and the difference between usingparametric equations and the general form of line equations and plane equations. There is noone strategy that overall is superior to another – much will depend upon the context.

73

02 29/09/04 15:37 Page 73

Page 92: Geometry for Computer Graphics.pdf

Vectors

Vector notation provides a very compact way of expressing the solution to a geometric problem.For example, the formula for calculating the intersection of a line and plane is given by

p � t � lv

where

The position vector p identifies a point P where the line intersects the plane. Therefore, thecoordinates of P are given by

xp � xt � lxv

yp � yt � lyv

zp � zt � lzv

This sort of ‘coordinate unpacking’ is used throughout the examples in this section.

� �� �( )n t

n vii

d

74 Geometry for computer graphics

02 29/09/04 15:37 Page 74

Page 93: Geometry for Computer Graphics.pdf

Examples of cofunction identities

sin 30° � cos 60° � 0.5

Examples of even–odd identities

sin(�a) � �sin a sin(�30°) � �sin 30° � �0.5

cos(�a) � cos a cos(�60°) � cos 60° � 0.5

tan(�a) � �tan a tan(�45°) � �tan 45° � �1

Examples of Pythagorean identities

sin2a� cos2a� 1

1 � tan2a� sec2a

1 � cot2a� csc2a

Examples of compound angle identities

sin(a� b) � sin a cos b� cos a sin b sin(10° � 20°) � sin 10° cos 20°� cos 10° sin 20° � 0.5

cos(a� b) � cos a cos b� sin a sin b cos(10° � 50°) � cos 10° cos 50°� sin 10° sin 50° � 0.5

tan( )tan tan

tan tan20 25

20 251 20 25

1° °° °

° °� �

��tan( )

tan tantan tan

a ba b

a b� �

�1

1 451

4522

2� � �cot

sin°

°

1 451

4522

2� � �tan

cos°

°

sin cos2 2 14

34

30 30 1° °� � � �

130

160

2sin cos° °

� �csc sec seca p a� � �2

⎛⎝

⎞⎠ �

tantan

45145

1°°

� �tan cot cota p a� � �2

⎛⎝

⎞⎠ �

sin cos cosa p a b� � �2

⎛⎝

⎞⎠

2.1 Trigonometry

Examples 75

02 29/09/04 15:37 Page 75

Page 94: Geometry for Computer Graphics.pdf

Examples of double-angle identities

sin 2a� 2 sin a cos a sin 30° � 2 sin 15° cos 15° � 0.5

cos 2a� 1 � 2 sin2 a cos 60° � 1 � 2 sin2 30° � 0.5

cos 2a� cos2 a� sin2 a cos 60° � cos2 30° � sin2 30° � 0.5

Examples of multiple-angle identities

sin 3a� 3 sin a� 4 sin3 a sin 30° � 3 sin 10° � 4 sin3 10° � 0.5

cos 3a� 4 cos3 a� 3 cos a cos 60° � 4 cos3 20° � 3 cos 20° � 0.5

sin 4a� 4 sin a cos a� 8 sin3 a cos a sin 30° � 4 sin 7.5° cos 7.5°� 8 sin3 7.5° cos 7.5° � 0.5

cos 4a� 8 cos4 a� 8 cos2 a� 1 cos 60° � 8 cos4 15° � 8 cos2 15° � 1 � 0.5

sin 5a� 16 sin5 a� 20 sin3 a� 5 sin a sin 30° � 16 sin5 6° � 20 sin3 6° � 5 sin 6° � 0.5

cos 5a� 16 cos5 a� 20 cos3 a� 5 cos a cos 60° � 16 cos5 12° � 20 cos3 12°� 5 cos 12° � 0.5

Functions of the half-angle

tancoscos

451 901 90

1°°°

� �

�� tan

coscos

a a

a211

� �

coscos

.601 120

20 5°

°�

�� cos

cosa a

21

2�

sincos

.301 60

20 5°

°�

�� sin

cosa a

21

2�

tantan tan tan

tan ta45

5 9 10 9 9

1 10 9 5

3 5

2° �

� �

� �

° ° °

° nn4 91

°�tan

tan tan tan

tan tan5

5 10

1 10 5

3 5

2 4a

a a a

a a�

� �

� �

tantan tan

tan tan60

4 15 4 15

1 6 15 151

3

2 4° �

� ��

° °

° °..732051tan

tan tan

tan tan4

4 4

1 6

3

2 4a

a a

a a�

� �

tantan tan

tan45

3 15 15

1 3 151

3

2° −

��

�° °

°tan

tan tan

tan3

3

1 3

3

2a

a a

a�

tantan .

tan .45

2 22 5

1 22 51

2° �

��

°

°tan

tan

tan2

2

1 2a

a

b�

76 Geometry for computer graphics

02 29/09/04 15:37 Page 76

Page 95: Geometry for Computer Graphics.pdf

Functions converting to the half-angle tangent form

Relationships between sums of functions

sin 30° � sin 30° � 2 sin 30° cos 0° � 1

sin 60° � sin 30° � 2 cos 45° sin 15° � 0.366

cos 60° � cos 60° � 2 cos 60° cos 0° � 1

cos 60° � cos 30° � �2 sin 45° sin 15° � �0.366

tan tansin

cos cos.60 45

1560 45

0 732° °°

° °� � �tan tan

sin( )cos cos

a ba b

a b� �

tan tansin

cos cos45 45

9045 45

2° °°

° °� � �tan tan

sin( )cos cos

a ba b

a b� �

cos cos sin sina ba b a b

� ��� �

22 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

cos cos cos cosa ba b a b

� �� �

22 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

sin sin cos sina ba b a b

� �� �

22 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

sin sin sin cosa ba b a b

� �� �

22 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

tantan .

tan .45

2 22 5

1 22 51

°

°�

��tan

tan

tana

a

a�

22

12

2

costan

tan.60

1 30

1 300 5

2

°

°�

��cos

tan

tana

a

a�

12

12

2

2

sintan

tan.30

2 15

1 150 5

°

°�

��sin

tan

tana

a

a�

22

12

2

Examples 77

02 29/09/04 15:37 Page 77

Page 96: Geometry for Computer Graphics.pdf

78 Geometry for computer graphics

Example: Properties of circles

Circle

Area of circle A � pr2 A � p22 � 12.57

Perimeter C � pd C � p4 � 12.57

Length of arc

Area of sector

Area of segment

Length of chord c � 4 sin 60° � 3.46c r� 22

sina

42

23p� �

32

2.46⎛

⎝⎜

⎠⎟

r rad rad2

2a a[ ] [ ]sin�( )

60°360°

4 2.09p �up

°360°

2r

s � �120°360°

4 4.19ps d�ap

°360°

c

r � 2

d � 4u � 60°

a � 120°

s

2.2 Circles

02 29/09/04 15:37 Page 78

Page 97: Geometry for Computer Graphics.pdf

Examples 79

2.3.1 Checking for similar triangles

Triangles A and B are similar because three corresponding sides are in the same ratio:

Triangles C and D are similar because two corresponding sides are in the same ratio, and the

included angles are equal: and the included angles equal 30°.

Triangles E and F are similar because two corresponding angles are equal.

2.3.2 Checking for congruent triangles

Triangles A and B are congruent because three corresponding sides are equal.

B

20

16 14

A

20

16 14

30°F

55°55°30°

E

30°D

10

8

30°

C

20

16

2010

168

2� �

B

10

8 7A

20

16 14

2010

2� � �168

147

2.3 Triangles

02 29/09/04 15:37 Page 79

Page 98: Geometry for Computer Graphics.pdf

Triangles C and D are congruent because two corresponding sides are equal, and the includedangles are equal.

Triangles E and F are congruent because one side and the adjoining angles are equal.

2.3.3 Solving the angles and sides of a triangle

Use the sine rule to find angle a.

Use the cosine rule to find side a.

a2 � 202 � 162 � 2 � 20 � 16 cos 30°

a2 � 400 � 256 � 720 cos 30°

a � 5.7

Use the tangent rule to find side b.

a � 3 a� 36.87° b� 53.13°

a ba b

��

tan

tan

a b

a b

2

2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

a =⎛⎝⎜

⎞⎠⎟

sin sin .� �1 1614

30 34 85° °

sin sina� �1614

30

16 1430sin sina

��

F

20

55°30°E

20

55°30°

D

20

16

30°C

20

16

30°

80 Geometry for computer graphics

30°

1416

a

30°20

a16

b a

a b

02 29/09/04 15:37 Page 80

Page 99: Geometry for Computer Graphics.pdf

3 � b � �7(3 � b) � b � 4

Given a � b use Mollweide’s rule to find side c.

a � b � 2 a� 40° b� 30° g� 110°

c � 13.162

Given a � b use Newton’s rule to find side c.

a � b � 16 a� 40° b� 30° g� 110°

c � 13.15648

2.3.4 Calculating the area of a triangle

Use Heron’s formula to calculate the area of a triangle.

Semiperimeter

Area � 2

� � � �( )( )2 2 2 2 8 2 2

Area � � � �s s a s b s c( )( )( )

s �� �

� �8 2 2

22 2

a b c� � �8 2 2

16 555

1 21613c

� �cossin

.°°

a bc�

�cos

sin

a b

g

2

2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

2 555

0 15195c

� �sin

cos.

°°

a bc�

�sin

cos

a b

g

2

2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

33

458 13

10 14285

7�

��

��

���

bb

tantan( . .

°°)

Examples 81

30°

b

40°

a110°

c

30°

b

40°

a110°

c

a

c

b

2

2 X

Y

02 29/09/04 15:37 Page 81

Page 100: Geometry for Computer Graphics.pdf

Use a determinant to calculate the area of a triangle.

Area �ABC

Reversing the vertex order:

2.3.5 The center and radius of the inscribed and circumscribed circles for a triangle

Calculate the center of the inscribed circle for triangle ABC.

b � 2 c � 2

A � (0, 0) B � (2, 0) C � (0, 2)

Position of the center

xM � 0.5858 yM � 0.5858

Calculate the radius of the inscribed circle for triangle ABC.

rs a s b s c

s�

� � �( )( )( )

s �� �

� �8 2 2

22 2

yM �� � � � �

� ��

8 0 2 0 2 2

8 2 2

4

4 8

xM �� � � � �

� ��

8 0 2 2 2 0

8 2 2

4

4 8

yay by cy

a b cMA B C�

� �

� �

xax bx cx

a b cMA B C�

� �

� �

a � 8

Area 12

12

� � � � � � � ��1 1 12 3 13 1 1

3 3 2 1 2 9 2( )

Area 12

12

� � � � � � �

1 1 13 1 12 3 1

1 2 9 3 3 2 2( )

� 12

x yx yx y

A A

B B

C C

111

82 Geometry for computer graphics

C

BA

Y

r

c

b a

X

(xM, yM)

Y

X

C(2, 3)

B(3, 1)A(1, 1)

02 29/09/04 15:37 Page 82

Page 101: Geometry for Computer Graphics.pdf

r � 0.5858 xM � 0.5858 yM � 0.5858

Calculate the radius of the circumscribed circle for triangle ABC.

b � 2 c � 2

A � (0, 0) B � (2, 0) C � (0, 2)

Calculate the center of the circumscribed circle for triangle ABC.

R � xp � 1 yP � 12

yP �� �

�2

8 2 24 04 2 1

xP �� �

�2

8 2 22 40 4 1

y yR

abcb xc xP A

AC

AB

� �2

2

x xR

abcy by cP A

AC

AB

� �2

2

Rabc

ABC�

��

� �

��

48 2 2

4 22

Area �

a � 8

Y

Xc

b

a

C

A B

R

(xP, yP)

r � � �2 2 0 5858.

r �� �

( )( )( )2 2 8 2 2

2 2

Examples 83

02 29/09/04 15:37 Page 83

Page 102: Geometry for Computer Graphics.pdf

84 Geometry for computer graphics

Example: Calculate the area of a quadrilateral.

c � 2

AC � d1 � 4

By inspection

�ABO � 1�BCO � 1�CDO � 2�DAO � 2

therefore Area ABCD � 6.

Here are four ways of computing the area:

It just so happens that the quadrilateral is a cyclic quadrilateral.

Area 4.1101 2.3620 3.5243 1.0522 40 90°2� � � � � �cos 66

e��

��

�� �

271.57° 108.43°

290°

Area 2� � � � � �( )( )( )( ) coss a s b s c s d abcd e

Area 4 ( )

16 18 (10

14 1

222 2 2 2 2 2

14

� � � � �

� � � �

d d b d a c

4 �� � � �20 2 4) 62

Area 10 20 2 414

2 2 2 14

� � � � � � � �( ) tan ( ) tanb d a c2 45u °° � 6

Area2

4 182

sin ° 22

21 2� � � �

d dsin u 45 6 6

sa b c d

�� � �

�2

5.5243

BD d� �2 18

d � 20

b � 10

a � 2

2.4 Quadrilaterals

d2

d1

dc

ba

abu

45°O

D

C

B

A

02 29/09/04 15:37 Page 84

Page 103: Geometry for Computer Graphics.pdf

Examples 85

Example: Calculate the center and radius of the circumscribed circle for a rectangle.

PA � (1, 1) PB � (3, 3) PC � (2, 4) PD � (0, 2)

The center of the circumscribed circle is

The radius of the circumscribed circle is

The circle has a radius of with a center at (1.5, 2.5).12

10

R � � � � � � � � �12

2 2 2 2 12

(3 1) (3 1) (3 2 (3 4 10) )

R x x y y x x y yB A B A B C B C� � � � � � � �12

2 2 2 2( ) ( ) ( ) ( )

yP � �12

1 4 2.5( ) =xP � �12

1 2( ) .= 1 5

y y yP A C� �12

( )x x xP A C� �12

( )

R

P

D(0, 2)

C(2, 4)

B(3, 3)

A(1, 1)

X

Y

02 29/09/04 15:37 Page 85

Page 104: Geometry for Computer Graphics.pdf

86 Geometry for computer graphics

Example: Determine the internal angles of a polygon

The internal angles of an n-sided polygon sum to (n � 2) � 180°.

Triangle (n � 3) Quadrilateral (n � 4)

Pentagon (n � 5) Hexagon (n � 6)

Example: Determine the alternate internal angles of a cyclic polygon

The alternate internal angles of an n-sided cyclic polygon sum to (n � 2) � 90°[n � 4 and is even].

Cyclic quadrilateral (n � 4) Cyclic hexagon (n � 6)

a1 � a3 � a2 � a4 � 180° a1 � a3 � a5 � a2 � a4 � a6 � 360°

a4

a5

a6

a1

a2

a3

a3

a2

a1

a4

aii�

�1

6

720°∑aii�

�1

5

540°∑

a3a2

a1

a6 a5

a4

a3

a4

a5

a1

a2

�ii=∑

1

4

360°��ii=∑

1

3

180°�

a3

a2

a1 a4

a2

a1 a3

2.5 Polygons

02 29/09/04 15:37 Page 86

Page 105: Geometry for Computer Graphics.pdf

Examples 87

Example: Calculate the area of regular polygon

where n � number of sidess � length of side

Let s � 1

n Area

3 0.4334 15 1.726 2.5987 3.6348 4.828

Example: Calculate the area of a polygon

The figure shows a polygon with the following vertices in counter-clockwise sequence

By inspection, the area is 10.5

The area of a polygon is given by

Area 36 15 10.512

� � �( )

Area 0 0 2 1 5 3 5 3 2 2 2 2 0 5 1 5 3 212

� � � � � � � � � � � � � � � � � �( �� �3 0)

Area 12

0

� �� �

( )(mod ) (mod )x y y xi i n i i ni

n

1 1

1

Area 2� 14

nsn

cotp

x 0 2 5 5 2y 2 0 1 3 3

3

2

51 2 3 4

Y

X

1

02 29/09/04 15:37 Page 87

Page 106: Geometry for Computer Graphics.pdf

88 Geometry for computer graphics

2.6.1 Cone, cylinder and sphere

Example: Area and volume of a cone, cylinder and sphere

Area (r � 1)

Cone

Sphere 4pr2 4p

Cylinder 6p

VolumeCone

Sphere

Cylinder pr2h � 2pr2 2p

2.6.2 Conical frustum, spherical segment and torus

Example: Area and volume of a conical frustum, spherical segment and torus

Circular, conical frustum

If

Spherical segment

S � 2prh

If r � 1 h � 1 S � 6.28

If r1 � 0 r2 � 1 h � 1 V � 2.09(half the volume)

V h r r h� � �16 1

222 23 3p ( )

V � � � �13

(4 1 2) 7.33p

V h r r r r� � �13p ( )1

222

1 2

S � � � � �p(4 1 2(2 1)) 29.03

r r h s1 22 1 1 2� � � �

S r r s r r� � � �p( )12

22

1 2( )

43p4

33pr

23p1

32 2

33p pr h r�

2 6p pr r h r( )� �

( )1� 5 pp pr r s r( )� � �( 5) 21

( )h r s r� �2 ( 5 )

2.6 Three-dimensional objects

r

h = 2r5rs =

h s

r2

r1

r1 r2hr

02 29/09/04 15:37 Page 88

Page 107: Geometry for Computer Graphics.pdf

Examples 89

Torus

S � 4p2rR

If r � 1 R � 1 S � 39.48

V � 2p2r2R

If r � 1 R � 1 V � 19.74

2.6.3 Tetrahedron

Example: Volume of a tetrahedron

Tetrahedron

Let A � (1, 0, 0) B � (0, 0, 1) C � (0, 1, 0)

Note: If the vertices are reversed the volume is negative.

Vx y zx y zx y z

b b b

a a a

c c c

� � � �16

16

16

1 0 00 0 10 1 0

Vx y zx y zx y z

a a a

b b b

c c c

0 0 11 0 00 1 0

16

16

16

� � �

Rr

C

B AO

Z

Y

X

02 29/09/04 15:37 Page 89

Page 108: Geometry for Computer Graphics.pdf

90 Geometry for computer graphics

2.7.1 Cartesian coordinates in �2

Example: Distance in �2

Find the distance between the points (12, 16) and (9, 12).

Given

therefore

2.7.2 Cartesian coordinates in �3

Example: Distance in �3

Find the distance between the points (12, 16, 22) and (9, 12, 20).

Given

therefore

2.7.3 Polar coordinates

Example: Conversion between Cartesian and polar coordinates

Find the polar coordinates (r, u) for the points (4, 3), (�4, 3), (�4, �3) and (4, �3).

Given

and u� tan�1 (1st and 4th quadrants only)

For (4, 3)

and u� tan�1 � 36.87°

(4, 3) � (5, 36.87°)For (�4, 3) r � 5and u� 180° � 36.87° � 143.13°

(�4, 3) � (5, 143.13°)

34

⎛⎝⎜

⎞⎠⎟

r � � �16 9 5

yx

⎛⎝⎜

⎞⎠⎟

r x y� �2 2

d

d

� � � � � �

� � � �

( ) ( ) ( )12 9 16 12 22 20

9 16 4 29

5.3

2 2 2

99

d x x y y z z� � � � � �( ) ( )2 12

2 12

2 12( )

d

d

� � � � � �

( )12 9 (16 12) 9 16

5

2 2

d x x y y� � � �( ) ( )2 12

2 12

2.7 Coordinate systems

02 29/09/04 15:37 Page 90

Page 109: Geometry for Computer Graphics.pdf

Examples 91

For (�4, �3) r � 5and u� 180° � 36.87° � 216.87°

(�4, �3) � (5, 216.87°)

For (4, �3) r � 5and u� �36.87° or 323.13°

(4, �3) � (5, 323.13°)

Find the Cartesian coordinates (x, y) for the point (5, 216.87°).

Given x � r cos �and y � r sin u

For (5, 216.87°) x � 5 cos 216.87° � �4and y � 5 sin 216.87° � �3

(5, 216.87°) � (�4, �3)

2.7.4 Cylindrical coordinates

Example: Conversion between Cartesian and cylindrical coordinates

Find the cylindrical coordinates (r, u, z) for the points (4, 3, 4), (�4, 3, 4), (�4, �3, 4) and(4, �3, 4).

Given

u� tan�1 (1st and 4th quadrants only)

and z � z

For (4, 3, 4)

u� tan�1 � 36.87°

and z � 4(4, 3, 4) � (5, 36.87°, 4)

For (�4, 3, 4) r � 5u� 180° � 36.87° � 143.13°

and z � 4(�4, 3, 4) � (5, 143.13°, 4)

For (�4, �3, 4) r � 5u� 180° � 36.87° � 216.87°

and z � 4(�4, �3, 4) � (5, 216.87°, 4)

34

⎛⎝⎜

⎞⎠⎟

r � � �16 9 5

yx

⎛⎝⎜

⎞⎠⎟

r x y� �2 2

02 29/09/04 15:37 Page 91

Page 110: Geometry for Computer Graphics.pdf

92 Geometry for computer graphics

For (4, �3, 4) r � 5u� �36.87° or 323.13°

and z � 4(4, �3, 4) � (5, 216.87°, 4)

Find the Cartesian coordinates (x, y, z) for the point (5, 216.87°, 4).

Given x � r cosuy � r sin u

and z � z

For (5, 216.87°, 4) x � 5 cos 216.87° � �4y � 5 sin 216.87° � �3z � 4(5, 216.87°, 4) � (�4, �3, 4)

2.7.5 Spherical coordinates

Example: Conversion between Cartesian and spherical coordinates

Find the spherical coordinates (r, u,f) for the points (4, 3, 4), (�4, 3, 4), (�4, �3, 4) and (4, �3, 4).

Given

u� tan�1 (1st and 4th quadrants only)

and

For (4, 3, 4)

u� tan�1 � 36.87°

and f� cos�1 � 51.34°

(4, 3, 4) � (6.403, 36.87°, 51.34°)

For (�4, 3, 4) r� 6.403u� 180° � 36.87° � 143.13°

and f� 51.34°(�4, 3, 4) � (6.403, 143.13°, 51.34°)

46 403.

34

r� � � � �16 9 16 41 6.403

f�� �

�cos 1 z

x y z2 2 2

⎝⎜⎜

⎠⎟⎟

yx

⎛⎝⎜

⎞⎠⎟

r� � �x y z2 2 2

02 29/09/04 15:37 Page 92

Page 111: Geometry for Computer Graphics.pdf

For (�4, �3, 4) r� 6.403

u� 180° � 36.87° � 216.87°

and f� 51.34°

(�4, �3, 4) � (6.403, 216.87°, 51.34°)

For (4, �3, 4) r� 6.403

u� tan�1 � �36.87° � 323.13°

and f� 51.34°

(4, �3, 4) � (6.403, 323.13°, 51.34°)

�34

⎛⎝⎜

⎞⎠⎟

Examples 93

02 29/09/04 15:37 Page 93

Page 112: Geometry for Computer Graphics.pdf

94 Geometry for computer graphics

2.8.1 Vector between two points

Given P1(1, 2, 3) and P2(4, 6, 8)

a � 3i � 4j � 5k

2.8.2 Scaling a vector

Given a � 3i � 4j � 5kscale by 3 3a � 9i � 12j � 15k

2.8.3 Reversing a vector

Given a � 3i � 4j � 5k�a � �3i � 4j � 5k

2.8.4 Magnitude of a vector

Given a � 3i � 4j � 5k

2.8.5 Normalizing a vector to a unit length

Given a � 3i � 4j � 5k

check

2.8.6 Vector addition/subtraction

Given a � 3i � 4j � 5k and b � 2i � 4j � 6ka � b � 5i � 8j � 11k

|| ˆ ||a � � � �950

1650

2550

1

ˆ . . .a i j k i j k� � � � � �3

50

4

50

5

500 424 0 566 0 707

|| || .a � � � � �3 4 5 50 7 0712 2 2

P Px xy yz z

1 2

2 1

2 1

2 1

345

� ���� �

���

�a⎡

⎢⎢

⎥⎥

⎣⎢⎢

⎦⎦⎥⎥

2.8 Vectors

02 29/09/04 15:37 Page 94

Page 113: Geometry for Computer Graphics.pdf

Examples 95

2.8.7 Position vector

Given a point (3, 4, 5) its position vector is 3i � 4j � 5k.

2.8.8 Scalar (dot) product

Given a � 3i � 4j � 5k and b � 2i � 4j � 6ka • b � 3 � 2 � 4 � 4 � 5 � 6 � 52

2.8.9 Angle between two vectors

Given a � 3i � 4j � 5k and b � 2i � 4j � 6k

Let a be the angle between a and b.

2.8.10 Vector (cross) product

Given a � 3i � 2j � 5k and b � i � j � 8k

11i � 19j � k is orthogonal to a and b.

Remember that a � b � b � a

Proof

�11i � 19j � k is still orthogonal to a and b but is in the opposite direction to 11i � 19j � k.

b ai j k

i j k� � �� � �1 1 83 2 5

11 19

a bi j k

i j k� � � � �3 2 51 1 8

11 19

|| || || ||

cos

a � � � � � � � �

� �

3 4 5 50 2 4 6 562 2 2 2 2 2and b

a 11

1 3 2

x x y y z za b a b a b� �

���

|| || || ||

cos

a b

⎝⎜⎞

⎠⎟

a�� � � �

� ��4 4 5 6

50 56

5252 915

101⎛

⎝⎜⎞

⎠⎟⎛⎝⎜

⎞⎠⎟

cos.

.667�

02 29/09/04 15:37 Page 95

Page 114: Geometry for Computer Graphics.pdf

2.8.11 Scalar triple product

Given a � 2j � 2k b � 10k c � 5i

2.8.12 Vector normal to a triangle

Given P1(5, 0, 0) P2(0, 0, 5) P3(10, 0, 5)

a � �5i � 5k b � 5i � 5k

Surface normal n � 50j

2.8.13 Area of a triangle

Given P1(5, 0, 0) P2(0, 0, 5) P3(10, 0, 5)

a � �5i � 5k b � 5i � 5k

Area � 25

Area � � � � �12

12

12

5 0 55 0 5

50|| || || ||a bi j k

j

a b����

����

x xy yz z

x xy yz z

2 1

2 1

2 1

3 1

3 1

3 1

⎢⎢

⎥⎥

⎣⎣

⎢⎢

⎥⎥

n a bi j k

j� � � � �5 0 55 0 5

50

a b����

����

x xy yz z

x xy yz z

2 1

2 1

2 1

3 1

3 1

3 1

⎢⎢

⎥⎥

⎣⎣

⎢⎢

⎥⎥

a b c

a b c

i

i

( )

Volume

� �

� � �

x y zx y zx y z

a a a

b b b

c c c

( )0 2 220 0 105 0 0

100�

96 Geometry for computer graphics

02 29/09/04 15:37 Page 96

Page 115: Geometry for Computer Graphics.pdf

Examples 97

2.9.1 Quaternion addition and subtraction

q1 q2 � [(s1 s2) � (x1 x2)i � (y1 y2)j � (z1 z2)k]

Given q1 � [1 � 2i � 3j � 4k]

and q2 � [1 � i � 2j � 5k]

then q1 � q2 � [2 � i � 5j � 9k]

2.9.2 Quaternion multiplication

q1q2 � [(s1s2 � v1 • v2), s1v2 � s2v1 � v1 � v2]

Given q1 � [1 � i]

and q2 � [1 � j]

then q1q2 � [1 � i � j � k]

2.9.3 Magnitude of a quaternion

Given q1 � [1 � 2i � 3j � 4k]

then

2.9.4 The inverse quaternion

Given q1 � [1 � 2i � 3j � 4k]

then

2.9.5 Rotating a vector

Rotate p using p� � qpq�1 where

Let p be the quaternion for (1, 0, 0) i.e. p � [0 � i]

q v� [cos( ), sin( )2 2u u ˆ]

q i j k i j k11 1

30130

115

110

215

1 2 3 4� � � � � � � � �[ ] [ ]

qi j k

q11

12

� �� � �[ ]

|| ||

s x y z

|| ||q12 2 2 21 2 3 4 30� � � � �

|| ||q12 2 2 2� � � �s x y z

2.9 Quaternions

02 29/09/04 15:37 Page 97

Page 116: Geometry for Computer Graphics.pdf

Let q be a unit quaternion aligned with the z-axis which rotates p 180°

i.e. q � [cos 90°, sin 90°(k)] � [0 � k]

then q�1 � [ � k]

but || q || � 1

therefore p� � [0 � k] � [0 � i] � [0 � k] � [0 � j] � [0 � k] � [0 � i]

[0 � i] points to the rotated point: (�1, 0, 0), which is correct.

2.9.6 Quaternion as a matrix

Let’s express the previous rotation quaternion as a matrix:

Given [0 � k] then s � 0, x � 0, y � 0, z � 1

therefore

then

which confirms the previous result.

��

�� �

100

0 00 1 00 0 1

100

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎤1

⎦⎦⎥⎥

R(u) ��

�1 0 0

0 1 00 0 1

⎣⎢⎢

⎦⎥⎥

Rs x y z xy sz xy sz

xy sz s() )

)u)( (

(�� � � � �

� �

2 2 2 2

22 2

2 yy x z yz sxxz sy yz sx s z x y

2 2 2

2 2 22

2 2� � �

� � � � �(

( ()

) ) 22

⎢⎢⎢

⎥⎥⎥

98 Geometry for computer graphics

02 29/09/04 15:37 Page 98

Page 117: Geometry for Computer Graphics.pdf

Examples 99

In the following examples the coordinates of the original shape A are shown on the right-hand side of the transform enclosed in brackets, whilst the coordinates of the transformedshape A� are shown on the left-hand side.

2.10.1 Scaling relative to the origin in �2

Scale shape A by a factor of 2 in the x-direction and 1 in the y-direction relative to the origin.

2.10.2 Scaling relative to a point in �2

Scale shape A by a factor of 2 in the x-direction and 1 in the y-direction relative to the point (1, 0).

2.10.3 Translation in �2

Translate shape A by 1 in the x-direction and 1 in the y-direction.

xy

TT

xy

x

y

�� � �

1

1 00 10 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢

⎤⎤

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

Transform

2 3 31 1 31 1 1

1 0 10 1 10 0 11

1 2 20 0 21 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy

S x SS y S

x P x

y P y

�� �

��

1

0 10 10 0 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

( )( )

⎤⎤

⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢

Transform

xy

A A

1

1 3 30 0 21 1 1⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦�

��

2 0 10 1 00 0 1

1 2 20 0 21 1 1

⎥⎥⎥

xy

SS

xy

x

y

�� � �

1

0 00 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢

⎤⎤

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

Transform

2 4 40 0 21 1 1

2 0 00 1 00 0 11

1 2 20 0 21 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

2.10 Transformations

4321

A�A

X

Y

1

2

3

A�

A

321 X

Y

1

2

3

Y

X

A

1 2 3 4

A�1

2

3

02 29/09/04 15:37 Page 99

Page 118: Geometry for Computer Graphics.pdf

2.10.4 Rotation about the origin in �2

Rotate shape A 90° about the origin.

2.10.5 Rotation about a point in �2

Rotate shape A 90° about the point (1, 0).

2.10.6 Shearing along the x-axis in �2

Shear shape A 45° along the x-axis.

xy

xy

�� � �

1

1 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢

tana

⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

Transform

0 2 4 20 0 2 21 1 1 1

1 1 00 11 00 0 1

0 2 2 00 0 2 21 1 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy

x yP P�� �

� � �

1

1⎡

⎣⎢⎢

⎦⎥⎥

cos sin ( cos ) sinsina a a aaa a a acos ( cos ) siny x

xyP P1

0 0 1 1� � �

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

��

Transform

0 1 11 1 1

1 1 1 0 1 11 0 �� �10 0 1

1 2 20 0 21 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy�� �

1

00

0 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥

cos sinsin cosa aa a

⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎤Transform

xy

A A

1

0 0 21 2 21 1 1 ⎦⎦

⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

��

�0 1 01 0 00 0 1

1 2 20 0 21 1 1

100 Geometry for computer graphics

Y

X

A

1 2�1�2

A�

2

1

Y

X

A

�1 1 2�2

A�

1

2

1

A�A

X

Y

432

1

2

3

02 29/09/04 15:37 Page 100

Page 119: Geometry for Computer Graphics.pdf

2.10.7 Shearing along the y-axis in �2

Shear shape A 45° along the y-axis.

2.10.8 Reflection about the x-axis in �2

Reflect shape A about the x-axis.

2.10.9 Reflection about the y-axis in �2

Reflect shape A about the y-axis.

xy

xy

�� �

��

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

� � ��

Transform

1 2 20 0 21 1 1

1 0 00 1 000 0 1

1 2 20 0 21 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy

xy

�� � � �

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

� � �

Transform

0 2 20 0 11 1 1

1 0 00 1 00 00 1

0 2 20 0 11 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy

xy

�� � �

1

1 0 01 0

0 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢tana⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

Transform

0 2 2 00 2 3 11 1 1 1

1 0 01 11 00 0 1

0 2 2 00 0 1 11 1 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

Examples 101

1

A�

A

X

Y

432

1

2

3

Y

X1 2�1�2A�

A1

2

Y

X

A

1 2�1�2

A�

2

1

02 29/09/04 15:37 Page 101

Page 120: Geometry for Computer Graphics.pdf

2.10.10 Reflection about a line parallel with the x-axis in �2

Reflect shape A about the line yp � 2.

2.10.11 Reflection about a line parallel with the y-axis in �2

Reflect shape A about the line xp � 2.

2.10.12 Translated change of axes in �2

The axes are subjected to a translation of (2, 1).

xy

xy

xy

T

T

�� �

�� �

1

1 00 10 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

�� � �

Transform

1 0 01 1 11 1 1

1 0 220 1 11 1 1

1 2 20 0 21 1 1

� �⎡

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy

x xy

P�� �

��

1

1 0 20 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

��

Transform

2 0 01 1 21 1 1

1 0 40 1 000 0 1

2 4 41 1 21 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xy y

xyP

�� � � �

1

1 0 00 1 20 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

A A�

� �

Transform

2 4 42 2 11 1 1

1 0 00 1 400 0 1

2 4 42 2 31 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

102 Geometry for computer graphics

Y

X1 2 3 4

PyA

A�

1

3

Y

X1 3 4xP

AA�1

3

2

Y

X

A

1 2 3 4

Y�

A�

X�1

2

3

02 29/09/04 15:37 Page 102

Page 121: Geometry for Computer Graphics.pdf

2.10.13 Rotated change of axes in �2

Rotate the axes 90°.

2.10.14 The identity matrix in �2

2.10.15 Scaling relative to the origin in �3

Scale shape A 1.5 in the x-direction, 2 in the y-direction and 2 in the z-direction.

xyz

SS

S

x

y

z

���

1

0 0 00 0 00 0 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎤⎤

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A A

1

0 3 32 2 42 22 21 1 1

1 5 0 0 00 2 0 00 0 2 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥�

.

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

0 2 21 1 21 1 11 1 1

xy

xy

�� � �

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥⎥

⎣⎢⎢

⎦⎥⎥

=⎡

A A� Transform

1 2 20 0 21 1 1

1 0 00 1 00 0 1⎣⎣

⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

�1 2 20 0 21 1 1

xy�� � �

1

00

0 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥

cos sinsin cosa aa a

⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢

Transform

� � �

xy

A A

1

0 0 21 2 21 1 1⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦� � �

0 1 01 0 01 1 1

1 2 20 0 21 1 1

⎥⎥⎥

Examples 103

Y�

Y

X

A

1 2

A�

X�

1

2

3

1

4321

A�A

X

Y

1

2

3

12

3

A

A�

XZ

Y

3

3

21

02 29/09/04 15:37 Page 103

Page 122: Geometry for Computer Graphics.pdf

2.10.16 Scaling relative to a point in �3

Scale shape A 1.5 in the x-direction, 2 in the y-direction and 2 in the z-direction relative to the point (0, 1, 1).

2.10.17 Translation in �3

Translate shape A by (2, 2, 3).

2.10.18 Rotation about the x-axis in �3

Rotate shape A about the x-axis 90°.

xyz

���

� �

1

1 0 0 00 00 0

⎢⎢⎢

⎥⎥⎥

cos sinsin cosa aa a

00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A AA0 0 00 0 21 3 31 1 1

1 0 0 00 0 1 00 1 0 00 0 0 1

� � �⎡

⎢⎢⎢

⎥⎥⎥

⎡⎡

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

0 0 01 3 30 0 21 1 1

xyz

TTT

x

y

z

���

1

1 0 00 1 00 0 10 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎤⎤

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A A

1

2 4 42 2 43 33 31 1 1

1 0 0 20 1 0 20 0 1 30 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

� �

0 2 20 0 20 0 01 1 1

⎢⎢⎢

⎥⎥⎥

xyz

S x SS y S

x P x

y P y

���

��

1

0 0 10 0 10

⎢⎢⎢

⎥⎥⎥

( )( )

00 10 0 0 1 1

S z S

xyz

z P z( )��

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

A A�

Transform

0 3 31 1 31 1 11 1 1

1 5 0 0. 000 2 0 10 0 2 10 0 0 1

0 2 21 1 21 1 11 1 1

��

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

104 Geometry for computer graphics

Y

A

12 3

A�

XZ

3

3

2

21

A1

2

XZ

Y

3

A�

3

3

2

2

X

Y

Z

A

A�

1

2

3

123

02 29/09/04 15:37 Page 104

Page 123: Geometry for Computer Graphics.pdf

2.10.19 Rotation about the y-axis in �3

Rotate shape A about the y-axis 90°.

2.10.20 Rotation about the z-axis in �3

Rotate shape A about the z-axis 90°.

2.10.21 Rotation about an arbitrary axis in �3

K � 1 � cos a

Axis v � ai � bj � ck and ||v|| � 1

Given v � k and a� 90°

then K � 1

A A�

Transform

0 0 21 3 30 0 01 1 1

0 1 0 01 0

⎢⎢⎢

⎥⎥⎥

00 00 0 1 00 0 0 1

1 3 30 0 20 0 01 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

�⎥⎥⎥⎥

xyz

a K abK c acK b���

� � �

1

2⎡

⎢⎢⎢

⎥⎥⎥

cos sin sina a aa

a a a

a

002abK c b K bcK a

acK b bcK� � �� �

sin cos sinsin aa c K

xyzsin cosa a2 0

0 0 0 1 1�

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎤⎤

⎥⎥⎥

xyz

���

1

0 00 0

0 0 1 0

⎢⎢⎢

⎥⎥⎥

cos sinsin cosa aa a

00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A AA0 0 21 3 30 0 01 1 1

0 1 0 01 0 0 00 0 1 00 0 0 1

�⎡

⎢⎢⎢

⎥⎥⎥

⎡⎡

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

1 3 30 0 20 0 01 1 1

xyz

���

��

1

0 00 1 0 0

0 0

⎢⎢⎢

⎥⎥⎥

cos sin

sin cos

a a

a a00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A AA1 3 30 0 00 0 21 1 1

0 0 1 00 1 0 01 0 0 00 0 0 1

��

⎢⎢⎢

⎥⎥⎥

⎡⎡

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

0 0 20 0 01 3 31 1 1

Examples 105

X

Y

ZA

112

3 23

A�

X

Y

Z1

23

A

A�

1

2

3

X

Y

Z1

23

A

A�

1

2

3

02 29/09/04 15:37 Page 105

Page 124: Geometry for Computer Graphics.pdf

2.10.22 Reflection about the yz-plane in �3

Reflect shape A in the yz-plane.

2.10.23 Reflection about the zx-plane in �3

Reflect shape A in the zx-plane.

2.10.24 Reflection about the xy-plane in �3

Reflect shape A in the xy-plane.

xyz

���

��

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

� � �

xyz

A A

1

0 2 21 1 31 1 111 1 1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

��

0 2 21 1 31 1 11 1 1

⎢⎢⎢

⎥⎥⎥

xyz

���

� �

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

� � �

xyz

A A

1

0 2 21 1 31 1 111 1 1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

� � �

0 2 21 1 31 1 11 1 1

⎢⎢⎢

⎥⎥⎥

xyz

���

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

� �

xyz

A A

1

0 2 21 1 31 1 111 1 1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

��

0 2 21 1 31 1 11 1 1

⎢⎢⎢

⎥⎥⎥

106 Geometry for computer graphics

A

2

XZ

A�

12

1

2

3

3

3

Y

A

2

Y

1

XA�

Z

21

XZ

Y

21

AA�

21

2

3

02 29/09/04 15:37 Page 106

Page 125: Geometry for Computer Graphics.pdf

2.10.25 Reflection about a plane parallel with the yz-plane in �3

Reflect shape A in the yz-plane xp � 1.

2.10.26 Reflection about a plane parallel with the zx-plane in �3

Reflect shape A in the zx-plane yp � 2.

2.10.27 Reflection about a plane parallel with the xy-plane in �3

Reflect shape A in the xy-plane zp � 1.

xyz zP

���

��

1

1 0 0 00 1 0 00 0 1 20 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎦⎦

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A A

1

0 2 21 1 30 0 011 1 1

1 0 0 00 1 0 00 0 1 20 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

��

��

0 2 21 1 32 2 21 1 1

⎢⎢⎢

⎥⎥⎥

xyz

yP

���

� �

1

1 0 0 00 1 0 20 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎦⎦

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

xyz

A A

1

0 2 22 2 01 1 111 1 1

1 0 0 00 1 0 40 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

� � ��

0 2 22 2 41 1 11 1 1

⎢⎢⎢

⎥⎥⎥

xyz

xP���

1

1 0 0 20 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎦⎦

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

� �

xyz

A A

1

1 1 11 1 31 11 11 1 1

1 0 0 20 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥�

⎥⎥

⎢⎢⎢

⎥⎥⎥

1 3 31 1 31 1 11 1 1

Examples 107

A

2

XZ

Y

A�

xP21

33

A

Y

yP

X

A�

Z

21

21

zP

XZ

Y

21

AA�

2

02 29/09/04 15:37 Page 107

Page 126: Geometry for Computer Graphics.pdf

2.10.28 Translated axes in �3

The axes are subjected to a translation of (2, 0, 1).

2.10.29 Rotated axes in �3

The axes are subjected to a rotation as illustrated.

2.10.30 The identity matrix in �3

A A�

Transform

0 2 21 1 21 1 11 1 1

1 0 0 00 1 0 0

⎢⎢⎢

⎥⎥⎥

00 0 1 00 0 0 1

0 2 21 1 21 1 11 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥�

⎥⎥

xyz

r r rr r rr r

���

1

00

11 12 13

21 22 23

31 3

⎢⎢⎢

⎥⎥⎥ 22 33 0

0 0 0 1 1r

xyz

A

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Tran

� ssform A0 2 2 00 0 0 00 0 2 21 1 1 1

0 0 1 00 1

� �

�⎡

⎢⎢⎢

⎥⎥⎥

00 01 0 0 00 0 0 1

0 0 2 20 0 0 00 2 2 01 1 1 1

⎢⎢⎢

⎥⎥⎥

⎢� ⎢⎢

⎥⎥⎥

xyz

xyz

T

T

T

���

���

1

1 0 00 1 00 0 10 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Transform

� �

xyz

A A

1

2 2 0 000 0 0 01 1 1 11 1 1 1

1 0 0 20 1 0 00 0 1 10 0 0

� ��

⎢⎢⎢

⎥⎥⎥ 11

0 0 2 20 0 0 00 2 2 01 1 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

108 Geometry for computer graphics

Y

2

XZ

12

133 AA�

Y�

X�Z�

AA�

Y

2

XZ

12

13

Y�

X�

Z�

12

3

A A�

XZ

Y

3 21

1

2

3

02 29/09/04 15:37 Page 108

Page 127: Geometry for Computer Graphics.pdf

Examples 109

2.11.1 Convert the normal form of the line equation to its general form and the Hessian normal form

Given the normal form of the line equation

The general form of the line equation is obtained by rearranging the equation to

3x � 4y � 5 � 0

The Hessian normal form is obtained be dividing throughout by the magnitude of the line’s normal vector:

The line intersects the x-axis at and the y-axis at The unit normal vector to the line and the perpendicular from the origin to the line is 1.

2.11.2 Derive the unit normal vector and perpendicular from the origin to the line for the line equation 3x � 4y � 6 � 0

The normal vector is n � 3i � 4j

The distance is dc

��

� �3 4

65

1 22 2

.

ˆ ( )

. .

n i j

i j

��

� �

1

3 43 4

0 6 0 8

2 2

ˆ . .n i j= 0 6 0 8�

y � 1 14

.x � 1 23

35

1 0x y� � �45

3 4 5

3 40

2 2

x y� �

��

y x�� �34

54

2.11 Two-dimensional straight lines

n

�Y

�X

d

�2

�1.5

The unit normal vector is

02 29/09/04 15:37 Page 109

Page 128: Geometry for Computer Graphics.pdf

2.11.3 Derive the straight-line equation from two points

Normal form of the line equation

Given P1(x1, y1) and P2(x2, y2)

and y � mx � c

then

and

If the two points are P1(1, 0) and P2(3, 4)

then

and y � 2x � 2

General form of the line equation

Given Pl(x1, y1) and P2(x2, y2)

and Ax � By � C � 0

then A � y2 � y1 B � x1 � x2 C � �(x1 y2 � x2y1)

If the two points are P1(1, 0) and P2(3, 4)

then (4 � 0)x � (1 � 3)y � (1 � 4 � 3 � 0) � 0

and 4x � 2y � 4 � 0

or 2x � y � 2 � 0

Determinant form of the line equation

Given

If the two points are P1(1, 0) and P2(3, 4)

then

and 4x � 2y � 4 � 0

or 2x � y � 2 � 0

1 01 4

1 13 1

1 03 4x y� �

11

11

1

2

1

2

1 1

2 2

yy x x

x y x yx y� �

y x��

�� �

4 03 1

0 14 03 1

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

c y xy y

x x� �

�1 12 1

2 1

⎝⎜

⎠⎟

my y

x x�

�2 1

2 1

110 Geometry for computer graphics

P1

P2Y

X

02 29/09/04 15:37 Page 110

Page 129: Geometry for Computer Graphics.pdf

Hessian normal form of the line equation

Given 4x � 2y � 4 � 0

The normalizing factor is

then

and

The normal unit vector to the line is

The perpendicular from the origin to the line

Parametric form of the line equation

Given P1(x1, y1) and P2(x2, y2)

and p � p1 � lv

and v � p2 � p1

If the two points are P1(1, 0) and P2(3, 4)

v � 2i � 4j

Therefore x � 1 � 2l

and y � 4l

For example, when l� 0 x � 1 y � 0

and when l� �0.5 x � 0 y � �2

2.11.4 Point of intersection of two straight lines

General form of the line equation

Given a1x � b1y � c1 � 0

and a2x � b2y � c2 � 0

They intersect at ya c a c

a b a bP ��

�2 1 1 2

1 2 2 1

xc b c b

a b a bP ��

�2 1 1 2

1 2 2 1

�2

5

ˆ ( )n i j� �1

52

2

5

1

5

2

50x y� � �

4

20

2

20

4

200x y� � �

1 1

16 4

1

202 2a b��

��

Examples 111

n

25

�2

1

�Y

X

X

Y

P

02 29/09/04 15:37 Page 111

Page 130: Geometry for Computer Graphics.pdf

Let the straight lines be 2x � 2y � 4 � 0 and 2x � 4y � 4 � 0

Therefore

and

The point of intersection is (2, 0) as confirmed by the diagram.

Parametric form of the line equation

Given p � r � la q � s � �b

where r � xRi � yRj s � xSi � ySj

and a � xai � yaj b � xbi � ybj

then

Point of intersection xP � xR � lxa yP � yR � lya

Given r � j a � 2i � j s � 2j b � 2i � 2j

xP � 0 � 2 � 2 yP � 1 � 1 � (�1) � 0

The point of intersection is (2, 0) as confirmed by the diagram.

2.11.5 Calculate the angle between two straight lines

General form of the line equation

Given a1x � b1y � c1 � 0 a2x � b2y � c2 � 0

where n � a1i � b1j m � a2i � b2j

Angle

Let the line equations be 2x � 2y � 4 � 0

and 2x � 4y � 4 � 0

Therefore a�� � �

� �� �

�cos

.

1

2 2 2 2

2 2 2 4

2 2 2 418 435

⎝⎜

⎠⎟

� ��

�cos|| || || ||

1 n mn mi⎛

⎝⎜

⎞⎠⎟

l�� � �

� � � � �� �

2 2 1 2 0 02 1 2 2

22

1( ) ( )

( ) ( )

l�� � �

x y y y x x

x y x yb S R b S R

b a a b

( ) ( )

yP ��� � ��

� � �� �

2 4 2 42 4 2 2

04

0

xP �� � � �

� � �� �

4 2 4 42 4 2 2

84

2

112 Geometry for computer graphics

b

a

sr P

Y

X

X

a

Y

02 29/09/04 15:37 Page 112

Page 131: Geometry for Computer Graphics.pdf

Normal form of the line equation

Given y � m1x � c1 y � m2x � c2

Angle

Let the line equations be y � �x � 2 and

where

Therefore

Parametric form of the line equation

Given p � r � la q � s � �b

Angle

Let the line equations be p � r � la and q � s � �b

where r � j a � 2i � j s � �2j b � 2i � 2j

Therefore

2.11.6 Test if three points lie on a straight line

Given P1(x1, y1), P2(x2, y2) and P3(x3, y3)

and

The three points lie on a straight line when s � lr.

Let the points be P1(0, �2) P2(1, �1) P3(4, 2)

Therefore r � i � j and s � 4i � 4j

and s � 4r

Therefore the points lie on a straight line as confirmed by the diagram.

r s� �P P P P1 2 1 3

� ��� � ���and

a�� � � �

� ��cos .1 2 2 1 2

5 818 435

( )( )⎛

⎝⎜

⎠⎟

a��

�cos|| || || ||

1 a ba bi⎛

⎝⎜

⎞⎠⎟

a�� � �

� � � ���cos 1

12

2 12

2

1 1

1 1 1

( )( )

( ) ( )

⎜⎜

⎟⎟

118 435. �

m m1 212

1�� ��

yx

�� �2

1

a��

� �

�cos 1 1 2

12

22

1

1 1

m m

m m

⎝⎜⎜

⎠⎟⎟

Examples 113

XP1

P2

P3

Y

02 29/09/04 15:37 Page 113

Page 132: Geometry for Computer Graphics.pdf

2.11.7 Test for parallel and perpendicular lines

General form of the line equation

Given a1x � b1y � c1 � 0 a2x � b2y � c2 � 0

where n � a1i � b1j m � a2i � b2j

The lines are parallel if n � lm.

The lines are mutually perpendicular if n • m � 0.

Given three lines L1: x � y � 1 � 0

L2: x � y � 0

L3: x � y � 2 � 0

L1 and L2 are parallel because the normal vectors to the lines are

n1 � i � j and n2 � i � j

and n1 � ln2 (l� 1)

L1 and L2 are perpendicular because

n • m � 0 1 � 1 � (�1) � 1 � 0

Normal form of the line equation

Given y � m1x � c1 y � m2x � c2

The lines are parallel if m1 � m2.

The lines are mutually perpendicular if m1m2 � �1

Given three lines L1 : y � x � 1

L2 : y � x

L3 : y � �x � 2

L1 and L2 are parallel because

m1 � m2 � 1

L1 and L3 are perpendicular because

m1m3 � �1 1 � (�1) � �1

Parametric form of the line equation

Given p � r � la q � s � �b

where a � xai � yaj b � xbi � ybj

The lines are parallel if a � kb.

The lines are mutually perpendicular if a • b � 0.

Given three lines p � r � la q � s � �b u � t � bc

114 Geometry for computer graphics

Y

X

L3

L1

L2

02 29/09/04 15:37 Page 114

Page 133: Geometry for Computer Graphics.pdf

where L1 : a � i � j

and L2 : b � i � j

and L3 : c � i � j

L1 and L2 are parallel because a � b

L1 and L3 are perpendicular because

xaxc � ya yc � 0 1 � 1 � 1 � (�1) � 0

2.11.8 Find the position and distance of the nearest point on a line to the origin

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

q � ln

where

Distance

Given the line equation x � y � 1 � 0

where a � 1 b � 1 c � �1

Therefore

and

The nearest point is

Distance

Parametric form of the line equation

Given q � t � lv

where l��v tv vii

OQ � � �12

12

2 0 7071|| || .n

Q 12

12

,( )

x x y yQ n Q n� � � �l l12

12

l� 12

OQ � �|| || || ||q nl

l��c

n ni

Examples 115

O

n

Q

1

Y

X1

q

O

tQ

1

Y

X1

v

T

q

02 29/09/04 15:37 Page 115

Page 134: Geometry for Computer Graphics.pdf

Distance

Given the direction vectors t � j v � i � j

The nearest point is

Distance

2.11.9 Find the position and distance of the nearest point on a line to a point

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

q � p � ln

where

Distance

Given P(1, 1) and x � y � 1 � 0

then a � 1 b � 1 c � � 1

Therefore

The nearest point is

Distance PQ � � � �|| || |ln i j12

0 7071|| | .

Q 12

12

,( )y y yQ P n� � � � � �l 1 11

212

x x xQ P n� � � � � �l 1 112

12

l���

��2 1

212

PQ � || ||ln

l���n p

n nii

c

OQ � � � � �|| || || ||t v i jl 12

12

0 7071.

Q 12

12

,( )y y yQ T v� � � � � � �l 1 11

212

( )

x x xQ T v� � � � � �l 0 112

12

l� 12

OQ � || ||q

116 Geometry for computer graphics

n

Q

1

Y

X1

P

02 29/09/04 15:37 Page 116

Page 135: Geometry for Computer Graphics.pdf

Parametric form of the line equation

Given q � t � lv

where

Distance

Given the direction vectors t � j and v � i � j

and p � i � j

The nearest point is

Distance

2.11.10 Find the reflection of a point in a line passing through the origin

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

q � p � ln

Given the line equation x � y � 0

where a � 1 b � 1 c � 0 P(1, 1)

Therefore xQ � xP � lxn � 0 � 1 � 1 � �1

yQ � yP � lyn � 1 � 1 � 1 � 0

The reflection point is Q(�1, 0)

l��

�2 1

21

l��2( )n p

n nii

c

PQ � � � � � �|| || || ||p t v i j� 12

12

0 7071.

Q 12

12

,( )y y yQ T v� � � � �l 1 1

212

x x xQ T v� � � � �l 0 12

12

l� 12

PQ � � �|| ||p t vl

l��v p t

v v( )ii

Examples 117

t

Q

1

Y

X1

v

T P

q

X

Y1

Q n

P

q

02 29/09/04 15:37 Page 117

Page 136: Geometry for Computer Graphics.pdf

Parametric form of the line equation

Given s � t � lvq � 2t � �v � p

where

Given xP � 0 yP � 1 t � 0 v � i � j

Therefore xQ � 2xT � �xv � xP � 2 � 0 � 1 � 1 � 0 � �1

yQ � 2yT � �yv � yP � 2 � 0 � 1 � (�1) �1 � 0

The reflection point is Q(�1, 0)

2.11.11 Find the reflection of a point in a line

General form of the line equation

Given ax � by � c � 0

where n � ai � bj

q � p � ln

Given the line equation x � y � 1 � 0

where a � 1 b � 1 c � �1 xP � 1 yP � 1

Therefore xQ � xP � lxn � 1 � 1 � 1 � 0

yQ � yP � lyn � 1 � 1 � 1 � 0

The reflection point is Q(0, 0)

Parametric form of the line equation

Given s � t � lv

q � 2t � �v � p

where e��2v p t

v v( )ii

l�� �

�2 2 1

21

( )

l��2( )n p

n nii

c

e�� �

��2 1

21

( )

e��2v p t

v v( )ii

118 Geometry for computer graphics

X

Y1

Q

v

P

Tq

X

Y

1

1

Q

P

1 X

Y

1

Q

t

P

v

T

02 29/09/04 15:37 Page 118

Page 137: Geometry for Computer Graphics.pdf

Given xP � 1 yP � 1 t � j v � i � j

Therefore xQ � 2xT � �xv � xP � 2 � 0 � 1 �1 � 1 � 0

yQ � 2yT � �yv � yP � 2 � 1 � 1 � (�1) � 1 � 0

The reflection point is Q(0, 0)

2.11.12 Find the normal to a line through a point

General form of the line equation

If line m is ax � by � c � 0

and line n is perpendicular to m passing through the point P (xP, yP)

The line equation for n is �bx � ay � bxP � ayP � 0

Given m is x � y � 1 � 0

then a � 1 b � 1 xP � 1 yP � 1

Line n is �x � y � 0

Parametric form of the line equation

Given line m q � t � lv and a point Pu � p � (t � lv)

where

line n is p � �u where � is a scalar.

Given v � i � j p � i � j t � j

Line n is

where � is a scalar, which is equivalent to �x � y � 0.

n i j i j i j� � � � � � � �( ) ( ( ) ( )e e e12

12

12

12

1 1)

u i j j i j i j� � � � � � �( ) ( ))( 12

12

12

l��

� ��

( )( ) ( )

i j ii j i j

12

ii

l��v p t

v v( )ii

e��

�2 1

21

Examples 119

n

m

1

Y

X1

P

n

m

1

Y

X1

P

t

uv

q

p

02 29/09/04 15:37 Page 119

Page 138: Geometry for Computer Graphics.pdf

2.11.13 Find the line equidistant from two points

General form of the line equation

Given ax � by � c � 0

Line n is x � y � 1 � 0

Line m is given by

with P1(0, 1) and P2(1, 0)

Line m is

x � y � 0

Parametric form of the line equation

Given q � p � lv

where

with P1(0, 1) and P2(1, 0)

Therefore

e.g. when l� 0 we have and when the point is Q(1, 1)

This is equivalent to y � x or �x � y � 0

l� 12

P 12

12

,( )

q i j� � � �( ) ( )12

12

l l

q i j� � � � � � � �( ( )) ( ( ) ( )12

12

0 1 0 1 1 0 1 0( ) l l

q i� � � � � � � �( ( )) ( ( )12 1 2 2 1

12 1 2 2 1( ) ( )x x y y y y x xl l jj

P

1

Y

X1

P1

P2

v

p

qQ

u

( ) ) ( )1 0 0 1 1 0 0 1 012

� � � � � � � �(x y

( ( ) ( )x x x y y y x x y y2 1 2 112 2

212

22

12 0� � � � � � � �)

m

P

1

Y

X1

P1

P2

n

120 Geometry for computer graphics

02 29/09/04 15:37 Page 120

Page 139: Geometry for Computer Graphics.pdf

2.11.14 Creating the parametric line equation for a line segment

P1 (x1, y1) and P2 (x2, y2) delimit the line segment and the parametric line equation is given by

p � q � l v

where q � x1i � y1j and v � (x2 � x1)i � (y2 � y1)j

Therefore xP � x1 � l(x2 � x1)

yP � y1 � l(y2 � y1)

Given P1 (1, 2) and P2(3, 1). P is between P1 and P2 for l� [0, 1]

i.e. xP � 1 � l(3 � 1) � 1 � 2l

yP � 2 + l(1 � 2) � 2 � l

For example, when l� 0.5

2.11.15 Intersecting two line segments

Given two line segments with equations r � la and s � �b

where a � xai � yaj and b � xbi � ybj

s

rPi

P1 P4

P2

P3

Y

X

b

a

x y12

12

2 1 5� �and .

P

P1

P2

Y

X

p

qv

Examples 121

02 29/09/04 15:37 Page 121

Page 140: Geometry for Computer Graphics.pdf

The point of intersection is xi � xr � lxa yi � yr � lya

where

Let the two line segments be and with P1(1, 2), P2(3, 1), P3(1, 0), P4(3, 1)

Therefore r � i � 2j and a � 2i � j

s � i and b � 2i � 2j

Therefore

As 0 l 1 there is a point of intersection

The point of intersection is which is correct.( , ),2 113

13

yi � � � �2 1 123

13

( )

xi � � � �1 2 223

13

l�� � �

� � � ��

2 0 2 2 1 12 1 2 2

23

( ) ( )( )

P P3 4

� ����P P1 2

� ���

l�� � �

x y y y x x

x y x yb b

b a a b

( ) ( )3 1 3 1

122 Geometry for computer graphics

02 29/09/04 15:37 Page 122

Page 141: Geometry for Computer Graphics.pdf

Examples 123

2.12.1 Line intersecting a circle

General form of the line equation

The diagram shows a circle radius r � 1 centered at C(xC, yC) � (2, 1) and three lines: L1, L2

and L3 that miss, touch and intersect the circle respectively.

The line equation is ax � by � c � 0

Point(s) of intersection (1)

where cT � axC � byC � c

Miss condition

Line L1 is �x � y � 1 � 0 (2)

L1 normalized is

where

then

The negative discriminant confirms the non-intersection.

c b a rT2 2 2 2 1

212

12

2 1( � � � � � ��1) ( )

cT � � � � � �2

2

1

2

1

22

a b c� � � � �1

2

1

2

1

2

� � � �1

2

1

2

1

20x y

y y bc c b a rC T T� � � �2 2 2 2( 1)

x x ac c a b rC T T� � � �2 2 2 2( 1)

L1

L2

L3

X

C

Y

r

2.12 Lines and circles

02 29/09/04 15:37 Page 123

Page 142: Geometry for Computer Graphics.pdf

Touch condition

Line L2 is y � 2 � 0 (which is already normalized) (3)

therefore a � 0 b � 1 c � �2

and cT � 0 � 1 � 2 � �1

cT2(b2 � 1) � a2r2 � 1(1 � 1) � 0

The zero discriminant confirms the touch condition:

using (1) x � 2

and (2) y � 2

Therefore the touching point is (2, 2) which is correct.

Intersect condition

Line L3 is x � y � 0 (4)

L3 normalized is

where

The positive discriminant confirms the intersect condition.

Using (1)

and (4) y � 2 and 1

The intersection points are (2, 2) and (1, 1) which are correct.

Parametric form of the line equation

x � � �2 2 112

14

and

c b a rT2 2 2 2 1

41( )� � �

cT � � �2

2

1

2

1

2

a b c� � � �1

2

1

20

1

2

1

20x y� �

124 Geometry for computer graphics

X

C

Y

r

λv1 λv3

λv2

T3

T1

L1 L3

L2

T2

P

02 29/09/04 15:37 Page 124

Page 143: Geometry for Computer Graphics.pdf

The diagram shows a circle radius r � 1 centered at C(xC, yC) � (2, 1) and three lines:L1, L2 and L3 that miss, touch, and intersect the circle respectively.

The lines are p1 � t1 � lv1 p2 � t2 � lv2 p3 � t3 � lv3

where

t2 � 2j v2 � i

and c � 2i � j

Let us substitute the lines into the following equations:

Point(s) of intersection xp � xT � lxv

yP � yT � lyv

where

s � c � t

L1: s � 2i

(s • v)2 � ||s||2 � r2 � 2 � 4 � 1 � �1

The negative discriminant confirms a miss condition.

L2: s � 2i � j

(s • v)2 � ||s||2 � r2 � 4 � 5 � 1 � 0

The zero discriminant confirms a touch condition.

Therefore l� 2

The touch point is xP � 2 yP � 2 which is correct.

L3: s � 2i � j

The positive discriminant confirms an intersect condition.

Therefore

The intersection points are

xP � � �0 2 21

22l� 2 2

l� �3

2

1

22 2 and 2

( ) || || .s v si 2 2 2 12

4 5 5 1� � � � � �r

l� � �s v s v s• ( • )2 2|| || r2

t v i j3 301

2

1

2� � �

t j v i j1 1

1

2

1

2� � �

Examples 125

02 29/09/04 15:37 Page 125

Page 144: Geometry for Computer Graphics.pdf

The intersection points are (1, 1) and (2, 2) which are correct.

2.12.2 Touching and intersecting circles

Touching circles

The diagram shows two circles touching one another at a point P(xP, yP).

One circle with radius r1 � 1 is centered at C1(1, 1), the other with radius r2 � 0.5 is centeredat C2 (2.5, 1).

Given

The touch condition is d � r1 � r2

The touch point is and

then

The touch condition is satisfied.

Therefore the touch point is P(2, 1) which is correct.

yP � � � �11

1 51 1 1

.( )

xP � � � �11

1 52 5 1 2

.( . )

d � � � � �( . ) ) .2 5 1 1 1 1 52 2(

y yr

dy yP C C C� � �1

12 1( )x x

r

dx xP C C C� � �1

12 1( )

d x x y yC C C C� � � �( ) )2 12

2 12(

X

Y

C1

C2P

r1r2

yP � � �0 21

21

xP � � �0 21

21l� 2

yP � � �0 2 21

22

126 Geometry for computer graphics

02 29/09/04 15:37 Page 126

Page 145: Geometry for Computer Graphics.pdf

Intersecting circles

The diagram shows two circles intersecting one another at points P1(xP1, yP1) and P2(xP2, yP2).

One circle with radius r1 � 1 is centered at C1(1, 1),the other with radius r2 � 1 is centered at C2(2.5, 1).

The intersect condition d r1 � r2

The points of intersection are xP1 � xC1 � lxd � �yd

yP1 � yC1 � lyd � �xd

xP2 � xC1 � lxd � �yd

yP2 � yC1 � lyd � �xd

where

and

d � 1

Therefore the intersect condition is satisfied.

therefore

and

The intersection points are and which are correct.1 34

74

, �( )1 34

74

,( )x yP P2

34 2

74

112

32

17

632

� � � � � � �

x yP P134 1

74

112

32

17

632

� � � � �

e� � �49

14

76

� �� �

��

1 1 2 252 2 25

12

..

e� �r

d12

22�

l�� �r r d

d12

22 2

22

Examples 127

X

Y

C1 C2

P1r1 r2

P2

02 29/09/04 15:37 Page 127

Page 146: Geometry for Computer Graphics.pdf

128 Geometry for computer graphics

2.13.1 Circle

General equation

Center (xC, yC) (x � xC)2 � (y � yC)2 � r2

Given a radius r � 2 and center (2, 2)

then (x � 2)2 � (y � 2)2 � 4

2.13.2 Ellipse

General equation

Center origin

with a � 2, b � 1

then

2.13.3 Parabola

Parametric equation

Vertex origin

t 0 1 2 3 4 5

x 0 1 4 9 16 25

y 0 2 4 6 8 10

x ty t

t��

�2

25 5

⎫⎬⎭

∈ [ , ]

xy

22

41� �

x

a

y

b

2

2

2

21� �

2.13 Second degree curves

X

Y

2

2

X

Y

2

1

X

Y

1 2 3 4 5

02 29/09/04 15:37 Page 128

Page 147: Geometry for Computer Graphics.pdf

Examples 129

2.13.4 Hyperbola

General equation

Foci at ( c, 0)

then with c � 5x y2 2

16 91� �

c a b� �2 2

x

a

y

b

2

2

2

21� �

X

Y

(5, 0)

34y �� x

34y � x

(�5, 0)

02 29/09/04 15:37 Page 129

Page 148: Geometry for Computer Graphics.pdf

130 Geometry for computer graphics

2.14.1 Derive the straight-line equation from two points

Given P1 and P2 v � p2 � p1p � p1 � lv

Given P1(0, 1, 3) and P2(2, 2, 0)

P1 � j � 3k

v � 2i � j � 3k

and p � p1 � lv

2.14.2 Intersection of two straight lines

Given two lines p � t � la and q � s � �bwhere t � xti � ytj � ztk and s � xsi � ysj � zsk

a � xai � yaj � zak and b � xbi � ybj � zbk

Step 1: If a � b � 0 the lines are parallel and do not intersect.

Step 2: If (t � s) • (a � b) � 0 the lines do not touch.

Step 3: Solving lxa � �xb � xs � xtlya � �yb � ys � ytlza � �zb � zs � zt

provides values for l and � which, when substituted in theoriginal line equations, reveal the intersection point.

Given t � j � 2k and s � 2i � ja � 3i � j � 2k and b � �2i � j � 3k

Step 1: Prove that the lines are not parallel.Although it is obvious that a and b are not parallel, let’s prove it by ensuring that a � b � 0.

i j k

a 3 1 �2

b �2 1 3

a � b 5 5 5

Therefore the lines are not parallel.

Step 2: Prove that the lines are touching.If (t � s) • (a � b) � 0 the lines touch.Therefore (2i � 2k) • (5i � 5j � 5k) � 0 so the lines touch.

2.14 Three-dimensional straight lines

X

Y

Z

P1

P2

P

pp1

v

p2

X

Y

Z

T Sa

t s

b

02 29/09/04 15:37 Page 130

Page 149: Geometry for Computer Graphics.pdf

Examples 131

Step 3: Compute the intersection point.Create the three equations:

3l� 2� � 2 (1)l� � � 0 (2)�2l� 3� � � 2 (3)

From (2) l� �Substituting l� � in (1)

Substitute l and � in the original line equations

The intersection point is

2.14.3 Calculate the angle between two straight lines

Given p � r � la

and q � s � �b

angle

Given a � 2i � j � k and b � i � j

2.14.4 Test if three points lie on a straight line

Given three points P1, P2, P3.

Let

The points lie on a straight line when s � lr where l is a scalar.

Given P1(0, 2, 2) P2(1, 2, 1) P3(2, 2, 0)

therefore r � i � k and s � 2i � 2k

and s � 2r

Therefore the points lie on a straight line.

r s= =P P P P1 2 1 3and� ��� � ���

a�� � �

cos6 2

cos3

12

1 ( ) ( )2

1

i j k i ji⎛

⎝⎜

⎠⎟

⎝⎜

⎞⎞

⎠⎟ � 30°

a� �cos|| || || ||

1 a ba bi⋅

⎛⎝⎜

⎞⎠⎟

( , , )65

75

65

p j k i j k i j k� � � � � � � �( 2 ) 3 225

65

75

65

( )

l e� �25

25

and

X

Y

Z

RSr

a

a

s

b

X

Y

Z

P1 P2 P3r s

02 29/09/04 15:37 Page 131

Page 150: Geometry for Computer Graphics.pdf

132 Geometry for computer graphics

2.14.5 Test for parallel and perpendicular straight lines

Given p � r � maand q � s � �b

The lines are parallel if a � lb where l is a scalar.The lines are perpendicular if a • b � 0.

Given three lines L1: p1 � maL2: p2 � �bL3: p3 � lc

where a � 3i � 2kb � 3i � 2kc � j

L1 and L2 are parallel because a � b.L1 and L3 are perpendicular because a • c � (3i � 2k) • (j) � 0.

2.14.6 Find the position and distance of the nearest point on a line to the origin

Given p � t � lv

where

Distance OP � ||p||

Given t � 2j � 3k v � 3i � 3k

therefore

Distance

2.14.7 Find the position and distance of the nearest point on a line to a point

Given q � t � lv

where

Distance PQ � ||p � (t � lv)||

Given t � j � 3kv � 3i � j � 3k

and p � 3i � j

l�v p t

v vii

( )−

OP � � � � �|| || || 2 || 2.9232

32

p i j k

z z zP T v� � � � � � �l 3 ( ) 112

12

3

y y yP T v� � � � � �l 2 0 212

x x xP T v� � � � � �l 0 3 112

12

l�� � �

�� �

(3 3 ) 2 33 3 3 3

918

1i k j ki k i k

ii

( )( ) ( )− 22

l��v tv vii

X

Y

Z

a

bL2

L1

L3

P1

P2

P3

c

X

Y

Z

T P

pt

v

O

X

Y

Z

T Pq

tv

Q

p

02 29/09/04 15:37 Page 132

Page 151: Geometry for Computer Graphics.pdf

then

Distance

2.14.8 Find the reflection of a point in a line

Given s � t � lv and a point P with reflection Qq � 2t � �v � p

where

Given t � j � kv � 3i � j � k

and p � 3i � j

then

The reflection point is Q(2.45, 2.82, 0.18)

2.14.9 Find the normal to a line through a point

Given q � t � lvthe normal is u � p � (t � lv)

where

Given t � j � k

v � 3i � j � k

and p � 3i � j

therefore l�� � �

� � � ��

( )( ) ( )

3 (3 )3 3

1011

i j k i ki j k i j k

ii

l��v p t

v v( )ii

z z z zQ T v P� � � � � � � � � �2 1 ( ) 0 0.18182011

e 2 1

y y y yQ T v P� � � � � � � � �2 2 1 1 1 2.81812011

e

x x x xQ T v P� � � � � � � � �2 0 3 3 2.45452011

e 2

e�� � �

� � � ��

2(3 ) (3 )3 3

201

i j k i ki j k i j k

ii( ) ( ) 11

e��2 ( )v p t

v vii

PQ � � � � � � � �|| 3 ( 3 3 )|| 0.97331819

( ) ( ) ( )i j j k i j k3

z z zQ T v� � � � � � �l 3 ( ) 0.15791819

3

y y yQ T v� � � � � �l 1 1 1.9471819

x x xQ T v� � � � � �l 0 3 2.8421819

l�� � �

� � � ��

( )( )

3 3 (3 3 )3 (3 3 )

i j k i ki j k i j k

ii3

11819

Examples 133

X

Y

Z

TP

q

t

v

Q

p

X

Y

Z

T

Pq

t

v Q

p

u

02 29/09/04 15:37 Page 133

Page 152: Geometry for Computer Graphics.pdf

and

therefore u � 0.273i � 0.909j � 0.091k

The line equation for the normal is n � p � �u

2.14.10 Find the shortest distance between two skew lines

Given p � q � tvand p� � q� � tv�

Shortest distance

Given q � j � 3kq� � 3kv � 2i � j � 3kv� � �k

Calculate v � v�

i j k

v 2 1 �3

v� 0 0 �1

v � v� �1 2 0

d �� �

� �� �

|| 2 |||| 2 ||

2

50.8944

j i ji j

i ( )

d �� �

|| ( )|||| ||

( )q q v vv v� �

i

z z z zu P T v� � � � � � � � ��( ) 0 ( ( ))1011

l 1 1 0 0909.

y y y yu P T v� � � � � � � ��( ) 1 (1 1) 0.9091011

x x x xu P T v� � � � � � � �( ) 3 (0 3) 0.27271011

l

134 Geometry for computer graphics

X

Y

Z

Q

Q� q

v

q�v�

02 29/09/04 15:37 Page 134

Page 153: Geometry for Computer Graphics.pdf

Examples 135

2.15.1 Cartesian form of the plane equation

Given ax � by � cz � d

where the normal is n � ai � bj � ck

p0 � x0i � y0j � z0k

and d � n • p0

If the normal is n � j � k

and the point P0(0, 1, 0)

then 0x � 1y � 1z � 0 � 0 � 1 � 1 � 1 � 0 � 1

The plane equation is y � z � 1

2.15.2 General form of the plane equation

Given ax � by � cz � (ax0 � by0 � cz0) � 0

where the normal is n � ai � bj � ck

and a point is p0 � x0i � y0j � z0k

If the normal is n � j � k

and the point P0(0, 1, 0)

then 0x � 1y � 1z � (0 � 0 � 1 � 1 � 1 � 0) � 0

The plane equation is y � z � 1 � 0

2.15.3 Hessian normal form of the plane equation

To convert the previous equation into Hessian normal form, rearrange the formula and dividethroughout by ||n||.

Given y � z � 1 � 0

where the normal is n � j � k

|| ||n � 2

XZ

Y

O

n P01

1

2.15 Planes

XZ

Y

O

n P01

1

02 29/09/04 15:37 Page 135

Page 154: Geometry for Computer Graphics.pdf

therefore

or

2.15.4 Parametric form of the plane equation

Given vectors a and b that are parallel to the plane and point T is on the plane

where c � la � �band p � t � cthen xP � xT � lxa � �xb

yP � yT � lya � �yb

zP � zT � lza � �zb

The plane is parallel with the xz-plane and intersects the y-axis at y � 1.Let a and b be unit vectors parallel with the plane

i.e. a � i b � k

and T(1, 1, 1) is a point on the plane

therefore t � i � j � kand p � t � la � �b

As a and b are unit vectors,l and � measure Euclidean distances.Therefore if l� 2 and � � 1

xP � 1 � 2 � 1 � 1 � 0 � 3yP � 1 � 2 � 0 � 1 � 0 � 1zP � 1 � 2 � 0 � 1 � 1 � 2

2.15.5 Converting a plane equation from parametric form to general form

Given p � t � la � �b

for P to be perpendicular to O

and e��

( )( ) ( )|| ||

|| || || || ( )

a b a t b t a

a a b

i i i

i

2

2 2 2b

l��

( )( ) ( )|| ||

|| || || ||

a b b t a t b

b a b

i i i

i

2

2 2 2a ( )

12

12

12

2 2 2 0y z� � �

1

2

1

2

1

2y z� � � 0

136 Geometry for computer graphics

1

X

Y

Z

T

Pp

λa�bt

1XZ

Y

O

1

t�b

λaP

p

02 29/09/04 15:37 Page 136

Page 155: Geometry for Computer Graphics.pdf

then

We know in advance that the general equation of this plane is

and intersects the y-axis and z-axis at y � 1 and z � 1 respectively.The vectors for the parametric equation are

a � j � k

b � i

t � k

therefore

and

therefore

The plane equation is

and

or y � z � 1 � 0

2.15.6 Plane equation from three points

Z

Y

X

1

1R S

T

1

12

12

12

2 2 2 0y z� � �

0x y z� � � �12

12

12

12

122 2

2 0

|| || 0 22 12

2 12

2 12

p � � � �

zP � � � � � �1 1 0 012

12

( )

yP � � � � � �0 1 0 012

12

xP � � � � � �0 0 0 1 012

e�� � �

� ��

(0)( 1) (0) 22 1 (0)

0

l�� � �

� ��

(0)(0) ( 1) 12 1 (0)

12

12

12

12

2 2 2 0y z� � �

xx

yy

zzP P P

|| || ||p p pp

|| || |||| ||� � � � 0

Examples 137

02 29/09/04 15:37 Page 137

Page 156: Geometry for Computer Graphics.pdf

Given three points R(xR, yR, zR), S(xS, yS, zS), T(xT, yT, zT,)

the plane equation is ax � by � cz � d � 0

where

If the three points are R(0, 0, 1), S(1, 0, 0), T(0, 1, 0)

then the plane equation is x � y � z � 1 � 0

2.15.7 Plane through a point and normal to a line

Given n � ai � bj � ck and Q(xQ, yQ, zQ)

the plane equation is ax � by � cz � (axQ � byQ � czQ) � 0

If the line is n � i � j � k and Q(0, 1, 0)

the plane is x � y � z � 1 � 0

2.15.8 Plane through two points and parallel to a line

Given a line’s direction vector a and two points M(xM, yM, zM) and N(xN, yN, zN)

where a � xai � yaj � zak

Z

Y

X

1

N

M

1 1b a

n

X

Y

Z

Q

a b c d� � � � � � ��0 1 10 0 11 0 1

11 0 10 1 10 0 1

10 0 11 0 10 1 1

1 (11 0 1 0 1 1 1� � � � � ��)

ay zy zy z

bz xz xz x

cx yx

R R

S S

T T

R R

S S

T T

R R

S� � �111

111

1yy

x yd ax by czS

T T

R R R11

�� � �( )

138 Geometry for computer graphics

02 29/09/04 15:37 Page 138

Page 157: Geometry for Computer Graphics.pdf

and b � (xN � xM)i � (yN � yM)j � (zN � zM)kthe plane equation is ax � by � cz � (axM � byM � czM) � 0where a � yazb � ybza b � zaxb � zbxa c � xa yb � xb ya

Given M � (0, 1, 0) and N � (0, 0, 1)and a � i � jtherefore a � b � n � ai � bj � ck � �i � j � kand �x � y � z � (0 � 1 � 0) � 0The plane equation is �x � y � z � 1 � 0or x � y � z � 1 � 0

2.15.9 Intersection of two planes

Given two planes a1x � b1y � c1z � d1 � 0 a2x � b2y � c2z � d2 � 0where n1 � a1i � b1j � c1k n2 � a2i � b2j � c2k

The direction vector of the intersection line is given by n3 � n1 � n2and the point P0 on the intersection line is given by

Example 1

Let the two intersecting planes be the xy-plane and the xz-plane, which means that the line ofintersection will be the y-axis.

The plane equations are z � 0 and x � 0

where n1 � k n2 � i d1 � 0 d2 � 0

and ni j k

j3 0 0 11 0 0

� �

X

Y

Z n1n2

P0

n3

P

zd a b

a b d a ba b

DET0

21 1

3 31

2 2

3 3�

yd a c

a c d a ca c

DET0

23 3

1 11

3 3

2 2�

xd b c

b c d b cb c

DET0 �

�21 1

3 31

2 2

3 3DETa b ca b ca b c

�1 1 1

2 2 2

3 3 3

Examples 139

02 29/09/04 15:37 Page 139

Page 158: Geometry for Computer Graphics.pdf

Therefore

therefore the line p � ln3equation is

where n3 � j

Example 2

Let the two intersecting planes be the xy-plane and the plane x � 1, which means that the lineof intersection will be parallel with the y-axis passing through the point (1, 0, 0)

The plane equations are z � 0 and x � 1 � 0

where n1 � k n2 � i d1 � 0 d2 � �1

and

and

Therefore the line equation is p � p0 � ln3

where p0 � i

and n3 � j

z0

1 0 00 1 0 1 0

0 1

10�

� �

�y0

1 0 00 1 0 0 0

1 0

10�

� �

x0

1 0 11 0 0 0 1

1 0

11�

� �

�DET � �

0 0 11 0 00 1 0

1

ni j k

j3 0 0 11 0 0

� �

n1

Y

Zn2

P0

P

n3

X

z0 �

0 0 00 1 0 1 0

0 1

10y0

0 0 00 1 0 0 0

1 0

10�

x0

0 0 11 0 0 0 0

1 0

10�

�DET � �

0 0 11 0 00 1 0

1

140 Geometry for computer graphics

02 29/09/04 15:37 Page 140

Page 159: Geometry for Computer Graphics.pdf

Example 3

Let the two intersecting planes be x � y � 1 � 0 and �x � y � 0.

Therefore n1 � i � j n2 � �i � j d1 � �1 d2 � 0

and

Therefore the line equation is p � p0 � ln3

where

and n3 � 2k

2.15.10 Intersection of three planes

Given three planes a1x � b1y � c1z � d1 � 0a2x � b2y � c2z � d2 � 0a3x � b3y � c3z � d3 � 0

the intersection point (x, y, z) is

where DETa b ca b ca b c

�1 1 1

2 2 2

3 3 3

z

a b da b da b d

DET� �

1 1 1

2 2 2

3 3 3y

a d ca d ca d c

DET� �

1 1 1

2 2 2

3 3 3x

d b cd b cd b c

DET� �

1 1 1

2 2 2

3 3 3

p i j012

12

� �

z0

0 1 10 2 1 1 1

0 0

40�

� �

�y0

0 0 21 0 1 0 2

1 0

412

��

x0

0 1 00 2 1 1 0

0 2

4�

�12

DET � � �1 1 01 1 00 0 2

4

ni j k

k3 1 1 01 1 0

2��

X

Y

Z

n1

n3

n2

P0

P

Examples 141

02 29/09/04 15:37 Page 141

Page 160: Geometry for Computer Graphics.pdf

Example 1

Given the planes x � 0 y � 0 z � 0

which are the three orthogonal planes intersecting at the origin.

The intersection point is the origin, which is correct.

Example 2

Given the planes x � y � z � 2 � 0 z � 0 y � 1 � 0

The intersection point is (1, 1, 0) which is correct.

z ��

��

1 1 20 0 00 1 1

10y ��

��

1 2 10 0 10 1 0

11x ��

��

2 10 11 0

11

101

DET � ��1 1 10 0 10 1 0

1

Z

Y

X22

2

ki

i � j � kj

z � � �1 0 00 1 00 0 0

0y � � �1 0 00 0 00 0 1

0x � � �0 0 00 1 00 0 1

0

DET � �1 0 00 1 00 0 1

1

Z

Y

X

ki

j

142 Geometry for computer graphics

02 29/09/04 15:37 Page 142

Page 161: Geometry for Computer Graphics.pdf

2.15.11 Angle between two planes

Given two planes a1x � b1y � c1z � d1 � 0 and a2x � b2y � c2z � d2 � 0

where n1 � a1i � b1j � c1k and n2 � a2i � b2j � c2k

the angle between the normals is

Given the planes x � y � z � 1 � 0 and z � 0where n1 � i � j � k and n2 � k

2.15.12 Angle between a line and a plane

Given the plane ax � by � cz � d � 0where n � ai � bj � ckand the line p � r � la

the angle between the line and the plane’s normal is

Given the plane x � y � z � 1 � 0

then n � i � j � k

and a � i � j

� � ��cos 1 2

635.26°

⎝⎜

⎠⎟

|| ||n a|| 3 and || 2� �

� � �cos|| || ||

1 •||n a

n a⋅⎛⎝⎜

⎞⎠⎟

� � ��cos 1 1

354.74°

⎝⎜

⎠⎟

|| ||n n1 2|| 3 and || 1� �

� � �cos|| || ||

1 1 2

1 2

||

n n

n n⋅⎛

⎝⎜⎞

⎠⎟

Z

Y

X

n2

1 1

1

an1

Z

Y

X

a

1 1

1n

Examples 143

02 29/09/04 15:37 Page 143

Page 162: Geometry for Computer Graphics.pdf

2.15.13 Intersection of a line and a plane

Given a plane ax � by � cz � d � 0

where n � ai � bj � ck

and a line p � t � lv

for the intersection point P

Example 1

Given the plane x � y � z � 1 � 0

and the line p � t � lv

where t � 0

and v � i � j

then

The point of intersection is

Example 2

With the same plane x � y � z � 1 � 0

but t � i � j � k

and v � i � j � k

p � t � lv

The point of intersection is

2.15.14 Position and distance of the nearest point on a plane to a point

Given the plane ax � by � cz � d � 0where n � ai � bj � ck

and a point P with position vector p.

P 13

13

13

, , .( )

l�� � � � � � �

� � � � ���

(1 1 1 1 1 1 1)1 1 1 1 1 1

23

P 12

12

0, , .( )

l�� � � � � � �

� � � � ��

(1 0 1 0 1 0 1)1 1 1 1 1 0

12

l�� �( • )

•n tn v

d

Z

Y

X

v

T

1

11

n

P(x, y, z)

144 Geometry for computer graphics

X

Y

Z

P

Q

02 29/09/04 15:37 Page 144

Page 163: Geometry for Computer Graphics.pdf

The position vector of the nearest point Q is given by q � p � ln

where

The distance PQ is PQ � ||ln||

Given the plane x � y � 0

where n � i � j

and a point P(1, 1, 0) where p � i � j

The nearest point is Q(0, 0, 0) the origin.

The distance is

2.15.15 Reflection of a point in a plane

Given the plane ax � by � cz � d � 0

where n � ai � bj � ck

and P is a point with position vector p

P’s reflection Q is given by q � p � ln

where

Given the plane x � y � 0 and P(�1, 0, 1)

n � i � j

The reflection point is (0, 1, 1).

2.15.16 Plane equidistant from two points

X

Y

Z

P2

P1

l�� �

�2( 1)

21

l�� �2( • )

•n pn n

d

PQ � � � �|| 1 || 2i j( )

l��

��(2)2

1

l�� �( • )

•n p

n nd

Examples 145

Z

Y

X

PQ

02 29/09/04 15:37 Page 145

Page 164: Geometry for Computer Graphics.pdf

Given two points P1(x1, y1, z1) and P2(x2, y2, z2) the plane equation is

Given P1(0, 0, 0) and P2(2, 2, 0)

the plane equation is

or x � y � 2 � 0

2.15.17 Reflected ray on a surface

Given the surface normal n

the incident ray s

the reflected ray r

then r � s � ln

where

Given n � i � j � k

and

then

and

with

Let’s check this vector out. Its magnitude should equal the magnitude of the incident vector s,and the reflection angle should equal the incident angle.

||r||7 7 18

4

2 2 2

� ��

��

�23 12 12

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

||s|| 11 1 18

42

2 2

� ��

��

�4 4

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

r i j k� � �23

712

712

zr �� � ��14

13

712

yr �� � ��14

13

712

xr � � �113

23

l��13

s i j k� � �14

14

l��2n s

n nii

2 2 4 4 012

x y� � � �( )

( ) ( ) ( )2 1 2 1 2 112 2

212

22x x x y y y z z z x x y y� � � � � � � � �( 11

222

12 0� � �z z )

146 Geometry for computer graphics

Z

Y

X

n1

11

s r

02 29/09/04 15:37 Page 146

Page 165: Geometry for Computer Graphics.pdf

The reflection angle equals

The incident angle equals

For u� a

but || s || � || r ||

therefore n • r � n • �s

which confirms that the angle of reflection equals the angle of incidence.

n s i j k i j ki� � � � � � � ��( ) •14

14

12

⎛⎝⎜

⎞⎠⎟

n r i j k i j ki � � � � � ��( ) •7

127

1212

23

⎛⎝⎜

⎞⎠⎟

n rn r

n sn s

i i|| |||| || || || || ||⋅ ⋅

��

a��

��cos

||1

|| || ||n s

n si⋅

⎛⎝⎜

⎞⎠⎟

� � �cos|| || ||

1

||n r

n ri⋅

⎛⎝⎜

⎞⎠⎟

Examples 147

02 29/09/04 15:37 Page 147

Page 166: Geometry for Computer Graphics.pdf

148 Geometry for computer graphics

2.16.1 Line intersecting a sphere

Given a sphere with radius r located at C with positionvector c

and a line equation p � t � lv where ||v|| � 1

a touch, miss or intersect condition is determined by l

where

and s � c � t

The diagram shows a sphere with radius r � 1 centered at C with position vector c � i � jand three lines L1, L2 and L3 that miss, touch and intersect the sphere respectively.

The lines are of the form p � t � l v

therefore p1 � t1 � lv1 p2 � t2 � lv2 p3 � t3 � lv3

where

t2 � 2i v2 � j

and c � i � j

Let us substitute the lines in the original equations:

L1: s � �i � j

(s • v)2 � ||s||2 � r2 � 0 � 2 � 1 � �1

The negative discriminant confirms a miss condition.

L2: s � �i � j

(s • v)2 � ||s||2 � r2 � 1 � 2 � 1 � 0

The zero discriminant confirms a touch condition, therefore l� 1.The touch point is P2(2, 1, 0) which is correct.

L3: s � �i � j

(s • v)2 � ||s||2 � r2 � 2 � 2 � 1 � 1

The positive discriminant confirms an intersect condition

t i v i j3 321

2

1

2� � � �

t i v i j1 121

2

1

2� � �

l� � �s v s v si i( ) || ||2 2 2r

2.16 Lines, planes and spheres

P2

L1 L2L3

X

Y

Z

λv1 λv2 λv3

P3

P3�

C

r

Tt

c

02 29/09/04 15:37 Page 148

Page 167: Geometry for Computer Graphics.pdf

Examples 149

therefore

The intersection points are:

if

if

The intersection points are and whichare correct.

2.16.2 Sphere touching a plane

Given a plane ax � by � cz � d � 0

where n � ai � bj � ck

the nearest point Q on the plane to a point P is given by

q � p � ln

where

The distance is given by ||ln||

for a plane and a sphere ||ln|| � r

The diagram shows a sphere radius r � 1 centered at P(1, 1, 1)

The plane equation is y � 2 � 0

therefore n � j

and p � i � j � k

therefore l� �(1 � 2) � 1

l���n p

n nii

d

P3 11

21

1

20� �, ,

⎝⎜

⎠⎟P3 1

1

21

1

20

�� �, ,

⎝⎜

⎠⎟

x

y

z

P

P

P

� � � � � �

� � � � �

1 2 11

21

1

2

0 2 11

21

1

2

( )

( )

⎝⎜

⎠⎟

�� 0

l� �2 1

x

y

z

P

P

P

� � � � � �

� � � � �

2 1 21

21

1

2

0 1 21

21

1

2

( )

( )

⎝⎜

⎠⎟

�� 0

l� �1 2

l� � � �2

21 1 2 1or 2

n

P

QQ

X

Y

Z

r

02 29/09/04 15:37 Page 149

Page 168: Geometry for Computer Graphics.pdf

which equals the sphere’s radius and therefore the sphere and the plane touch.

The touch point is xQ � 1 � 1 � 0 � 1

yQ � 1 � 1 � 1 � 2

zQ � 1 � 1 � 0 � 1

therefore the touch point is Q(1, 2, 1) which is correct.

2.16.3 Touching spheres

Given

the touch condition is d � r1 � r2

the touch point is

Given that one sphere with radius r1 � 1 is centered at C1(1, 1, 1) and the other with radiusr2 � 0.5 is centered at C2(2.5, 1, 1)

then

The touch condition is satisfied

and

therefore the touch point is P(2, 1, 1) which is correct.

x

y

z

P

P

P

� � � �

� � � �

� �

11

1 52 5 1 2

11

1 51 1 1

11

1 5

.( . )

.( )

.(( )1 1 1� �

d � � � � � � �( . ) ( ) ( ) .2 5 1 1 1 1 1 1 52 2 2

x xr

dx x

y yr

dy y

z z

P C C C

P C C C

P C

� � �

� � �

11

2 1

11

2 1

( )

( )

111

2 1� �r

dz zC C( )

d x x y y z zC C C C C C� � � � � �( ) ( ) ( )2 12

2 12

2 12

X

Y

C1C2

P

r1r2

Z

150 Geometry for computer graphics

02 29/09/04 15:37 Page 150

Page 169: Geometry for Computer Graphics.pdf

Examples 151

2.17.1 Coordinates of a point inside a triangle

To locate points inside and outside thetriangle P1, P2, P3 using barycentriccoordinates.

For any point P0(x0, y0, z0) we can state

x0 � ex1 � lx2 � bx3y0 � ey1 � ly2 � by3z0 � ez1 � lz2 � bz3

where e� l� b� 1

The table below shows values of P0 for various values of e,l and b. Let us check that thepositions of P0 reside on the plane of the triangle.

The vertices of the triangle are P1(0, 2, 0), P2(0, 0, 4), P3(3, 1, 0) therefore the Cartesian planeequation is

ax � by � cz � d (see plane equation from three points)

where

therefore the plane equation is 4x � 12y � 6z � 24The table also confirms that the values of P0 satisfy the plane equation.

a b c d� � � � � � �2 0 10 4 11 0 1

40 0 14 0 10 3 1

120 2 10 0 13 1 1

6 4 �� � � � �

0 12 2 6 024

ay zy zy z

bz xz xz x

cx yx� � �

1 1

2 2

3 3

1 1

2 2

3 3

1 1

2

111

111

1yy

x yd ax by cz2

3 3

1 1 111

� � �

Z

Y

X

y0

z0x0

P2(0, 0, 4)

P1(0, 2, 0)

P3(3, 1, 0)

2.17 Three-dimensional triangles

e l b x0 y0 z0 4x0 � 12y0 � 6z0

1 0 0 0 2 0 240 1 0 0 0 4 240 0 1 3 1 0 24

1 1 24

0 2 24

0 0 1 2 24

1 1 2443

13

13

13

12

12

12

1 12

12

12

1 12

12

14

14

02 29/09/04 15:37 Page 151

Page 170: Geometry for Computer Graphics.pdf

2.17.2 Unknown coordinate value inside a triangle

The x and z-coordinates of a point P0 are known and it is required to determine its y-coordinate inside the triangle P1, P2, P3.

Using barycentric coordinates we have

y0 � ey1 � ly2 � (1 � e� l)y3

For P0 to be inside the triangle (e,l) ∈[0, 1].If P0 is positioned at P1 i.e. x0 � z0 � 0, y0 should be 2.

and

which makes e� 1 and l� 0

therefore y0 � 1 � 2 � 0 � 0 � (1 � 1 � 0)1 � 2 which is correct.

The table below shows the values of e,l, 1 � e� l and y0 for different values of x0 and z0.Let us check that the interpolated values of P0 reside on the plane of the triangle.

The vertices of the triangle are P1(0, 2, 0), P2(0, 0, 4), P3(3, 1, 0) therefore the Cartesian planeequation is ax � by � cz � d (see plane equation from three points)

where

therefore the plane equation is 4x � 12y � 6z � 24

a b c d� � � � � � �2 0 10 4 11 0 1

40 0 14 0 10 3 1

120 2 10 0 13 1 1

6 4 �� � � � �

0 12 2 6 024

ay zy zy z

bz xz xz x

cx yx� � �

1 1

2 2

3 3

1 1

2 2

3 3

1 1

2

111

111

1yy

x yd ax by cz2

3 3

1 1 111

� � �

e l

�� �

�12 0112

e l

0 0 10 4 13 0 1

0 0 13 0 10 0 1

1

0 0 10 4 13 0 1

� �Therefore

e l

x zx zx z

x zx zx z

x zx z

0 0

2 2

3 3

0 0

3 3

1 1

1 1

2

111

111

1

1� �

22

3 3

11x z

where

152 Geometry for computer graphics

02 29/09/04 15:37 Page 152

Page 171: Geometry for Computer Graphics.pdf

Examples 153

x0 y0 z0 e l 1 � e� l 4x � 12y � 6z

0 2 0 1 0 0 243 1 0 0 0 1 240 0 4 0 1 0 241 2 24

2 1 24

1 1 2413

14

512

76

23

14

112

56

13

12

16

23

The table below also confirms that the above values of P0 satisfy the plane equation.Let us test a point outside the triangle’s boundary, e.g. P0(4, 0, 0)

therefore

which confirms that P0 is outside the triangle’s boundary.

therefore

which confirms that P0 is also outside the triangle’s boundary.

e l�� �14

14

1and

e l

3 15112

��

��

e l

0 5 10 4 13 0 1

0 5 13 0 10 0 1

1

0 0 10 4 13 0 1

� �Similarly, for P0(0, 0, 5)

e�� 13

e l

4 0112

� ��

e l

4 0 10 4 13 0 1

4 0 13 0 10 0 1

1

0 0 10 4 13 0 1

� �

02 29/09/04 15:37 Page 153

Page 172: Geometry for Computer Graphics.pdf

154 Geometry for computer graphics

The following examples illustrate how various curves can be created by mixing togetherdifferent parametric functions.

2.18.1 Parametric curves in �2

Sine curve

Cosine curve

Sine curve with growing amplitude

t

at

tx ty a t

t t

max

maxmax

sin

[ , ]

2

0

p

⎬⎪⎪

⎭⎪⎪

tax ty a t

t t

max

maxcos[ , ]

��

21

0

p

⎫⎬⎭

tax ty a t

t t

max

maxsin[ , ]

��

21

0

p

⎫⎬⎭

2.18 Parametric curves and patches

1 2 3 4 5 6

�1

�0.5

0.5

1

1 2 3 4 5 6

�1

�0.5

0.5

1

1 2 3 4 5 6

�0.6

�0.4

�0.2

0.2

02 29/09/04 15:37 Page 154

Page 173: Geometry for Computer Graphics.pdf

Examples 155

Cosine curve with growing amplitude

Sine curve with decaying amplitude

Cosine curve with decaying amplitude

Sine-squared curve

tax ty a t

t t

max

maxsin[ , ]

21

02

p

⎫⎬⎭

t

at

tx ty a t

t t

max

maxmax

cos

[ ,

� �

2

10

p

⎬⎪⎪

⎭⎪⎪

∈ ]]

t

at

tx ty a t

t t

max

maxmax

sin

[ ,

� �

2

10

p

⎬⎪⎪

⎭⎪⎪

∈ ]]

t

at

tx ty a t

t t

max

maxmax

cos

[ , ]

2

0

p

⎬⎪⎪

⎭⎪⎪

1 2 3 4 5 6

0.2

0.4

0.6

0.8

1

1 2 3 4 5 6

�0.4

�0.2

0.2

0.4

0.6

0.8

1

1 2 3 4 5 6�0.2

0.2

0.4

0.6

1 2 3 4 5 6

�0.4

�0.2

0.2

0.4

0.6

0.8

1

02 29/09/04 15:37 Page 155

Page 174: Geometry for Computer Graphics.pdf

156 Geometry for computer graphics

Cosine-squared curve

Lissajous curve

Circle

Ellipse

tabx a ty b t

t t

max

maxcossin

[ , ]

��

��

221

0

p

⎫⎬⎭

tax a ty a t

t t

max

maxcossin

[ , ]

��

21

0

p

⎫⎬⎭

tax a ty a t

t t

max

maxsinsin

[ , ]

��

21

20

p

⎫⎬⎭

tax ty a t

t t

max

maxcos[ , ]

21

02

p

⎫⎬⎭

1 2 3 4 5 6

0.2

0.4

0.6

0.8

1

�1 �0.5 0.5 1

�1

�0.5

0.5

1

�1 �0.5 0.5 1

�1

�0.5

0.5

1

�2 �1 1 2

�1

�0.5

0.5

1

02 29/09/04 15:37 Page 156

Page 175: Geometry for Computer Graphics.pdf

Examples 157

Spiral

Logarithmic spiral

Parabola

tpx t

yp

tt

t t

max

max max,

��

42

12

2 22

⎫⎬⎪

⎭⎪∈

⎣⎢⎢

⎤⎤

⎦⎥⎥

tabx ae bty ae bt

tt

t

max..

cossin

[

��

20 63 8

p

⎫⎬⎭

∈ 00, ]maxt

t

rt

tx r ty r t

t t

max

maxmcos

sin

[ ,

2

0

p

⎬⎪⎪

⎭⎪⎪

∈ aax ]�0.4 �0.2 0.2 0.4 0.6 0.8 1

�0.6

�0.4

�0.2

0.2

�100 �50 50 100

�75

�50

�25

25

50

75

�2 �1 1 2

0.2

0.4

0.6

0.8

1

02 29/09/04 15:37 Page 157

Page 176: Geometry for Computer Graphics.pdf

Neil’s parabola

Cardioid

2.18.2 Parametric curves in �3

Circle

tax a tyz a a t

t t

max

ma

cos

sin[ ,

��� �

21

0 0

p

⎫⎬⎪

⎭⎪∈ xx ]

tax a t ty a t t

max

( cos cos )sin sin

� �� �

21

2 22 2

p

( )⎫⎬⎬⎭

∈t t[ , ]max0

ta

x ty at

tt t

max

max max,

��

42

2 2

2

3

⎫⎬⎪

⎭⎪∈

⎣⎢⎢

⎦⎦⎥⎥

158 Geometry for computer graphics

1 2 3 4

�15

�10

�5

5

10

15

�3 �2 �1 1

�2

�1

1

2

Y

X � 1

Z � 2

02 29/09/04 15:37 Page 158

Page 177: Geometry for Computer Graphics.pdf

Examples 159

Ellipse

Spiral 1

Spiral 2

tabx a ty b tz t

t t

max

m

cossin [ ,

��

���

421

0

p

⎫⎬⎪

⎭⎪∈ aax ]

tax a ty a tz t

t t

max

max

cossin [ , ]

���

41

0

⎫⎬⎪

⎭⎪∈

tabx a ty b tz

t t

max

m

cossin [ ,

��

���

221

00

p

⎫⎬⎪

⎭⎪∈ aax ]

Z

Y � 1

X � 2

Y � 1

X � 1

Z � 4π

Y � 1

X � 1

Z � 4π

02 29/09/04 15:37 Page 159

Page 178: Geometry for Computer Graphics.pdf

160 Geometry for computer graphics

Spiral 3

Spiral 4

Spiral 5

tax a ty a tz t

t t

max

max

cossin [ ,

����

41

0

p

⎫⎬⎪

⎭⎪∈ ]]

tax a ty a tz t

t t

max

max

cossin [ ,

����

41

0

p

⎫⎬⎪

⎭⎪∈ ]]

tabx a ty b tz t

t t

max

m

cossin [ ,

��

���

412

0

p

⎫⎬⎪

⎭⎪∈ aax ]

Y � 2

X � 1

Z � 4π

Y � 1

X � �1

Z � 4π

X � 1

Y � 1

Z � 4π

02 29/09/04 15:37 Page 160

Page 179: Geometry for Computer Graphics.pdf

Examples 161

Spiral 6

Spiral 7

Sinusoid

tax a tyz t

t t

max

max

sin[ , ]

=

⎫⎬⎪

⎭⎪∈

21

0 0

p

���

t

rt

tx r ty r tz t

t

max

maxcossin

[

� �

���

4

1

p

⎪⎪

⎪⎪

∈ 00, ]maxt

t

rt

tx r ty r tz t

t

max

maxcossin

[ ,

���

4

0

p

⎪⎪

⎪⎪

∈ tmax ]

Y � 1

X � 1

Z � 4π

Y

Z � 2π

X � 1

Y � 1

X � 1

Z � 4π

02 29/09/04 15:37 Page 161

Page 180: Geometry for Computer Graphics.pdf

162 Geometry for computer graphics

Sinusoidal ring

Coiled ring

2.18.3 Planar patch

Given P00, P10, P11, P01 in �2

Given P00(0, 0), P01(2, 3), P11(4, 3), P10(4, 0)

y12

12

12

1 1 11 0

0 30 3

1 11 0� � �⎡⎣ ⎤⎦

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎦⎥

⎡⎣⎢

⎤⎦⎥

12 1

211�

x12

12

12

1 1 11 0

0 24 4

1 11 0� � �⎡⎣ ⎤⎦

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎦⎥

⎡⎣⎢

⎤⎦⎥

12 1

212�

P u P PP Puv � � �1 1 1

1 01 11

00 01

10 11⎡⎣ ⎤⎦

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥ 00 1

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

v

tRr

max(

. (

��

22

0 5

p

major radius)minor radius)

nnx R r nt ty r ntz R r nt

� ���� �

24( )

( )

cos cossin

cos siin[ , ]max

tt t

⎫⎬⎪

⎭⎪∈ 0

tabnx a ty b ntz a t

max

.

cossinsin

���

���

210 28

p

⎫⎬⎪

⎭⎭⎪∈t t[ , ]max0

X

Y

Z

X

Y

P00

P01 P11

P10

1122

P

Y

X � 1

Z � 1

02 29/09/04 15:37 Page 162

Page 181: Geometry for Computer Graphics.pdf

Examples 163

2.18.4 Parametric surfaces in �3

Modulated surface

y � sin(x � z)

y � cos(x � z)

y � sin(xz)Tay a xz x z T T

��� �

p

1sin( )} ( , ) [ , ]∈

Tay a x z x z T T

��� � �

p

1cos ( , ) [ , ]( )} ∈

Tay a x z x z T T

��� � �

p

1sin( )} ( , ) [ , ]∈

0

2�2

0

2

�1�0.5

0

1

�2

0.5

0

2�2

0

2

�1�0.5

00.5

1

�2

0

2�2

0

2

�1�0.5

00.5

1

�2

02 29/09/04 15:37 Page 163

Page 182: Geometry for Computer Graphics.pdf

164 Geometry for computer graphics

y � cos(xz)

y � cosx � sinz

y � z cosx � x sinzTy z x x z x z T T

�� � �

4pcos sin } ( , ) [ , ]∈

Tay a x a z x z T T

��� � �

21p

cos sin } ( , ) [ , ]∈

Tay a xz x z T T

��� �

p

1cos( )} ( , ) [ , ]∈

0

2

�2

0

2

�1�0.5

00.5

1

�2

�5

0

5

�2�1

012

�5

0

5

0

10�10

0

10

�20�10

01020

�10

02 29/09/04 15:37 Page 164

Page 183: Geometry for Computer Graphics.pdf

2.18.5 Quadratic Bézier curve

Quadratic Bézier curve in �2

A quadratic Bézier curve is given by

p(t) � (1 � t)2 p1 � 2t(1 � t) pC � t2p2

Given the points P1(0, 0), PC(1, 1.5), P2(2, 0)

the quadratic Bézier curve is shown with its control points.

Quadratic Bézier curve in �3

Given the points P1(0, 0, 0), PC(2, 2.5, 0), P2(3, 0, 3)

the quadratic Bézier curve is shown with its control points.

2.18.6 Cubic Bézier curve

Cubic Bézier curve in �2

A cubic Bézier curve is given by

p(t) � (1 � t)3 p1 � 3t(1 � t)2 pC1 � 3t2 (1 � t) pC2 � t3p2

Given the points

P1(0, 0), PC1(1, 2), PC2(2.3, 2), P2(2.5, 0)

the cubic Bézier curve is shown with its control points.

T

x y x y T T

� �

92 2sin , [ , ]⎛

⎝⎞⎠

⎫⎬⎭

∈( )

sin x y2 2�⎛⎝

⎞⎠

Examples 165

0

5

�5

0

5

�1�0.5

00.5

1

�5

0.5 1 1.5 2

0.2

0.4

0.6

0.8

1

1.2

1.4

X

Y

Z

0.5 1 1.5 2 2.5

0.5

1

1.5

2

02 29/09/04 15:37 Page 165

Page 184: Geometry for Computer Graphics.pdf

166 Geometry for computer graphics

Cubic Bézier curve in �3

Given the points P1(0, 0, 0), PC1(2, 2.5, 0), PC2(3, 0, 3),P2(0, 2, 4) the cubic Bézier curve is shown with its control points.

2.18.7 Quadratic Bézier patch

A quadratic surface patch is described by

Given p00 � (0, 0, 1) p01 � (1, 0, 2) p02 (2, 0, 0)

The surface patch is shown in the diagram

p p p2012 21

12 220 2 0 1 2 2 2 2 0� �( ) ( ) ( ), , , , , ,

p p p10 11 1212

0 5 1 2 1 1 3 2 1 2� � �( ) ( ). , , , , ( , , )

pp p pp p pp

( , )u v u u u u� � �[( ) ( ) ]1 2 12 2 00 01 02

10 11 12

220 21 22

2

2

12 1

p p

⎢⎢

⎥⎥

⎢⎢

⎥⎥

( )( )�

�v

v vv

X

Y

Z

X

Y

Z

P00

P01

P02

P10P11

P12

P20

P21

P22

02 29/09/04 15:37 Page 166

Page 185: Geometry for Computer Graphics.pdf

Examples 167

2.18.8 Cubic Bézier patch

A cubic surface patch is described by

Given

The surface patch is shown in the diagram

p p p p30 31 32 330 3 0 1 3 1 2 3 1 3 3 0� �( ) ( ) ( ) (, , , , , , , , ))

p p p p20 2112 22

12 230 2 0 1 2 1 2 2 1 3 2� �( ) ( ) (, , , , ( , , ) , ,, 0)

p p p p10 1112 12

12 130 0 2 1 1 2 2 1 2 3� �( ) ( ), , , , ( , , ) ( ,, , )0 2

p p p p00 0112

12 02

12

12 030 0 3 1 3 2 3 3� �( ) ( ) ( ), , , , , , ( ,, , )0 3

p

p p p p

( , ) [ ( ) ( ) ]u v u u u u u u� � � �( )1 3 1 3 13 2 2 300 01 02 003

10 11 12 13

20 21 22 23

30 31 32 33

p p p pp p p pp p p p

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

( )( )( )

13 13 1

3

2

2

3

���

vv vv v

v

X

Y

Z

P00P01

P02

P03

P10

P11 P12

P13

P20

P21 P22

P23

P30P31 P32

P33

02 29/09/04 15:37 Page 167

Page 186: Geometry for Computer Graphics.pdf

168 Geometry for computer graphics

Sphere Ellipsoid

x2 � y2 � z2 � 100

Elliptic cylinder Elliptic paraboloid

y2 � z2 � 1 x2 � z2 � y

Elliptic cone Elliptic hyperboloid of one sheet

x2 � z2 � y2 x2 � z2 � 1 � y2

Elliptic hyperboloid of two sheets

x2 � z2 � y2 � 1 y � x2 � z2

XZ

Y

X

Y

Z

X

Y

Z

X

Y

Z

XZ

Y

X

Y

Z

1

1

x y z2 2 2

4 16 91� � �

X

Y

Z

2

4

3X

Y

Z

1010

10

2.19 Second degree surfaces in standard form

02 29/09/04 15:37 Page 168

Page 187: Geometry for Computer Graphics.pdf

3 Proofs

We must never assume that which is incapable of proof.G.H. Lewes (1817–1878)

This third section is divided into 18 groups:

3.1 Trigonometry3.2 Circles3.3 Triangles3.4 Quadrilaterals3.5 Polygons3.6 Three-dimensional objects3.7 Coordinate systems3.8 Vectors3.9 Quaternions3.10 Transformations3.11 Two-dimensional straight lines3.12 Lines and circles3.13 Second degree curves3.14 Three-dimensional straight lines3.15 Planes3.16 Lines, planes and spheres3.17 Three-dimensional triangles3.18 Parametric curves and patches

Not everyone will be interested in why a formula has a particular form. For some, all thatmatters is that it provides the correct numerical result. However, students and academics mayhave other interests – they may be interested in the origins of the formula and the strategyused in its derivation.

169

03 29/09/04 15:38 Page 169

Page 188: Geometry for Computer Graphics.pdf

Some formulas are extremely simple and are readily derived using the sine rule or cosinerule. Others are much more subtle and require techniques such as completing the square,recognizing ratios in virtual triangles, substituting trigonometric or vector formulas tosimplify the current status of the formula.

What is apparent from these proofs is that deriving a proof is not always obvious.Remember, that it took Sir William Rowan Hamilton over a decade to crack the non-commutative rules behind quaternions; yet today, any student can be taught the ideas behindvectors and quaternions in one or two hours. Therefore readers should not be surprised howeasy it is to prove that 1 � 1, even after working through several pages of complex algebra!Such dead ends are often due to working with statements that are linearly related in some way.

In many of the proofs involving vectors, a vector equation is derived which reflects ageometric condition. By itself, this equation is unable to reveal an answer, but by taking thescalar product of its terms with a suitable vector, the equation is simplified because the dotproduct of a critical pair of vectors is known to be zero. This is a very powerful problem-solving technique and should be remembered by the reader.

The following proofs are the heart of this book. They may not always reveal the mostelegant route to the final result, and if the reader can discover a more elegant strategy,hopefully they will derive pleasure in the process, which is what mathematics should be about.

170 Geometry for computer graphics

03 29/09/04 15:38 Page 170

Page 189: Geometry for Computer Graphics.pdf

3.1.1 Trigonometric functions and identities

similarly

3.1.2 Cofunction identities

3.1.3 Pythagorean identities

a2 � b2 � c2 (1)

Divide (1) by c2

therefore sin2a� cos2a� 1 (2)

Divide (2) by cos2a

therefore 1 � tan2a� sec2a

sin

cos

cos

cos cos

2

2

2

2 2

1a

a

a

a a� �

a

c

b

c

c

c

2

2

2

2

2

21� � �

sin cos

cos sin

tan cot

csc

a b

a b

a b

a

� �

� �

� �

acbcabca

��

� �

� �

sec

sec csc

cot tan

b

a b

a b

cbba

tansincos

cotcossin

aa

aa

a

a� �

cotcossin

aa

a� � �

ba

bcca

sin

cos

tansincos

a

a

aa

a

� � �

acbcab

accb

3.1 Trigonometry

Proofs 171

ca

b

b

a

By definition

03 29/09/04 15:38 Page 171

Page 190: Geometry for Computer Graphics.pdf

Divide (2) by sin2a

therefore 1 � cot2 a� csc2 a

sin2a� cos2a� 1 1 � tan2a� sec2a 1 � cot2a� csc2a

3.1.4 Useful trigonometric values

sin 30° cos 30° tan 30°

Pythagoras

and

sin 36° cos 36° tan 36°

Given

�ABC is isosceles, therefore AC � AB � r

�BCD is isosceles, therefore CD � x

�DAC is isosceles, therefore DA � x and BD � r � x

�CBD is similar to �ACB, therefore

x2 � xr � r2 � 0

which has roots

Let r � 1

cos sin361 5

454° °�

��

cos( )

( )36

1

1 5

1 5

1 5

1 54

° �� �

� �

� ��

cos 361

1 5

12° � �

� �x

x � � 12

1 5( )

x r r� � �12

2 4( )

xr

r xx

��

tan 60 3° �

tan 30 313

° �

cos sin30 3 6012

° °� �

sin cos30 6012

° °� �

h � � �1 312

14

h2 12

2 21� �( )

sin

sin

cos

sin sincsc

2

2

2

2 221a

a

a

a aa� � �

172 Geometry for computer graphics

12

h1

30°

60° 60°

60°

36°

36°

36°

C

D

B

A

72°

x

r � x

r

x

x

72°

36°

hx

r

12 36°

x

12

03 29/09/04 15:38 Page 172

Page 191: Geometry for Computer Graphics.pdf

but sin2 36° � cos2 36° � 1

sin 45° cos 45° tan 45°h2 � h2 � 1

3.1.5 Compound angle identities

�ABC and �ACD are right-angled triangles

DF is perpendicular to AB

EC is parallel to AB

therefore BC � FE and EC � FB

�AIF � �DIC ∴ �IDC � a

tan 45 1° � �hh

cos 451

212

° � �h

sin 451

212

° � �h

h � �12

12

2

tan 545 2 5

5° �

tansincos

545454

1 5

10 2 5°

°°

� ��

tan 36 5 2 5° � �

tansincos

363636

10 2 5

1 5°

°°

� ��

sin cos3610 2 5

454° °�

��

sin 365

4

2

° 11

� ��⎛

⎝⎜

⎠⎟

sin cos36 1 362° °� �

Proofs 173

45°

45°

h 1

h

D

u

u

a

ab

FA

E C

B

I

03 29/09/04 15:38 Page 173

Page 192: Geometry for Computer Graphics.pdf

sin(A� B)

If b is negative sin(a� b) � sina cos(�b) � cosa sin(�b)

cos(A� B)

If b is negative cos(a� b) � cosa cos(�b) � sina sin(�b)

tan(A� B) (1)

Divide (1) by cos a cos b

If b is negative

tan( )tan tan

tan tana b

a b

a b� �

�1

tan( )tan tan( )

tan tan( )a b

a b

a b� �

� �

� �1

tan( )tan tan

tan tana b

a b

a b� �

�1

tan( )sin( )cos( )

sin cos cos sina b

a b

a b

a b a b� �

��

ccos cos sin sina b a b�

cos(a� b) � cosa cosb� sina sinb

cos(a� b) � cosa cosb� sina sinb

cos( ) cos sina b a a� � � � � �AFAD

ABAD

ECAD

ACAD

DCAD

ACAD

DCAD

� �cos sinb band

ECDC

EC DC� �sin sina a∴

ABAC

AB AC� �cos cosa a∴

sin(a� b) � sina cosb� cosa sinb

sin(a� b) � sina cosb� cosa sinb

sin( ) sin cosa b a a� � � � � �FDAD

FEAD

EDAD

ACAD

DCAD

ACAD

DCAD

� �cos sinb band

EDDC

ED DC� �cos cosa a

BCAC

FEAC

FE AC� � �sin sina a∴

174 Geometry for computer graphics

03 29/09/04 15:38 Page 174

Page 193: Geometry for Computer Graphics.pdf

cot(A B) (2)

Divide (2) by sin a sin b

If b is negative

3.1.6 Double-angle identities

Substituting b� a in the compound angle identities produces

but cos2a� sin2a� 1 � cos 2a� cos2a� sin2a

sin 2a� 2 sina cosa

cos 2a� 1 � 2 sin2a

cot( )cot cotcot cot

a ba b

a b� �

1

cot( )cot cot( )cot cot( )

a ba b

a b� �

� �

� �

1

cot( )cot cotcot cot

a ba b

b� �

1�

cot( )cos( )sin( )

cos cos sin sina b

a b

a b

a b a b� �

��

ssin cos cos sina b a b�

Proofs 175

sin 3a � 3 sina� 4 sin3a

cos 3a� 4 cos3a� 3 cosa

sin 4a� 4 sina cosa� 8 sin3a cosa

cotcot cot

cot3

3

3 1

3

2a

a a�

��

tantan tan

tan3

3

1 3

3

2a

a a

a�

cotcot

cot2

12

2

aa

a�

tantan

tan2

2

1 2a

a

a�

3.1.7 Multiple-angle identities

Letting b equal multiples of a in the compound-angle identities produces

03 29/09/04 15:38 Page 175

Page 194: Geometry for Computer Graphics.pdf

3.1.8 Functions of the half-angle

Double-angle identity cos 2a� 1 � 2 sin2a

Double-angle identity cos 2a� 1 � 2 sin2a

coscosa a

21

2�

cos sin cos cosaa a a

� � � � � � �1 22

1 2 12

22

12 2 2⎛⎝⎜

⎞⎠⎟

cos2A

sincosa a

21

2�

sincos2

21

2a a

��

cos sinaa

� �1 22

2

sin2A

176 Geometry for computer graphics

cos 4a� 8 cos4a� 8 cos2a� 1

sin 5a� 16 sin5a� 20 sin3a� 5 sina

cos 5a� 16 cos5a� 20 cos3a� 5 cosa

cotcot cot cot

cot cot5

10 5

5 10 1

5 3

4 2a

a a a

a a�

� �

� �

tantan tan tan

tan tan5

5 10

1 10 5

3 5

2 4a

a a a

a a�

� �

� �

cotcot cot

cot cot4

6 1

4 4

4 2

3a

a a

a a�

� �

tantan tan

tan tan4

4 4

1 6

3

2 4a

a a

a�

� � �

03 29/09/04 15:38 Page 176

Page 195: Geometry for Computer Graphics.pdf

3.1.9 Functions of the half-angle using the perimeter of a triangle

Cosine rule a2 � b2 � c2 � 2bc cos A

but

therefore

Let 2s � a � b � c

sin22 2

2 4 4A a b c

bca b c a b c

bc�

� ��

� � � �( ) ( )( )

22 2

22 2

sinA a b c

bc�

� �( )

22 2 2

22 2 2 2 2 2

sinA b c a

bcbc b c a

� �� �

�� � �

12 ( )⎛

⎝⎜

⎠⎟ bbc

1 22 2

22 2 2

� �� �

sinA b c a

bc

cos sinAA

� �1 22

2

cos Aa b c

bcb c a

bc�

� �

��

� �2 2 2 2 2 2

2 2

cotcoscos

a a

a211

� �

cottan

coscos

a

a

a

a21

2

11

� � �

cot2A

tancoscos

a a

a211

� �

tansin

cos

cos

cos

cosaa

a

a

a

a

22

2

12

12

11

� �

� �

� ccosa

tan2A

Proofs 177

C

BA

a

c

b

03 29/09/04 15:38 Page 177

Page 196: Geometry for Computer Graphics.pdf

therefore

Similarly

therefore

3.1.10 Functions converting to the half-angle tangent form

sinA

Double-angle identity sin 2a� 2 sina cosa

sintan

tana

a

a�

22

12

2

sin sin cossin cos cos

cos

tana

a aa a a

a� � �2

2 2

22 2 2

2

2aa

a2

22sec

tan( )( )

( )A s b s c

s s a2�

� �

For divide sin by costanA A A2 2 2

cos( )A s s a

bc2�

cos( ) ( )2

22 2 2

4A s s a

bcs s a

bc�

��

22 2

2cos( )( )A b c a b c a

bc�

� � � �

22

12 2

22 2 2 2 2

cos( )A b c a

bcb c a

bc� �

� ��

� �

cos cosAA b c a

bc� � �

� �2

21

22

2 2 2

sin( )( )A s b s c

bc2�

� �

sin( )( ) ( )( )2

22 2 2 2

4A s b s c

bcs b s c

bc�

� ��

� �

178 Geometry for computer graphics

03 29/09/04 15:38 Page 178

Page 197: Geometry for Computer Graphics.pdf

cosA

Double-angle identity cos 2a� 1 � 2 sin2a

tanA

Double-angle identity

Similarly

cottan

tana

a

a�

�12

22

2

2

sectan

tana

a

a�

12

12

2

2

csctan

tana

a

a�

�12

22

2

tantan

tana

a

a�

22

12

2

tantan

tan2

2

1 2a

a

a�

costan

tana

a

a�

12

12

2

2

cos sintan

sec

tan

taa

aa

a

a

� � � � ��

1 22

12

2

2

12

1

2

2

2

2

nn2

2a

Proofs 179

03 29/09/04 15:38 Page 179

Page 198: Geometry for Computer Graphics.pdf

3.1.11 Relationships between sums of functions

sinA� sinB

sin(a� b) cos (a� b)� (sina cosb� cosa sinb)(cosa cosb� sina sinb) � sina cosa cos2b

� sinb cosb sin2a� sinb cosb cos2a� sina cosa sin2b

� sina cosa(cos2b� sin2b) � sinb cosb(cos2a� sin2a)but cos2u� sin2u� 1

sinA� sinB

sin(a� b) cos(a� b)� (sina cosb� cosa sinb)(cosa cosb� sina sinb)� sina cosa cos2b� sinb cosb sin2a� sinb cosb cos2a� sina cosa sin2b

� sina cosa(cos2b� sin2b) � sinb cosb(cos2a� sin2a)but cos2u� sin2u� 1

cosA� cosB

cos(a� b) cos(a� b)� (cosa cosb� sina sinb)(cosa cosb� sina sinb)� cos2a cos2b� sina cosa sinb cosb� sina cosa sinb cosb� sin2a sin2b

� cos2a cos2b� sin2a sin2b

but sin2a� cos2a� 1

cos(a� b) cos(a� b) � cos2a cos2b� sin2b(1 � cos2a)� cos2a cos2b� sin2b� sin2b cos2a

� cos2a(cos2b� sin2b) � sin2b

� cos2a� sin2b

� 1 � sin2a� sin2 b

∴ sin cos2 21a a� �

22 2

sin cos sin sina b a b

a b� �

� �⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

sin( )cos( ) sin sina b a b a b� � � �12

12

2 2

∴ sin( )cos( ) sin cos sin cosa b a b a a b b� � � �

2 sin cos sin sina b a b

a b� �

� �2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

sin( )cos( ) sin sina b a b a b� � � �12

12

2 2

∴ sin( )cos( ) sin cos sin cosa b a b a a b b� � � �

180 Geometry for computer graphics

03 29/09/04 15:38 Page 180

Page 199: Geometry for Computer Graphics.pdf

but cos 2u� 1 � 2 sin2u

cosA� cosB

sin(a� b) sin(a� b)� (sina cosb� cosa sinb)(sina cosb� cosa sinb)� sin2a cos2b� sina cosa sinb cosb� sina cosa sinb cosb� cos2a sin2b

� sin2a cos2b� cos2a sin2b

� �(cos2a sin2b� sin2a cos2b)

but sin2 a� cos2 a� 1

� �((1 � sin2a) sin2b� sin2a cos2b)� �(sin2b� sin2a sin2b� sin2a cos2b)� �(sin2b� sin2a (sin2b� cos2b))� �(sin2b� sin2a)

but cos 2u� 1 � 2 sin2u

tanA� tanB

ssin( )cos cos

tan tana b

a ba b

�� �

sin( )cos cos

sin cos cos sincos cos

a b

a b

a b a b

a b

��

�� �

� �22 2

sin sin cos cosa b a b

a b⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

�� �12

2 2(cos cos )a b

sin( )sin( ) ( ( cos ) ( cos ))a b a b b a� � �� � � �12

12

1 2 1 2

∴ sin ( cos )2 12

1 2u u� �

∴ cos sin2 21a a� �

22 2

cos cos cos cosa b a b

a b� �

� �⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

cos( )cos( (cos ) (cos )a b a b u b� � � � � � �

) 1 2 1 2 112

12

112

12

2 2cos cosa b�

∴� � �sin (cos )2 12

2 1u u

Proofs 181

03 29/09/04 15:38 Page 181

Page 200: Geometry for Computer Graphics.pdf

tanA� tanB

cotA� cotB

cotA� cotB

3.1.12 Inverse trigonometric functions

sin(sin�1x) � xcos(cos�1x) � xtan(tan�1x) � xsin�1(�x) � �sin�1xcos�1(�x) � p� cos�1xtan�1(�x) � �tan�1x

Domain

cos�1x [0,p](Open interval: extends to bothlimits but includes neither)

tan ] , [� �12 2

x p p

sin [ , ]� �12 2

x p p

��

� �sin( )sin sin

cot cota b

a ba b

sin( )sin sin

sin cos cos sinsin sin

s

a b

a b

a b a b

a b

��

iin( )sin sin

cot cota b

a bb a

�� �

sin(sin sin

cot cota b

a ba b

�� �

)

sin( )sin sin

sin cos cos sinsin sin

a b

a b

a b a b

a b

��

sin( )cos cos

tan tana b

a ba b

�� �

sin( )cos cos

sin cos cos sincos cos

a b

a b

a b a b

a b

��

182 Geometry for computer graphics

03 29/09/04 15:38 Page 182

Page 201: Geometry for Computer Graphics.pdf

Proofs 183

3.2.1 Proof: Angles subtended by the same arc

This theorem states that from an arc, the angle subtended at the center of a circle is twice thatsubtended at a point on the periphery.

Strategy: Construct the geometry with such a scenario and analyze the resulting triangles.

�OAB, �OBC, �OCA are isosceles triangles (OA, OB, OC are radii)

�OAB 2f� 180° � u (1)

�ABC 2f� 2(b� h) � 180°

Let a� b� h 2a � 180° � 2f (2)

Substituting (1) in (2) 2a � 180° � (180° � u)

therefore 2a� u

Corollary

1. Peripheral angles subtended by the same arc are equal.2. When the arc is a semicircle the central angle equals 180°, which makes the peripheral

angle 90° [Theorem of Thales].

3.2.2 Proof: Alternate segment theorem

The alternate segment theorem states that when a line PQ is tangent to a circle at P the alternate segment angles u and g are equal.

Strategy: Use the fact that the central angle subtended byan arc is twice the angle at the periphery.

Angle subtended by an arc reflex angle ∠POA � 2�

∠ −POA � 360 2° e

3.2 Circles

2a

a

b

b

u

h

h

ff

O

A

B

C

2�

O

B

A

QP

bf

u

f g

03 29/09/04 15:38 Page 183

Page 202: Geometry for Computer Graphics.pdf

184 Geometry for computer graphics

OP is a radius and tangent to PQ

Interior angles of �POA 360° � 2� � 2f� 180°therefore � � 90° � f (1)�OPQ � right angle b� u� f� 90° (2)Interior angles of �PAB b� g� � � 180° (3)Substituting (1) in (3) b� g� f� 90° (4)Comparing (2) and (4) u� g

The alternate angles are equal u� g

3.2.3 Proof: Area of a circle, sector and segment

Area of a circle

Strategy: Use integral calculus to find the area of a quadrant and multiply this by 4.

The equation of a circle is x2 � y2 � r2 where r is the radius.

Equation of quadrant curve is given by

therefore

Let x � r sin(u)

thereforeand dx � r cosu du

Establish new limits:

when x � 0

when x � r

Area of circle � pr2

Ar

q �p 2

4

� � �r r2

0

2 2

212

22 2

u up

p

sin⎡

⎣⎢

⎦⎥

⎣⎢

⎦⎥

� �r

d2

021 22 ( cos )u u

p

� r d2 20

2 cos u up

A r r dq � cos cosu u up

02∫

r rsin u up

� �∴2

r sin u u� 0 0∴ =

r x r2 2� � cosu

A r x dxq

r� �2 2

0∫

y r x� �2 2

Y

Xr

r

�r

�r

Aq

03 29/09/04 15:38 Page 184

Page 203: Geometry for Computer Graphics.pdf

Area of a sector

Strategy: The area of a sector is found by using the sector’s interior angle or arc length to create a fraction of the total area.

Area using arc angle [°]

Area using arc angle [rad]

Area using arc length

Area of a segment

Strategy: Compute the area of the segment as a function of a by subtracting the area of triangle OPQ from the area of the sector.

Area of segment (1)

but h � r cos (2)

and a � 2r sin (3)

Substituting (2) and (3) in (1)

or using radians Ar

� �2

2( sin )a a

A r� �2

360 2ap

a°°

sin⎛⎝⎜

⎞⎠⎟

A r r� �ap

a a°°360 2 2

2 2cos sin

a

2

a

2

A r ah� �ap

°°

12360

2

A r A sr A r� � �ap u

°°

12

12360

2 2

As

rr sr� �

22 1

2pp

A r r� �a

pp a

22 1

22

A r�ap

°°360

2

Proofs 185

srA

a

O

Q

saa

hP

A

r

03 29/09/04 15:38 Page 185

Page 204: Geometry for Computer Graphics.pdf

186 Geometry for computer graphics

3.2.4 Proof: Chord theorem

Strategy: Create two triangles from the intersecting chords and prove that they are similar.

Let AB and CD be two chords intersecting at O

�DAB � �BCD � a (subtend equal arcs)

Similarly �ADC � �ABC � b (subtend equal arcs)

�AOD � �COB � g (opposite angles)

therefore �AOD and �COB are similar

Consequently

and ab � cd

3.2.5 Proof: Secant theorem

The secant theorem states that if two secants intersectat O outside a circle, then the product of theintercepts between O and the circle on one is equal tothe product of the two intercepts on the other.

Strategy: Create two triangles from the intersectingsecants and prove that they are similar.

BC is a common chord

therefore �CEB � �CDB � b (subtend equal arcs)

and �AEC � �ADB � g (complementary to b)

and �EBD � �ECD � u (subtend equal arcs)

Therefore �s ABD and ACE are similar

Therefore

or a(a � b) � c(c � d)

3.2.6 Proof: Secant–tangent theorem

The secant–tangent theorem states that if two secants intersectat O outside a circle, and one of them is tangent to the circle,then the length of the intercept on the tangent between O andthe point of contact is the geometric mean of the lengths ofthe intercepts of the other secant.

ca b

ac d�

��

ad

cb

A

B

b

ba

ag

g

C

D

O

a

bc

d

A

B

CD

E

aa g

gb

u

ub

b

c

d

a

a

a

b

b

t

O

A

BC

03 29/09/04 15:38 Page 186

Page 205: Geometry for Computer Graphics.pdf

Proofs 187

Strategy: Identify two similar triangles from the construction lines and form ratios of their sides.

Prove that �OAC and �OBA are similar

�OAC � �OBA (alternate segment theorem)

Let �AOB � b (common to both triangles)

therefore �OCA � 180° � a� b

and �OAB � 180° � a� b

There are three common angles, therefore the triangles are similar

therefore

and t2 � a(a � b)

3.2.7 Proof: Area of an ellipse

Strategy: Use integral calculus to find the area of a quadrant andmultiply this by 4.

The equation of an ellipse is where a and b are theradii.

Equation of the quadrant curve is given by

(area under curve between the limits 0 and a)

Let x � a sinu

therefore

and dx � a cosu du

Establish new limits:

when x � 0

when x � a a asin u up

� �∴2

a sin u u� �0 0∴

a x a2 2� � cosu

Aba

a x dxq

a� �2 2

0∫

yba

a x� �2 2

x

a

y

b

2

2

2

21� �

ta b

at�

X

Y

a�a

�b

b

Aq

03 29/09/04 15:38 Page 187

Page 206: Geometry for Computer Graphics.pdf

Area of ellipse � pab

Aab

q �p

4

� � �ab ab2

12

22 2

0

2u u

pp

sin⎡

⎣⎢

⎦⎥

⎣⎢

⎦⎥

� �ab2

1 20

2 ( cos )u up

d∫

� ab cos20

2 u up

d∫

Aba

a aq � cos cosu u up

d0

2∫

188 Geometry for computer graphics

03 29/09/04 15:38 Page 188

Page 207: Geometry for Computer Graphics.pdf

Proofs 189

3.3.1 Proof: Theorem of Pythagoras

Strategy 1: Place a rotated square inside a larger square andresolve the geometry.

ABCD and EFGH are squares.By symmetry, the diagram can be annotated as shown.The area of ABCD � (a � b)2 which must equal the area of theshaded triangles and the inner square EFGH.

a2 � 2ab � b2 � 2ab � c2

Pythagorean theorem

Strategy 2: Use the altitude in a right-angled triangle toresolve the geometry.

�ABC is a right-angled triangle, therefore

and

therefore a2 � cy and b2 � cx

and a2 � b2 � cx � cy � c(x � y)

but x � y � c

therefore

3.3.2 Proofs: Properties of triangles

Sine rule

Strategy: Drop a perpendicular to divide the triangle in twoand then declare definitions of the sines of the two baseangles.

b sin A � a sin B

hb

Aha

B� �sin sinand

a2 � b2 � c2

bc

xb

�ac

ya

a2 � b2 � c2

( )a b ab c� � � �2 12

24

3.3 Triangles

H

G

F

E

D C

BA

c

ba

a

a

a

b

b

bc

cc

A B

C

c

abh

x y

c

b a

C

BA

j h

03 29/09/04 15:38 Page 189

Page 208: Geometry for Computer Graphics.pdf

190 Geometry for computer graphics

Similarly

b sin C � c sin B

Sine rule

Cosine rule

Strategy: Drop a perpendicular to divide the triangle in twoand apply the theorem of Pythagoras to both triangles.

Pythagoras h2 � a2 � (c � d)2 and h2 � b2 � d2

a2 � c2 � 2cd � d2 � b2 � d2

a2 � b2 � c2 � 2cdbut d � b cos A

a2 � b2 � c2 � 2bc cos A

Similarly for the other combinations.

Cosine rule

Tangent rule

Sine rule

therefore

and

therefore a ba b

A BA B

A B A�

��

��

�sin sinsin sin

sin ( ) cos (2 2( ) ��

� �

B

A B A B

)

sin ( ) cos ( )

2

2 2 2

( )( ) ( )

a b cA B

C� �

�sin sinsin

⎛⎝⎜

⎞⎠⎟a b c

A BC

� ��sin sin

sin

⎛⎝⎜

⎞⎠⎟

a cAC

b cBC

� �sinsin

sinsin

and

aA

bB

cCsin sin sin

� �

a2 � b2 � c2 � 2bc cos A

b2 � a2 � c2 � 2ac cos B

c2 � a2 � b2 � 2ab cos C

aA

bB

cCsin sin sin

� �

bB

cCsin sin

jb

Cjc

B� sin sinand =

aA

bBsin sin

c

b a

C

BA

h

d c � d

03 29/09/04 15:38 Page 190

Page 209: Geometry for Computer Graphics.pdf

Proofs 191

a ba b

A B

A B�

��

tan ( )

tan ( )

2

2

( )( )

b cb c

B C

B C�

��

tan

tan ( )

( ) 2

2

( )( )

a ca c

A C

A C�

��

tan

tan

( )

( )

2

2

( )( )

Mollweide’s formulas

Sine rule

therefore

and

but for a triangletherefore

sin cosA B C2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

��

b ca

B CA

B C B C��

��

� �sin sinsin

sin ( ) cos ( )2 2 2

2

( ) ( )ssin cosA A2 2( ) ( )

b c aB C

A� �

�sin sinsin

⎛⎝⎜

⎞⎠⎟

b aBA

c aCA

� �sinsin

sinsin

and

aA

bB

cCsin sin sin

� �

Tangent rule

Mollweide’s rule

b ca

B C

A�

��sin ( )

cos( )

2

2

( )

c ab

C A

B�

��sin ( )

cos( )

2

2

( )

a bc

A B

C�

��sin ( )

cos( )

2

2

( )

03 29/09/04 15:38 Page 191

Page 210: Geometry for Computer Graphics.pdf

192 Geometry for computer graphics

Newton’s rule

Furthermore

therefore

But for a triangle

therefore

cos sinA B C2 2

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

��

b ca

B CA

B C B C��

��

� �sin sinsin

sin ( ) cos ( )2 2 2

2

( ) ( )ssin( )cos( )A A2 2

b c aB C

A� �

�sin sinsin

⎛⎝⎜

⎞⎠⎟

3.3.3 Proof: Altitude theorem

Strategy: Use the same technique used to prove the theoremof Pythagoras.

�ABC is a right-angled triangle.The altitude h divides AB into lengths p and q

therefore

and (1)

and

and (2)qbc

�2

bc

qb

A� � cos

pac

�2

ac

pa

B� � cos

a bc

A B

C�

��cos ( )

sin( )

2

2

( )

Newton’s rule

b ca

B C

A�

��cos ( )

sin( )

2

2

( )

c ab

C A

B�

��cos ( )

sin( )

2

2

( )

A B

C

c

abh

pq

03 29/09/04 15:38 Page 192

Page 211: Geometry for Computer Graphics.pdf

Proofs 193

From (1) and (2)

but a � c sin A and b � c sin B

therefore ab � c2sin A sin B

and (3)

but (4)

Substitute (4) in (3)

therefore

Altitude theorem

3.3.4 Proof: Area of a triangle

Basic formula

Strategy: Divide the triangle into two right-angled triangles, whose area is equal to half arectangle.

�ADC

�BCD

�ABC

Angle formula

�ABC

but h � b sin A

area � 12

bc Asin

area � 12

hc

area � 12

base h⋅

area � � �12

12

( )base d h dh

area � �12

( )base d h

area � 12

dh

pq ha b

c� �2

2 2

2

habc

abc

chb

ha

h cab

� �2

sin sinAhb

Bha

� �and

abc

c A B� sin sin

pqa b

c�

2 2

2

d base � d

D

C

BA

h

base

b a

c

C

BA

hb a

03 29/09/04 15:38 Page 193

Page 212: Geometry for Computer Graphics.pdf

194 Geometry for computer graphics

Heron’s formula

Strategy: Drop a perpendicular to divide the triangle in two,apply the theorem of Pythagoras to both triangles and resolve.

�ADC h2 � a2 � (c � d)2 � b2 � d2

a2 � b2 � c2 � 2cd

�DBC

4c2h2 � 4b2c2 � (b2 � c2 � a2)2

4c2h2 � (2bc � (b2 � c2 � a2))(2bc � (b2 � c2 � a2))

4c2h2 � ((b � c)2 � a2)(a2 � (b � c)2)

4c2h2 � (a � b � c)(�a � b � c)(a � b � c)(a � b � c)

Let 2s � a � b � c

therefore (�a � b � c) � 2(s � a)

(a � b � c) � 2(s � b)

(a � b � c) � 2(s � c)

therefore 4c2h2 � 16s(s � a)(s � b)(s � c)

but

Heron’s formula

Alternatively:

Area of a triangle

but

area � �12

22 2 2 2

bcA A

bcA A

sin cos sin cos

sin sin cosAA A

� 22 2

area � 12

bc Asin

area � � � �s s a s b s c( )( )( )

area � 12

ch

ch s s a s b s c� � � �2 ( )( )( )

h bb c a

c2 2

2 2 22

2� �

� �⎛

⎝⎜

⎠⎟

db c a

c�

� �2 2 2

2

d c � d

D

C

BA

h

c

b a

03 29/09/04 15:38 Page 194

Page 213: Geometry for Computer Graphics.pdf

Proofs 195

but

and

therefore

Area of a triangle using a determinant

Strategy: Show that the expansion of a determinant is equivalent to the area of an arbitrarytriangle.

�ABC area �ABC � area of rectangle � �R � �S � �T

[Note that the determinant produces a positive value for anti-clockwise vertices and anegative value for clockwise vertices, which means that it can also be used to identify theorder of vertices.]

area � 12

111

x yx yx y

A A

B B

C C

area � � � � � �12

( )x y x y x y x y x y x yA B B C C A A C B A C B

area � � � � � �

� �

( )( ) ( )( )(

x x y y x x y yx

B A C B B A A B

C

12

12

xx y y x x y yA C A B C C B)( ) ( )( )� � � �12

C

B

A

R

ST

xC � xA

yC � yB

yA � yB

yC � yA

xB � xC

xB � xA

area � � � �s s a s b s c( )( )( )

area �� � �

bcs b s c

bcs s a

bc( )( ) ( )

cos( )A s s a

bc2�

sin( )( )A s b s c

bc2�

� �

03 29/09/04 15:38 Page 195

Page 214: Geometry for Computer Graphics.pdf

196 Geometry for computer graphics

3.3.5 Proof: Internal and external angles of a triangle

Internal angles

Strategy: Exploit the geometric properties of parallel lineswith the geometry of a triangle.

CAE is a straight line, and AD is parallel with CB.

Alternate angles

Let

therefore

External angles

Internal angles a� b� w� 180°of a triangle

By definition a� a� � b� b� � w� w� � 180°

a� b� w� a� � b� � w� � 3 � 180° � 540°

a� � b� � w� � 360°

3.3.6 Proof: The medians of a triangle are concurrent at its centroid

�OSR

Let R� and S� be the mid-points of OR and OSrespectively.

Let P be the point of intersection of themedians RS� and SR�.

Let T be the point where the line through Oand P meets RS.

Strategy: Prove that OT is a median of thetriangle, i.e. T bisects RS.

The external angles of a triangle sum to 360°.

The internal angles of a triangle sum to 180°.

EACˆ � � � �� � � 180°

BACˆ � �

DAB ABCˆ ˆ� � �

EAD ACBˆ ˆ� � �

E

DB

C A

βϕα α

β

C

B

A

β�β

α�

α ϕ ϕ�

O

T

S�

S

R�

R

P

q

p

s�

s

r�

r

03 29/09/04 15:38 Page 196

Page 215: Geometry for Computer Graphics.pdf

Proofs 197

Since R� and S� are mid-points of OR and OS respectively

and

Therefore

for some �

Therefore

(1)

(2)

since r and s are not collinear (2) can only be true if

therefore

P is along RS� and along SR�.

We must now prove that and

As p and q are collinear

q � mp for some m

Using (1)

and are also collinear

for some w

Therefore (3)( ) ( )13

13

1m w w m� � � �r s

q r s r r s r r s� � � � � � � � � �13

13

1m m w w wRT� ���

( ) ( )

RT RS� ��� � ��

� w

RS� ��

RT� ���

q r s� �13

13

m m

p r s� �13

13

OP OT� 23

RT RS� 12

23

23

� � �23

23

and e

( )1 0 112

12

� � � � � � � �e e( )

( ) ( )1 112

12

� � � � �l e e lr s

p r s s r� � � � � �( ) ( )1 112

12

l l e e

p s s r s s r� � � � � � � �SP���

e e e( ) ( )� 1 12

SP SR��� � ��

� �e ( )

p r r s r r s� � � � � � � �RP� ��

l l l( ) ( )′ 1 12

RP RS� �� � ��

� �l l( ) for some

s s� � 12

r r� � 12

03 29/09/04 15:38 Page 197

Page 216: Geometry for Computer Graphics.pdf

198 Geometry for computer graphics

since r and s are not collinear (3) can only be true if

therefore

which confirms that

3.3.7 Proof: Radius and center of the inscribed circle for a triangle

Radius

Strategy: Create the geometry formed by the intersecting angle bisectors of a triangle anddrop perpendiculars, each of which equals the radius of the inscribed circle. Apply Heron’sarea formula of a triangle to reveal the radius.

The three medians intersect at a point two-thirds along each median.

RT RS� ��� � ��

� �12

23

and p q

w� �12

32

and �

( ) ( )13

13

1 0m w w m� � � � �

αα

θθ

φ φ

c

a

r

rr

x c�x

c�x

b�x

A B

C

u

v

w

P

b

x

b�x

AP, BP and CP bisect angles A, B and C respectively.

r is the radius of the inscribed circle.

The tangency points are u, v and w.

Using congruent triangles, let Au � x Aw � x

uB � c � x vB � c � x

wC � b � x Cv � b � x

�ABC Perimeter � a � b � c � 2x � 2(c � x) � 2(b � x)

03 29/09/04 15:38 Page 198

Page 217: Geometry for Computer Graphics.pdf

Proofs 199

Semiperimeter

area � rx � r(c � x) � r(b � x)area � r(x � c � x � b � x) � r (b � c � x) � rs

but

therefore

Center

Strategy: A circle can be drawn inside a triangle such that ittouches every side. The center of the circle is the unique pointwhere the angle bisectors meet. The proof exploits arelationship between the sides of a triangle and the edgeintersected by the angle bisector.

Let BC � a AC � b AB � c AD � x DB � yDC bisects angle C and divides AB at D into lengths x and y.

Using the sine rule

General triangle

�ABC

Let BC � a CA � bAB � c DC � d

AE bisects angle A and CD bisects angle C.

xb

ya

xy

ba

� ��

y a yasin sin( )

sinsin( )

sinsina p u

a

p u

a

u�

��

���

x b xbsin sin

sinsina u

a

u� ��

rs a s b s c

s�

� � �( )( )( )

rs s a s b s c

s�

� � �( )( )( )

area � � � �s s a s b s c( )( )( )

rABC

s�

area �

s a b c x c x b x b c x� � � � � � � � � � �12

( )

yx

c

b a

π�θθD

C

BA

α α

dαα

�d

E

θ θ

(1�λ)cλcc

baM

D

C

BA

(1��)d

03 29/09/04 15:38 Page 199

Page 218: Geometry for Computer Graphics.pdf

200 Geometry for computer graphics

M (xM, yM) is the center of the inscribed circle.

Let 0 � (�, �) � 1

therefore

�ADC

e(a � b) � (1 � e)c

xD � �xB � (1 � l)xA

xM � �xC � (1 � �)xD

Similarly for yM

Center

Equilateral triangle

For an equilateral triangle all sides are length a.

Center

yay by cy

a b cMA B C�

� �

� �x

ax bx cx

a b cMA B C�

� �

� �

yay by cy

a b cMA B C�

� �

� �

xax bx cx

a b cMA B C�

� �

� �

xc

a b cx

a ba b c

ba b

xa

a bxM C B A�

� ��

� � ��

⎛⎝⎜

⎞⎠⎟

xb

a bx

aa b

xD B A��

��

e e�� �

� ��

� �

ca b c

a ba b c

� 1

e

e

ldd

cb

bcb a b

ca b( )1�

� ��

��( )

MC d� �e� ( )1DM d� e

� ��

aa b

� 1 l� ��

ba b

a b( )1 −� ���lc

cba( )1 − �

DB c� �l� ( )1AD c� l

x x x xM A B C� � �13

( ) y y y yM A B C� � �13

( )

03 29/09/04 15:38 Page 200

Page 219: Geometry for Computer Graphics.pdf

Proofs 201

3.3.8 Proof: Radius and center of the circumscribed circle for a triangle

Radius

Strategy: The circumcenter of a triangle is equidistant from its vertices, which enables itsradius to be defined in terms of the triangle’s area.

General triangle

Chord theorem

(1)

�ABC (2)

(3)

Substitute (3) in (2) (4)

Substitute (1) in (4)

Rabc

ABC�

�4 area �

area �abc

R4

area �bc2

sina

h

bh bc

c� �sin sina a�

area � 12

chc

sina�aR2

∠ ∠BAC BMC� �a aand 2

C

B

hcα

R

2a

c

b a

M

R

R

α

03 29/09/04 15:38 Page 201

Page 220: Geometry for Computer Graphics.pdf

202 Geometry for computer graphics

Equilateral triangle

If �ABC is an equilateral triangle with side a

(5)

(6)

Right-angled triangle

Center

Strategy: The center of the circumscribed circle is equidistant from the triangle’s vertices.Locating this center is established by vector analysis.

General triangle

Let P be the center of the circumscribed circle of radius R.

cA

B

C

R

bP

a

R

R

Ra

�3

3

Ra

ABC�

3

4 area �

area �a2 3

4

P

R

C

A Bc

b a

Rhypotenuse

�2

03 29/09/04 15:38 Page 202

Page 221: Geometry for Computer Graphics.pdf

Proofs 203

Then AP � BP � CP � R

xBP � xAP � xAB (7)

yBP � yAP � yAB (8)

but

(9)

Substituting (7) and (8) in (9)

c2 � 2(xAB xAP � yAP yAB) (10)

Similarly

xCP � xAP � xAC (11)

yCP � yAP � yAC (12)

but

(13)

Substitute (11) and (12) in (13)

b2 � 2(xAPxAC � yAP yAC) (14)

Combine (10) and (14) to reveal yAP

�xABb2 � �2(xABxAPxAC � xAB yAP yAC)

x y x x y yAC AC AP AC AP AC2 2 2 2� � �

x x x x y y y y x yAP AP AC AC AP AP AC AC AP A2 2 2 2 22 2� � � � � � � PP

2

( ) ( )x x y y x yAP AC AP AC AP AP� � � � �2 2 2 2

x y x yCP CP AP AP2 2 2 2� � �

|| || || ||CP AP R� �� � ���

� �

AC AP CP� ��� � ��� � ��

� �

x y x x y yAB AB AB AP AP AB2 2 2 2� � �

x x x x y y y y x yAP AB AP AB AP AP AB AB AP A2 2 2 2 22 2� � � � � � � PP

2

( ) ( )x x y y x yAP AB AP AB AP AP� � � � �2 2 2 2

x y x yBP BP AP AP2 2 2 2� � �

|| || || || || ||BP AP CP R� �� � ��� � ��

� � �

AB AP BP� ��� � ��� � ��

� �

03 29/09/04 15:38 Page 203

Page 222: Geometry for Computer Graphics.pdf

204 Geometry for computer graphics

xACc2 � 2(xABxAPxAC � xACyAPyAB)

xACc2 � xABb2 � 2(xACyAPyAB � xAByAPyAC)

xACc2 � xABb2 � 2yAP (xACyAB � xAByAC)

This can be represented in determinant form:

(15)

Combine (10) and (14) to reveal xAP

�yABb2 � �2(xAPxACyAB � yAPyACyAB)

yACc2 � 2(xABxAPyAC � yAPyAByAC)

yACc2 � yABb2 � 2(xABxAPyAC � xAPxACyAB)

yACc2 � yABb2 � 2xAP(xAByAC � xACyAB)

In determinant form (16)

The coordinates of P(xP, yP) are given by

(17)

(18)y y

x bx c

x yx y

P A

AC

AB

AC AC

AB AB

� � 12

2

2

x x

y by c

x yx y

P A

AC

AB

AB AB

AC AC

� � 12

2

2

x

y by c

x yx y

AP

AC

AB

AB AB

AC AC

� 12

2

2

xy c y b

x y x yAPAC AB

AB AC AC AB

��

2 2

2( )

y

x bx c

x yx y

AP

AC

AB

AC AC

AB AB

� 12

2

2

yx c x b

x y x yAPAC AB

AC AB AB AC

��

2 2

2( )

03 29/09/04 15:38 Page 204

Page 223: Geometry for Computer Graphics.pdf

Proofs 205

(18) can be arranged to have the same denominator as (17):

Center

Further developments

If the area of the triangle is already known then we can show that the determinant

is related to the area:

� (xB � xA)(yC � yA) � (xC � xA)(yB � yA)

� xByC � xByA � xAyC � xAyA � xCyB � xCyB � xCyB � xCyA

� xAyB � xByC � xCyA � xByA � xCyB � xAyC

Therefore

and

Similarly, if the radius R of the circumscribed circle is known, we can exploit the relationship

�ABC

Center x xR

abcy by c

y yR

abcb xc xP A

AC

ABP A

AC

AB

� � � �2

2

2

2

area �abc

R4

y y

b xc x

ABCP A

AC

AB� � 14

2

2

area �

x x

y by c

ABCP A

AC

AB� � 14

2

2

area �

� � �x yx yx y

ABCA A

B B

C C

111

2 area �

x yx y

x x y yx x y y

AB AB

AC AC

B A B A

C A C A�

� �� �

( ) ( )( ) ( )

x yx y

AB AB

AC AC

x x

y by c

x yx y

y y

b x

P A

AC

AB

AB AB

AC AC

P A

AC

� � � �12

2

212

2

cc x

x yx y

AB

AB AB

AC AC

2

03 29/09/04 15:38 Page 205

Page 224: Geometry for Computer Graphics.pdf

206 Geometry for computer graphics

Equilateral triangle

All sides equal a

Center x x y y y y x xP A C B P A B C� � � � � �3

33

3( ) ( )

x xy y y y

P AC A B A� �

� � �

3

x xa y a y

aP A

AC AB� ��2 2

2 3

x x

y ay a

aP A

AC

AB� �

2

2

2 3

x x

y by c

ABCP A

AC

AB� � 14

2

2

area �

area �ABCa

�2 34

03 29/09/04 15:38 Page 206

Page 225: Geometry for Computer Graphics.pdf

Proofs 207

3.4.1 Proof: Properties of quadrilaterals

Quadrilaterals embrace the square, rectangle, parallelogram, rhombus, trapezium, generalquadrilateral, tangent quadrilateral and cyclic quadrilateral. Proofs are given for some of themore useful formulas and we begin with the square.

Square

Diagonal

Area

Inradius

Circumradius (see the proof for a rectangle)

Rectangle

Diagonal

Area A � ab

Circumradius (see the proof)

Parallelogram

Diagonals (cosine rule)

and

but a� b� 180°

therefore (parallelogram law)

Altitude h � b sin a

Area A � ah

d d a b12

22 2 22� � �( )

d d a b ab12

22 2 22 2� � � � �( ) (cos cos )a b

d a b ab22 2 2� � � cosa

d a b ab12 2 2� � � cosb

Rd

�2

d a b� �2 2

Ra

�2

ra

�2

A a d� �2 12

2

d a� 2

3.4 Quadrilaterals

a

r

R

a

a

bd

a

h bd1

d2

a

b

a b

03 29/09/04 15:38 Page 207

Page 226: Geometry for Computer Graphics.pdf

Rhombus

A rhombus is a parallelogram with equal sides.

Diagonals d1 � 2a cos and d2 � 2a sin

therefore

Altitude h � a sin a

Area

Trapezium

A trapezium has one pair of parallel sides.

Diagonals (cosine rule)

and

Altitude h � d sin a� b sin b

Area

General quadrilateral

Area (see proof)

(see proof)

(see proof)

Tangent quadrilateral

A

F

E

DCG

H

r

AB � aBC � bCD � cDA � d

B

A d d b d a c� � � � �14 1

222 2 2 2 24 ( )

A b d a c� � � �14

2 2 2 2( )tan u

A d d� 12 1 2 sin u

A a c h� �12

( )

d a d ad22 2 2� � � cosa

d a b ab12 2 2� � � cosb

A ah a d d� � �2 12 1 2sina

d d a12

22 24� �

a

2a

2

208 Geometry for computer graphics

a

a

a

a hd1

d2

a

a b

b

c

d

d1

d2h

A

CD

a

ubd

c

d2

d1

B

03 29/09/04 15:38 Page 208

Page 227: Geometry for Computer Graphics.pdf

Because the intercepts of two tangents from a single point to a circle are equal:

|AE| � |AH|, |EB| � |BF|, |FC| � |CG|, |GD| � |HD|

therefore |AE| � |EB| � |CG| � |GD| � |BF| � |FC| � |AH| � |HD|

and a � c � b � d

Area

Area A � sr

where

Cyclic quadrilateral

In a cyclic quadrilateral the sum of the opposite interior angles equals 180°, which enables thevertices to reside on the circumscribed circle.

The vertices A, B, C, D lie on the circumference of a circle, radius R.

Let �A � a and �C � b

The chord theorem confirms �BOD � 2�BAD � 2a (the internal angle)

Similarly �BOD � 2�BCD � 2b (the external angle)

but 2a� 2b� 360°

therefore a� b� 180°

For any quadrilateral

where

therefore

It can also be shown that

and the diagonals are

and d1d2 � ac � bd

dab cd ac bd

ad bcd

ac bd ad bca1 2�

� �

��

� �( )( ) ( )( )and

bb cd�

Rac bd ad bc ab cds a s b s c s

�� � �

� � � �14

( )( )( )( )( )( )( dd)

A s a s b s c s d� � � � �( )( )( )( )

e a b� � � � � �12

12

( ) ( )and s a b c d

A s a s b s c s d abcd� � � � � �( )( )( )( ) cos2e

A

b

B

C

D

2a 2bO

R

R

ab

cd d2

d1

a a

b

s a b c d� � � �12

( )

A ra rb rc rd r a b c d� � � � � � � �12

12

12

12

12

( )

Proofs 209

03 29/09/04 15:38 Page 209

Page 228: Geometry for Computer Graphics.pdf

3.4.2 Proof: The opposite sides and angles of a parallelogram are equal

Definition: A parallelogram is a quadrilateral in which both pairs of sides are parallel.Strategy: Divide the parallelogram into two triangles and prove that they are congruent.

By definition AB is parallel to DC

and AD is parallel to BC

also BD is a line intersecting all the lines

�s ABD, CBD

�ABD � �CDB � a (alternate angles)

�ADB � �CBD � b (alternate angles)

BD is common to both triangles

therefore �s ABD, CBD are congruent

which implies that AB � DC and AD � BC

i.e. the opposite sides of a parallelogram are equal

and �ABC � �ADC � a� b

i.e. the opposite angles of a parallelogram are equal

Since �s ABD, CBD are congruent they have the same area and must bisect the parallelogram.

Corollary

1. If one angle of a parallelogram is a right angle, all the angles are right angles.2. If two adjacent sides of a parallelogram are equal, all the sides are equal.

3.4.3 Proof: The diagonals of a parallelogram bisect each other

Strategy: Prove that triangles AEB and CED are congruent.

�s AEB, CEDAB � DC (opposite sides of a parallelogram are equal)

Aa

a

b

b

B

CD

E

A

b

b

a

aB

CD

210 Geometry for computer graphics

03 29/09/04 15:38 Page 210

Page 229: Geometry for Computer Graphics.pdf

�EAB � �ECD � a (alternate angles)

�EBA � �EDC � b (alternate angles)

therefore �s AEB, CED are congruent

which implies that AE � EC and BE � ED

i.e. the diagonals of a parallelogram are bisected

3.4.4 Proof: The diagonals of a square are equal, intersect at right angles and bisect the opposite angles

Definition: A square is a quadrilateral with both pairs of opposite sides parallel, one of itsangles a right angle and two adjacent sides equal.

Strategy: Prove that triangles ADC and BCD are congruent.

�s ADC, BCDAD � BC (opposite sides of a parallelogram)

DC is common to both triangles

�ADC � �BCD (corollary: opposite sides of a parallelogram)

therefore �s ADC, BCD are congruent

which implies AC � BD

i.e. the diagonals of a square are equal

�s AED, CED

AE � EC (diagonals bisect each other)

AD � DC (sides of a square)

ED is common

therefore �s AED, CED are congruent

which implies �AED � �DEC

These are right angles and the diagonals intersect at right angles.

Since �s AED, CED are congruent

�ADE � �CDE

which implies �ADC is bisected

i.e. the diagonals of a square bisect opposite angles

A B

CD

E

Proofs 211

03 29/09/04 15:38 Page 211

Page 230: Geometry for Computer Graphics.pdf

3.4.5 Proof: Area of a parallelogram

Strategy: Prove that �s BCE, ADF are congruent.

ABCD is a parallelogram

CE and DF are equal and perpendicular to AB�s BCE, ADF

�CBE � �DAF (corresponding angles)�DFA � �CEB (right angles)CB � DA (opposite sides of a parallelogram are equal)

therefore �s BCE, ADF are congruent

Therefore quadrilateral ADCE � �BCE � quadrilateral ADCE � �ADF

i.e. parallelogram ABCD � rectangle ECDF

Therefore the area of a parallelogram is equal to the area of the rectangle with the same baseand same height.

area of a parallelogram � base � height

Corollary

Parallelograms having the same base and height share a common area.

3.4.6 Proof: Area of a quadrilateral

Using lengths of diagonals

Strategy: Divide the quadrilateral into four triangles and sum the individual areas.

r

sp

q

T4

T3

T1

T2d

c

b

a

D

C

B

A

p � up � uu

u

A B

CD

EF

212 Geometry for computer graphics

03 29/09/04 15:38 Page 212

Page 231: Geometry for Computer Graphics.pdf

Let AC � d1 � s � q and BD � d2 � r � pArea of ABCD � sum of the areas of triangles �T1, �T2, �T3, �T4

area of

(1)

Using lengths of sides

Strategy: Apply the cosine rule to develop a relationship between the squares of the sides.

a2 � s2 � p2 � 2ps cosu

c2 � r2 � q2 � 2rq cosu

a2 � c2 � r2 � s2 � p2 � q2 � 2ps cosu� 2rq cosu

b2 � p2 � q2 � 2pq cos(p� u) � p2 � q2 � 2pq cosu

d2 � r2 � s2 � 2rs cos(p� u) � r2 � s2 � 2rs cosu

b2 � d2 � r2 � s2 � p2 � q2 � 2pq cosu� 2rs cosu

b2 � d2 � (a2 � c2) � 2pq cosu� 2rs cosu� 2ps cosu� 2rq cosu

b2 � d2 � a2 � c2 � 2(pq � rs � ps � rq)cosu

b2 � d2 � a2 � c2 � 2(p � r)(q � s)cosu

b2 � d2 � a2 � c2 � 2d1d2 cosu

(2)

Substitute (2) in (1)

(3)Area of ABCD b d a c� � � �14

2 2 2 2( )tan u

area of ABCDb d a c

�� � �1

2

2 2 2 2

2 cossin

uu

⎝⎜

⎠⎟

d db d a c

1 2

2 2 2 2

2�

� � �

cosu

Area of ABCD d d� 12 1 2 sin u

� � �12

( )( )sinp r q s u

ABCD sp pq qr rs� � � �12

( )sin u

area �T rs rs412

12

� � �sin( ) sinp u u

area �T qr312

� sin u

area �T pq pq212

12

� � �sin( ) sinp u u

area �T sp112

� sin u

Proofs 213

03 29/09/04 15:38 Page 213

Page 232: Geometry for Computer Graphics.pdf

Using lengths of diagonals and sides

Strategy: Develop (2) by expressing the trigonometric function in terms of the diagonallengths.

but 1 � tan2u� sec2u

Using (3)

3.4.7 Proof: Area of a general quadrilateral using Heron’s formula

Strategy: Use the cosine rule to create an equation in the form of the difference of twosquares.

Apply the cosine rule to �ABD and �BCD

a2 � d2 � 2ad cosa� f 2 (1)b2 � c2 � 2bc cosb� f 2 (2)

f

A

B

C

D

a

a

b

b

c

d

Area of ABCD d d b d a c� � � � �14 1

222 2 2 2 2 24 ( )

4 412

22 2 2 2 2 2d d b d a c ABCD� � � � � �( ) area of

4 12

22 2 2 2 2 2 2 2 2 2d d b d a c b d a c� � � � � � � �( ) ( ) tan u

4 12

22 2 2 2 2 2 2 2 2 2 2 2d d b d a c b d a c� � � � � � � �( ) ( ) tan u

� � � � � � � �( ) ( ) tanb d a c b d a c2 2 2 2 2 2 2 2 2 2 2 u

4 112

22 2 2 2 2 2 2d d b d a c� � � � �( ) ( tan )u

d db d a c b d a c

12

22

2 2 2 2 2

2

2 2 2 2 2

4�

� � ��

� � �( )

cos

( ) s

u

eec2

4u

d db d a c

1 2

2 2 2 2

2�

� � �

cosu

214 Geometry for computer graphics

03 29/09/04 15:38 Page 214

Page 233: Geometry for Computer Graphics.pdf

Subtract (2) from (1)

a2 � d2 � b2 � c2 � 2(ad cosa� bc cosb) (3)

area (4)

area (5)

Add (4) and (5)

area (6)

(4Aq)2 � 4(ad sina� bc sinb)2 (7)

Square (3)

(a2 � d2 � b2 � c2)2 � 4(ad cosa� bc cosb)2 (8)

Add (7) and (8)

� 4(a2d2 � b2c2 � 2abcd(sina sinb� cosa cosb)) (9)

Substitute cos(a� b) � cos 2� � cosa cosb� sina sinb in (9)(note the substitution 2� � a� b)

� 4(a2d2 � b2c2 � 2abcd cos 2�)

(10)

Substitute cos 2� � 2cos2� � 1 in (10)

Solve the difference of two squares

16 2A a b c d a b c d a b c d a b c dq � � � � � � � � � � � � � �( )( )( )( )��16 2abcd cos e

16 2 2 2 22 2 2 2 2 2 2A ad bc a d b c ad bc a d bq � � � � � � � � � �( )( 22 2 216� �c abcd) cos e

16 2 2 162 2 2 2 2 2 2 2A ad bc a d b c abcdq � � � � � � �( ) ( ) cos e

16 4 162 2 2 2 2 2 2 2A ad bc a d b c abcdq � � � � � � �( ) ( ) cos e

� � �4 42 2(( ) cos )ad bc abcd e

� � � �4 4 22 2 2 2 2( cos )a d b c abcd abcde

16 4 2 22 2 2 2 2 2 2 2 2 2A a d b c a d b c abcdq � � � � � � �( ) ( ( cos22 1e� ))

16 4 2 22 2 2 2 2 2 2 2 2 2A a d b c a d b c abcdq � � � � � � �( ) ( cos e))

� � �

4 22 2 2 2 2 2

2 2( sin sin sin sin

coa d b c abcd

a da b a b

ss cos cos cos )2 2 2 2 2a b a b� �b c abcd

16 4 42 2 2 2 2 2 2A a d b c ad bc adq � � � � � � �( ) ( sin sin ) (a b ccos cos )a b�bc 2

ABCD A ad bcq� � �12

( sin sin )a b

�BCD bc� 12

sinb

�ABD ad� 12

sina

Proofs 215

03 29/09/04 15:38 Page 215

Page 234: Geometry for Computer Graphics.pdf

Substitute 2s � a � b � c � d

For a cyclic quadrilateral a� b� 180° therefore � � 90° and cos 90° � 0

3.4.8 Proof: Area of a trapezoid

Area ABCD

area � area EFCD � area AED � area FBC

(1)

but a � c � r � s

therefore r � s � a � c (2)

Substitute (2) in (1)

Let

Area where� � �m h m a c⋅ 12

( )

m a c� �12

( )

area � �12

h a c( )

area � � �h c a c( ( ))12

area � � �h c r s( ( ))12

area � � �ch rh sh12

12

h

m

A BE

CD

a

b

c

d

F

A s a s b s c s dcq � � � � �( )( )( )( )

A s a s b s c s d abcdq � � � � � �( )( )( )( ) cos2e

16 16 162 2A s c s b s c s a abcdq � � � � � �( )( )( )( ) cos e

216 Geometry for computer graphics

03 29/09/04 15:38 Page 216

Page 235: Geometry for Computer Graphics.pdf

3.4.9 Proof: Radius and center of the circumscribed circle for a rectangle

To find the radius

Strategy: The circumcenter of a rectangle is located at the intersection of the rectangle’sdiagonals, which can be located using the Pythagorean theorem.

a2 � b2 � (2R)2 � 4R2

or

For a square b � a, therefore

To find the center

Strategy: Show that the rectangle’s diagonals are diameters of the circumscribing circle.�A and �B are right angles, therefore AC and BD must be equal diameters of thecircumscribing circle (Chord theorem). The point P must be the center of the circle.The coordinates of the center P are given by

y y y y yP A C B D� � � �12

12

( ) ( )or

x x x x xP A C B D� � � �12

12

( ) ( )or

R a� 12

2

R x x y y x x y yB A B A B C B C� � � � � � � �12

2 2 2 2( ) ( ) ( ) ( )

R a b� �12

2 2

R

b

a

D

C

B

A

R

R

R

Proofs 217

03 29/09/04 15:38 Page 217

Page 236: Geometry for Computer Graphics.pdf

218 Geometry for computer graphics

3.5.1 Proof: The internal angles of a polygon

Strategy: Divide the polygon into triangles and analyze their internal triangles.

Let the number of sides to the polygon be n.

Internal angles of a triangle ui � fi � ai � 180° 1 � i � n

For one revolution (1)

Internal angles of n triangles

therefore (2)

Substitute (1) in (2)

therefore

3.5.2 Proof: The external angles of a polygon

Strategy: Exploit the relationship for the internal angles of a polygon for the external angles.

Let the number of sides to the polygon be n.

ai is an internal angle, and ae is the complementary external angle

The internal angles of an n-sided polygon sum to 180(n � 2)°.

( )u fi ii

n

n� � ��

180 3601

∑ °

( )u fi ii

n

n� � ��

360 1801

°∑

( )u f ai i ii

n

i

n

n� � ��� 11

180∑∑

( )u f ai i ii

n

n� � ��

1801

aii

n

�1

360∑ °

αna1

f1

f3

f2

a2

a3

u2

u3

un

u1

fn

3.5 Polygons

ai ae

03 29/09/04 15:38 Page 218

Page 237: Geometry for Computer Graphics.pdf

Proofs 219

therefore ai � ae � 180°

With n such combinations n(ai � ae) � 180n

and for n internal angles nai � 180(n � 2)

therefore 180(n � 2) � nae � 180n

180n � 360° � nae � 180n

therefore nae � 360°

3.5.3 Proof: Alternate internal angles of a cyclic polygon

Strategy: Divide the polygon into triangles and analyze their angles.

Let the number of sides to the polygon be n.

The internal angles of a triangle in the polygon

2ui � ai � 180° 1 � i � n

For one revolution (1)

For n triangles

(2)

Substitute (1) in (2)

2 180 3601

uii

n

n� ��

∑ °

2 360 1801ui

i

n

n� � ��

2 18011

u ai ii

n

i

n

n� ���

∑∑

( )2 1801u ai i

i

n

n� ��

aii

n

��

3601

°∑

an�1an

a1

a2

a3

u1 u1u2

u2

u3

u3un�1

un�1

un

un

The external angles of an n-sided polygon sum to 360°.

03 29/09/04 15:38 Page 219

Page 238: Geometry for Computer Graphics.pdf

220 Geometry for computer graphics

therefore

i.e. (u1 � u2) � (u3 � u4) � (u5 � u6) � … � (un�1 � un) � 90(n � 2)

or (u2 � u3) � (u4 � u5) � (u6 � u7) � … � (un � u1) � 90(n � 2)

[where n � 4 and is even]

3.5.4 Proof: Area of a regular polygon

Strategy: Given a regular polygon with n sides, side length s, and radius r of the circumscribed circle, its area is computed by dividing it into n isosceles triangles andsumming their total area.

The isosceles triangle OAB is formed by an edge s and the center O of the polygon.

therefore

But

therefore

h rn

� cos p( )

hr n

� cos p( )

12

s rn

� sin p( )

12

s

r n� sin p( )

Area � 14

2nsn

cot p( )

area of �OAB sh sn

� �12

14

2 cot p( )h s

n� 1

2cot p( )

12

s

h n� tan p( )

BA

rnπ

h

O

2s

2s

The alternate internal angles sum to 90(n � 2)°.

2 90 21ui

i

n

n� ��

( )∑

03 29/09/04 15:38 Page 220

Page 239: Geometry for Computer Graphics.pdf

Proofs 221

therefore area of

3.5.5 Proof: Area of a polygon

Strategy: Divide the polygon (e.g. a triangle) into three arbitrary smaller triangles. Thenderive the area of the polygon from the areas of the individual triangles.

Let P1, P2, P3 be the counter-clockwise vertices of a triangle. Also, let P(x, y) be an arbitrarypoint inside �P1P2P3.

The area of a triangle is

therefore,

area of �P1P2P3 � area of �P1P2P � area of �P2P3P � area of �P3P1P

Area A of �P1P2P3

(1)

From (1) the area of a polygon with n sides is

Area ( )1( )� �

� ��

2 1 10

1

x y y xi i n i i ni

n

mod (mod )∑

Area 1�2

1 1

2 2

3 3

111

x yx yx y

area 1� � � � � �2 1 2 2 3 3 1 2 1 3 2 1 3( )x y x y x y x y x y x y

area 1� � � � � � � � �2 1 2 1 2 1 2 1 2 2 3 2(x y xy x y x y x y xy x y xy xx y

x y x y xy x y xy x y x y x y xy3

2 3 2 3 3 1 3 1 3 1 3 1� � � � � � � � � ))

� � �1 1 12

1 1

2 2 2

2 2

3 3 2

3 3

1

111

111

1x yx yx y

x yx yx y

x yx y11 1

1x y

area 1�2

1 1

2 2

3 3

111

x yx yx y

P2

P3

P1P

Area 1 2�2

2nrn

sin p( )�OAB sh r r

n n n� � �1 1 2

22

22sin cos sinp p p( ) ( ) ( )

03 29/09/04 15:38 Page 221

Page 240: Geometry for Computer Graphics.pdf

3.5.6 Proof: Properties of regular polygons

Let n be the number of sides to the regular polygon, and sn be the edge length.RI and RC are the radii of the internal and outer circles respectively.

Apex angle is

Let the base angle be an

The internal angles of a triangle 2an � bn � 180°

The base angle is

Inradius RI

also

Circumradius RC

The circumradius Rs

Cn

n

�2 sin p( )

s

Rn

Cn

n

2 2� �sin sin

b p( ) ( )

The inradius R RI C n� cos p( )

R

RI

Cn

n� �cos cosb p2( ) ( )

Rs

In

n�

2cot p( )

s

Rn

In

n

2 2� �tan tan

b p( ) ( )

an n� �1

290

⎛⎝⎜

⎞⎠⎟

°

2360

180an n� �

°°

�n n�

360°

222 Geometry for computer graphics

RC

sn

RI bn

an an

RCRI

2sn

an

2bn

03 29/09/04 15:38 Page 222

Page 241: Geometry for Computer Graphics.pdf

Area An

Calculate the area of one isosceles triangle in the regular polygon.

or

or

A ns Rn n C n� 1

2cos p( )

A ns Rn n I� 12

Area of the polygon is A ns

nn

n�

2

4cot p( )

sR

snI

nn2 4

2

� cot p( )

Proofs 223

03 29/09/04 15:38 Page 223

Page 242: Geometry for Computer Graphics.pdf

224 Geometry for computer graphics

3.6.1 Proof: Volume of a prism

Strategy: The approximate volume of an object can be determined by cutting it into a largenumber of thin slices and summing their individual volumes. Integral calculus develops thisidea by making the slices infinitesimally thin and securing a limiting value.

In general, one can write

area of the thicknesscross-section of the slice

If the volume is considered as an infinite set of slices, it is unaffected by any linear orrotational offset applied to the slices, because any offset will not alter the individual volume of a slice. This is known as Cavalieri’s theorem, after Bonaventura Cavalieri(1598–1647).

This implies that objects with the same cross-section and height possess equal volumes.For example, the following objects have equal volumes:

where volume V � Ah

The volume of any prism obeys this formula.

General prism

V � Ah

A

Vh

A A

V hV

V A x dxa

b� ( )� �∫

3.6 Three-dimensional objects

03 29/09/04 15:38 Page 224

Page 243: Geometry for Computer Graphics.pdf

Parallelepiped

V � Ah

Rectangular parallelepiped

A � ab

3.6.2 Proof: Surface area of a rectangular pyramid

Strategy: Divide the surface area into its component parts.

Slant heights

Surface area A � area of base � area of 4 triangles

A � ab � aHa � bHb

Surface area

when a � b A a a h a� � �2 2 24

A ab a h b b h a� � � � �12

2 2 2 24 4( )

A ab a h b b h a� � � � �2 14

2 2 14

2

A ab aH aH bH bHa a b b� � � � �( )12

12

12

12

H h b H h aa b� � � �2 14

2 2 14

2and

HaHb

a b

2b

2a

h

ab

h

A

V

A

Vh

Proofs 225

V � abh

03 29/09/04 15:38 Page 225

Page 244: Geometry for Computer Graphics.pdf

226 Geometry for computer graphics

3.6.3 Proof: Volume of a rectangular pyramid

Strategy: Use integral calculus to find the volume of a pyramid by summing vertical cross-sections.

Let the dimensions of the pyramid be

base: a � b and height: h

Area of slice As � 4yz

Volume of slice Vs � 4yzdx

but

therefore

Similarly

therefore

Volume of a pyramid

Note that the formula can be expressed as V base height� �13

area of

� 13

abh

Vab

hh xh x dx

ab

hh x hx

x

h� � �

� � �

22 2

0

22 2

3

2

3

( )∫⎡

⎣⎢⎢⎢

⎦⎥⎥

⎝⎜

⎠⎟

0

23 3

3

13

3

h

ab

hh h

h

V abh

� � �

Vab

hh x x

ab

hh xh x x

s � �

� � �

22

22 22

( )

( )

d

d

zah

h x� �2

( )

zh x

ah�

�2

ybh

h x� �2

( )

yh x

bh�

�2

xy

h � x h

X

Y

2b

Y

X

2a

h

Z

2b

dx

xy

z

Volume of pyramid

Volume of slice

03 29/09/04 15:38 Page 226

Page 245: Geometry for Computer Graphics.pdf

3.6.4 Volume of a rectangular pyramidal frustum

Volume of frustum � volume of whole pyramid � volume of top pyramid

(1)

but

therefore (2)

Volume of a frustum

3.6.5 Proof: Volume of a triangular pyramid

Strategy: Use the volume of a pyramid to derive the volume of a triangular pyramid.

Volume of a pyramid is

Area of base is 12|| ||a b�

13

area of base height�

� � �13 1 2 1 2h A A A A( )

V hA

A AA A hA

hA

A AA A

F ��

� �

��

13

1

1 21 2

13 2

13

1

1 21 2

( )

( ))( )

( )

A A A

V h A A A AF

1 2 2

13 1 2 1 2

� �

� � �

⎝⎜⎜

⎠⎟⎟

Hh A

A A�

1

1 2

A

AH h

H2

1

��

V A H A H hH A A hA

F � � �

� � �

13 1

13 2

13 1 2

13 2

( )( )

2

HH � h

H

hA1

Proofs 227

c

ba

A

O

B

C

h

Substitute (2) in (1)

03 29/09/04 15:38 Page 227

Page 246: Geometry for Computer Graphics.pdf

Volume of pyramid is

Volume of a parallelepiped is

The volume of a pyramid is

Note: The volume is positive if the vertices A, B, C appear clockwise from O, otherwise it isnegative.

3.6.6 Proof: Surface area of a right cone

Strategy: Develop the lateral surface area of a right cone from the sector of a circle.

The sector marked AL will form the lateral surface area of a right cone with radius r and slant height s.

Area of sector

Lateral surface area is AL � prs

Total surface area with base A � pr(r � s)

3.6.7 Proof: Surface area of a right conical frustum

Lateral surface area of the frustum � lateral area of whole cone � lateral area of top cone

AL � pr1S � pr2(S � s)

AL � p(S(r1 � r2) � sr2) (1)

butr

rS

S s1

2

��

r1

h s

r2Ss

AL

S

2pr2

2pr1

� �22

2p

pp p

rs

r rs

16

x y zx y zx y z

a a a

b b b

c c c

|| ||a b� � �hx y zx y zx y z

a a a

b b b

c c c

13

12

� �|| ||a b h

228 Geometry for computer graphics

s

r

s

AL

2pr

h

03 29/09/04 15:38 Page 228

Page 247: Geometry for Computer Graphics.pdf

Proofs 229

therefore(2)

Substitute (2) in (1)

Lateral surface area AL � ps(r1 � r2)

Total surface area A � p(r12 � r2

2 � s(r1 � r2))

3.6.8 Proof: Volume of a cone

Strategy: Use integral calculus to find the volume of a cone by summing vertical cross-sections.

Cone with radius r and height h.

Area of disk � py2

Volume of disk � py2dx

but

therefore

Volume of disk

Volume of a cone � 13

2pr h

� � �

� � �

p

p

r

hh hx x dx

r

hh hx x dx

h

h

2

22 2

0

2

22 2

0

2

2

( )

( )

∫∫⎡

⎣⎢⎢

⎦⎥⎥

� � �

� � �

p

p

r

hh x hx

x

r

hh h

h

h2

22 2

3

2

23 3

3

3o

33

3

2

⎝⎜

⎠⎟

�pr h

� �p drh

h x x( )⎛⎝⎜

⎞⎠⎟

2

yrh

h x� �( )

yh x

rh�

Ar s

r rr r srL �

�� �p 1

1 21 2 2( )

⎝⎜

⎠⎟

Sr s

r r�

�1

1 2

Y

X

Z

hx

dxr

y

h

X

Y

r

h � xy

x

Volume of cone

03 29/09/04 15:38 Page 229

Page 248: Geometry for Computer Graphics.pdf

230 Geometry for computer graphics

3.6.9 Proof: Volume of a right conical frustum

Volume of frustum � volume of whole cone � volume of top cone

(1)

but

therefore (2)

Volume of a right conical frustum

3.6.10 Proof: Surface area of a sphere

Strategy: Use the integral formula for computing the surface area of revolution.

The equation of the 2D curve is

The general equation for the surface area of revolution is

S f x f x dxa

b� � �2 1 2p ( ) [ ( )]∫

y r x� �2 2

� � �13 1

222

1 2ph r r r r( )

V hr

r rr r r

hr r

F ��

� �

13

1

1 212

22

22

13

1

p

p

( )

(

⎝⎜

⎠⎟

11 2 1 2

1 222

13 1

222

� �

��

� �

r r r

r rr

V h r rF

)( )

(

⎝⎜

⎠⎟

p ��r r1 2)

Substitute (2) in (1)

Hr

r rh�

�1

1 2

r

rH h

H2

1

��

V r H r H h

H r r rF � � �

� � �

13 1

2 13 2

2

13 1

222 1

3 22

p p

p p

( )

( ) hh

H

H � h

h

r1

r2

r2 � x2 � y2

Z

Y

X

r

03 29/09/04 15:38 Page 230

Page 249: Geometry for Computer Graphics.pdf

therefore, the surface area of a sphere is

Surface area of a spherical segment

We can compute the surface area of a spherical segment by integrating equation (1) above over different limits. The limit range is determined by the segment thickness h and the new limits become x1 to x2:

3.6.11 Proof: Volume of a sphere

Strategy: Use integral calculus to find the volume of a sphere by summing vertical cross-sections.

Area of disk � py2

Volume of disk � py2dx

but y2 � r2 � x2

Volume of disk � p(r2 � x2)dx

Surface area of a spherical segment � 2prh

Surface area of segment �

2

21

2p

p

r x

rhxx[ ]

Surface area of a sphere � 4pr2

S r xddx

r x dx

r x

r

r� � � �

� � ��

�2 1

2 1

2 2 2 22

2 2

p

p

⎡⎣⎢

⎤⎦⎥∫

xx

r xdx

r xr

r xdx

r

r

r

r

2 2

2

2 2

2 22

2

� ��

⎝⎜

⎠⎟∫

∫p

prr dx

r x r

r

r

r

r�

�� �

∫⎡⎣ ⎤⎦2 4 2p p

Proofs 231

X

Y

x1

r

x2

h

Y

X

r

Z

x

y

dx

(1)

03 29/09/04 15:38 Page 231

Page 250: Geometry for Computer Graphics.pdf

232 Geometry for computer graphics

Volume of sphere

(1)

Volume of a sphere

Volume of a spherical segment

The volume of a spherical segment is computed by integrating equation (1) above over different limits. The limit range is determined by the segment thickness h and the radii of the circular ends r1 and r2. The limits become h1 to h � h1:

(2)

but r2 � r22 � (h � h1)2 (3)

and r2 � r12 � h2

1 (4)

Subtract (4) from (3) (5)

Substitute (5) in (2)

but h12 � r2 � r1

2

V h r h r r r r

V h r

� � � � � �

16

2 222

12 2

12

16 1

6 3 3 6 6

3

p

p

( )

( 2222 23� �r h )

V h r h r r h h

h r

� � � � � �

13

2 2 32 1

222 2

12

16

2

3 3

6

p

p

( ( ) )

( �� � � �h r r h222

12

123 3 6 )

hh r r h112 1

222 2� � �( )

V r xx

r h h h hh

h h

� �

� � � �

p

p

23

21

13 1

31

1⎡

⎣⎢⎢

⎦⎥⎥

( ( ) ( ))

( ( ) )

(

3 21

13 1

3

13

21

313

13

3

3

� �

� � � �

r h h

r h h h h

)

p

p rr h h h h hh

h r h hh h

2 3 21 1

2

13

2 21 1

2

3 3

3 3 3

� � �

� � � �

)

( )p

� 43

3pr

V r xx

rr

rr

r

r

� �

� � � �

p

p

23

33

33

3

3 3

⎣⎢⎢

⎦⎥⎥

⎝⎜

⎠⎟

pp 223

33

rr

�⎛

⎝⎜

⎠⎟

V r x dxr

r� �

�p( )2 2∫

X

Y

r

h1

r2r1

r

h � h1

h

03 29/09/04 15:38 Page 232

Page 251: Geometry for Computer Graphics.pdf

Volume of a spherical segment

If one of the radii is zero the volume becomes

Volume of a spherical segment

3.6.12 Proof: Area and volume of a torus

Strategy: Guldin’s first rule states that the area of a surface of revolution is the product of the arc length of the generating curve and the distance traveled by its centroid.Guldin’s second rule states that the volume of a surface ofrevolution is the product of the cross-sectional area and the distance traveled by the area’s centroid.

Surface area

Length of the cross-section � 2pr

Path of the centroid � 2pR

Volume

Area of the cross-section � pr2

Path of the centroid � 2pR

3.6.13 Proof: Radii of the spheres associated with the Platonic solids

Strategy: Each Platonic solid is constructed from a common regular polygon. The resultingsymmetry ensures that every vertex lies on a circumsphere. Similarly, a mid-sphere existswhich touches the mid-point of each edge. Thirdly, an in-sphere exists which lies on the mid-point of every face. The radii of these spheres can be calculated by considering thegeometry associated with a portion of a single Platonic object: an octahedron.

Let q � number of edges associated with a vertexp � number of edges associated with a face

Volume of torus � 2p2r2R

Surface area � 4p2rR

� �16 1

2 23ph r h( )

� � �16 1

222 23 3ph r r h( )

Proofs 233

R

r

03 29/09/04 15:38 Page 233

Page 252: Geometry for Computer Graphics.pdf

234 Geometry for computer graphics

Rc � radius of the circumsphere touching every vertex

Rint � radius of the mid-sphere touching the mid-point of each edge

Rin � radius of the in-sphere touching the mid-point of each face

Let s � length of an edge

O � center of the octahedron

E � mid-point of the edge AB

C � mid-point of the face ABD

Rc � radius of the circumsphere

Rint � radius of the mid-sphere

Rin � radius of the inner sphere

�EOA, �EDA, �COE, �COA are right-angled triangles.

�DAB is an equilateral triangle.

Therefore

Let

but

therefore

The objective of the proof is to express Rc, Rin, Rint in terms of p, q and s.

fp

�q

∠AOBq

�2p

∠ ∠AOE COA� �f u

∠ ∠ ∠DABp

CABp

ECAp

� � �p p p

2

� �2

half the dihedral angle

A

B

C

D

E

O

2s

Rin

Rint

Rc

2�

f

u

p p

03 29/09/04 15:38 Page 234

Page 253: Geometry for Computer Graphics.pdf

Let us introduce two intermediate equations

therefore

where k is some constant.

We already have a triangle �EOA as follows

but a similar triangle �E�O�A� can be created if we make

Comparing the two similar triangles we discover that

therefore

and

ThereforeR

s kint

p�

12

cos p( )

k sR

p intcos

/p( ) �

2

R

s kc

q�

12

sin p( )

k sR

q csin

/p( ) �

2

E�

A�

O�

( )sin q

k

f

( )cos pp

p

sin( )sin

fp

�k

q( )

E

A

Of

Rc2s

Rint

sin cos sin cos2 2 2 2 2p p p pp q q p

k( ) ( ) ( ) ( )� � � �

sin cos

sin cos

2 2

2 2

1

1

p p

p p

p p

q q

( ) ( )( ) ( )

� �

� �

Proofs 235

03 29/09/04 15:38 Page 235

Page 254: Geometry for Computer Graphics.pdf

236 Geometry for computer graphics

but

therefore

and

From �COE

therefore

We can also express Rc in terms of Rin as follows:

and

therefore

Compute Rin, Rint and Rc for the five Platonic objects.

Tetrahedron p � 3 q � 3 s � 1

R

R

in � �

� �

612

0 204124

24

0 353554

.

.int

R Rc in p q� tan tanp p( ) ( )

R

s kin p q

�cot cosp p( ) ( )

2

R

s kc q

�sin p( )

2

R

sin p q

q p

cot cos

sin cos

p p

p p

( ) ( )( ) ( )2 2 2

R Rs

pin int2 2

22

2� �

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

cotp

R

sint p

q p

cos

sin cos

p

p p

( )( ) ( )2 2 2

R

sc q

q p

sin

sin cos

p

p p

( )( ) ( )2 2 2

kq p

� �sin cos2 2p p( ) ( )

03 29/09/04 15:38 Page 236

Page 255: Geometry for Computer Graphics.pdf

Cube p � 4 q � 3 s � 1

Octahedron p � 3 q � 4 s � 1

Dodecahedron p � 5 q � 3 s � 1

Icosahedron p � 5 q � 5 s � 1

Rc � � �14

10 2 5 0 951057.

R

R

in

int

� � �

� � �

112

14

42 18 5 0 755761

6 2 5 0 809017

.

.

Rc � � �14

18 6 5 1 401259.

R

R

in

int

� � �

� � �

120

250 110 5 1 113516

14 6 5 1 309014

.

. 117

Rc � �2

20 707107.

R

R

in

int

� �

� �

66

0 408248

0 512

.

.

Rc � �3

20 866025.

R

R

in

int

� �

� �

12

0 5

22

0 707107

.

.

Rc � �6

40 612372.

Proofs 237

03 29/09/04 15:38 Page 237

Page 256: Geometry for Computer Graphics.pdf

Calculating the dihedral angles

From �COE we see that where � is the dihedral angle.

therefore

Tetrahedron

Cube

Octahedron

Dodecahedron

Icosahedron

3.6.14 Proof: Inner and outer radii for the Platonic solids

Strategy: Each Platonic solid is constructed from a common regular polygon. The vertices ofeach solid lie on a sphere whose radius Ro is calculated as shown below.

Using the geometry of a cube as an illustration, a parametric formula is derived which canbe applied to each solid in turn. The outer radius is expressed as a ratio to the edge length s.

� ��

�� ��2

3660

138 1896851sincossin

.⎛⎝⎜

⎞⎠⎟

� ��

�� ��2

6036

116 5650511sincossin

.⎛⎝⎜

⎞⎠⎟

� ��

�� ��2

4560

109 4712211sincossin

.⎛⎝⎜

⎞⎠⎟

� ��

�� ��2

6045

901sincossin

⎛⎝⎜

⎞⎠⎟

� ��

�� ��2

6060

70 5288781sincossin

.⎛⎝⎜

⎞⎠⎟

R

Rin

int

q

p

� � �cos

sinsin

p

p

( )( ) ( )2

R

s

R

s

in p q

q p

int

cot cos

sin cos

p p

p p

( ) ( )( ) ( )2 2 2

ccos

sin cos

p

p p

p

q p

( )( ) ( )2 2 2�

R

Rin

int

� �sin2( )

238 Geometry for computer graphics

03 29/09/04 15:38 Page 238

Page 257: Geometry for Computer Graphics.pdf

Proofs 239

Let C � center of the cube

s � edge length

b� half the dihedral angle

Ri � radius of the inner sphere

Ro � radius of the outer sphere

�ACD Ri2 � b2 � Z2

�DCB

therefore

and Ri � b tan b

therefore

therefore

and

Tetrahedron g� 60° b� 70.528779°/2

R

so � �

��

12

11 0 5

31 52

. .

R

so � �

�12

2

21

1 tan

tan

b

g

R

so

/2� �

�1

1 2

2

tan

tan

b

g

bs

s sRo

� � �

/2

/2)

tan

(

tan(tan )

g

gb

2

22

221

2

⎛⎝⎜

⎞⎠⎟

ttan

tan (

2

2

2

2

11

� �� �

g

R

so

/2)

b b s Rb s R

o

o

2 2 2 2 2

2 2 2 21

tan (

(tan ) (

b

b

� � �

� � �

/2)

/2)

ttang�sb/2

tanb�R

bi

R b s Ri o2 2 2 2� � �( /2)

Z s Ro2 2 2� �( /2)

D

bgA

2s

RiRo

Z

B

b

C

therefore

03 29/09/04 15:38 Page 239

Page 258: Geometry for Computer Graphics.pdf

Cube g� 45° b� 90°/2

Octahedron g� 60° b� 109.47122°/2

Dodecahedron g� 36° b� 116.56505°/2

Icosahedron g� 60° b� 138.189685°/2

The outer sphere of radius Ro intersects all the vertices, whereas the inner sphere of radius Ritouches the center of each face.

Using the original diagram

�ACD Ri2 � b2 � Z2

butbZ

� cosb

R

so � 0 9510565.

R

so � �

�12

11 6 854102

3.

R

so � 1 4012585.

R

so � �

�12

11 2 6180 527864

..

R

so � 0 707107.

R

so � �

��1

21

1 23

22

R

so � 0 866025.

R

so � �

��1

21

1 13

32

R

so � 0 612372.

240 Geometry for computer graphics

03 29/09/04 15:38 Page 240

Page 259: Geometry for Computer Graphics.pdf

therefore

therefore

But

therefore

Tetrahedron g� 60° b� 70.528779°/2

Cube g� 45° b� 90°/2

Octahedron g� 60° b� 109.47122°/2

R

ei �

��

tan .tan

.54 73561

2 600 408248

R

ei �

��

tantan

.45

2 450 5

R

si �

��

tan .tan

.35 264389

2 600 204124

R

si �

tantanb

g2

Rs

Rs

i

i

22

2 2

22

2

2 11

4

� �

( / )

tan cos

tanta

g b

g

⎝⎜

⎠⎟

nn

tan ( )

tan ( )

2

2

2

2

24

b

b

g

R

si �

bs

�/

tan2g

sb/

tan2

� g

R bb

Rb

b b

i

i

2 22

2

22

22 2

2

11

� �

� � � �

cos

cos cos

b

b b

⎝⎜

⎠⎠⎟

Zb

�cosb

Proofs 241

therefore

03 29/09/04 15:38 Page 241

Page 260: Geometry for Computer Graphics.pdf

Dodecahedron g� 36° b� 116.56505°/2

Icosahedron g� 60° b� 138.189685°/2

3.6.15 Proof: Dihedral angles for the Platonic solids

Strategy: Each Platonic solid is constructed from a collection of identical regular polygons.The tetrahedron, octagon and icosahedron are constructed from equilateral triangles; thecube from squares; and the dodecahedron from pentagons. The angle between two facessharing a common edge is called the dihedral angle. This angle is different for each Platonic solid.

To compute the dihedral angle, imagine one face lying on the ground plane with onecommon edge aligned with the negative z-axis. A vector v1 forms a neighboring edge.The face containing v1 is rotated such that v1 becomes v2. The angle between v1 and v2becomes the dihedral angle.

Tetrahedron

An equilateral triangle: one side of a tetrahedron

v1

P�

P

Y

g

Z X

v2

60°60°

60°

1

60° 60°

60°1

1

R

ei �

��

tan .tan

.69 094843

2 600 755761

R

ei �

��

tan .tan

.58 28253

2 361 113516

242 Geometry for computer graphics

03 29/09/04 15:38 Page 242

Page 261: Geometry for Computer Graphics.pdf

P(x, y, z) � P(cos 30°, 0, sin 30°)

but ||v1|| � ||v2|| � 1

and

therefore x� � cos g cos 30°

y� � sin g cos 30°

z� � sin 30°

Also

therefore cosu� cosg cos2 30° � sin2 30°

u equals 60° (internal angle of an equilateral triangle)

therefore

Cube

A square: one side of a cube

By inspection

Octahedron

An equilateral triangle: one side of an octahedron

1

60° 60°

60°1

1

Dihedral angle g� 90°

1

1

1

1

Dihedral angle g� 70.52878°

coscos sin

cosg�

� � �

��

60 30

30

2

213

v v v v1 2 1 2i � � � �� �� �|| || cos|| || u xx yy zz

xyz

���

��⎡

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

cos sinsin cosg gg g

00

0 0 1⎥⎥⎥

⎣⎢⎢

⎦⎥⎥

cos

sin

30030

Proofs 243

03 29/09/04 15:38 Page 243

Page 262: Geometry for Computer Graphics.pdf

244 Geometry for computer graphics

P(x, y, z) � P(cos 30°, 0, sin 30°)

but ||v1|| � ||v2|| � 1

and P1(1, 0, 0)

v1 is aligned with one side of the square cross-section

and

therefore x� � cosg cos 30°

y� � sing cos 30°

z� � sin 30°

But v1 � i

and

therefore cosu� cosg cos 30°

u equals 60° (internal angle of an equilateral triangle)

therefore

g� 54.73561° [g is half the dihedral angle]

Dodecahedron

A pentagon: one side of a dodecahedron

108°108°

72°

Dihedral angle � 2g� 109.47122°

coscoscos

g��

��

6030

33

v v v v1 2 1 2i � � � �� �� �|| || cos|| || u xx yy zz

xyz

���

��⎡

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

cos sinsin cosg gg g

00

0 0 1⎥⎥⎥

⎣⎢⎢

⎦⎥⎥

cos

sin

30030

v1

P�

P

Y

Z

g

X

v2

60°60°

60°P1

03 29/09/04 15:38 Page 244

Page 263: Geometry for Computer Graphics.pdf

Proofs 245

P(x, y, z) � P(sin 72°, 0, �cos 72°)

but ||v1|| � ||v2|| � 1

and

therefore x� � cosg sin 72°

y� � sing sin 72°

z� � �cos 72°

and

therefore cosu� cosg sin2 72° � cos2 72°

u equals 108° (internal angle of a regular pentagon)

therefore

Icosahedron

An equilateral triangle: one side of an icosahedron

1

60° 60°

60°1

1

Dihedral angle g� 116.56505°

coscos cos

sin

coscos

g�� � �

��

� �

108 72

72

7272 1

2

2

v v v v1 2 1 2i � � � �� �� �|| || cos|| || u xx yy zz

xyz

���

��⎡

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

cos sinsin cosg gg g

00

0 0 1⎥⎥⎥

⎣⎢⎢

⎦⎥⎥

sin

cos

720

72

� �

v1

v2

P

Z

Y

g

X

P�

03 29/09/04 15:38 Page 245

Page 264: Geometry for Computer Graphics.pdf

P(x, y, z) � P(cos 30°, 0, sin 30°)

but ||v1|| � ||v2|| � 1

and

therefore x� � cosg cos 30°

y� � sing cos 30°

z� � sin 30°

therefore cosu� cosg cos2 30° � sin2 30°

u equals 2 � 54° � 108° (internal angle of a regular pentagon)

therefore

3.6.16 Proof: Surface area and volume of the Platonic solids

Surface area

Strategy: Each Platonic solid is constructed from a common regular polygon. Thetetrahedron, octagon and icosahedron are built from equilateral triangles; the cube fromsquares; and the dodecahedron from pentagons.

The area of a regular polygon with p edges of length s is given by

The total surface area for f sides is

A f psp

� 14

2 cot p( )

Area � 14

2psp

cot p( )

Dihedral angle g� 138.189685°

coscos sin

cosg�

�108 30

30

2

2

° °

°

v v v v1 2 1 2|| ||i � � � �� �� �|| || cosu xx yy zz

xyz

���

��⎡

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

cos sinsin cosg gg g

00

0 0 1⎥⎥⎥

⎣⎢⎢

⎦⎥⎥

cos

sin

30030

°

°

v1

v2

P�

P

Y

Z X60°

60°60°

246 Geometry for computer graphics

03 29/09/04 15:38 Page 246

Page 265: Geometry for Computer Graphics.pdf

Proofs 247

or we can express the surface area A as a ratio to s2

A

sf p

p214

� cot p( )

Tetrahedron 1.732051

Cube 6

Octahedron 3.464102

Dodecahedron 20.645728

Icosahedron 8.660254A

s214

20 3 60� � � �cot

A

s214

12 5 36� � � �cot

A

s214

8 3 60� � � �cot

A

s214

6 4 45� � � �cot

A

s214

4 3 60� � � �cot

Tetrahedron 0.117851

Cube 1V

s3

6 412

4512

��

cot °

V

s3

4 312

606

12�

��cot

Volume

Strategy: A Platonic solid can be visualized as a collection of pyramids with a base at eachface and a height Rin (radius of the inner sphere).

Volume of a pyramid

Volume of a Platonic solid

but

V

sfp

R

spin

31

12� cot p( )

Area psbase p� 1

42 cot p( )

V f V

V f Area Rp

base in

� �13

V Area Rp base in� 13

03 29/09/04 15:38 Page 247

Page 266: Geometry for Computer Graphics.pdf

248 Geometry for computer graphics

Octahedron 0.471405

Dodecahedron 7.663119

Icosahedron 2.181695V

s3

20 312

601

1242 18 5�

��cot °

V

s3

12 512

36120

250 110 5��

�cot °

V

s3

8 312

60��

cot °

03 29/09/04 15:38 Page 248

Page 267: Geometry for Computer Graphics.pdf

Proofs 249

3.7.1 Cartesian coordinates

Distance in �2

From the diagram and using the Pythagorean theorem

Distance in �3

From the diagram and using the Pythagorean theorem

b2 � (x2 � x1)2 � (z2 � z1)2

d2 � b2 � c2

d2 � (x2 � x1)2 � (y2 � y1)2 � (z2 � z1)2

3.7.2 Polar coordinates

Given a point with Cartesian coordinates (x, y), then from the diagram and using the Pythagorean theorem

r2 � x2 � y2

and tan u�

u� tan�1 (1st and 4th quadrants only)

The polar coordinates are (r, u)Given a point with polar coordinates (r, u)

then x � r cos uy � r sin u

Distance in �2

Given two points (r1, u1) and (r2, u2) then using their equivalent Cartesian coordinates

d x x y y� � � �( ) ( )2 12

2 12

yx

yx

r x y� �2 2

d x x y y z z� � � � � �( ) ( ) ( )2 12

2 12

2 12

d x x y y� � � �( ) ( )2 12

2 12

d x x y y22 1

22 1

2� � � �( ) ( )

3.7 Coordinate systems

X

Y

x1 x2

y1

y2

d y2 � y1

x2 � x1

X

Y

Z

x1 x2

y2

y1z1z2

P1

P2d

cb

X

Y(x, y) (r, u)

u

r

x

y

03 29/09/04 15:38 Page 249

Page 268: Geometry for Computer Graphics.pdf

then

3.7.3 Cylindrical coordinates

Given a point with Cartesian coordinates (x, y, z), then from the diagram and using the Pythagorean theorem

u� tan�1 (1st and 4th quadrants only)

z � z

Given a point with cylindrical coordinates (r, u, z)

then x � r cos uy � r sin uz � z

3.7.4 Spherical coordinates

Given a point with Cartesian coordinates (x, y, z), then from the diagram and using the Pythagorean theorem

u� tan�1 (1st and 4th quadrants only)

N.B. The z-axis is normally taken as the vertical axis.

Given a point with spherical coordinates (r, u,f), then from the diagram

sinfr

�b

f�� �

�cos 1

2 2 2

z

x y z

⎝⎜⎜

⎠⎟⎟

yx

r� � �x y z2 2 2

yx

r x y� �2 2

d r r r r� � � �12

22

1 2 2 12 cos( )u u

d r r r r� � � �22

12

1 2 1 2 1 22 (cos cos sin sin )u u u u

dr r r r

r�

� �

( cos cos cos cos22 2

2 12 2

1 1 2 1 2

22

2u u u u

ssin sin sin sin )22 1

2 21 1 2 1 22u u u u� �r r r

d r r r r� � � �( cos cos ) ( sin sin )2 2 1 12

2 2 1 12u u u u

250 Geometry for computer graphics

XY

Z

(x, y, z)(r, u, z)

u r

X Y

Z

(x, y, z)(r, u, f)

r

f

f

u

c

b yx

03 29/09/04 15:38 Page 250

Page 269: Geometry for Computer Graphics.pdf

b � r sin f (1)

z � r cos f

but

Substituting (1) x � r sin f cos u

Similarly

y � r sin f sin u

The Cartesian coordinates are

x � r sin f cos uy � r sin f sin uz � r cos f

yb

� sin u

xb

� cosu

cosfr

�z

Proofs 251

03 29/09/04 15:38 Page 251

Page 270: Geometry for Computer Graphics.pdf

252 Geometry for computer graphics

3.8.1 Proof: Magnitude of a vector

A vector represents a directed line segment whose magnitude is defined by its length.The length of a line segment is given by

therefore, given a � xai � yaj � zak

then

3.8.2 Proof: Normalizing a vector to a unit length

A vector is normalized to a unit length by dividing each component by its magnitude.

If a � xai � yaj � zak

then

therefore

Check the magnitude of â to prove that its length is 1.

3.8.3 Proof: Scalar (dot) product

The scalar product is defined as a • b � ||a|| � ||b|| cosawhere a is the angle between vectors a and b.

Let a � xai � yaj � zak

and b � xbi � ybj � zbk

therefore a • b � (xai � yaj � zak) • (xbi � ybj � zbk)

||ˆ|||| |||| ||

aaa

� � 1

||ˆ|||| ||

aa

� � �1 2 2x y za a a

2

||ˆ|||| || || || || ||

aa a a

� � �x y za a a

2

2

2

2

2

2

ˆ|| || || || || ||

aa

ia

ja

k� � �x y za a a

|| ||a � � �x y za a a2 2 2

|| || 2 2 2a � � �x y za a a

( ) ( ( )x x y y z z2 12

2 12

2 1)� � � � � 2

3.8 Vectors

03 29/09/04 15:38 Page 252

Page 271: Geometry for Computer Graphics.pdf

Proofs 253

a • b � xaxbi • i � xaybi • j � xazbi • k � yaxbj • i � yaybj • j � yazbj • k� zaxbk • i � zaybk • j � zazbk • k

but i • i � j • j � k • k � 1

and i • j � i • k � j • i � j • k � k • i � k • j � 0

therefore a • b � xaxb � yayb � zazb � ||a|| � ||b|| cos a

3.8.4 Proof: Commutative law of the scalar product

b • a � (xbi � ybj � zbk) • (xai � yaj � zak)

b • a � xbxai • i � xbyai • j � xbzai • k � ybxaj • i � ybyaj • j � ybzaj • k

� zbxak • i � zbyak • j � zbza k • k

then b • a � xbxa � ybya � zbza

therefore b • a � a • b

3.8.5 Proof: Associative law of the scalar product

a • (b � c) � (xai � yaj � zak) • ((xbi � ybj � zbk) � (xci � ycj � zck))

a • (b � c) � (xai � yaj � zak) • ((xb � xc)i � (yb � yc)j � (zb � zc)k)

a • (b � c) � xa(xb � xc) � ya(yb � yc) � za(zb � zc)

a • (b � c) � xaxb � xaxc � yayb � yayc � zazb � zazc

a • (b � c) � xaxb � yayb � zazb � xaxc � yayc � zazc

therefore a • (b � c) � a • b � a • c

Prove a • a � ||a||2

Given a • a � ||a|| � ||a|| cos a

but a� 0° cos a� 1

therefore a • a � ||a||2

Prove a • b � 0 ⇔ a � b

If a � b ⇔ a� 90°

then a • b � ||a|| � ||b|| cos 90°

therefore a • b � 0

3.8.6 Proof: Angle between two vectors

Let a � xai � yaj � zak

and b � xbi � ybj � zbk

then a • b � ||a|| � ||b|| cos a

03 29/09/04 15:38 Page 253

Page 272: Geometry for Computer Graphics.pdf

254 Geometry for computer graphics

therefore

and

3.8.7 Proof: Vector (cross) product

The vector product is defined as follows:

a � b � c where ||c|| � ||a|| � ||b|| sin a and c is orthogonal to a and b.

Let a � xai � yaj � zak

and b � xbi � ybj � zbk

then a � b � (xai � yaj � zak) � (xbi � ybj � zbk)

a � b � xaxbi � i � xaybi � j � xazbi � k � yaxbj � i � yaybj � j

� yazbj � k � zaxbk � i � zaybk � j � zazbk � k

but i � i � j � j � k � k � 0

and i � j � k i � k � �j j � i � �k j � k � i k � i � jk � j � �i

Then a � b � (yazb � zayb)i � (zaxb � xazb)j � (xayb � yaxb)k

therefore

or

3.8.8 Proof: The non-commutative law of the vector product

Let a � xai � yaj � zak

and b � xbi � ybj � zbk

then b � a � (xbi � ybj � zbk) � (xai � yaj � zak)

b � a � xbxai � i � xbyai � j � xbzai � k � ybxaj � i � ybyaj � j

� ybzaj � k � zbxak � i � zbyak � j � zbzak � k

b � a � (ybza � zbya)i � (zbxa � xbza)j � (xbya � ybxa)k

b � a � �(zbya � ybza)i � (xbza � zbxa)j � (ybxa � xbya)k

therefore b a i j k a b� �� � � �� �y zy z

z xz x

x yx y

a a

b b

a a

b b

a a

b b

a bi j k

� � x y zx y z

a a a

b b b

a b i j k� � � �y zy z

z xz x

x yx y

a a

b b

a a

b b

a a

b b

� �� ��cos 1 x x y y z za b a b a c

|| || || ||a b⋅⎛

⎝⎜⎞

⎠⎟

cosa�� �x x y y z za b a b a c

|| || || ||a b⋅

03 29/09/04 15:38 Page 254

Page 273: Geometry for Computer Graphics.pdf

3.8.9 Proof: The associative law of the vector product

Let a � xai � yaj � zak b � xbi � ybj � zbk c � xci � ycj � zck

then a � (b � c) � (xai � yaj � zak) � ((xbi � ybj � zbk) � (xci � ycj � zck))

a � (b � c) � (xai � yaj � zak) � ((xb � xc)i � (yb � yc)j � (zb � zc)k)

therefore a � (b � c) � a � b � a � c

3.8.10 Proof: Scalar triple product

Let d � b � c where d is orthogonal to b and c.

Volume of parallelpiped V � Area of base � orthogonal height

� Area of base � |a| cos a

therefore V � ||d|| � ||a|| cos a� a • (b � c)

[ ] ( )a, b, c a b c� � �ix y zx y zx y z

a a a

b b b

c c c

a b c i i j� � � � � �( ) y zy z

y zy z

z xz x

z xz

a a

b b

a a

c c

a a

b b

a a

cc c

a a

b b

a a

c cxx yx y

x yx yj k k� �

a b c i� � �� �

�� �

( ) ( ) ( ) ( ) (y z

y y z zz x

z z xa a

b c b c

a a

b c b xxx y

x x y yc

a a

b c b c) ( ) ( )j k�� �

Proofs 255

c

b

a Vd

αArea of base

03 29/09/04 15:38 Page 255

Page 274: Geometry for Computer Graphics.pdf

256 Geometry for computer graphics

3.9.1 Definition of a quaternion

This is an explanation rather than a proof of the background to quaternions.Quaternions are a natural extension of complex numbers where a real number is paired withan imaginary component to make (a � ib). A quaternion has three imaginary components:(s � ia � jb � kc). In fact, any number of imaginary components can be considered, however,the problem is interpreting the result.

William Rowan Hamilton discovered quaternions on 16 October 1843, and his friend, JohnGraves, discovered octonions in 1845. Arthur Cayley had also been investigating octonions,which is why they are also known as Cayley numbers. An octonion has the form(s � ai � bj � ck � dl � em � fn � go) [Fenn, 2001].

Let us investigate the multiplication of two quaternions and see how they give rise tovectors, the scalar and vector products.

Given q1 � (s1, x1i � y1j � z1k)

and q2 � (s2, x2i � y2j � z2k)

then q1q2 � (s1, x1i � y1j � z1k)(s2, x2i � y2j � z2k)

q1q2 � (s1s2, s1x2i � s1y2j � s1z2k � s2x1i � x1x2i2 � x1y2ij� x1z2ik � s2y1j � y1x2ji � y1y2j2 � y1z2jk � s2z1k� x2z1ki � z1y2kj � z1z2k2)

q1q2 � (s1s2,(s1x2 � s2x1)i � (s1y2 � s2y1)j � (s1z2 � s2z1)k� x1x2i2 � y1y2j2 � z1z2k2 � x1y2ij � y1z2jk � x2z1ki� y1x2ji � z1y2kj � x1z2ik)

Interpreting this result was the stumbling block for Hamilton as it was necessary to interpretthe meaning of i2, j2, k2, ij, jk, ki, ji, kj and ik. In a stroke of genius he thought of the followingrules:

i2 � j2 � k2 � ijk � �1ij � k jk � i ki � jji � �k kj � �i ik � �j

or summarized as

If we apply these rules to the last equation we get

q1q2 � (s1s2 � x1x2 � y1y2 � z1z2, (s1x2 � s2x1)i � (s1y2 � s2y1)j� (s1z2 � s2z1)k � x1y2k � y1z2i � x2z1j � y1x2k� z1y2i � x1z2j)

i j kijk

k jk ij i

� �� �

� �

11

1

⎝⎜⎜

⎠⎟⎟

3.9 Quaternions

03 29/09/04 15:38 Page 256

Page 275: Geometry for Computer Graphics.pdf

Proofs 257

simplifying to q1q2 � (s1s2 � (x1x2 � y1y2 � z1z2), s1(x2i � y2j � z2k)� s2(x1i � y1j � z1k) � (y1z2 � z1y2)i� (x2z1 � x1z2)j � (x1y2 � y1x2)k)

This equation now only contains real and imaginary components derived from the originalquaternions.

We can see that s1s2 � (x1x2 � y1y2 � z1z2) is a real quantity

s1(x2i � y2j � z2k) is the product of s1 and the imaginary part of q2

and s2(x1i � y1j � z1k) is the product of s2 and the imaginary part of q1

The last part (y1z2 � z1y2)i � (x2z1 � x1z2)j � (x1y2 � y1x2)k can be rewritten as

which we recognize as the vector product of (x1i � y1j � z1k) � (x2i � y2j � z2k)

Similarly x1x2 � y1y2 � z1z2 is the scalar product of (x1i � y1j � z1k) • (x2i � y2j � z2k)

So if we describe the original quaternions as a scalar and vector:

q1 � (s1, v1) and q2 � (s2, v2)

we obtain q1q2 � (s1s2 � v1 • v2, s1v2 � s2v1 � v1 � v2)

One very important difference between quaternions and complex numbers is that themultiplication of quaternions is non-commutative: q1q2 � q2q1

Rooney [1977] explores the development of quaternions as a tool for performing rotationsand considers the product of a quaternion with a vector:

given q � (qs, qxi � qyj � qzk) � (qs, qv)

and the vector v � xi � yj � zk which can be represented as a quaternion using

r � (0, v)

then qr � (qs, qv)(0, v)

equals qr � (�qv • v, qsv � qv � v) (1)

We can see from (1) that the vector component of qr, i.e. qsv � qv � v is the sum of the scaledvector qsv and qv � v.

If qv and v are orthogonal then we obtain the situation shown in the diagram:

and qr � qsv � qv � v i.e. a vector

v

qsv � qv � v

qvv

qv � vqv

y zy z

z xz x

x yx y

1 1

2 2

1 1

2 2

1 1

2 2i j k� �

03 29/09/04 15:38 Page 257

Page 276: Geometry for Computer Graphics.pdf

Vector v has been rotated in the plane orthogonal to qv but it has been stretched. This is howquaternions can be used to rotate a vector, but somehow we need to avoid the stretching.

If we make q � (cosu, sinu(li � mj � nk))

where l2 � m2 � n2 � 1

then q � (cosu, n sinu)

where n � (li � mj � nk) and ||n|| � 1

then qr � (cosu, n sinu)(0, v)

and qr � sinu(n � v) � cosuv (2)

The result of sin u(n � v) is a vector with magnitude sinu||v|| in a plane containing v andorthogonal to n. When this is added to cosuv we obtain the rotated vector v�:

then ||v�||2 � sin2u ||v||2 � cos2u ||v||2

||v�||2 � ||v||2 (sin2u� cos2u)

||v�|| � ||v||

Thus v is rotated to v�. But the problem with this strategy is that in order to rotate a vector wemust arrange that the quaternion is orthogonal to the vector, which is not convenient. Brand[Brand, 1947] proposed an alternative approach using half-angles, where

q � (cos , n sin )

and n � (li � mj � nk) and is a unit vector

and v� � qvq�1

where q�1 is the inverse of q given by q�1 � qs � qv (for a unit quaternion).If we now rotate v using this technique we obtain:

v� � (cos , sin n)(0, v)(cos , �sin n)

Let c � cos and s � sin

then v� � (c, sn)(0, v)(c, �sn)

Multiplying the first two quaternions

v� � (�s(n • v), cv � s(n � v))(c, �sn)

Multiply these quaternions

v� � �cs(n • v) � (cv � s(n � v)) • (sn) � s2(n • v)n� c2v � cs(n � v) � (cv � s(n � v)) � (�sn)

u

2u

2

u

2u

2u

2u

2

u

2u

2

n

cos uvsin uv

v

v�

258 Geometry for computer graphics

03 29/09/04 15:38 Page 258

Page 277: Geometry for Computer Graphics.pdf

v� � �cs(n • v) � cs(n • v) � s2(n � v) • n � s2(n • v)n� c2v � cs(n � v) � cs(v � n) � s2(n � v) � n

but (n � v) • v � 0 v� � s2(n • v)n � c2v � 2cs(n � v) � s2(n � v) � n

but (n � v) � n � v(n • n) � n(v • n) � v � n(v • n)

therefore v� � s2(n • v)n � c2v � 2cs(n � v) � s2v � s2(v • n)n

but 2cs � 2 cos sin � sinu

v� � 2s2(n • v)n � v(c2 � s2) � sinu(n � v)

but c2 � s2 � cos2 � sin2 � cosu

v� � 2s2(n • v)n � cosu v � sinu(n � v)

therefore v� � sinu(n � v) � cosu v � 2 sin2 (n • v)n (3)

This is very similar to (2) and confirms that the vector is still being rotated. The diagramclarifies what is happening.

Let us test (3) by rotating the point (0, 1, 1) 90° about the y-axis.

Therefore q � (cos , sin j) and r � (0, j � k)

then v� � sin 90°(j � (j � k)) � cos 90°(j � k) � 2 sin2 45°j • (j � k)j

v� � ( j � ( j � k)) � j • (j � k)j

v� � i � j

which points to (1, 1, 0), which is correct.

Naturally, we would obtain the same result if we had evaluated this using pure quaternions.

90°2

90°2

X

Y

Z

n

v

v�

θ

u

2

u

2u

2

u

2u

2

Proofs 259

03 29/09/04 15:38 Page 259

Page 278: Geometry for Computer Graphics.pdf

260 Geometry for computer graphics

3.10.1 Proof: Scaling in �2

Scaling relative to the origin

A point (x, y) is scaled relative to the origin by factors Sx and Sy to a new position (x�, y�) by

x� � Sxx

y� � Syy

or as a homogeneous matrix

Scaling relative to a point

A point (x, y) is scaled relative to a point P(xP, yP) by factors Sx and Sy to a new position (x�, y�)in the following steps:

1. Translate (x, y) by (�xP, �yP).2. Scale the translated point by Sx and Sy.3. Translate the scaled point (xP, yP).

Therefore x� � Sx(x � xP) � xP � Sxx � xP(1 � Sx)

y� � Sy(y � yP) � yP � Syy � yP(1 � Sy)

or as a homogeneous matrixxy

S x SS y S

x P x

y P x

�� �

�1

0 10 10 0 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

( )( )

⎢⎢

⎥⎥⎥

⎣⎢⎢

⎦⎥⎥

�xy1

X

Y

x

y

x� xP

yP

(x�, y�)

(x, y)y�

(xP, yP)

xy

SS

xy

x

y

�� � �

1

0 00 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢

⎤⎤

⎦⎥⎥

3.10 Transformations

X

Y

x

y

Sxx

Syy (x�, y�)

(x, y)

03 29/09/04 15:38 Page 260

Page 279: Geometry for Computer Graphics.pdf

Proofs 261

3.10.2 Proof: Translation in �2

A point (x, y) is translated by distances Tx and Ty to a new position (x�, y�) by

x� � x � Txy� � y � Ty

or as a homogeneous matrix

3.10.3 Proof: Rotation in �2

A point (x, y) is rotated about the origin by angle a to a new position (x�, y�) by

x� � r cos(u� a) � r (cos u cos a� sin u sin a)y� � r sin(u� a) � r (sin u cos a� cos u sin a)

or as a homogeneous matrix

Rotation about a point

X

Y

α

(x�, y�)

(x, y)

(xP, yP)

xy�� �

1

00

0 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥

cos sinsin cosa aa a

⎥⎥

⎣⎢⎢

⎦⎥⎥

�xy1

y ryr

xr

y x� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

x rxr

yr

x y� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

r

r

X

Y

αθ

(x�, y�)

(x, y)

xy

TT

xy

x

y

�� � �

1

1 00 10 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢

⎤⎤

⎦⎥⎥ X

Y

x

y

Ty

Tx

(x�, y�)

x�

y�

(x, y)

03 29/09/04 15:38 Page 261

Page 280: Geometry for Computer Graphics.pdf

A point (x, y) is rotated about a point (xP, yP) by angle a to a new position (x�, y�) in thefollowing steps:

1. Translate (x, y) by (�xP, �yP).2. Rotate the translated point about the origin by angle a.3. Translate the rotated point by (xP, yP).

Therefore x1 � x � xP

y1 � y � yP

x2 � x1 cos a� y1 sin a

y2 � x1 sin a� y1 cos a

x� � (x � xP)cos a� (y � yP)sin a� xP

y� � (x � xP)sin a� (y � yP)cos a� yP

x� � x cos a� y sin a� xP(1 � cos a) � yP sin a

y� � x sin a� y cos a� yP(1 � cos a) � xP sin a

or as a homogeneous matrix

3.10.4 Proof: Shearing in �2

Shear along the x-axis

A point (x, y) is sheared by angle a along the x-axis to a newposition (x�, y�) by

x� � x � y tan a

x� � x � y tan a

y� � y

or as a homogeneous matrix

Shear along the y-axis

A point (x, y) is sheared by angle a along the y-axis to a new position (x�, y�) by

y� � y � x tan ay� � y � x tan ax� � x

xy

xy

�� � �

1

1 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢

tana

⎢⎢

⎦⎥⎥

xy

x yP P�� �

� � �

1

1⎡

⎣⎢⎢

⎦⎥⎥

cos sin ( cos ) sinsina a a aaa a a acos ( cos ) siny x

xy

P P10 0 1 1

� � �⎡

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

262 Geometry for computer graphics

y tana

X

Y

a

(x�, y�)(x, y)

X

Y

x tan a

a

(x�, y�)

(x, y)

03 29/09/04 15:38 Page 262

Page 281: Geometry for Computer Graphics.pdf

or as a homogeneous matrix

3.10.5 Proof: Reflection in �2

Reflection about the x-axis

A point (x, y) is reflected about the x-axis to (x�, y�) by

x� � x

y� � �y

or as a homogeneous matrix

Reflection about the y-axis

A point (x, y) is reflected about the y-axis to (x�, y�) by

x� � �x

y� � y

or as a homogeneous matrix

Reflection about a line parallel with the x-axis

A point is reflected about a line in the following steps:

1. Translate the point (0, �yP).2. Perform the reflection.3. Translate the reflected point (0, yP).

Therefore x� � x

y� � �(y � yP) � yP � 2yP � y

xy yP

�� � � �

1

1 0 00 1 20 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

xxy1

⎣⎢⎢

⎦⎥⎥

xy

xy

�� �

��

1

1 0 00 1 00 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥ 11

⎣⎢⎢

⎦⎥⎥

xy

xy

�� � � �

1

1 0 00 1 00 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥ 11

⎣⎢⎢

⎦⎥⎥

xy

xy

�� � �

1

1 0 01 0

0 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢tana⎢⎢

⎦⎥⎥

Proofs 263

X

Y

(x�, y�)

(x, y)

Y

(x�, y�) (x, y)

X

X

Y

yP

(x, y)

(x�, y�)

03 29/09/04 15:38 Page 263

Page 282: Geometry for Computer Graphics.pdf

264 Geometry for computer graphics

Reflection about a line parallel with the y-axis

A point is reflected about a line in the following steps:

1. Translate the point (�xP, 0).2. Perform the reflection.3. Translate the reflected point (xP, 0).

Therefore x� � �(x � xP) � xP � 2xP � x

y� � y

3.10.6 Proof: Change of axes in �2

Translated axes

Translating the axes by (xT, yT) is equivalent to translating the point by (�xT, �yT):

x� � x � xT

y� � y � yT

or as a homogeneous matrix

Rotated axes by angle A about the origin

Rotating the axes by a is equivalent to rotating the point by �a.

Therefore x� � x cos a� y sin a

y� � y cos a� x sin a

or as a homogeneous matrixxy�� � �

1

00

0 0 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥

cos sinsin cosa aa a

⎥⎥

⎣⎢⎢

⎦⎥⎥

�xy1

X

Y

P

x

y

α

P�

y�

Y�

X�x�

xy

xy

xy

T

T

�� �

�� �

1

1 00 10 0 1 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

⎣⎢⎢⎢

⎦⎥⎥

xy

xP�� �

��

1

1 0 20 1 00 0 1

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥

xxy1

⎣⎢⎢

⎦⎥⎥

X

Y

xP

(x�, y�) (x, y)

O X

Y

P

x

y

yT

xT

Y�

O� X�x�

y�

03 29/09/04 15:38 Page 264

Page 283: Geometry for Computer Graphics.pdf

3.10.7 Proof: Identity matrix in �2

The identity matrix does not alter the coordinates being transformed.

Therefore x� � x

y� � y

or as a homogeneous matrix

3.10.8 Proof: Scaling in �3

Scaling relative to the origin

A point (x, y, z) is scaled relative to the origin by factors Sx, Sy and Szto a new position (x�, y�, z�) by x� � Sxx

y� � Syy

z� � Szz

or as a homogeneous matrix

Scaling relative to a point

A point (x, y, z) is scaled relative to another point (xP, yP, zP) by factors Sx, Sy and Sz to a newposition (x�, y�, z�) in the following steps:

1. Translate (x, y, z) by (�xP, �yP, �zP).2. Scale the translated point by Sx, Sy and Sz.3. Translate the scaled point (xP, yP, zP).

Therefore x� � Sx(x � xP) � xP � Sxx � xP(1 � Sx)

y� � Sy(y � yP) � yP � Syy � yP(1 � Sy)

z� � Sz(z � zP) � zP � Szz � zP(1 � Sz)

X

Y

Z

xz

y

y�

z�x�

xP

zP

(x�, y�, z�)

(x, y, z) (xP, yP, zP)

xyz

SS

S

x

y

z

���

1

0 0 00 0 00 0 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎤⎤

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xy

xy

�� � �

1

1 0 00 1 00 0 1 1

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥

⎣⎢⎢

⎦⎥⎥⎥

Proofs 265

X

Y

Z

xz

y

Syy

SxxSzz

(x�, y�, z�)

(x, y, z)

03 29/09/04 15:38 Page 265

Page 284: Geometry for Computer Graphics.pdf

or as a homogeneous matrix

3.10.9 Proof: Translation in �3

A point (x, y, z) is translated by distances Tx, Ty and Tz to a new position (x�, y�, z�) by

x� � x � Tx

y� � y � Ty

z� � z � Tz

or as a homogeneous matrix

3.10.10 Proof: Rotation in �3

Rotation about the z-axis

A point (x, y, z) is rotated about the z-axis by the roll angle a to a new position (x�, y�, z�) by

x� � r cos(u� a) � r(cos u cos a� sin u sin a)

y� � r sin(u� a) � r(sin u cos a� cos u sin a)

z� � z

y ryr

xr

y x� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

x rxr

yr

x y� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

r

r

αθ

Y

ZX

(x�, y�, z�)

(x, y, z)

xyz

TTT

x

y

z

���

1

1 0 00 1 00 0 10 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎤⎤

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xyz

S x SS y S

x P x

y P y

���

��

1

0 0 10 0 10

⎢⎢⎢

⎥⎥⎥

( )( )

00 10 0 0 1 1

S z S

xyz

z P z( )��

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

266 Geometry for computer graphics

03 29/09/04 15:38 Page 266

Page 285: Geometry for Computer Graphics.pdf

or as a homogeneous matrix

Rotation about the x-axis

A point (x, y, z) is rotated about the x-axis by the pitch angle a to a new position (x�, y�, z�) byx� � x

y� � r cos(u� a) � r(cosu cosa� sinu sina)

z� � r sin(u� a) � r(sinu cosa� cosu sina)

or as a homogeneous matrix

Rotation about the y-axis

A point (x, y, z) is rotated about the y-axis by the yaw angle a to a new position (x�, y�, z�) byx� � r sin(u� a) � r(sin u cos a� cos u sin a)

Y

rrθ α

XZ(x�, y�, z�)(x, y, z)

xyz

���

� �

1

1 0 0 00 00 0

⎢⎢⎢

⎥⎥⎥

cos sinsin cosa aa a

00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

z rzr

yr

z y� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

y ryr

zr

y z� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

θα

r

r

X

Y

Z

(x�, y�, z�)

(x, y, z)

xyz

���

1

0 00 0

0 0 1 0

⎢⎢⎢

⎥⎥⎥

cos sinsin cosa aa a

00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

Proofs 267

03 29/09/04 15:38 Page 267

Page 286: Geometry for Computer Graphics.pdf

y� � y

z� � r cos(u� a) � r(cos u cos a� sin u sin a)

or as a homogeneous matrix

3.10.11 Proof: Reflection in �3

Reflection about the yz-plane

A point (x, y, z) is reflected about the yz-plane to (x�, y�, z�) by

x� � �x

y� � y

z� � z

or as a homogeneous matrix

Reflection about the zx-plane

A point (x, y, z) is reflected about the zx-plane to (x�, y�, z�) by

x� � x

y� � �y

z� � z

or as a homogeneous matrix

xyz

���

� �

1

1 0 0 00 1 0 00 0 1 00 0 0

⎢⎢⎢

⎥⎥⎥ 11 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

xyz

���

1

1 0 0 00 1 0 00 0 1 00 0 0

⎢⎢⎢

⎥⎥⎥ 11 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

xyz

���

��

1

0 00 1 0 0

0 0

⎢⎢⎢

⎥⎥⎥

cos sin

sin cos

a a

a a00 0 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

z rzr

xr

z x� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

x rxr

zr

x z� � � � �cos sin cos sina a a a⎛⎝⎜

⎞⎠⎟

268 Geometry for computer graphics

X

Y

Z

(x�, y�, z�)

(x, y, z)

X

Y

Z(x�, y�, z�)

(x, y, z)

03 29/09/04 15:38 Page 268

Page 287: Geometry for Computer Graphics.pdf

Reflection about the xy-plane

A point (x, y, z) is reflected about the xy-plane to (x�, y�, z�) by

x� � x

y� � y

z� � �z

or as a homogeneous matrix

Reflection about a plane parallel with the yz-plane

A point is reflected about a plane in the following steps:

1. Translate the point (�xP, 0, 0).2. Perform the reflection.3. Translate the reflected point (xP, 0, 0).

Therefore x� � �(x � xP) � xP � 2xP � x

y� � y

z� � z

or as a homogeneous matrix

Reflection about a plane parallel with the zx-plane

A point is reflected about a plane in the following steps:

1. Translate the point (0, �yP, 0).2. Perform the reflection.3. Translate the reflected point (0, yP, 0).

Therefore x� � x

y� � �(y � yP) � yP � 2yP � y

z� � z

or as a homogeneous matrix

xyz

yP

���

� �

1

1 0 0 00 1 0 20 0 1 00

⎢⎢⎢

⎥⎥⎥ 00 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

xyz

xP���

1

1 0 0 20 1 0 00 0 1 00

⎢⎢⎢

⎥⎥⎥ 00 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

xyz

���

��

1

1 0 0 00 1 0 00 0 1 00 0 0

⎢⎢⎢

⎥⎥⎥ 11 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

Proofs 269

X

Y

Z

(x�, y�, z�)

(x, y, z)

X

Y

Z

yP

(x�, y�, z�)

(x, y, z)

X

Y

Z

xP

(x�, y�, z�)

(x, y, z)

03 29/09/04 15:38 Page 269

Page 288: Geometry for Computer Graphics.pdf

Reflection about a plane parallel with the xy-plane

A point is reflected about a plane in the following steps:

1. Translate the point (0, 0, �zP).2. Perform the reflection.3. Translate the reflected point (0, 0, zP).

Therefore x� � x

y� � y

z� � �(z � zP) � zP � 2zP � z

or as a homogeneous matrix

3.10.12 Proof: Change of axes in �3

Translated axes

Translating the axes by (xT, yT, zT) is equivalent to translating the point by (�xT, �yT, �zT).

Therefore x� � x � xT

y� � y � yT

z� � z � zT

or as a homogeneous matrix

Rotated axes about the origin

Direction cosines are used for calculating coordinates in rotated frames of reference:

X

Y

Z

x

y

z

z�

x�

y�

Y�

X�

Z�

xyz

xyz

T

T

T

���

���

1

1 0 00 1 00 0 10 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xyz zP

���

��

1

1 0 0 00 1 0 00 0 1 20 0

⎢⎢⎢

⎥⎥⎥ 0 1 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz

270 Geometry for computer graphics

X

Y

Z

zP

(x�, y�, z�)(x, y, z)

Y

XZ

x

y

z

P

yT

xTzT

x�z�

y�

Y�

X�Z�

03 29/09/04 15:38 Page 270

Page 289: Geometry for Computer Graphics.pdf

where r11, r12 and r13 are the direction cosines of the secondary x-axis

r21, r22 and r23 are the direction cosines of the secondary y-axis

r31, r32 and r33 are the direction cosines of the secondary z-axis.

3.10.13 Proof: Identity matrix in �3

The identity matrix does not alter the coordinates being transformed.

Therefore x� � x

y� � y

z� � z

or as a homogeneous matrix

xyz

���

1

1 0 0 00 1 0 00 0 1 00 0 0 1

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

xyz1

xyz

r r rr r rr r

���

1

00

11 12 13

21 22 23

31 3

⎢⎢⎢

⎥⎥⎥ 22 33 0

0 0 0 1 1r

xyz

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

Proofs 271

03 29/09/04 15:38 Page 271

Page 290: Geometry for Computer Graphics.pdf

272 Geometry for computer graphics

Equation to a line

Various line characteristics can be used to develop the equation of a straight line, such asspecific Cartesian coordinates, the line’s slope, its intercepts with the Cartesian axes, theperpendicular distance to the origin, polar coordinates, or even vectors. We will developequations for six forms: the normal, general, determinant, parametric, Cartesian and Hessian normal form.

3.11.1 Proof: Cartesian form of the line equation

Strategy: Let n be a nonzero vector normal to a line, and P(x, y)be a point on the line, which also contains a point P0(x0, y0). Usevector analysis to derive the general form of the line equation.

Let the vector normal to the line be n � ai � bjLet p and p0 be the position vectors for P and P0 respectively

where p0 � x0i � y0jand p � xi � yj

Therefore the line’s direction vector is

q � p � p0

As n is orthogonal to q n • q � 0therefore n • (p � p0) � 0and n • p � n • p0 (1)therefore ax � by � ax0 � by0

The line equation is ax � by � cwhere c � ax0 � by0

However, the value of c also has this interpretation:

from the diagram d � ||p0|| cosabut n • p0 � ||n|| � ||p0|| cosa� d ||n||

Therefore the line equation is ax � by � c (2)

where c � d||n|| or ax0 � by0

Dividing (2) by ||n|| we obtain the normalized Cartesian line equation.The normalized Cartesian line equation is

Note that this equation depends upon the line being oriented with its normal vector pointingto the left of its direction.

ax

by d

|| || || ||n n� �

3.11 Two-dimensional straight lines

X

Y

P

p

nP0

qp0

03 29/09/04 15:38 Page 272

Page 291: Geometry for Computer Graphics.pdf

Proofs 273

3.11.2 Proof: Hessian normal form (after Otto Hesse (1811–1874))

The Hessian normal form of the equation of a linedevelops the Cartesian form and is used to partitionthe xy-plane in two. The division is determined by anoriented line l, such that when looking along the line’sdirection, points to the left are classified as positive,points to the right negative, and points on the line zero.

Strategy: Develop a general equation for theperpendicular distance of an arbitrary point P(x, y)from a line l, taking into account the signs of anglesassociated with the geometry.

Q is a point on line l such that and is perpendicular to l.

a is the angle between the x-axis and .

R is a point on line l such that and is perpendicular to l.

T is a point on the x-axis such that is perpendicular to the x-axis.

The diagram shows the resulting angles.

The vector path from the origin O to P has two routes:

But rather than compute these individual vectors, compute their projections on the normal n:

therefore p � 0 � d � x cosa� y sina

and d � x cosa� y sina� pd � 0 to the left of ld � 0 on the line ld 0 to the right of l

where the sign of d provides space partitioning.

The Hessian normal form is expressed as

x cosa� y sina� p

The axis intercepts are

3.11.3 Proof: Equation of a line from two points

Strategy: Given two points P1(x1, y1) and P2(x2, y2) create an extra point P(x, y) and equate theslopes between pairs of points.

xp

yp

� � � �cos sina a

OQ QR RP OT TP� ��� � �� � �� � ��� � ��

� � � �

TP� ��

RP d� ��

OQ� ���

OQ p� ���

TO x�

y�

X

Y

Q

R

n

d

p

x

y

α

2π �a

2π �a

α

lP(x,y)

03 29/09/04 15:38 Page 273

Page 292: Geometry for Computer Graphics.pdf

Normal form of the line equation

From the diagram

therefore

and

The normal form is y � mx � c

where

General form of the line equation

From the diagram

(x2 � x1) (y � y1) � (y2 � y1) (x � x1)(y2 � y1)x � (y2 � y1)x1 � (x2 � x1)y � (x2 � x1)y1

(y2 � y1)x � (x1 � x2)y � x1y2 � x2y1 (1)

The general form is Ax � By � C � 0where A � y2 � y1 B � x1 � x2 C � �(x1y2 � x2y1)

Determinant form of the line equation

Determinants can be used to describe (1)

Parametric form of the line equation

P1 and P2 are the two points and p1 and p2 their respectiveposition vectors.Let v � p2 � p1

therefore p � p1 � lv where l is a scalar.

P is between P1 and P2 for l ∈ [0, 1].

If ||v|| � 1,l corresponds to the linear distance along v.

11

11

1

2

1

2

1 1

2 2

yy x x

x y x yx y� �

y y

x x

y y

x x

��

�1

1

1

1

my y

x xc y x

y y

x x�

�� �

�2 1

2 11 1

2 1

2 1

⎝⎜

⎠⎟

⎝⎜

⎠⎟

yy y

x xx y x

y y

x x�

�� �

�2 1

2 11 1

2 1

2 1

⎝⎜

⎠⎟

⎝⎜

⎠⎟

y yy y

x xx x� �

��1

2 1

2 11

⎝⎜

⎠⎟( )

y y

x x

y

x x

y�

��

�1

1

2 1

2 1

274 Geometry for computer graphics

X

Y

y

y2

y1

x x2x1

P1

P2

P

P

Y

X

p1

p2

p

P1

P2

λv

03 29/09/04 15:38 Page 274

Page 293: Geometry for Computer Graphics.pdf

3.11.4 Proof: Point of intersection of two straight lines

General form of the line equation

Strategy: Solve the pair of simultaneous linear equations describing the straight lines.Let the two lines be a1x � b1y � c1 � 0

a2x � b2y � c2 � 0Let P(xP, yP) be the point of intersection of the two lines.

Thereforea1xP � b1yP � �c1a2xP � b2yP � �c2

therefore

Coordinates of P

The lines are parallel if the denominator a1b2 � a2b1 � 0

Parametric form of the line equation

Strategy: Equate the two parametric line equations and determine the values of l and �.

Let the line equations be p � r � laand p � s � �b

Let P(xP, yP) be the point of intersection for the two lines and p its position vector.

Therefore r � la � s � �band xR � lxa � xS � �xb (1)

yR � lya � yS � �yb (2)

From (1)

Substitute l in (2)

Expanding xayr � xSya � xRya � �xbya � xayS � �xayb

Rearranging �(xbya � xayb) � xayS � xayR � xSya � xRya

We obtain

Similarly l�� � �

x y y y x x

x y x yb S R b S R

b a a b

( ) ( )

e�� � �

x y y y x x

x y x ya S R a S R

b a a b

( ) ( )

y yx x x

xy yR a

S R b

aS b�

� �� �

ee

⎝⎜

⎠⎟

le

�� �x x x

xS R b

a

xc b c b

a b a by

a c a c

a b a bP P��

��

�2 1 1 2

1 2 2 1

2 1 1 2

1 2 2 1

x

c bc b

y

a ca c

a ba b

P P

1 1

2 2

1 1

2 2

1 1

2 2

� ��1

Proofs 275

s

a

bp

P

Y

X

r

R

S

03 29/09/04 15:38 Page 275

Page 294: Geometry for Computer Graphics.pdf

276 Geometry for computer graphics

or in determinant form

Coordinates of P xP � xR � lxa yP � yR � lya

The lines are parallel if a • b � 0

3.11.5 Proof: Angle between two straight lines

General form of the line equation

Strategy: Derive the normal vectors to the lines and compute the scalar product to reveal thecosine of the enclosed angle. Derive the sine and tangent of the angle from the cosinefunction.

Let the two lines be a1x � b1y � c1 � 0

and a2x � b2y � c2 � 0

The normal vectors are n � a1i � b1j and m � a2i � b2j

therefore n • m � ||n|| � ||m|| cosa

Angle between the lines

If ||n|| � ||m|| � 1 a� cos�1(n • m)

Normal form of the line equation

Strategy: Use the tan (A � B) function to reveal the enclosed angle a.

Let the two lines be y � m1x � c1

y � m2x � c2

where m1 � tana1 and m2 � tana2

Angle between the lines

Note that if the lines are interchanged tana� � tan(a2 � a1) � �a

a��

��tan 1 m m

m m1 2

1 21

⎝⎜

⎠⎟

tana��

m m

m m1 2

1 21

tan tan( )tan tan

tan tana a a

a a

a a� � �

�1 21 2

1 21

a� �cos|| || ||

1 n mn m||i⋅

⎛⎝⎜

⎞⎠⎟

e l�

��

�x x xy y y

x yx y

x x xy y

a S R

a S R

b b

a a

b S R

b

( )( )

( )( SS R

b b

a a

y

x yx y

� )

03 29/09/04 15:38 Page 276

Page 295: Geometry for Computer Graphics.pdf

Proofs 277

If m1m2 � �1 the lines are perpendicular.To compute cos a

tana1 � m1

but 1 � tan2a� sec2a

therefore

Similarly

therefore cosa� cos (a2 � a1) � cosa2 cosa1 � sina2 sina1

Angle between the lines

Note that this solution is not sensitive to the order of the lines.

Parametric form of the line equation

Strategy: Use the scalar product of the two line vectors to reveal the enclosed angle.

Let the two lines be p � r � laq � s � �b

The angle between the two lines is the angle between the vectors a and b, which is given by

a • b � ||a|| � ||b|| cos a

Angle between the lines

If ||a|| � ||b|| � 1 a� cos�1(a • b)

3.11.6 Proof: Three points lie on a straight line

Strategy: If two vectors are created from the three points the vectors must be linearly relatedfor the points to lie on a straight line.Given three points P1, P2, P3

Lettherefore s � lr for the points to lie on a straight line.

r s� �P P P P1 2 1 3and� ��� � ���

a��

�cos 1 a ba bi

|| || || ||

⎛⎝⎜

⎞⎠⎟

a��

� �

�cos11 1 2

12

22

m m

m m1 1

⎝⎜⎜

⎠⎟⎟

cos1 1 2

12

22

a��

� �

m m

m m1 1

cos1

1

1

1 1 122

12

2

22

1

12

a�� �

�� �m m

m

m

m

m

cos1

1and sin

12

22 2

2

22

a a��

��m

m

m

cos1

1and sin

11

12 1

1

12

a a��

��m

m

m

03 29/09/04 15:38 Page 277

Page 296: Geometry for Computer Graphics.pdf

278 Geometry for computer graphics

3.11.7 Proof: Parallel and perpendicular straight lines

General form of the line equation

Let the lines be a1x � b1y � c1 � 0

and a2x � b2y � c2 � 0

Parallel lines

The normal vectors are n � a1i � b1j and m � a1i � b1j respectively.

n and m are parallel if n � lm where l is a scalar.

Perpendicular lines

The lines are mutually perpendicular when n • m � 0

Normal form of the line equation

Let the lines be y � m1x � c1

and y � m2x � c2

Parallel lines

m1 and m2 are the respective slopes of the two lines therefore the two lines are parallel whenm1 � m2

Perpendicular lines

m1 � tana

m2 � tan(90° � a)

but m2 � tan(90° � a) � �cota

therefore m1m2 � tana(�cota) � �1m1m2 � �1

Parametric form of the line equation

Let the lines be p � r � la

and q � s � �b

03 29/09/04 15:38 Page 278

Page 297: Geometry for Computer Graphics.pdf

Parallel lines

p and q are parallel if a � kb where k is a scalar.

Perpendicular lines

a • b � 0

3.11.8 Proof: Shortest distance to a line

Strategy: Postulate that the shortest distance is a normal to a line and prove that other lines are longer.

Let P be an arbitrary point not on line a.Let Q be a point on a such that PQ is orthogonal to a.

For any other point R on therefore PR � PQ

for a� 90°.PR � PQ when a� 90°, therefore, PQ is the shortest distance from P to the line a.

Obviously, the same reasoning applies for a 3D line and a plane.

3.11.9 Proof: Position and distance of a point on a line perpendicular to the origin

General form of the line equation

Strategy: Express the general form of the line equation as thescalar product of two vectors and use vector analysis to identifythe point Q on the perpendicular to the origin.

Let the equation of the line be ax � by � c � 0Q is the nearest point on the line to O and q is its position vector.

Let n � ai � bj

and q � xi � yj

therefore n • q � �c

Let q � ln

therefore n • q � ln • n � �c

and

If ||n|| � 1 l� �cposition vector q � ln

distance OQ � ||q||

l��c

n ni

PRPQ

�sina

Proofs 279

d

P

Y

X

a

αQ

R

Q

n

Y

XO

q

03 29/09/04 15:38 Page 279

Page 298: Geometry for Computer Graphics.pdf

280 Geometry for computer graphics

Parametric form of the line equation

Strategy: Express the parametric form of line equation as the scalar product of two vectorsand use vector analysis to identify the point on the perpendicular to the origin.

Let q � t � lv (1)

Q is nearest to O when q is perpendicular to v

therefore v • q � 0

Take the scalar product of (1) with v

v • q � v • t � lv • v

therefore

If ||v|| � 1 l� �v •t

position vector q � t � lv

distance OQ � ||q||

3.11.10 Proof: Position and distance of the nearest point on a line to a point

General form of the line equation

Strategy: Express the general form of the line equation as the scalar product of two vectors and use vector analysis to identify the point Q on the perpendicular from P to the line.

Let the equation of the line be ax � by � c � 0and Q(x, y) be the nearest point on the line to P.

Let n � ai � bj

and q � xi � yj

therefore n • q � �c (1)r is parallel to n, therefore r � ln (2)and n • r � ln • n (3)but r � q � p

therefore n • r � n • q � n • p (4)

Substitute (1) and (3) in (4) ln • n � �c � n • p (5)

l��v tv vii

Q

T

Y

XO

q v

t

P

Q

Y

X

q

p

r

n

O

03 29/09/04 15:38 Page 280

Page 299: Geometry for Computer Graphics.pdf

therefore

If ||n|| � 1 l� �(n • p � c)

but q � p � r (6)

Substitute (2) in (6) q � p � ln

distance PQ � ||r|| � ||ln||

Parametric form of the line equation

Strategy: Express the parametric form of the line equation as the scalar product of two vectorsand use vector analysis to identify the point Q on the perpendicular from P to the line.

Let the equation of the line be q � t � lv (7)

Let Q be the nearest point on the line to P

but p � q � r

therefore v • p � v • q � v • r

r is orthogonal to v, therefore v • r � 0

and v • p � v • q

From (7) v • q � v • t � lv • v

therefore

If ||v|| � 1 l� v • (p � t)

position vector q � t � lv

distance PQ � ||r|| � ||p � q|| � ||p � (t � lv)||

3.11.11 Proof: Position of a point reflected in a line

General form of the line equation

Strategy: Exploit the fact that a line connecting a point and its reflection is parallel to theline’s normal.

l��v p t

v v( )ii

l�� �( )n p

n nii

c

Proofs 281

Y

X

T

P

λv

v

pr

q

tQ

03 29/09/04 15:38 Page 281

Page 300: Geometry for Computer Graphics.pdf

282 Geometry for computer graphics

Let the equation of the line be ax � by � c � 0

T(x, y) is the nearest point on the line to O and t � xi � yj is its position vector.

let n � ai � bj

therefore n • t � �c (1)

P is an arbitrary point and Q is its reflection; p and q are their respective position vectors.

r � r� is orthogonal to n

therefore n • (r � r�) � 0

n • r � n • r� � 0 (2)

p � q is parallel with n

therefore p � q � r � r� � ln

and (3)

but r � p � t (4)

Substitute (1) in (4) n • r � n • p � n • t � n • p � c (5)

Substitute (2) and (5) in (3)

If ||n|| � 1 l� 2(n • p � c)

position vector q � p � ln

Parametric form of the line equation

Strategy: Exploit the fact that the line’s direction vector isorthogonal to the line connecting a point and its reflection.

P is an arbitrary point and Q is its reflection; p and q are theirrespective position vectors.

Let the equation of the line be s � t � lv

therefore p � t � r

and q � t � r�

l��2( )n p

n nii

c

l�� �

�n r n r

n nn r

n n2i i

iii

l�� �r rn

T

n

Q

P

O

Y

X

rp

q

t

r � r�r�

T

v

Q

P

O

Y

X

rp

q

t

r � r�r�

03 29/09/04 15:38 Page 282

Page 301: Geometry for Computer Graphics.pdf

Proofs 283

therefore p � q � 2t � r � r� (6)

r � r� is orthogonal to v

therefore v • (r � r�) � 0

v • r � v • r� (7)

r � r� is parallel to v

therefore r � r� � �v (8)

and v • (r � r�) � �v • v

where (9)

Substitute (7) in (9)

but r � p � t

therefore

If ||v|| � 1 � � 2v • (p � t)

Substitute (8) in (6) p � q � 2t � �v

position vector q � 2t � �v � p

3.11.12 Proof: Normal to a line through a point

Strategy: Given a line m and a point P the object is to identify a line n that passes through P and is normal to m. This is achieved by finding the perpendicular form of the line equation.

General form of the line equation

Given the line m ax � by � c � 0

Let the line n be perpendicular to m passing through the point P(xP, yP).

Let the line be anx � bny � cn � 0

n is perpendicular to m when an � �b bn � a cn � �(ayP � bxP)

The line equation for n is �bx � ay � bxP � ayP � 0

e�2 ( )v p t

v vii

e�2v rv vii

e�� �v r v r

v vi ii

X

YP

mn

03 29/09/04 15:38 Page 283

Page 302: Geometry for Computer Graphics.pdf

Parametric form of the line equation

Given the line m q � t � lv (1)

there exists a point Q such that v is normal to u.

Also q � p � u (2)

From (1) and (2) t � lv � p � u (3)

therefore v • t � lv • v � v • p � v • u

but v • u � 0

therefore

If ||v|| � 1 l� v • (p � t)

From (3) u � p � (t � lv)

therefore, line n is n � p � �u where � is a scalar.

3.11.13 Proof: Line equidistant from two points

Given two distinct points we require to identify a line passing between them such that anypoint on the line is equidistant to the points.

Strategy: The key to this solution is that the normal of the line is parallel to the line joiningthe two points.

General form of the line equation

Let the equation of the line equidistant to P1(x1, y1) and P2(x2, y2) be ax � by � c � 0P(x, y) is a point on this line which contains Q equidistant to P1 and P2.

l��v p t

v v( )ii

284 Geometry for computer graphics

X

YP

T

t

p

λv

u

qQ

n

m

P1

P2

Q

p

X

Y

P

p2

p1

nq

03 29/09/04 15:38 Page 284

Page 303: Geometry for Computer Graphics.pdf

Let n � ai � bj � p2 � pl (1)

and (2)

then n • (p � q) � 0

therefore n • p � n • q

But the line equation is n • p � c � 0

therefore c � �n • p � �n • q (3)

Substituting (1) and (2) in (3)

The line equation is

or

Parametric form of the line equation

Let P(xP, yP) be a point equidistant between two points P1(x1, y1) and P2(x2, y2).

Let u be the vector

P is also on the line q � p � lv, which is perpendicular to u.

p and q are the position vectors for P and Q respectively.

Therefore

also u � (x2 � x1)i � (y2 � y1)j

As v is perpendicular to u v � �(y2 � y1)i � (x2 � x1)j

therefore

where l is a scalar.

3.11.14 Proof: Equation of a two-dimensional line segment

Parametric form of the line equation

Strategy: The parametric form of the straight-line equation isthe most practical basis for manipulating straight-linesegments. The value of the parameter can then be used todetermine the position of a point along the segment.

P1(x1, y1) and P2(x2, y2) define the line segment and p1 and p2are their respective position vectors and P(xP, yP) is a point onthe line segment.

q i� � � � � � � �( ) ( ( )12 1 2 2 1

12 1 2 2 1( ) ( ) ( )x x y y y y x xl l ))j

q i j i� � � � � � � � �12 1 2

12 1 2 2 1 2 1( ( ) ( )( ) ( )x x y y y y x xl jj)

p i j� � � �12 1 2

12 1 2( ) ( )x x y y

P P1 2

� ���

( ) ( ) ( )x x x y y y x x y y2 1 2 112 2

212

22

12 0� � � � � � � �

( )p p p p p2 112 2 1( ( )) 0� � � �i

c �� � � � �� �( ) ( ( )) (2 1 112 2 1

12 2 1p p p p p p p pi i( ) 22 1� p )

q p n p p� � � �112

12 2 1( )

Proofs 285

P1

P2

v

up

X

Y

P Q

q

pp2

λaP

p1 P2

P1

X

Y

03 29/09/04 15:38 Page 285

Page 304: Geometry for Computer Graphics.pdf

Let a � p2 � p1

Position vector of P p � p1 � la

Coordinates of P xP � x1 � l(x2 � x1) yP � y1 � l(y2 � y1)

P is between P1 and P2 for l ∈ [0, 1].

3.11.15 Proof: Point of intersection of two two-dimensional line segments

Strategy: The parametric proof for calculating the intersectionof two straight lines can be used to determine the spatialrelationship between two line segments. The values of theparameters controlling the direction vectors determinewhether the line segments touch or intersect.

Let the two line segments be defined by P1(x1, y1) → P2(x2, y2)and P3(x3, y3) → P4(x4, y4) where P(xP, yP) is the point ofintersection.

Let a � xai � yaj

where xa � x2 � x1 and ya � y2 � y1

and b � xbi � ybj

where xb � x4 � x3 and yb � y4 � y3

The line equations are p � r � la

and q � s � �b

For intersection r � la � s � �b

where x1 � lxa � x3 � �xb (1)

and y1 � lya � y3 � �yb (2)

From (1)

Substitute l in (2)

therefore xay1 � x3ya � x1ya � �xbya � xay3 � �xayb

and �(xbya � xayb) � xay3 � xay1 � x3ya � x1ya

Similarly l�� � �

x y y y x x

x y x yb b

b a a b

( ) ( )3 1 3 1

e�� � �

x y y y x x

x y x ya a

b a a b

( ) ( )3 1 3 1

y yx x x

xy ya

b

ab1

3 13�

� �� �

ee

⎝⎜

⎠⎟

le

�� �x x x

xb

a

3 1

286 Geometry for computer graphics

P4

P3 P2

P1

X

YP

pb

as

r q

03 29/09/04 15:38 Page 286

Page 305: Geometry for Computer Graphics.pdf

In determinant form

and

If 0 � l� 1 and 0 � � �1 the lines intersect or touch one another.

Coordinates of P xP � x1 � lxa yP � y1 � lya

or xP � x3 � �xb yP � y3 � �lyb

The line segments are parallel if the denominator is zero xbya � xayb � 0

The table below illustrates the relative positions of the line segments for different values ofl and �.

l � � �

0 0 0 � 1 1

0 l 1 0 0 � 1 1

1 0 0 � 1 1

bab

a

b

a

bab

a

b

a

bab

ab

a

l�

��

x x xy y y

x yx y

b

b

b b

a a

( )( )

3 1

3 1

e�

��

x x xy y y

x yx y

a

a

b b

a a

( )3 1

3 1( )

Proofs 287

03 29/09/04 15:38 Page 287

Page 306: Geometry for Computer Graphics.pdf

288 Geometry for computer graphics

3.12.1 Proof: Line and a circle

There are three scenarios: the line intersects, touches or misses the circle.

Strategy: The cosine rule proves very useful in setting up a geometric condition that identifiesthe above scenarios, which are readily solved using vector analysis. We also explore differentapproaches governed by the type of equation used.

General form of the line equation

A circle with radius r is centered at the origin

therefore its equation is x2 � y2 � r2 (1)

The normalized line equation is ax � by � c � 0

where a2 � b2 � 1

therefore (2)

Substituting (2) in (1)

we have c2 � 2bcy � b2y2 � a2y2 � a2r2

therefore (a2 � b2) y2 � 2bcy � c2 � a2r2 � 0

But a2 � b2 � 1, therefore y2 � 2bcy � c2 � a2r2 � 0 (3)

(3) is a quadratic in y where (4)

Similarly (5)

The discriminant of (4) or (5) determines whether the line intersects, touches or misses the circle:

Miss condition c2(b2 � 1) � a2r2 0 (complex roots)

Touch condition c2(b2 � 1) � a2r2 � 0 (equal roots)

Intersect condition c2(b2 � 1) � a2r2 � 0 (real roots)

x ac c a b r�� � �2 2 2 21( )

y bc c b a r�� � �2 2 2 21( )

� �� �

c bya

y r⎛⎝⎜

⎞⎠⎟

22 2

xc by

a�

� �

X

Y

r

P

3.12 Lines and circles

03 29/09/04 15:38 Page 288

Page 307: Geometry for Computer Graphics.pdf

Proofs 289

When either x or y is evaluated, the other variable is found by substituting the knownvariable in (2).

The above proof is for a circle centered at the origin, which is probably rare, and if the circleis positioned at (xC, yC) the associated formulas become rather fussy. To avoid this problem itis useful to leave the circle centered at the origin and translate the line by (�xC, �yC) and add(xC, yC) to the final solution.

The circle is located at the origin:

therefore x2 � y2 � r2 (6)

but the line equation is translated (�xC, �yC)therefore a(x � (�xC)) � b(y � (�yC)) � c � 0and ax � by � (axC � byC � c) � 0which becomes ax � by � cT � 0 (7)where cT � axC � byC � cSubstituting (7) in (6) we obtain similar equations to those derived above:

but these have to be extended to accommodate the original translation to the line:

x ac c a b r

y bc c b a r

T T

T T

�� � �

�� � �

2 2 2 2

2 2 2 2

1

1

( )

( )

where cT � axC � byC � cMiss condition c2

T (b2 � 1) � a2r2 0Touch condition c2

T (b2 � 1) � a2r2 � 0Intersect condition c2

T(b2 � 1) � a2r2 � 0

x x ac c a b r

y y bc c b a

C T T

C T T

� � � �

� � � �

2 2 2 2

2 2

1

1

( )

( ) 22 2r

Coordinates of P

Parametric form of the line equation

A circle with radius r is located at C(xC, yC) with position vector c � xCi � yCj

The equation of the line is p � t � lv

where ||v || � 1 (8)

X

Y

C

P

T

p

c

t

λ v

rsθ q

03 29/09/04 15:38 Page 289

Page 308: Geometry for Computer Graphics.pdf

290 Geometry for computer graphics

for an intersection at P ||q|| � r or ||q||2 � r2 or ||q||2 � r2 � 0

Using the cosine rule ||q||2 � ||lv||2 � ||s||2 � 2 ||lv|| � ||s||cosu

||q||2 � l2 ||v||2 � ||s||2 � 2 ||v|| � ||s||lcosu (9)

Substituting (8) in (9) ||q||2 � l2 � ||s||2 � 2 ||s||lcosu (10)

Identify cosu s • v � ||s|| � ||v||cosu

therefore (11)

Substitute (11) in (10) ||q||2 � l2 � 2s • vl� ||s||2

therefore ||q||2 � r2 � �2 � 2s • vl� ||s||2 � r2 � 0 (12)

(12) is a quadratic where (13)

and s � c � t

The discriminant of (13) determines whether the line intersects, touches or misses the circle.

l� � �s v s v si i( ) || ||2 2 2r

cos|| ||

u�s v

si

Coordinates of P xP � xT � lxv

yP � yT � lyv

where

s � c � t

Miss condition (s • v)2 � ||s||2 � r2 0

Touch condition (s • v)2 � ||s||2 � r2 � 0

Intersect condition (s • v)2 � ||s||2 � r2 � 0

l� � �s v s v s|| ||i i( )2 2 2r

3.12.2 Proof: Touching and intersecting circles

There are basically five scenarios associated with a pair ofcircles: first, they are totally separate; second, they touch assolid objects; third, their boundaries intersect; fourth, theytouch when one circle is inside the other; and fifth, onecircle is inside the other or possibly coincident. This proofexamines two strategies: one to detect when two circlesintersect, touch as solid objects or are separate, the other toprovide the points of intersection.

Strategy 1: Use basic coordinate geometry to identify the touch condition.

The diagram shows two circles with radii r1 and r2 centered at C1(xC1, yC1) and C2(xC2, yC2)respectively, touching at P(xP, yP).

C1

C2

r1

r2

P

d

03 29/09/04 15:38 Page 290

Page 309: Geometry for Computer Graphics.pdf

Proofs 291

For a touch condition the distance d between C1 and C2 must equal r1 � r2:

Touch condition d � r1 � r2

Intersect condition r1 � r2 � d � |r1 � r2|

Separate condition d � r1 � r2

Touch point

Strategy 2: Use vector analysis to identify the points ofintersection.

This strategy assumes that the circles intersect.The diagram shows a circle with radius r1 centered

at the origin and a second circle with radius r2 centered at C2 (xC2, yC2).

s1 is the position vector of the intersection point P1(xP1, yP1) and will be used to identify the coordinates of P1.

d is the position vector of C2 and d � ||d|| is thedistance between the circles’ centers.

T is a point on d determined by the common chord passing through the two intersectionpoints.

u is the vector .Euclidean geometry confirms that a line connecting the centers of two circles is

perpendicular to a common chord, hence u is perpendicular to d.

Let d � xdi � yd j represent the vector

then u � �ydi � xdj

and d � ||d|| � ||u|| (1)

||s1|| � r1 and ||s2|| � r2 (2)

Let ld represent the vector

and (1 � l)d represent the vector

Therefore ||s1||2 � l2 ||d||2 � �2 ||u||2 (3)

and ||s2||2 � (1 � l)2 ||d||2 � �2 ||u||2 (4)

Subtracting (4) from (3) ||s1||2 � ||s2||2 � 2 l ||d||2 � ||d||2 (5)

Substituting (1) and (2) in (5) l�� �r r d

d12

22 2

22

TC2

� ���C T1

� ���

C C1 2

� ����

TP1

� ���

x xr

dx x y y

r

dy yP C C C P C C C� � � � � �1

12 1 1

12 1( ) ( )and

d x x y yC C C C� � � �( ) ( )2 12

2 12

r1

r2

s1

s2

λ

λ

d

C2

1C

u

εu

P1

P2

X

Y

T

(1� )d

03 29/09/04 15:38 Page 291

Page 310: Geometry for Computer Graphics.pdf

292 Geometry for computer graphics

From (3)

(6)

and s1 � �d � �u

However, the coordinates of P1 must be translated by (xC1, yC1) as one circle was centered atthe origin.

e l� �r

d12

22

el

l2 12 2 2

212

22�

�� �

r d r

d|| ||u

Touch condition d � r1 � r2

Touch point

Miss condition d � r1 � r2

Intersect condition d r1 � r2

Point(s) of intersection xP1 � xC1 � lxd � �yd yP1 � yC1 � lyd � �xd

xP2 � xC1 � lxd � �yd yP2 � yC1 � lyd � �xd

where

and e l� �r

d12

22

l�� �r r d

d12

22 2

22

x xr

dx x y y

r

dy yP C C C P C C C� � � � � �1

12 1 1

12 1( ) ( )and

d x x y yC C C C� � � �( ) ( )2 12

2 12

03 29/09/04 15:38 Page 292

Page 311: Geometry for Computer Graphics.pdf

Proofs 293

3.13.1 Circle

General equation

The general equation of a circle is based upon thePythagorean theorem, where a point P(x, y) on the circle isrelated to the radius:

x2 � y2 � r2

If the circle’s center is offset from the origin, the x and y-coordinates are offset to accommodate the translation:

center (xc, yc) (x � xc)2 � (y � yc)2 � r2

Parametric equation

By making the angle of rotation a parameter, the x and y-coordinates can be written as:

Center origin

or with an offset center (xc, yc)

3.13.2 Ellipse

General equation

Let the two foci be (c, 0) and (�c, 0), and P(x, y) be a point on the ellipse.

Distance

and

However, an ellipse is defined such that 2a � |AP| � |BP|

therefore ( ) ( )x c y x c y a� � � � � �2 2 2 2 2

| |BP x c y� � � �( ) ( )2 20

| |AP x c y� � � �( ) ( )2 20

x x r ty y r t

tc

c

� �

� �� �

cossin

⎫⎬⎭

0 2p

x r ty r t

t��

� �cossin

⎫⎬⎭

0 2p

3.13 Second degree curves

X

Y

x

y P

r

t

X

Y

a

b

B(�c, 0) A(c, 0)

P(x, y)

�a

�b

03 29/09/04 15:38 Page 293

Page 312: Geometry for Computer Graphics.pdf

and

then

Squaring both sides

a4 � 2a2cx � c2x2 � a2x2 � 2a2cx � a2c2 � a2y2

a2(a2 � c2) � x2(a2 � c2) � a2y2

but a2 � b2 � c2 or b2 � a2 � c2

therefore a2b2 � x2b2 � a2y2

and

If the center is offset by (xc, yc) the equation becomes

Parametric equation

By making the angle of rotation a parameter the x and y-coordinates can be written as

Center origin

or with an offset center (xc, yc)

x x a ty y b t

tc

c

� �

� �� �

cossin

⎫⎬⎭

0 2p

x a ty b t

t��

� �cossin

⎫⎬⎭

0 2p

( ) ( )x x

a

y y

bc c�

��

�2

2

2

21

x

a

y

b

2

2

2

21� �

a a cx c x a x c y4 2 2 2 2 22� � � � �(( ) )2

a cx a x c y2 2 2� � � �( )

� � � � �4 4 42 2 2cx a a x c y( )

x cx c y a a x c y x cx c y2 2 2 2 2 2 2 2 22 4 4 2� � � � � � � � � � �( )

x cx c y a x cx c y2 2 2 2 2 22 2 2� � � � � � � �

294 Geometry for computer graphics

03 29/09/04 15:38 Page 294

Page 313: Geometry for Computer Graphics.pdf

3.13.3 Parabola

General equation

By definition, the parabola maintains r � s where (0, p) is the focus.

Then and s � y � p

and x2 � (y � p)2 � (y � p)2

x2 � y2 � 2yp � p2 � y2 � 2yp � p2

x2 � 4py

or if the axes are reversed y2 � 4px

If the center is offset by (xc, yc) the equation becomes

(x � xc)2 � 4p(y � yc)

or (y � yc)2 � 4p(x � xc)

Parametric equation

If we make y � t2

and

then and

and

therefore

x2 � 4py

Therefore, the parametric equations are

y � t2

If the axes area reversed

x � t2

To offset the parametric equations, add (xc, yc).

y pt� 2

x pt� 2

yx

p�

2

4

yx

p�

2

tx

p�

2t y�

x pt� 2

r x y p� � �2 2( )

Proofs 295

X

Y

r

s

directrix

(0, �p)

(0, p)

(x, �p)

P(x, y)

03 29/09/04 15:38 Page 295

Page 314: Geometry for Computer Graphics.pdf

3.13.4 Hyperbola

General equation

By definition, the hyperbola maintains |BP| � |PA| � 2a

where

therefore

Squaring both sides

Squaring both sides c2x2 � 2a2cx � a4 � a2x2 � 2a2cx � a2c2 � a2y2

(c2 � a2)x2 � a2y2 � a2(c2 � a2)

Let

then b2x2 � a2y2 � a2b2

therefore x

a

y

b

2

2

2

2� � 1

b c a� �2 2

cx a a x c y� �� � �2 2 2( )

x cx c y a a x c y x cx c y2 2 2 2 2 2 2 2 22 4 4 2� � � � � � � � � � �( )

( ) ( )x c y a x c y� � � � � �2 2 22 2

( ) ( )x c y x c y a� � � � � �2 2 2 2 2

| | 2 2PA x c y� � �( )

| | ( )BP x c y� � �2 2

296 Geometry for computer graphics

X

Y

aB(�c, 0) �a A(c, 0)

P(x, y)

03 29/09/04 15:38 Page 296

Page 315: Geometry for Computer Graphics.pdf

Proofs 297

3.14.1 Proof: Straight-line equation from two points

Strategy: Create a vector from two points and use a parameterto identify any point on the vector.

P1 and P2 are the two points and p1 and p2 their respectiveposition vectors.

Let v � p2 � p1therefore p � p1 � �v where � is a scalar.

P is between P1 and P2 for � ∈ [0, 1].If ||v|| � 1, � corresponds to the linear distance along v.

3.14.2 Proof: Intersection of two straight lines

Strategy: Step 1: Ensure that the two lines are not parallel.Step 2: Ensure that the two lines touch.Step 3: Compute the intersection point.

Given two lines p � t � �a and q � s � �b

where t � xti � ytj � ztk and s � xsi � ysj � zsk

a � xai � yaj � zak and b � xbi � ybj � zbk

Step 1: If a � b � 0 the lines are parallel and do not intersect.

Step 2: The distance between two skew lines is given by

If (t � s) • (a � b) � 0 the lines do not intersect.

Step 3: Equate the two line equations:

(xti � ytj � ztk) � �(xai � yaj � zak) � (xsi � ysj � zsk) � �(xbi � ybj � zbk)

Collect up the components

(xt � xs � �xa � �xb)i � (yt � ys � �ya � �yb)j � (zt � zs � �za � �zb)k � 0

For this vector to be null, its components must vanish. Therefore, we have

�xa � �xb � xs � xt�ya � �yb � ys � yt�za � �zb � zs � zt

which provide values for � and � which, when substituted in the original line equations revealthe intersection point.

d �� �

||( ) |||| ||

t s a ba bi ( )

3.14 Three-dimensional straight lines

Z

Y

X

P1

P2

p1

p2

pλvP

X

Y

Z

T Sa

t s

b

03 29/09/04 15:38 Page 297

Page 316: Geometry for Computer Graphics.pdf

3.14.3 Proof: Angle between two straight lines

Strategy: Use the scalar product of the two line vectors to revealthe enclosed angle.

Let the line equations be p � r � �a

and q � s � �b

The angle between the two lines is the angle between thevectors a and b and is given by

a • b � ||a|| � ||b|| cosa

If ||a|| � ||b|| � 1 a� cos �1 (a • b)

3.14.4 Proof: Three points lie on a straight line

Strategy: If two vectors are created from the three points, thevectors must be linearly related for the points to lie on astraight line.

Given three points P1, P2, P3

let

therefore s � �r

for the points to lie on a straight line, where � is a scalar.

3.14.5 Proof: Parallel and perpendicular straight lines

Let the line equations be p � r � maand q � s � �b

Parallel lines

p and q are parallel if a � �b where � is a scalar.

r s� �P P P P1 2 1 3

� ��� � ���and

a��

�cos•

||1 a b

a b|| || ||

⎛⎝⎜

⎞⎠⎟

298 Geometry for computer graphics

Z

Y

X

α

R

sr

ab

S

Z

Y

X

P1

s

r

P2

P3

Z

Y

X

Rs

r

abS

03 29/09/04 15:38 Page 298

Page 317: Geometry for Computer Graphics.pdf

Perpendicular lines

p and q are perpendicular if a • b � 0

3.14.6 Proof: Position and distance of a point on a line perpendicular to the origin

Strategy: The nearest point to the origin forms a perpendicular to the origin.

Let the line equation be p � t � �v (1)

Let P be such that p is perpendicular to v

therefore v • p � 0 (2)Derive v • p using (1) v • p � v • (t � �v) � v • t � v • v� � 0 (3)Substitute (2) in (3) v • v� � �v • t

therefore

If ||v|| � 1 � � �v • tPosition vector p � t � �vDistance OP � ||p||

3.14.7 Proof: Position and distance of the nearest point on a line to a point

Strategy: The shortest distance from a point to a straight line is a perpendicular to the line. Use vector analysis to determine the distance.

� ��v tv vii

Z

Y

X

p

t

P

T

v

O

Proofs 299

Z

Y

X

R

sr

ab

S

T

r

Q

P

λv

p

t

q

X

Y

Z

03 29/09/04 15:38 Page 299

Page 318: Geometry for Computer Graphics.pdf

Let the line equation be q � t � �v (1)

and Q be the nearest point on the line to P

therefore p � q � r

and v • p � v • q � v • r

r is orthogonal to v, therefore v • r � 0

and v • p � v • q

From (1) v • q � v • t � �v • v

therefore

If ||v|| � 1 � � v • (p � t)

Position vector q � t � �v

Distance PQ � ||r|| � ||p � q|| � ||p � (t � �v)||

3.14.8 Proof: Position of a point reflected in a line

Strategy: Exploit the fact that the line’s direction vector is orthogonal to the line connecting apoint and its reflection. Note that this strategy is identical to the 2D case.

P is an arbitrary point and Q is its reflection with p and q their respective position vectors.

Let the line equation be s � t � �v

therefore p � t � r

and q � t � r�

therefore p � q � 2t � r � r� (1)

r � r� is orthogonal to v, therefore v • (r � r�) � 0

v • r � v • r� (2)

r � r� is parallel to v, therefore r � r� � �v (3)

Substitute (3) in (1) p � q � 2t � �v

therefore q � 2t � �v � p

l��v p t

v vii

( )

300 Geometry for computer graphics

Z

Y

X

p

q

P

Q

p � q

T

t

r

r�

v

03 29/09/04 15:38 Page 300

Page 319: Geometry for Computer Graphics.pdf

From (3) v • (r � r�) � �v • v

and (4)

Substitute (2) in (4)

but r � p � t

therefore (5)

If ||v|| � 1 � � 2v • (p � t)

Position vector q � 2t � �v � p

3.14.9 Proof: Normal to a line through a point

Let the line equation be q � t � �v (1)

Given a point P, there exists a point Q such that vectors u and v are orthogonal.

Therefore q � p � u (2)

From (1) and (2) t � �v � p � u

therefore v • t � �v • v � v • p � v • u

v and u are orthogonal v • u � 0

therefore

If ||v|| � 1 � � v • (p � t)

From (1) and (2) u � p � (t � �v)

The line equation for the normal is p � �u

l��v p t

v vii

( )

e��2v p t

v vii

( )

e�2v rv vii

e�� �v r v r

v vi ii

Proofs 301

T

u

Q

P

λv

p

t

q

X

Y

Z

03 29/09/04 15:38 Page 301

Page 320: Geometry for Computer Graphics.pdf

3.14.10 Proof: Shortest distance between two skew lines

Strategy: The nearest point to a line will lie on a perpendicularto the line. Therefore, given two skew lines (lines that do notintersect and are not parallel) the shortest distance betweenthe lines will be on a mutually perpendicular to both lines.This means that the cross-product of the two lines will be avector parallel to the perpendicular and can be exploited byvector analysis. A parametric approach provides an elegantsolution to the problem.

Let the line equations be p � q � �v

and p� � q� � �v�

The shortest distance d between the lines is the magnitude of the vector which isperpendicular to both lines.

Therefore (1)

and (2)

But is perpendicular to v and v� and parallel to v � v�

therefore

but

therefore (3)

Take the scalar product of (3) with v � v�

(4)

Substitute (1) and (2) in (4)

(v � v�) • (q� � �1v�) � (v � v�) • (q � �v) � d � ||v � v�||q� • (v � v�) � �1v� • (v � v�) � q • (v � v�) � �1v • (v � v�) � d � ||v � v�||

But �1v� • (v � v�) � 0 and �1v • (v � v�) as v, v� and v � v� are mutually perpendicular.

Therefore (q� � q) • (v � v�) � d � ||v � v�||

therefore the shortest distance is d �� �

( )•( )

|| ||

q q v v

v v

� �

( )v v v v v v� � � � � �� � � �• ( ) • || ||OT OT d� ��� � ���

( )v v v v v vv v

� � � � �� �

� � � ��

• ( ) • ( ) •(

OT OTd� ��� � ��� ))|| ||v v� �

OT OTd

� � �� � �

� �

� ��� � ��� ( )v v

v v

OT OT TT� � � �� ��� � ��� � ���

TTd

� �� �

� ��� ( )v v

v v

TT�� ���

OT� � �� ���

� �q v�1

OT� ���

� �q vl1

TT�� ���

302 Geometry for computer graphics

Y

Z XO

Q� Q

T

T�

q�v�

q

v

d

03 29/09/04 15:38 Page 302

Page 321: Geometry for Computer Graphics.pdf

Proofs 303

3.15.1 Proof: Equation to a plane

Cartesian form of the plane equation

Strategy: Let n be a nonzero vector normal to the plane andP(x, y, z) be a point on the plane, which also contains a pointP0(x0, y0, z0). Use vector analysis to derive the plane equation.Note that the strategy is similar to that used for the equationof a line.

Let n � ai � bj � ck

and p0 � x0i � y0j � z0k

and p � xi � yj � zk

therefore q � p � p0

As n is orthogonal to q n • q � 0

therefore n • (p � p0) � 0

and n • p � n • p0 (1)

therefore ax � by � cz � ax0 � by0 � cz0

But ax0 � by0 � cz0 is a scalar quantity associated with the plane and can be replaced by d

ax � by � cz � d

where d � ax0 � by0 � cz0

The value of d also has the interpretation:

from the diagram h � ||p0|| cos a

therefore n • p0 � ||n|| � ||p0|| cos a� h ||n||

Therefore the plane equation can be expressed as

ax � by � cz � h ||n|| (2)

Dividing (2) by ||n|| we have

where h is the perpendicular from the origin to the plane, and

General form of the plane equation

The general form of the equation is expressed as

Ax � By � Cz � D � 0

|| ||n � � �a b c2 2 2

ax

by

cz h

|| || || || || ||n n n� � �

3.15 Planes

P0

Pp

p0

q

n

X

Y

Z

αh

03 29/09/04 15:38 Page 303

Page 322: Geometry for Computer Graphics.pdf

which means that the Cartesian form is translated into the general form by making

A � a, B � b, C � c, D � �d

The individual values of A, B, C, D have no absolute geometric meaning as it is possible tomultiply the equation by any scalar quantity to produce another equation describing the sameplane. However, as there is a direct relationship between the Cartesian form and the generalform, the values of A, B, C can be associated with a vector normal to the plane, but thedirection of the vector can be in one of two directions: directed from one side of the plane or the other side. The orientation of this normal vector is resolved by the Hessiannormal form.

Hessian normal form of the plane equation

The Hessian normal form of the plane equation scales the general form plane equation by afactor to make the magnitude of the plane’s normal vector equal to 1, i.e. a unit vector.

For the plane equation Ax � By � Cz � D � 0

the scale factor is

therefore

Let

which allows us to write the Hessian normal form of the plane equation as

n1x � n2y � n3z � p � 0

This can also be expressed using vectors:

if p � xi � yj � zk (a point on the plane)and n � n1i � n2j � n3k (the unit normal vector of the plane)then n • p � �pThe positive and negative values of provide the two potential directions of the unit normal vector. However, by convention, only the positive value of

is considered. Furthermore, the side of the plane that lies in the direction of n is declared the positive side whilst the other side of the plane is declared the negativeside. This partitioning of space creates two half-spaces.

We have seen above that n • p � �p, where p is the perpendicular distance from the planeto the origin. Therefore, if p � 0 the origin lies in the positive half-space, and if p 0 it lies inthe negative half-space. If p � 0 the origin lies on the plane.

A B C2 2 2� �

A B C2 2 2� �

nC

A B Cp

D

A B C3 2 2 2 2 2 2

�� �

�� �

nA

A B Cn

B

A B C1 2 2 2 2 2 2 2

�� �

�� �

Ax

A B C

By

A B C

Cz

A B C

D

A B C2 2 2 2 2 2 2 2 2 2 2 2� ��

� ��

� ��

� �� 00

12 2 2A B C� �

304 Geometry for computer graphics

03 29/09/04 15:38 Page 304

Page 323: Geometry for Computer Graphics.pdf

Parametric form of the plane equation

Let vectors a and b be parallel to the plane and the pointT(xT, yT, zT) be on the plane.

Therefore c � la � eb

and p � t � c

therefore xP � xT � lxa � exb

yP � yT � lya � eyb

zP � zT � lza � ezb

If a and b are unit vectors and are mutually perpendicular, i.e. a • b � 0,l and e become linearmeasurements along the a and b axes relative to T.

Converting from the parametric form to the general form

Strategy: First compute the values of l and e that identify a point P perpendicular to theorigin, then determine the individual components of the plane equation.

c � la � eb

p � t � c

therefore p � t � la � eb (3)

But a and b are perpendicular to p

therefore a • p � 0 and b • p � 0

Compute a • p using (3) a • p � a • t � la • a � ea • b � 0 (4)

Compute b • p using (3) b • p � b • t � la • b � eb • b � 0 (5)

From (4) a • t � l||a||2 � ea • b � 0 (6)

From (5) b • t � la • b � e||b||2 � 0 (7)

To eliminate emultiply (6) by ||b||2 and (7) by a • b and subtract

(a • t)||b||2 � l||a||2||b||2 � e(a • b)||b||2 � 0

(a • b)(b • t) � l(a • b)2 � e(a • b)||b||2 � 0

(a • t)||b||2 � l||a||2||b||2 � (a • b)(b • t) � l(a • b)2 � 0

To eliminate lmultiply (6) by a • b and (7) by ||a||2 and subtract

(a • b) (a • t) � l(a • b)||a||2 � e(a • b)2 � 0

(b • t) ||a||2 � l(a • b)||a||2 � e||a||2||b||2 � 0

(a • b)(a • t) � e(a • b)2 � (b • t)||a||2 � e||a||2||b||2 � 0

l��

( )( ) ( )|| ||

|| || || || ( )

a b b t a t b

a b a b

i i i

i

2

2 2 22

Proofs 305

Y

XZTt

bb

λε

a

a

c

P

p

03 29/09/04 15:38 Page 305

Page 324: Geometry for Computer Graphics.pdf

Substitute l and e in (3) to identify the point P(xP, yP, zP) perpendicular to the origin.If vectors a and b had been unit vectors,l and e would have been greatly simplified:

P’s position vector p is also the plane’s normal vector.

Then xP � xT � lxa � exb

yP � yT � lya � eyb

zP � zT � lza � ezb

The normal vector is p � xPi � yPj � zPk

and because ||p|| is the perpendicular distance from the plane to the origin we can state

or in the general form of the plane equation

Ax � By � Cz � D � 0

where

3.15.2 Proof: Plane equation from three points

Strategy: Given three points R, S and T create two vectors

and . The vector product u � v provides avector normal to the plane containing the points. Take

another point P(x, y, z) and form a vector . Thescalar product w • (u � v) � 0 if P is in the plane containingthe original points. This condition can be expressed as adeterminant and converted into the general equation of a

w � RP� ��

v � RT� ���

u � RS� ��

Ax

By

Cz

DP P P� � � ��|| || || || || ||

|| ||p p p

p

xx

yy

zzP P P

|| || || || || |||| ||

p p pp� � �

e��

( )( )

( )

a b a t b t

a b

i i i

i1 2

l��

( )( )

( )

a b b t a t

a b

i i i

i1 2

e��

( )( ) ( )a b a t b t a

a b

|| ||

|| || || ||2

i i i 2

2 (( )a bi 2

306 Geometry for computer graphics

PS

R

T

u � v

wv

u

03 29/09/04 15:38 Page 306

Page 325: Geometry for Computer Graphics.pdf

plane. The three points are assumed to be in a counter-clockwise sequence viewed from thedirection of the surface normal.

Let the three points R, S, T and a fourth point P(x, y, z) lie on the same plane.

Let

then

Let

As w is perpendicular to u � v

Expanding the determinant we obtain

which becomes

This can be arranged in the form ax � by � cz � d � 0

where

or

ay zy zy z

bx zx zx z

cx yx

R R

S S

T T

R R

S S

T T

R R

S

� �

111

111

1yy

x yd ax by czS

T T

R R R11

�� � �( )

a y y z zy y z z b z z x x

z z x xS R S R

T R T R

S R S R

T R T�

� �� �

�� �� � RR

S R S R

T R T RR R Rc x x y y

x x y y d ax by cz�� �� �

�� � �( )

( ) ( )x x y y z zy y z z y y z z x x

RS R S R

T R T RR

S R S R�� �� �

� �� �

zz z x x

z z x x y yx x y y

T R T R

RS R S R

T R T R

� �

� �� �� �

�( ) 0

x y zy z y z x

z x z x yx yw

u u

v vw

u u

v vw

u u

v v� � � 0

w u vi( )� � �x y zx y zx y z

w w w

u u u

v v v

0

w � RP� ��

u vi j k

� � x y zx y z

u u u

v v v

u v� �RS RT� �� � ���

and

Proofs 307

03 29/09/04 15:38 Page 307

Page 326: Geometry for Computer Graphics.pdf

3.15.3 Proof: Plane through a point and normal to a line

Strategy: Use the general equation of a plane as thisincorporates a surface normal and recognizes points on theplane.

Let the plane equation be ax � by � cz � d � 0

where P(x, y, z) is any point on the plane

and n � ai � bj � ck

therefore n • p � d � 0

Given Q(xQ, yQ, zQ) n • q � d � 0

therefore n • p � n • q � 0

and ax � by � cz � (axQ � byQ � czQ) � 0

3.15.4 Proof: Plane through two points and parallel to a line

Strategy: Create one vector from the two points and anotherfrom the line. The vector product of these vectors will be normalto the associated plane.

Let the line be p � r � la

where a � xai � yaj � zak

and the two points are M(xM, yM, zM) and N(xN, yN, zN)

therefore b � (xN � xM)i � (yN � yM)j � (zN � zM)k

but a � b � n

where n � ai � bj � ck

and

Let the plane equation be ax � by � cz � d � 0As the point M is on the plane

axM � byM � czM � d � 0

The plane equation is ax � by � cz � (axM � byM � czM) � 0

3.15.5 Proof: Intersection of two planes

Strategy: Two non-parallel planes will intersect and form astraight line, which is parallel to both planes. The vectorproduct of the planes’ surface normals reveals the directionvector of the intersection line, but a point on the line is

a y zy z b z x

z x c x yx y

a a

b b

a a

b b

a a

b b� � �

308 Geometry for computer graphics

P

n

X

Y

Z

Qq

p

M

Nb

λa

n

X

Y

Z

X

Y

Z

PP0

n1

n2

n3

pp0

03 29/09/04 15:38 Page 308

Page 327: Geometry for Computer Graphics.pdf

required to secure a unique line equation. A convenient point is perpendicular to the origin.Three simultaneous equations are now available to reveal the line equation.

Let the plane equations be n1 • p � d1 � 0 n2 • p � d2 � 0

where n1 � a1i � b1j � c1k n2 � a2i � b2j � c2k

and p � xi � yj � zk

Let the line of intersection be p � p0 � ln3

where p is the position vector for any point P on the linep0 is the position vector for a known point P0 on the linen3 is the direction vector for the line of intersectionl is a scalar.

The direction vector is n3 � a3i � b3j � c3k � n1 � n2

P0 must satisfy both plane equations, therefore

n1 • p0 � �d1 (1)

and n2 • p0 � �d2 (2)

P0 is such that p0 is orthogonal to n3

therefore n3 • p0 � 0 (3)

Equations (1), (2) and (3) form three simultaneous equations, which reveal the point P0.

or

Therefore

yd a c

a c d a ca c

DET0

23 3

1 11

3 3

2 2�

xd b c

b c d b cb c

DET0

21 1

3 31

2 2

3 3�

x

d b cd b c

b c

y

a d ca d ca c

z

a0

1 1 1

2 2 2

3 3

0

1 1 1

2 2 2

3 3

0

0 0

� �11 1 1

2 2 2

3 3 0

1

b da b da b

DET�

dd

a b ca b ca b c

x1

2

1 1 1

2 2 2

3 3 30

⎢⎢

⎥⎥

⎢⎢

⎥⎥⋅��

00

0

0

yz

⎢⎢

⎥⎥

�� �

dd

a b ca b ca b c

1

2

1 1 1

2 2 2

3 3 30

⎢⎢

⎥⎥

⎢⎢

⎥⎥⋅

xxyz

0

0

0

⎢⎢

⎥⎥

Proofs 309

03 29/09/04 15:38 Page 309

Page 328: Geometry for Computer Graphics.pdf

where

The line of intersection is p � p0 � ln3

If DET � 0 the line and plane are parallel.

3.15.6 Proof: Intersection of three planes

Strategy: Solve the three simultaneous plane equationsusing determinants.

The diagram shows three planes intersecting at the pointP(x, y, z).

Given three planes a1x � b1y � c1z � d1 � 0

a2x � b2y � c2z � d2 � 0

a3x � b3y � c3z � d3 � 0

they can be rewritten as

or

where

therefore

If DET � 0, two of the planes, at least, are parallel.

x

d b cd b cd b c

DETy

a d ca d ca d

�� ��

1 1 1

2 2 2

3 3 3

1 1 1

2 2 2

3 3 cc

DETz

a b da b da b d

DET3

1 1 1

2 2 2

3 3 3��

DETa b ca b ca b c

�1 1 1

2 2 2

3 3 3

x

d b cd b cd b c

y

a d ca d ca d c

z

a1 1 1

2 2 2

3 3 3

1 1 1

2 2 2

3 3 3

1

� �bb d

a b da b d

DET1 1

2 2 2

3 3 3

1�

ddd

a b ca b ca b c

1

2

3

1 1 1

2 2 2

3 3 3

⎢⎢

⎥⎥

⎢⎢

⎥⎥

⋅��xxyz

⎣⎢⎢

⎦⎥⎥

���

�ddd

a b ca b ca b c

1

2

3

1 1 1

2 2 2

3 3 3

⎢⎢

⎥⎥

⎢⎢

⎥⎥⎥

⋅⎡

⎣⎢⎢

⎦⎥⎥

xyz

DETa b ca b ca b c

�1 1 1

2 2 2

3 3 3

zd a b

a b d a ba b

DET0

21 1

3 31

2 2

3 3�

310 Geometry for computer graphics

X

Y

Z

P

03 29/09/04 15:38 Page 310

Page 329: Geometry for Computer Graphics.pdf

3.15.7 Proof: Angle between two planes

Strategy: Use the dot product to find the angle between theplanes’ normals.

Given the plane equations ax1 � by1 � cz1 � d1 � 0

and ax2 � by2 � cz2 � d2 � 0

where n1 � a1i � b1j � c1k

and n2 � a2i � b2j � c2k

then n1 • n2 � ||n1|| � ||n2|| cos a

and

If ||n1|| � ||n2|| � 1 a� cos�1(n1 • n2)

3.15.8 Proof: Angle between a line and a plane

Strategy: Use the dot product to find the angle between theplane’s normal and the line’s direction vector.

Given the plane equation ax � by � cz � d � 0

where n � ai � bj � ck

and the line equation p � t � lv

therefore n • v � ||n|| � ||v|| cos a

and

If ||n|| � ||v|| � 1 a� cos�1(n • v)

When the line is parallel with the plane n • v � 0

3.15.9 Proof: Intersection of a line and a plane

Strategy: Solve a parametric line equation with thegeneral equation for a plane.

Let the plane equation be ax � by � cz � d � 0

where n � ai � bj � ck

P is a point on the plane with position vector p � xi � yj � zk

therefore n • p � d � 0

� � �cos|| || || ||

1 n vn vi⋅

⎛⎝⎜

⎞⎠⎟

� � �cos|| || || ||

1 1 2

1 2

n n

n n

i⋅

⎝⎜⎞

⎠⎟

Proofs 311

X

Y

Z

n1

n2

α

α

Z

Y

X

T

tv

p n

P

Z

Y

X

T

t

vP

p

n

03 29/09/04 15:38 Page 311

Page 330: Geometry for Computer Graphics.pdf

Let the line equation be p � t � lv

where t � xTi � yTj � zTk and v � xvi � yvj � zvk

They intersect for some � n • (t � lv) � d � n • t � ln • v � d � 0

therefore for the intersection point.

If ||n|| � ||v|| � 1 l� �(n • t � d)

The position vector for P is p � t � lv

If n • v � 0 the line and plane are parallel.

3.15.10 Proof: Position and distance of the nearest point on a plane to a point

General form of the plane equation

Strategy: Express the plane equation as the scalar productof two vectors and use vector analysis to identify a pointQ on the perpendicular from a point P to the plane.

Let Q be the nearest point on the plane to P.

Let the plane equation be ax � by � cz � d � 0

where n � ai � bj � ck

and q � xi � yj � zk

therefore n • q � �d (1)

r is parallel to n, therefore r � ln

and n • r � ln • n (2)

but r � q � p

therefore n • r � n • q � n • p (3)

Substitute (1) and (2) in (3) ln • n � �(n • p � d)

therefore

If ||n|| � 1 l� �(n • p � d)

but q � p � r

Position vector of Q q � p � ln

Distance of Q PQ � ||r|| � ||ln||

If ||n|| � 1 PQ � |l|

l�� �( )n p

n nii

d

l�� �( )n t

n vii

d

312 Geometry for computer graphics

P

Q

Y

X

q

p

r

n

O

Z

03 29/09/04 15:38 Page 312

Page 331: Geometry for Computer Graphics.pdf

3.15.11 Proof: Reflection of a point in a plane

Strategy: Exploit the fact that a line connecting a point andits reflection is parallel to the plane’s normal.

Let the equation of the plane be ax � by � cz � d � 0T is the nearest point on the plane to O and t is its positionvector.

If n � ai � bj � ckthen n • t � �d (1)

P is an arbitrary point and Q is its reflection, with their respective position vectors p and q.r � r� is orthogonal to n

therefore n • (r � r�) � 0

and n • r � n • r� � 0 (2)

p � q is parallel with n

therefore p � q � r � r� � ln (3)

where (4)

but r � p � t (5)

Substitute (1) in (5) n • r � n • p � n • t � n • p � d (6)

Substitute (2) and (6) in (4)

If ||n|| � 1 l� 2(n • p � d)

Substitute � in (3) p � q � ln

Position vector of Q is q � p � ln

3.15.12 Proof: Plane equidistant from two points

Given two distinct points we require to identify a plane suchthat any point on the plane is equidistant to the points.

Strategy: The key to this solution is that the normal of theplane is parallel to the line joining the two points.

Let the plane equation equidistant to P1(x1, y1, z1) and P2(x2, y2, z2) be ax � by � cz � d � 0

P(x, y, z) is any point on this plane which contains Qequidistant to P1 and P2.

l��2( )n p

n nii

d

l��

�n r n r

n nn r

n ni ii

ii

� 2

l��r rn

Proofs 313

pr�

T

r � r�

r

O tn

q

Q P

X

Y

Z

P1

P2

Q

p

X

Y

P

p2

p1

nq

Z

03 29/09/04 15:38 Page 313

Page 332: Geometry for Computer Graphics.pdf

Let n � ai � bj � ck � p2 � p1 (1)

and (2)

then n • (p � q) � 0

therefore n • p � n • q

But the plane equation is n • p � d � 0

therefore d � �n • p � �n • q (3)

Substituting (1) and (2) in (3)

The plane equation is

or

3.15.13 Proof: Reflected ray on a surface

Strategy: Invoke the law of reflection using vectors: The law ofreflection states that the angle of incidence equals the angle ofreflection. The incident ray, reflected ray and the surface normalall lie in a common plane.

Let n be the surface normal vectors be the incident rayr be the reflected rayu be the angle of incidence and reflection

then v � s � ln

and r � v � ln

therefore r � ln � s � ln

and r � s � 2ln (1)

Take the dot n • r � n • s � 2ln • n (2)product of (1)

but by symmetry

n • r � n • (�s) � �n • s (3)

Substitute (3) in (2)�n • s � n • s � 2ln • n

then

If ||n|| � 1 l� �2n • s

If u� 90° r � s

l��n sn nii

( ) ( ) ( ) (x x x y y y z z z x x y y2 1 2 1 2 112 2

212

22� � � � � � � � � 11

222

12 0� � �z z )

( ) ( ( ))p p p p p2 112 2 1 0� � � �i

d �� � � � �� � �( ) ( ( )) ( ) (p p p p p p p p p2 1 112 2 1

12 2 1 2 1i i ))

q p n p p� � � �112

12 2 1( )

314 Geometry for computer graphics

sr

n

θ θ

vv

03 29/09/04 15:38 Page 314

Page 333: Geometry for Computer Graphics.pdf

Proofs 315

3.16.1 Proof: Line intersecting a sphere

There are three scenarios: the line intersects, touches or misses the sphere.

Strategy: The cosine rule proves very useful in setting up a geometric condition that identifiesthe above scenarios, which are readily solved using vector analysis.

Parametric equation of a line

A sphere with radius r is located at C with position vector c � xCi � yCj � zCk

The equation of the line is p � t � lv

where (1)

For an intersection at P

Using the cosine rule

(2)

Substituting (1) in (2) (3)

Identify cosu

Therefore (4)

Substitute (4) in (3)

Therefore (5)

(5) is a quadratic where (6)

and s � c � t

l� � �s v s v si i( ) || ||2 2 2r

|| || || ||q s v s2 2 2 2 22 0� � � � � �r rl li

|| || || ||q s v s2 2 22� � �l li

cos|| ||

u�s v

si

s v s vi � || |||| || cos⋅ u

|| ||q s s2 2 2 2� � �l l u|| || || || cos

|| || || || || || || || || ||2q v s v s2 2 2 2� � �l l u⋅ cos

|| || || || || || || || || ||q v s v s2 2 2 2� � �l l u⋅ cos

|| || or || || or || ||q q q� � � �r r r2 2 2 2 0

||v|| � 1

X

Y

ZT

v

t

c

C

rqP

psλv θ

3.16 Lines, planes and spheres

03 29/09/04 15:38 Page 315

Page 334: Geometry for Computer Graphics.pdf

The discriminant of (6) determines whether the line intersects, touches or misses the sphere.

Position vector for P p � t � lv

where

s � c � tMiss condition

Touch condition

Intersect condition

3.16.2 Proof: Sphere touching a plane

Strategy: A sphere will touch a plane if the perpendiculardistance from its center to the plane equals its radius. Thegeometry describing this condition is identical to finding theposition and distance of the nearest point on a plane to a point.

Given the plane ax � by � cz � d � 0

where n � ai � bj � ck

The nearest point Q on the plane to a point P is given by

q � p � ln (1)

where

The distance PQ � ||ln||

If P is the center of the sphere with radius r, and position vector p the touch point is also given by (1)

when PQ � ||ln|| � r

If ||n|| � 1 l� �(n • p � d)

3.16.3 Proof: Touching spheres

Strategy: Use basic coordinate geometry to identify the touch condition.

The diagram shows two spheres with radii r1 and r2 centered at C1(xC1, yC1, zC1) and C2(xC2, yC2, zC2) respectively, touching at P(xP, yP, zP).

For a touch condition the distance d between C1 and C2 must equal r1�r2:

d x x y y z zC C C C C C� � � � � �( )2 12

2 12

2 12( ) ( )

l���n p

n nii

d

( ) || ||s v si 2 2 2 0� � �r

( ) || ||s v si 2 2 2 0� � �r

( ) || ||s v si 2 2 2 0� � r

l� � �s v s v si i( ) || ||2 2 2r

316 Geometry for computer graphics

np

q Q

P

X

Y

Z

r

03 29/09/04 15:38 Page 316

Page 335: Geometry for Computer Graphics.pdf

Touch condition d � r1 � r2

Intersect condition r1 � r2 � d � |r1 � r2|

Separate condition d � r1 � r2

Touch point

z zr

dz zP C C C� � �1

12 1( )

y yr

dy yP C C C� � �1

12 1( )

x xr

dx xP C C C� � �1

12 1( )

Proofs 317

C1

C2

r1

r2

P

d

03 29/09/04 15:38 Page 317

Page 336: Geometry for Computer Graphics.pdf

318 Geometry for computer graphics

3.17.1 Proof: Point inside a triangle

Strategy: A point P0(x0, y0, z0) within the boundary of the triangle can be located usingbarycentric coordinates.

Let P1(x1, y1, z1), P2(x2, y2, z2) and P3(x3, y3, z3) be the verticesof a triangle.

Using barycentric coordinates we can write

x0 � �x1 � lx2 � bx3

y0 � �y1 � ly2 � by3

z0 � �z1 � lz2 � bz3

where �� l� b� 1

P0 is within the boundary of the triangle if �� l� b� 1 and (�,l,b) ∈ [0, 1].

3.17.2 Proof: Unknown coordinate value inside a triangle

Strategy: Given a triangle with vertices P1, P2, P3 and a point P0(x0, y0, z0), where only two ofthe coordinates are known, the third coordinate can be determined within the boundary ofthe triangle using barycentric coordinates.

For example, if x0 and z0 are known we can find y0 using barycentric coordinates:

x0 � �x1 � lx2 � bx3

where � � l� b� 1

Therefore x0 � x3 � �(x1 � x3) � l(x2 � x3) (1)

Similarly z0 � z3 � �(z1 � z3) � l(z2 � z3) (2)

Using (1) and (2) we can write

Therefore y0 � �y1 � ly2 � by3

P0 is within the boundary of the triangle if �� l� b� 1 and (�,l,b) ∈ [0, 1].Similar formulas can be derived for other combinations of coordinates.

e l

x zx zx z

x zx zx z

x zx z

0 0

2 2

3 3

0 0

3 3

1 1

1 1

2

111

111

1

1� �

22

3 3

11x z

e l

x x x xz z z z

x x x xz z z z

0 3 2 3

0 3 2 3

1 3 0 3

1 3 0 3

� �� �

�� �� �

��� �� �

1

1 3 2 3

1 3 2 3

x x x xz z z z

3.17 Three-dimensional triangles

P1

P2

P0

P3

x0 z0

y0

X

Y

Z

and

03 29/09/04 15:38 Page 318

Page 337: Geometry for Computer Graphics.pdf

Proofs 319

3.18.1 Proof: Planar surface patch

Strategy: Locate the position of a point on a patch bylinearly interpolating across the patch.

Given four points P00, P10, P11, P01 in �2 or �3 thatform a patch

Pu1 � (1 � u)P00 � uP10where u � [0, 1]

Pu2 � (1 � u)P01 � uP11

Puv � (1 � v)[(1 � u)P00 � uP10] � v[(1 � u)P01 � uP11] where v � [0, 1]

Or in matrix form

3.18.2 Proof: Bézier curves in �2 and �3

Linear interpolation

Two scalars V1 and V2 can be linearly interpolated using

V � (1 � t)V1 � tV2, t � [0, 1]

where the sum of the interpolating terms ((1 � t) � t) � 1 (1)

Quadratic interpolation using Bernstein polynomials

From (1) ((1 � t) � t)n � 1 (2)

and when n � 2 ((1 � t) � t)2 � (1 � t)2 � 2t(1 � t) � t2 � 1

which produces the quadratic interpolant:

V � (1 � t)2V1 � 2t(1 � t) � t2V2

The individual terms are called quadratic Bernstein polynomials and are generated by

giving B0,2(t) � (1 � t)2 � 1 � 2t � t2

B1,2(t) � 2t(1 � t) � 2t � 2t2

B2,2(t) � t2

B tk k

t t tkk k

, ( )!( )!

,222!

(1 ) [0, 1]��

� �

2∈

P u P PP Puv � � �[ ]1 1 1

1 01 11 0

00 01

10 11

⎡⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

⎡⎣⎣⎢

⎤⎦⎥

⎡⎣⎢

⎤⎦⎥

v1

3.18 Parametric curves and patches

P11

P10P00

P01

u

v

Pu1

Pu2

Puv

03 29/09/04 15:38 Page 319

Page 338: Geometry for Computer Graphics.pdf

The graphs of the three polynomials are shown in the diagram.The central term 2t(1 � t) � 0 when t � 0 and t � 1, and therefore does not influence the

start and end values of the interpolated value.Furthermore, the central term can be used toinfluence the nature of the interpolant for 0 t 1.

The complete quadratic interpolant becomes

V(t) � (1 � t)2V1 � 2t(1 � t)VC � t2V2

where VC is some arbitrary control value.

Quadratic Bézier curve in and �2 and �3

A quadratic Bézier curve employs the above quadratic Bernstein polynomials to interpolatethe coordinates of two points using a control point pC

p(t) � (1 � t)2p1 � 2t(1 � t)pC � t2p2

or in matrix form

Cubic Bézier curve in �2 and �3

When n � 3 in (2) ((1 � t) � t)3 � (1 � t)3 � 3t(1 � t)2 � 3t2(1 � t) � t3 � 1The individual terms are called cubic Bernstein polynomials and are generated by

giving B0,3(t) � (1 � t)3 � 1 � 3t � 3t2 � t3

B1,3(t) � 3t(1 � t)2 � 3(t � 2t2 � t3)

B2,3(t) � 3t2(1 � t) � 3(t2 � t3)

B3,3(t) � t3

The graphs are shown in the following diagram.The central terms 3t(1 � t)2 � 0 and 3t2(1 � t) � 0

when t � 0 and t � 1, and therefore do not influencethe start and end values of the interpolated value.Furthermore, these terms can be used to influence thenature of the interpolant for 0 t 1.The complete cubic interpolant becomes

B tk k

t t tkk k

, ( )!( )!

,333!

(1 ) [0, 1]��

� �

3∈

pppp

( )t t t C��

�[ 1]1 2 1

2 12 2 01 0 0

2

⎣⎢⎢

⎦⎥⎥

⎢⎢

⎥⎥⎥

320 Geometry for computer graphics

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

2t(1 � t)

(1 � t)2 t2

t

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

(1 � t)3

3t(1 � t)2 3(1 � t)t2

t3

t

03 29/09/04 15:38 Page 320

Page 339: Geometry for Computer Graphics.pdf

V(t) � (1 � t)3V1 � 3t(1 � t)2VC1 � 3t2(1 � t)VC2 � t3V2

Therefore, a cubic Bézier curve has the following form:

p(t) � (1 � t)3p1 � 3t(1 � t)2pC1 � 3t2(1 � t)pC2 � t3p2

or in matrix form

In general, a Bézier curve has the form:

or

or

3.18.3 Proof: Bézier surface patch in �3

A Bézier surface patch is defined as

where

Quadratic Bézier surface patch in �3

A quadratic Bézier surface patch is defined as

where B u i u u B v j vii i

jj

, ,( ) ( )22

22 1 2� � ��⎛

⎝⎞⎠

⎛⎝

⎞⎠and ( ) (( )1 2� �v j

p p( , ) , , ,u v B u B viji

j i j���

2

22

200

( ) ( )∑∑

B t mi t t B t n

j ti mi m i

j nj

, ,( ) ( )� � ��⎛⎝

⎞⎠

⎛⎝

⎞⎠1 and ( ) (( )1� �t n j

p p( , ) , , ,u v B u B vi mj

n

i

m

j n i j��� 00

( ) ( )∑∑

p p( ) ( ) where ( )t ni B t B t n

ii n ii

n

i n� ��

⎛⎝

⎞⎠

⎛⎝∑ , ,

0

⎞⎞⎠ −t ti n i( )1 �

p p( ) ( )t ni t ti n i

ii

n

� � �

⎛⎝

⎞⎠∑ 1

0

p p( ) ( )t ni t t i ni n i

i� � � ��⎛⎝⎜

⎞⎠⎟ 1 for 0

p( )t t t t�

� ��

�[ 1]3 2

1 3 3 13 6 3 03 3 0 01 0 0 0

⎢⎢⎢

⎥⎥⎥

ppppp

1

1

2

2

c

c

⎢⎢⎢

⎥⎥⎥

Proofs 321

03 29/09/04 15:38 Page 321

Page 340: Geometry for Computer Graphics.pdf

which means that pi,j is a 3 � 3 matrix of 3D control points.

Or in matrix form

or

The diagram shows an example.

Cubic Bézier surface patch in �3

A cubic Bézier surface patch is defined as

where and

which means that pi,j is a 4 � 4 matrix of 3D control points.

B v j v vjj j

, ( ) ( )222 1� � �⎛

⎝⎞⎠B u i u ui

i i, ( ) ( )3

33 1� � �⎛⎝

⎞⎠

p p( , ) ( ) ( ), , ,u v B u B viji

j i j���

30

3

0

3

3∑∑

X

Y

Z

P00

P01

P02

P10

P11P12

P20

P21

P22

pp p pp( , )u v u u�

��[ ]

1 2 12 2 01 0 0

2 00 01 02

11⎡

⎣⎢⎢

⎦⎥⎥ 00 11 12

20 21 22

1 2 12 2 01 0 0

p pp p p

⎢⎢

⎥⎥

⎣⎢⎢

⎦⎥

��

⎥⎥

⎢⎢

⎥⎥

vv2

1

pp pp p p( , )u v u u u u� � �[( ) ( ) ]

p2 00 01 02

10 11 11 2 1222

20 21 22

( ))

p p p

⎢⎢

⎥⎥

⎢⎢

⎥⎥

12 1

2

2

��v

v vv

(

322 Geometry for computer graphics

03 29/09/04 15:38 Page 322

Page 341: Geometry for Computer Graphics.pdf

Or in matrix form

or

The diagram shows an example.

X

Y

Z

P00

P01

P02

P03

P10

P11 P12

P13

P20 P21 P22

P23

P30P31 P32 P33

p( , )u v u u u�

� ��

�[ ]3 2 1

1 3 3 13 6 3 03 3 0 01 0 0 0

⎢⎢⎢

⎥⎥⎥⎥

p p p pp p p pp p p pp p

00 01 02 03

10 11 12 13

20 21 22 23

30 331 32 33

1 3 3 13 6 3 03 3 0 01 0 0 0p p

⎢⎢⎢

⎥⎥⎥

⎢⎢

� ��

�⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

vvv

3

2

1

p

p p p p

( , ) ( ) ( ) ( )u v u u u u u u� � � �[ ]1 3 1 3 13 2 2 300 01 02 003

10 11 12 13

20 21 22 23

30 31 32 33

p p p pp p p pp p p p

⎢⎢⎢⎢

⎥⎥⎥

( )( )( )

⎢⎢⎢⎢⎢

⎥⎥⎥

1

3 13 1

3

2

2

3

v

v vv v

v⎥⎥⎥

Proofs 323

03 29/09/04 15:38 Page 323

Page 342: Geometry for Computer Graphics.pdf

4 Glossary

abscissa The x-coordinate of the ordered pair (x, y).acute angle An angle between 0° and 90°.acute triangle A triangle that has all interior angles 90°.adjacent (angle, point, side, plane) Lying next to another angle, point, side, plane.affine transformation A function with domain and codomain �2, with a rule of the form x Ax � a, where a is a vector with two components and A is a 2 � 2 matrix.altitude (of a geometric figure) The perpendicular from a vertex to the opposite side, or theextended opposite side.angle (between two lines) The smallest of the two angles formed between two intersecting lines.angle (between two planes) The dihedral angle formed by two planes, which is also the anglebetween the planes’ normals.angle (of depression) The angle between a reference horizontal line from the observer’s eye andthe line of sight to an object below the observer.angle (of elevation) The angle between a reference horizontal line from the observer’s eye andthe line of sight to an object above the observer.angle (of inclination) The positive angle between 0° and 180° that a line makes with the x-axis.annulus The region bounded by two concentric co-planar concentric circles.apex The point that is the greatest distance from an edge or plane.apothem (of a regular polygon) The perpendicular from the center of a polygon to a side.arc The part of a circle between two points on the circle.arclength The length of an arc of a circle.arccosine The inverse function of the trigonometric cosine function with domain [0,p].

arcsine The inverse function of the trigonometric sine function with domain arctangent The inverse function of the trigonometric tangent function with domain

[ , ].� 12

12

p p

[ ]�12

12

p p, .

325

04 29/09/04 15:39 Page 325

Page 343: Geometry for Computer Graphics.pdf

area (of a geometric solid) The total area of all the solid’s faces.

Argand diagram Represents complex numbers as points on a plane such that z � x � yirepresents the point (x, y).

astroid A hypercycloid of four cusps.

asymptote A straight line to which a curve approximates but never touches.

auxiliary line A line introduced to a geometric figure to clarify a proof.

axiom An unproven mathematical statement, e.g. Two straight lines may intersect at onepoint only.

axis A line of reference for measuring distances (x-axis) or a straight line that divides a plane or solid figure.

axis of symmetry A straight line reference used to describe the symmetric properties of ashape or figure.

Barycentric coordinates A set of numbers locating a point in space relative to a set of fixedpoints.

base angles The two angles formed by a base line and two sides, as found in an isoscelestriangle.

binomial expansion The expansion of a binomial expression of the form (a � b)n.

bisect To divide into two equal parts.

bisector A point, line or plane that divides a figure into two equal parts.

bisector (of an angle) The line that divides an angle into two equal angles.

cardioid The locus of a point on a circle in �2 that rolls on an equal, fixed circle. The equation

is given by

Cartesian coordinate system A system where a pair of coordinates (x, y) define a point in �2 orthree coordinates (x, y, z) define a point in �3.

Cartesian unit vector A unit vector aligned with the x-, y- or z-axis.

catenary The curve of a heavy cable hanging in a gravitational field.

catenoid The surface of revolution formed by rotating a catenary about a vertical axis.

central angle (of a regular polygon) The angle formed at a polygon’s center by two radii to an angle.

center (of an ellipse or hyperbola) The point of intersection of the axes of symmetry of the conic.

centroid A point in a shape representing the arithmetic mean of the coordinates.

chord A line segment joining two points on a curve.

circle The set of points in a plane that are a fixed distance (radius) from a specified point(center) in the plane.

circle of curvature The circle whose radius equals the radius of curvature of a curve.

circular functions The trigonometric functions: sine, cosine, tangent, cosecant, secant andcotangent.

circumcenter The common point of intersection of the perpendicular bisectors of the sides ofa triangle.

x y ax a x y2 2 2 2� � � � .

326 Geometry for computer graphics

04 29/09/04 15:39 Page 326

Page 344: Geometry for Computer Graphics.pdf

circumcircle See circumscribed circle.

circumference The length of a circle’s boundary.

circumscribed circle The circle which intersects all the vertices of a polygon.

co-linear points Two or more points intersected by a common line.

complementary angles Two angles whose sum equals 90°.

complex number A number of the form a � bi where and a and b are real numbers.

component (of a vector) See vector.

component form (of a vector) Representing a vector a in terms of its Cartesian unit vectors i andj: a � xi � yj � zk.

concave polygon A polygon which contains one or more angles greater than 180°.

concentric Means that two circles or spheres share a common center.

concurrent lines Three or more lines passing through a common center.

cone A solid figure formed by a closed curve base and a separate vertex through which linesintersect with points on the closed curve.

congruent Identical.

congruent triangles Identical triangles.

conic sections The curves obtained as cross-sections when a double cone is sliced by a plane.See also ellipse, hyperbola, and parabola.

contour plot A set of contours for a given function.

convex polygon A polygon whose angles are all less than 180°.

coordinate A scalar used within a coordinate system to locate a point. See Cartesiancoordinate system, cylindrical coordinate system, and spherical coordinate system.

corresponding angles Two angles in the same relative position when two lines are intersected bya third line. When the two lines are parallel, the corresponding angles are equal.

cosecant (of an angle A) A trigonometric function representing 1/sina, provided that sina� 0.

cosine (of an angle A) A trigonometric function representing the ratio of the adjacent side tothe hypotenuse in a right-angled triangle.

cosine rule A rule relating the three sides and one angle of a triangle.

cotangent (of an angle A) A trigonometric function representing 1/tan �, provided that tana� 0.

cross product See vector product.

cube A platonic object having six square faces (hexahedron).

cubic A mathematical expression of the form ax3 � bx2 � cx � d where a � 0.

cubic expression A polynomial of the form ax3 � bx2 � cx � d where a � 0.

cusp A double point on a curve at which two tangents are coincident.

cylinder A solid formed by a closed cylindrical surface bounded by two planes.

cylindrical coordinate system A system of coordinates where a point is located in space withreference to its height above a ground plane and its polar coordinates on this plane.

i � �1

Glossary 327

04 29/09/04 15:39 Page 327

Page 345: Geometry for Computer Graphics.pdf

derivative of a function For a function f(x) its derivative f�(x) is the gradient of the graph atpoint x.determinant of a matrix A scalar quantity derived from the terms of a matrix. If

diagonal A line joining two nonadjacent vertices.

diameter A chord through the center of a circle or sphere.

dihedral group The group of order 2n formed by the symmetries of a regular n-gon.

direction cosines The angles formed between a line and the x-, y- and z-axes.

directrix A line associated with a conic. See also eccentricity.

discriminant (of a quadratic equation) The term b2 � 4ac.

dodecahedron A Platonic object that has 12 faces, each of which is a regular pentagon.

domain of a function The set of allowable input values for a function. See also function.

dot product See scalar product.

eccentricity The ratio of the distances from a point on a conic to the focus of the conic andfrom that point to the directrix of the conic.

edge A line joining two vertices.

ellipse A conic having eccentricity between 0 and 1.

equidistant Having equal distance from a reference point.

equilateral Having sides of equal length.

equilateral triangle A triangle that has sides of equal length.

Euclidean space Represented by the symbol �n where n is the spatial dimension.

exterior angle (of a polygon) The external angle of a polygon.

face A planar region bounding a polyhedron.

focus A point associated with a conic. See also eccentricity.

frustum Part of a solid figure cut off by two parallel planes.

function A rule which assigns to each element of one set one element of another set. Forexample, f (x) � x � 1.

geometric form (of a vector) Representing a vector a in terms of its magnitude ||a|| and direction �.

golden ratio The constant

golden rectangle A rectangle with sides m (long side) and n (short side) such that m/n equalsthe golden ratio.

gradient (of a graph at a point) The gradient of the tangent to the graph at that point.

gradient (of a line) See slope (of a line).

hexagon A six-sided polygon.

hexahedron A polyhedron that has six faces (a cube).

f� � �12

1 5 1 618( ) . …

A A� � �a bc d ad bc⎡

⎣⎢⎤⎦⎥

, det .

328 Geometry for computer graphics

04 29/09/04 15:39 Page 328

Page 346: Geometry for Computer Graphics.pdf

hyperbola A conic having eccentricity greater than 1.

hypotenuse The side opposite the right-angle in a right-angled triangle.

i-component (of a vector) The scalar x in the component form of the vector a � xi � yj � zk .

icosahedron A polyhedron that has twenty faces.

identity matrix A matrix, whose function performs a null operation.

imaginary part (of a complex number) The scalar term associated with the i term in a complexnumber. See also complex number.

inclined plane A plane that is not horizontal.

intercept The point where a line or surface meets the x-, y- or z-axis.

interior angle The angle between two sides of a polygon.

inverse trigonometric functions The functions sin�1, cos�1, tan�1, csc�1, sec�1, and cot�1.

isogonal Having equal angles.

isometric Having equal lengths.

isoperimetric Having equal perimeters.

isosceles triangle A triangle with two equal sides only.

j-component (of a vector) The scalar y in the component form of the vector a � xi � yj � zk.

k-component (of a vector) The scalar z in the component form of the vector a � xi � yj � zk.

linear A first degree equation, expression, etc., such as x � 2y � 3z � 4.

linear transformation A function having the same domain and codomain such that x Ax,where the linear transformation is determined by matrix A.

locus A curve defined by a particular property.

magnitude (of a vector a) The length of the line segment representing the vector, and written as ||a||.

major axis (of an ellipse) The line segment from (�a, 0) to (a, 0) for the ellipse x2/a2 � y2/b2 � 1,where a � b � 0.

matrix A rectangular array of numbers.

minor axis (of an ellipse) The line segment from (0, �b) to (0, b) for the ellipse x2/a2 � y2/b2 � 1,where a � b � 0.

n-gon A regular polygon with n sides.

oblique angle An angle that is not a multiple of 90°.

oblique pyramid A pyramid whose vertex is not perpendicular to the center of its base.

obtuse angle An angle between 90° and 180°.

octagon An eight-sided polygon.

octahedron A polyhedron with eight faces.

ordered pair A set with a first and second element, e.g. (x, y).

ordinate The y-coordinate of a point as used in Cartesian coordinates.

origin A point of reference from which distances are measured.

orthogonal At right angles.

Glossary 329

04 29/09/04 15:39 Page 329

Page 347: Geometry for Computer Graphics.pdf

parabola A conic having eccentricity 1.

parallelepiped A prism whose faces are parallelograms.

parallelogram A quadrilateral constructed from two pairs of parallel sides.

parameter A variable used when defining a function or curve.

parametric equation Equations that generate the coordinates of a point on a curve using acommon variable (parameter), e.g. x � cos(t), y � sin(t).

Pascal’s triangle The triangle of numbers used to generate binomial coefficients.

pentagon A five-sided polygon.

pentahedron A polyhedron with five faces.

perimeter The length of a closed curve.

perpendicular A line/plane that is at right angles to another line/plane.

perpendicular bisector (of a line segment) The line that cuts the line segment halfway along itslength and is at right angles to the line.

plane A surface where a line joining any two points on the surface is also on the surface.

point A point in space that has position but no spatial extension.

polar coordinates (of a point P) The numbers r and u for the point P with Cartesian coordinates (r cosu, r sinu).

polygon A figure constructed from three or more straight sides.

polyhedral angle The solid angle between three or more faces of a polyhedron.

polyhedron A figure constructed from plane polygonal faces.

position vector A vector representing the line segment from the origin to a point.

prism A solid figure constructed from two congruent polygons where corresponding verticesare connected with straight edges.

pyramid A solid figure constructed from a polygonal base and lateral triangular faces.

Pythagoras’ theorem For a right-angled triangle with sides a, b and c then a2 � b2 � c2 where a is the hypotenuse.

quadrant One of the four regions defined by the Cartesian coordinate system.

quadratic curve A curve represented by an equation of the form Ax2 � Bxy � Cy2 � Dx �Ey � f � 0, where A, B, C are not all zero.

quadrilateral A plane figure constructed from four edges.

quaternion A four-tuple of the form (s, v) where s is a scalar and v � ai � bj � ck .

radian A unit of angular measure such that 2p[rad] � 360°.

radius (of a circle) The distance from the center of the circle to any point on the circle’scircumference.

rectangle A quadrilateral with all interior angles right angles.

rectangular hyperbola A hyperbola for which the asymptotes are at right angles.

reflex angle An angle between 180° and 360°.

330 Geometry for computer graphics

04 29/09/04 15:39 Page 330

Page 348: Geometry for Computer Graphics.pdf

regular polygon A polygon with equal interior angles and equal sides.

regular polyhedron A polyhedron with congruent polyhedral angles and regular congruentfaces.

regular prism A right prism that has regular polygons as bases.

right angle An angle equal to 90°.

right-angled triangle A triangle with one interior angle equal to a right angle.

right circular cone A cone for which the cross-sections obtained by slicing the cone with planesat right angles to the axis are circles.

scalar A single number, as opposed to a vector.

scalar product A vector operation also known as the dot product, where given two vectors a and b, a • b � ||a|| � ||b|| cosa, where a is the angle between the vectors.

scalene triangle A triangle constructed from three unequal sides.

secant (of an angle A) The secant of a is 1/cosa, provided that cosa� 0.

sector (of a circle) The region between two radii of a circle.

segment (of a circle) The region between a chord of a circle and the arc determined by thechord’s ends.

semicircle Half a circle.

similar Two shapes are similar if one is an enlargement of the other.

sine (of an angle A) A trigonometric function representing the ratio of the side opposite a tothe hypotenuse in a right-angled triangle.

sine rule A rule that relates pairs of sides and the corresponding opposite angles of a triangle.

slope (of a line) The gradient of a line expressed as a ratio of the y rise divided by the x runbetween two points.

spherical coordinate system A polar coordinate system where a point P is defined as P � (r, u,f),where r is a radius, u and f are angles.

square A quadrilateral with four equal sides and interior angles are right angles.

supplementary angles Two angles whose sum equals 180°.

surface of revolution A surface created by rotating a contour about an axis.

tangent A line whose slope equals that of a curve where it touches the curve.

tangent (of an angle A) A trigonometric function representing the ratio of the side opposite ato the adjacent side in a right-angled triangle.

tetrahedron A solid figure constructed from four triangular faces.

transformation Another name for a function.

trapezium A quadrilateral that has one pair of opposite sides parallel.

triangle A closed, three-sided figure.

triple product The product of three vectors A, B and C: the triple scalar product is A • (B � C)and the triple vector product is A � (B � C).

Glossary 331

04 29/09/04 15:39 Page 331

Page 349: Geometry for Computer Graphics.pdf

unit circle The circle with radius 1 and center at the origin.

unit square The square in �2 with vertices (0, 0), (0, 1), (1, 1) and (0, 1).

vector A single column matrix.

vector product A vector operation also known as the cross product, where given two vectors a and b, a � b � c, where ||c|| � ||a|| � ||b|| sina and a is the angle between the vectors.

zero vector A vector in which every component is equal to zero.

332 Geometry for computer graphics

04 29/09/04 15:39 Page 332

Page 350: Geometry for Computer Graphics.pdf

5 Bibliography

P. Abbott, Teach Yourself Geometry, 1948, The English Universities Press. London

M. Aigner & G.M. Ziegler, Proofs from THE BOOK, 2000, Springer-Verlag. Berlin

J. Arvo, Graphics Gems II, 1991, Academic Press. San Diego

M. Berger, Geometry I, 1987, Springer-Verlag. Berlin

A. Bowyer & J. Woodwark, A Programmer’s Geometry, 1983, Butterworths. Sevenoaks

C. Boyer & U.C. Merzbach, A History of Mathematics, 1968, John Wiley & Sons. New York

L. Brand, Vector and Tensor Analysis, 1947, John Wiley & Sons. New York

K. Critchlow, Order in Space, 1969, Thames and Hudson. London

W. Dunham, The Mathematical Universe, 1994, John Wiley & Sons. New York

R. Fenn, Geometry, 2001, Springer-Verlag. London

P.C. Gasson, Geometry of Spatial Forms, 1983, John Wiley & Sons. Chichester

W. Gellert et al., Concise Encylopedia of Mathematics, 1989, Van Nostrand Reinhold. New York

A. Glassner, An Introduction to Ray Tracing, 1989, Academic Press. San Diego

A. Glassner, Graphics Gems, 1990, Academic Press. San Diego

T. Gowers, Mathematics: A Very Short Introduction, 2002, Oxford University Press. Oxford

J. Gullberg, Mathematics: From the Birth of Numbers, 1997, W.W. Norton. New York

J. Harris & H. Stocker, Handbook of Mathematics and Computational Science, 1998,Springer-Verlag. New York

M. Hausner, A Vector Space Approach to Geometry, 1965, Prentice-Hall. Englewood Cliffs

D. Hilbert, Foundations of Geometry, 1971, Open Court. Chicago

L. Hogben, Mathematics for the Million, 1967, Pan Books. London

S. Hollingdale, Makers of Mathematics, 1989, Penguin. London

A. Holme, Geometry: Our Cultural Heritage, 2000, Springer-Verlag. Berlin

D. Kirk, Graphics Gems III, 1992, Academic Press. San Diego

333

05 29/09/04 15:39 Page 333

Page 351: Geometry for Computer Graphics.pdf

A. Lanoëlle et al., Mathématiques: Géométrie, 2001, Didier. Paris

L. Mlodinow, Euclid’s Window, 2001, Penguin. London

P.J. Nahin, An Imaginary Tale, The Story of √—–�1, 1998, Princeton University Press. Princeton

R. Parent, Computer Animation: Algorithms and Techniques, 2002, Academic Press.San Francisco

R. Plastock, Computer Graphics, 1986, McGraw-Hill. New York

A. Posamentier, Advanced Euclidean Geometry, 2002, Key College Publishing. Emeryville

J. Rooney, ‘A survey of representations of spatial rotation about a fixed axis’, 1977,Environment and Planning B, volume 4, pp. 185–210

W.W. Sawyer, Prelude to Mathematics, 1955, Penguin Books. Harmondsworth

M. Shapiro, Mathematics Encyclopedia, 1973, Doubleday & Company. New York

D. Singer, Geometry: Plane and Fancy, 1998, Springer-Verlag. New York

M. Speigel, Theory and Problems of Vector Analysis, 1959, McGraw-Hill, New York

A. Watt & M. Watt, Advanced Animation and Rendering Techniques, 1992, Addison-Wesley.New York

D. Wells, A Dictionary of Curious and Interesting Geometry, 1991, Penguin Books. London

A.N. Whitehead, Introduction to Mathematics, 1911, Thornton Butterworth. London

S. Wolfram, The Mathematica Book, 1999, Wolfram Media and Cambridge University Press.Cambridge

334 Geometry for computer graphics

05 29/09/04 15:39 Page 334

Page 352: Geometry for Computer Graphics.pdf

Aacute

angle, 4triangle, 11

additionquaternions, 33vectors, 30

algebramatrices, 2vectors, 29

alternateexterior angles, 4interior angles, 4, 86segment theorem, 183

altitude, see heightaltitude theorem, 192angle/angles, 4

acute, 4alternate exterior, 4alternate interior, 4alternate internal, 219between a line and a plane, 62, 143, 311between lines, 45, 55, 112, 131, 276between planes, 61, 143, 311between vectors, 253chord, circle, 9complementary, 4corresponding, 4definitions, 4exterior, 4interior, 4obtuse, 4

opposite, 4right, 4rotation, 4straight, 4subtended by the same arc, 183supplementary, 4vertical, 4

arccircle, 9definition, 9length, circle, 9

area/areascircle, 9, 184cyclic quadrilateral, 16, 86, 209ellipse, 9, 187Heron’s formula, 13, 81, 194, 214irregular polygon, 221parallelogram, 212polygon, 221quadrilateral, 16, 212, 214regular polygon, 19, 220sector, 185segment, 184spherical segment, 231spherical triangle, 15torus, surface, 23trapezoid, 216triangle, 13, 32, 81, 96, 193triangle, determinant, 13, 82, 195triangle, trigonometric method,

13associative laws, vectors, 253

Index

05 29/09/04 15:39 Page 335

Page 353: Geometry for Computer Graphics.pdf

Bbarycentric coordinates, 151, 318base/bases

cone, 22cylinder, 22prism, 21trapezium, 16trapezoid, 16triangle, 13

Béziercurve, 68, 165, 320patch, 69, 166, 321

Ccardioid, 158Cartesian coordinates system, 26, 249Cavalieri’s theorem, 224Cayley numbers, 256center

of circle, 9of sphere, 22

centroid, 15chord, 9

angles subtended by, 9theorem, 186

circle/circles, 9, 183arc length, 9, 78area, 9, 78, 184area of sector, 9, 78area of segment, 9, 78center, 9circumference, 9circumscribed, 201, 217definition, 9diameter, 9equation, 128, 293equation, parametric, 156, 293inscribed, 198intersecting, 51, 290length of chord, 9, 78perimeter, 9, 78properties of, 9, 78radius, 9sector, area, 9, 78, 185segment, area, 9, 78touching, 51, 290

circumcenter, triangle, 14circumference, definition, 9cofunction identities, 5, 75, 171coiled ring, 162

commutative properties, vectors, 253complementary angles, 4complex numbers, 256components

vector product, 31vectors, 29

compound-angle identities, 5, 173cone/cones, 22, 88

area, 22, 88, 228formulas, 22volume, 22, 229

congruent triangles, 11coordinate system/systems, 26, 90,

249Cartesian, 26, 90, 249cylindrical, 27, 91, 250left-handed, 26polar, 90, 249polar, plane, 27right-handed, 26spherical, 28, 92, 250

cosecant, 5cosine/cosines, 5

curve, 154rule, 13, 190squared curve, 156

cotangent, 5cross product, vectors, 254cube/cubes, 23, 237

circumsphere radius, 23, 237dihedral angle, 23, 238in-sphere radius, 23, 237formulas, 23mid-sphere radius, 23, 237surface area, 247volume, 23, 247

cubicBézier curve, 68, 165Bézier patch, 69, 167

curve/curvesBézier, 68, 165cosine, 154Lissajous, 156parametric, 67, 154second degree, 53sine, 154

cyclic polygon, 19alternate internal angles, 19, 219

cyclic quadrilateral, 16, 86, 209area, 16, 209

336 Geometry for computer graphics

05 29/09/04 15:39 Page 336

Page 354: Geometry for Computer Graphics.pdf

circumscribed radius, 16diagonals, 16, 209symmetry properties, 16

cylinder/cylinders, 22, 88formulas, 22, 88surface area, 22, 88volume, 22, 88

cylindrical coordinates, 27, 250

Ddegree/degrees, angle, 4determinants, 2

area properties, 195diameter

circle, 9sphere, 22

dihedral angle, 23, 238, 242distance, 26

Cartesian coordinates, 26cylindrical coordinates, 27formulas, 26polar coordinates, 27spherical coordinates, 28

dodecahedron, 23, 237circumsphere radius, 23, 237dihedral angle, 23, 238, 244formulas, 23in-sphere radius, 23, 237mid-sphere radius, 23, 237surface area, 23, 247volume, 23, 248

dot product, 30, 252double-angle identities, 5, 175

Eedge, polyhedron, 23ellipse, 9

area, 9, 187equation, 53, 128, 293parametric equation, 156, 159,

293ellipsoid, 70, 168elliptic

cone, 70, 168cylinder, 70, 168hyperboloid, 70, 168paraboloid, 70, 168

equation/equationscardioid, 158circle, 53, 128

circle, parametric, 53coiled ring, 16ellipse, 53, 128ellipse, parametric, 53, 159hyperbola, 54, 129hyperbola, parametric, 54intersecting lines, 42logarithmic spiral, 157Neil’s parabola, 158parabola, 54, 128, 157parabola, parametric, 54, 157parametric, line, 42parametric, plane, 58planar patch, 162sinusoid, 161sinusoidal ring, 162spiral, 157, 159

equilateral triangle, 11, 200, 202,206

Euclidean geometry, 4even-odd identities, 5

Fface

lateral, prism, 21lateral, pyramid, 21

focus, ellipse, 293 frustum

conical, 22, 88, 228, 230pyramid, 21, 227

functions of the half-angle, 5

Ggeometry, Euclidean, 4Guldin’s first rule, 233Guldin’s second rule, 233

Hhalf-angle, functions, 5height

cone, 22prism, 21trapezium, 16trapezoid, 16triangle, 13

Heron’s formula, 13, 194Hessian normal form, 42, 58, 304hexagon, 86

cyclic, 86hexahedron, 23

Index 337

05 29/09/04 15:39 Page 337

Page 355: Geometry for Computer Graphics.pdf

hyperbola, 54definition, 54equations, 54, 129, 296equations, parametric, 54, 296

hypotenuse, 11

Iicosahedron, 23, 237

circumsphere radius, 23, 237dihedral angle, 23, 238, 245formulas, 23in-sphere radius, 23, 237mid-sphere radius, 23, 237surface area, 23, 247volume, 23, 248

identity/identitiescofunction, 5, 75, 171compound angle, 5, 75, 173double-angle, 5, 76, 175equations, 5, 75even-odd, 5, 75half-angle, 5, 76, 176inverse trigonometric functions, 5matrix, 37, 103, 108, 265, 271multiple-angle, 5, 76, 175Pythagorean, 5, 75, 171trigonometric, 5

interior angles, 4interpolation

linear, 319quadratic, 319

intersectingcircles, 126, 290line and a circle, 123, 288line and a plane, 62, 311line and a sphere, 64, 148, 315lines, 111, 275line segments, 286planes, 61, 139, 141, 308

isosceles triangle, 11

Llaw of cosines, 13law of sines, 13law of tangents, 13line/lines

2D definitions, 42, 2722D intersecting, equations, 442D parallel, equations, 46, 2782D perpendicular, equations, 46, 278

3D definitions, 55, 2973D intersecting, equations, 55, 2973D parallel, equations, 563D perpendicular, equations, 56angle between, 112, 131, 276, 298Cartesian forms, 43, 272equidistant from two points, 48,

120, 284general form, 42Hessian normal form, 42, 109, 273intersecting a sphere, 64, 148intersecting circles, 51intersection, 49, 111, 130, 275normal form, 42, 109parallel, 114, 132, 278, 298parametric form, 42perpendicular, 114, 132, 278, 298parallel, 4segment, 49, 121, 285shortest distance, 279skew, shortest distance, 56, 134, 302straight, 4three points, 113, 131, 277, 298two points, 43, 55, 110, 130, 273

linear interpolation, 319Lissajous curve, 156

Mmagnitude, vectors, 30, 252matrix

identity in �2, 37, 103, 265identity in �3, 41, 108, 271

median/medians, 15intersection, triangle, 15triangle, definition, 15

modulated surface, 68, 163Mollweide’s formula, 191multiple-angle identities, 5, 175

NNeil’s parabola, 158Newton’s rule, 192normal vector, 109normalizing a vector, 30, 252

Ooblique

cone, 22cylinder, 22prism, 21

338 Geometry for computer graphics

05 29/09/04 15:39 Page 338

Page 356: Geometry for Computer Graphics.pdf

obtuseangle, 4triangle, 11

octahedron, 23, 237circumsphere radius, 23, 237dihedral angle, 23, 238formulas, 23, 237in-sphere radius, 23, 237mid-sphere radius, 23, 237surface area, 23, 247volume, 23, 248

octonions, 256opposite angles, 4ordinate, 26

Pparabola, 54

equations, 54, 128, 295equations, parametric, 54, 157, 295Neil’s, 158

parallel line/lines, 46, 114, 132, 278equations, 46, 278

parallelogram, 16, 207altitude, 16, 207area, 16, 207, 212diagonals, 16, 207, 210symmetry properties, 16, 210

parallelpiped, 21, 225volume, 21, 225

parametriccurve in �2, 67, 154, 319curve in �3, 67, 158, 319surfaces in �3, 163

perpendicular line/lines, 46, 114, 132, 278equations, 46, 114, 278

planar patch, 67, 162, 318plane equations, 58, 303

Cartesian, 58, 135, 303from three points, 59, 137, 306general form, 58, 135, 303Hessian normal form, 58, 135, 303parametric form, 59, 136, 305

plane/planes, 135angle between, 61, 143, 311equidistant from two points, 63, 145, 313intersecting, 60, 139, 308normal to a line, 60, 138, 308parallel to a line, 60, 138, 308touching a sphere, 64

Platonic solids, 23, 233

point/pointsnormal to a line, 48 57, 119, 133, 283, 301reflected in a line, 47, 57, 117, 133, 281, 300reflected in a plane, 63, 145, 313

point on a linenearest to a point, 47, 56, 115, 132,

279, 299perpendicular to the origin, 46, 56,

279, 299point on a plane

nearest to a point, 62, 144, 312point inside a triangle, 151, 318polar coordinates, 27, 249polygon/polygons, 19, 86, 218

alternate internal angles, 219area using angles, 220, 223area using Cartesian coordinates, 19, 87area using determinants, 221area using edges, 19circumradius, 222cyclic, 19external angles, 19, 218inradius, 222internal angles, 19, 86, 218properties, regular, 222regular, 19, 87

polyhedron/polyhedra, 23position vector, 30prism/prisms, 21

height, 21parallelpiped, 21rectangular parallelpiped, 21volume, 21, 224

product/productsscalar, 30triple, scalar, 31triple, vector, 32vector, 30, 31

pyramids, 21surface area, 225volume, 21, 226volume of a frustum, 21

Pythagoreanidentities, 5, 171theorem, 12, 189

Qquadrant, 26quadratic Bézier curve, 165quadratic Bézier patch, 166

Index 339

05 29/09/04 15:39 Page 339

Page 357: Geometry for Computer Graphics.pdf

quadrilateral, 16, 19, 84, 207area, 16, 84, 208, 212, 214circumradius, 16, 83cyclic, 86, 209diagonal, 16, 84general, 16in a circle, 16inradius, 16symmetry properties, 16tangent, 16, 208

quaternions, 33, 97, 256addition, 33, 97definition, 33equal, 33Hamilton’s rules, 33inverse, 34, 97magnitude, 34, 97matrix, 34, 98multiplication, 33, 97rotating a vector, 34, 97subtraction, 33, 97

Rradian, 5radius/radii

circle, 9circumscribed, circles, 14, 82inscribed, circles, 14, 82

rectangle, 16, 207area, 16, 207circumradius, 16, 85, 207, 217diagonal, 16, 207symmetry properties, 16

rectangular parallelpiped, 21surface area, 21volume, 21

reflected ray on a surface, 63, 146, 314regular

polygon/polygons, 19, 222polyhedron/polyhedra, 23pyramid, 21

rhomboid, see parallelogramrhombus/rhombi, 16, 208

altitude, 16, 208area, 16, 208diagonals, 16, 208symmetry properties, 16

rightangle, 4cone, 22

cylinder, 22prism, 21triangle, 11

Sscalar

products, 30, 252triple product, 31, 255

secant, 9secant-tangent theorem, 9secant theorem, 9trigonometric function, 5

second degreecurves, 53, 128, 293surfaces, 70, 168

sectorcircle, 9circle, area, 9, 185

segmentcircle, 9circle, area, 9, 184spherical, 88

similar triangles, 11sine, 5

curve, 154, 161rule, 13, 189square curve, 155

sinusoidal ring, 162skew lines, 134, 302solid geometry,solids

Platonic, 23of revolution,

sphere, 22, 88equation, 70, 168surface area, 22, 88, 230touching a plane, 64, 149touching a sphere, 64volume, 22, 88, 231

sphericalcoordinates, 28, 250triangle, 15

spherical segment, 22surface area, 22, 231volume, 22, 232

spherical trigonometry, 15cosine rule, 15sine rule, 15

spiral/spiralslogarithmic, 157

340 Geometry for computer graphics

05 29/09/04 15:39 Page 340

Page 358: Geometry for Computer Graphics.pdf

three-dimensional, 159two-dimensional, 157

square, 207area, 207circumradius, 207diagonal, 207, 211inradius, 207

straightangle, 4line, 4lines, equations,

straight linesangle between, 45, 55from three points, 45, 55parallel, 46, 56perpendicular, 46, 56

subtraction, vectors, 30sum/sums

angles of triangle,vectors, 30

supplementary angles, 4surface area

cone, 22cube, 23, 243cylinder, 22dodecahedron, 23, 244icosahedron, 23, 245octahedron, 23, 243Platonic objects, 246rectangular pyramid, 225sphere, 22spherical segment, 22, 231tetrahedron, 23torus, 23, 233

Ttangent, 5

rule, 13, 190tangent quadrilateral, 16

area, 16symmetry properties, 16

tetrahedron/tetrahedral, 21, 23,236

circumsphere radius, 23, 237dihedral angle, 23, 238, 242, 244formulas, 23, 236in-sphere radius, 23, 236mid-sphere radius, 23, 236surface area, 23, 247volume, 21, 23, 89, 247

theorem/theoremsalternate segment, 183altitude, 192Cavalieri’s, 224chord, 186Heron’s formula, 13Pythagorean, 12, 189secant, 186secant-tangent, 186

three-dimensional objects, 224touching

circles, 126, 290line and circle, 288sphere and a plane, 149, 316spheres, 150, 316

torus, 23surface area, 23, 89volume, 23, 89, 233

transformations, 35, 99, 260homogeneous, 260reflection in �2, 36, 101, 263reflection in �3, 39, 106, 268rotation in �2, 35, 100, 261rotation in �3, 38, 104, 266rotation, axes in �2, 37, 102, 264rotation, axes in �3, 41, 108, 270scaling in �2, 35, 99, 260scaling in �3, 38, 103, 265shearing in �2, 100, 262translation, axes in �2, 37, 102, 264translation, axes in �3, 40, 108, 270translation in �2, 35, 99, 261translation in �3, 38, 104, 266

trapezium, 16, 208altitude, 16, 208area, 16, 208diagonals, 16, 208symmetry properties, 16

trapezoid,area, 16, 216

triangle/triangles, 11, 151acute-angled, 11area, 13, 32, 81, 96, 193area, determinant, 13area, Heron’s rule, 13area, trigonometric method,centroid, 15circumcenter, 14circumscribed circle, 14, 201congruent, 11, 79

Index 341

05 29/09/04 15:39 Page 341

Page 359: Geometry for Computer Graphics.pdf

triangle/triangles (cont’d)equilateral, 11, 200, 202, 206external angles, 13, 196height, 13inscribed circle, 14, 198internal angles, 13, 196isosceles, 11medians, 196obtuse-angled, 11point inside, 151right-angled, 11, 202scalene, 11similar, 11, 79three-dimensional, 318types of, 11vector normal, 32

trigonometricfunctions, 5, 75, 171functions converting to the half-angle tangent

form, 5, 77functions of the half-angle, 5, 76, 176identities, 5, 75, 171inverse trigonometric, 5, 182sums of functions, 5, 77, 180values, table, 5

trigonometry, 5, 75spherical, 15

triple product, 31, 32

Uunit vectors, 29, 252

Vvector/vectors, 2, 29, 74, 94, 252

addition, 30, 94algebraic, 29analysis,angle between, 31, 95, 253associative laws, 30, 253

between two points, 29, 94column, 2commutative laws, 30, 253components, 29cross product, 31, 95distributive law, 30, 31dot product, 30, 252magnitude, 30, 94, 252normal, 32, 96normalizing, 30, 94, 252position, 30, 95product, components, 31products, 30, 31reversing, 29, 94row, 3scalar product, 30, 95, 252scalar triple product, 31, 96, 255scaling, 29, 94subtraction, 30, 94unit, 29vector product, 31, 254vector triple product, 32

vertex/vertices,vertical angles, 4volume

cone, 22, 229cube, 23, 247cyclinder, 22dodecahedron, 23, 247hexahedron, see volume, cubeicosahedron, 23, 247octahedron, 23, 247prism, 224rectangular pyramid, 226rectangular pyramidal frustum, 227sphere, 22, 231spherical segment, 22, 232tetrahedron, 21, 23, 247torus, 23, 233

342 Geometry for computer graphics

05 29/09/04 15:39 Page 342