Mathematics for Computer Graphics

John Vince explains a wide range of mathematical techniques and problem-solving strategies associated with computer games, computer animation, virtual reality, CAD and other areas of computer graphics in this completely revised and expanded fifth edition.The first five chapters cover a general intro...

Full description

Saved in:
Bibliographic Details
Main Author Vince, John
Format eBook Book
LanguageEnglish
Published London Springer Nature 2017
Springer
Springer London, Limited
Springer London
Edition5
SeriesUndergraduate Topics in Computer Science
Subjects
Online AccessGet full text
ISBN9781447173366
1447173368
1447173341
9781447173342
ISSN1863-7310
2197-1781
DOI10.1007/978-1-4471-7336-6

Cover

Table of Contents:
  • 7.4.12 The Right-Hand Rule -- 7.5 Deriving a Unit Normal Vector for a Triangle -- 7.6 Surface Areas -- 7.6.1 Calculating 2D Areas -- 7.7 Summary -- 7.8 Worked Examples -- 7.8.1 Position Vector -- 7.8.2 Unit Vector -- 7.8.3 Vector Magnitude -- 7.8.4 Angle Between Two Vectors -- 7.8.5 Vector Product -- 8 Matrix Algebra -- 8.1 Introduction -- 8.2 Background -- 8.3 Matrix Notation -- 8.3.1 Matrix Dimension or Order -- 8.3.2 Square Matrix -- 8.3.3 Column Vector -- 8.3.4 Row Vector -- 8.3.5 Null Matrix -- 8.3.6 Unit Matrix -- 8.3.7 Trace -- 8.3.8 Determinant of a Matrix -- 8.3.9 Transpose -- 8.3.10 Symmetric Matrix -- 8.3.11 Antisymmetric Matrix -- 8.4 Matrix Addition and Subtraction -- 8.4.1 Scalar Multiplication -- 8.5 Matrix Products -- 8.5.1 Row and Column Vectors -- 8.5.2 Row Vector and a Matrix -- 8.5.3 Matrix and a Column Vector -- 8.5.4 Square Matrices -- 8.5.5 Rectangular Matrices -- 8.6 Inverse Matrix -- 8.6.1 Inverting a Pair of Matrices -- 8.7 Orthogonal Matrix -- 8.8 Diagonal Matrix -- 8.9 Summary -- 8.10 Worked Examples -- 8.10.1 Matrix Inversion -- 8.10.2 Identity Matrix -- 8.10.3 Solving Two Equations Using Matrices -- 8.10.4 Solving Three Equations Using Matrices -- 8.10.5 Solving Two Complex Equations -- 8.10.6 Solving Three Complex Equations -- 8.10.7 Solving Two Complex Equations -- 8.10.8 Solving Three Complex Equations -- 9 Geometric Transforms -- 9.1 Introduction -- 9.2 Background -- 9.3 2D Transforms -- 9.3.1 Translation -- 9.3.2 Scaling -- 9.3.3 Reflection -- 9.4 Transforms as Matrices -- 9.4.1 Systems of Notation -- 9.5 Homogeneous Coordinates -- 9.5.1 2D Translation -- 9.5.2 2D Scaling -- 9.5.3 2D Reflections -- 9.5.4 2D Shearing -- 9.5.5 2D Rotation -- 9.5.6 2D Scaling -- 9.5.7 2D Reflection -- 9.5.8 2D Rotation About an Arbitrary Point -- 9.6 3D Transforms -- 9.6.1 3D Translation -- 9.6.2 3D Scaling -- 9.6.3 3D Rotation
  • 9.6.4 Gimbal Lock -- 9.6.5 Rotating About an Axis -- 9.6.6 3D Reflections -- 9.7 Change of Axes -- 9.7.1 2D Change of Axes -- 9.7.2 Direction Cosines -- 9.7.3 3D Change of Axes -- 9.8 Positioning the Virtual Camera -- 9.8.1 Direction Cosines -- 9.8.2 Euler Angles -- 9.9 Rotating a Point About an Arbitrary Axis -- 9.9.1 Matrices -- 9.9.2 Quaternions -- 9.9.3 Adding and Subtracting Quaternions -- 9.9.4 Multiplying Quaternions -- 9.9.5 Pure Quaternion -- 9.9.6 The Inverse Quaternion -- 9.9.7 Unit Quaternion -- 9.9.8 Rotating Points About an Axis -- 9.9.9 Roll, Pitch and Yaw Quaternions -- 9.9.10 Quaternions in Matrix Form -- 9.9.11 Frames of Reference -- 9.10 Transforming Vectors -- 9.11 Determinants -- 9.12 Perspective Projection -- 9.13 Summary -- 9.14 Worked Examples -- 9.14.1 2D Scaling Transform -- 9.14.2 2D Scale and Translate -- 9.14.3 3D Scaling Transform -- 9.14.4 2D Rotation -- 9.14.5 2D Rotation About a Point -- 9.14.6 Determinant of the Rotate Transform -- 9.14.7 Determinant of the Shear Transform -- 9.14.8 Yaw, Pitch and Roll Transforms -- 9.14.9 3D Rotation About an Axis -- 9.14.10 3D Rotation Transform Matrix -- 9.14.11 2D Change of Axes -- 9.14.12 3D Change of Axes -- 9.14.13 Rotate a Point About an Axis -- 9.14.14 Perspective Projection -- 10 Interpolation -- 10.1 Introduction -- 10.2 Background -- 10.3 Linear Interpolation -- 10.4 Non-linear Interpolation -- 10.4.1 Trigonometric Interpolation -- 10.4.2 Cubic Interpolation -- 10.5 Interpolating Vectors -- 10.6 Interpolating Quaternions -- 10.7 Summary -- 11 Curves and Patches -- 11.1 Introduction -- 11.2 Background -- 11.3 The Circle -- 11.4 The Ellipse -- 11.5 Bézier Curves -- 11.5.1 Bernstein Polynomials -- 11.5.2 Quadratic Bézier Curves -- 11.5.3 Cubic Bernstein Polynomials -- 11.6 A Recursive Bézier Formula -- 11.7 Bézier Curves Using Matrices -- 11.7.1 Linear Interpolation
  • 13.4 Ratios and Proportion
  • Intro -- Preface -- Contents -- 1 Introduction -- 1.1 Mathematics for Computer Graphics -- 1.2 Understanding Mathematics -- 1.3 What Makes Mathematics Difficult? -- 1.4 Does Mathematics Exist Outside Our Brains? -- 1.5 Symbols and Notation -- 2 Numbers -- 2.1 Introduction -- 2.2 Background -- 2.3 Counting -- 2.4 Sets of Numbers -- 2.5 Zero -- 2.6 Negative Numbers -- 2.6.1 The Arithmetic of Positive and Negative Numbers -- 2.7 Observations and Axioms -- 2.7.1 Commutative Law -- 2.7.2 Associative Law -- 2.7.3 Distributive Law -- 2.8 The Base of a Number System -- 2.8.1 Background -- 2.8.2 Octal Numbers -- 2.8.3 Binary Numbers -- 2.8.4 Hexadecimal Numbers -- 2.8.5 Adding Binary Numbers -- 2.8.6 Subtracting Binary Numbers -- 2.9 Types of Numbers -- 2.9.1 Natural Numbers -- 2.9.2 Integers -- 2.9.3 Rational Numbers -- 2.9.4 Irrational Numbers -- 2.9.5 Real Numbers -- 2.9.6 Algebraic and Transcendental Numbers -- 2.9.7 Imaginary Numbers -- 2.9.8 Complex Numbers -- 2.9.9 Transcendental and Algebraic Numbers -- 2.9.10 Infinity -- 2.10 Summary -- 2.11 Worked Examples -- 2.11.1 Algebraic Expansion -- 2.11.2 Binary Subtraction -- 2.11.3 Complex Numbers -- 2.11.4 Complex Rotation -- 3 Algebra -- 3.1 Introduction -- 3.2 Background -- 3.2.1 Solving the Roots of a Quadratic Equation -- 3.3 Indices -- 3.3.1 Laws of Indices -- 3.4 Logarithms -- 3.5 Further Notation -- 3.6 Functions -- 3.6.1 Explicit and Implicit Equations -- 3.6.2 Function Notation -- 3.6.3 Intervals -- 3.6.4 Function Domains and Ranges -- 3.6.5 Odd and Even Functions -- 3.6.6 Power Functions -- 3.7 Summary -- 3.8 Worked Examples -- 3.8.1 Algebraic Manipulation -- 3.8.2 Solving a Quadratic Equation -- 3.8.3 Factorising -- 4 Trigonometry -- 4.1 Introduction -- 4.2 Background -- 4.3 Units of Angular Measurement -- 4.4 The Trigonometric Ratios -- 4.4.1 Domains and Ranges
  • 4.5 Inverse Trigonometric Ratios -- 4.6 Trigonometric Identities -- 4.7 The Sine Rule -- 4.8 The Cosine Rule -- 4.9 Compound-Angle Identities -- 4.9.1 Double-Angle Identities -- 4.9.2 Multiple-Angle Identities -- 4.9.3 Half-Angle Identities -- 4.10 Perimeter Relationships -- 4.11 Summary -- 5 Coordinate Systems -- 5.1 Introduction -- 5.2 Background -- 5.3 The Cartesian Plane -- 5.4 Function Graphs -- 5.5 Shape Representation -- 5.5.1 2D Polygons -- 5.5.2 Area of a Shape -- 5.6 Theorem of Pythagoras in 2D -- 5.7 3D Cartesian Coordinates -- 5.7.1 Theorem of Pythagoras in 3D -- 5.8 Polar Coordinates -- 5.9 Spherical Polar Coordinates -- 5.10 Cylindrical Coordinates -- 5.11 Summary -- 5.12 Worked Examples -- 5.12.1 Area of a Shape -- 5.12.2 Distance Between Two Points -- 5.12.3 Polar Coordinates -- 5.12.4 Spherical Polar Coordinates -- 5.12.5 Cylindrical Coordinates -- 6 Determinants -- 6.1 Introduction -- 6.2 Linear Equations with Two Variables -- 6.3 Linear Equations with Three Variables -- 6.3.1 Sarrus's Rule -- 6.4 Mathematical Notation -- 6.4.1 Matrix -- 6.4.2 Order of a Determinant -- 6.4.3 Value of a Determinant -- 6.4.4 Properties of Determinants -- 6.5 Summary -- 6.6 Worked Examples -- 6.6.1 Determinant Expansion -- 6.6.2 Complex Determinant -- 6.6.3 Simple Expansion -- 6.6.4 Simultaneous Equations -- 7 Vectors -- 7.1 Introduction -- 7.2 Background -- 7.3 2D Vectors -- 7.3.1 Vector Notation -- 7.3.2 Graphical Representation of Vectors -- 7.3.3 Magnitude of a Vector -- 7.4 3D Vectors -- 7.4.1 Vector Manipulation -- 7.4.2 Scaling a Vector -- 7.4.3 Vector Addition and Subtraction -- 7.4.4 Position Vectors -- 7.4.5 Unit Vectors -- 7.4.6 Cartesian Vectors -- 7.4.7 Products -- 7.4.8 Scalar Product -- 7.4.9 The Dot Product in Lighting Calculations -- 7.4.10 The Scalar Product in Back-Face Detection -- 7.4.11 The Vector Product
  • 11.8 B-Splines -- 11.8.1 Uniform B-Splines -- 11.8.2 Continuity -- 11.8.3 Non-uniform B-Splines -- 11.8.4 Non-uniform Rational B-Splines -- 11.9 Surface Patches -- 11.9.1 Planar Surface Patch -- 11.9.2 Quadratic Bézier Surface Patch -- 11.9.3 Cubic Bézier Surface Patch -- 11.10 Summary -- 12 Analytic Geometry -- 12.1 Introduction -- 12.2 Background -- 12.2.1 Angles -- 12.2.2 Intercept Theorems -- 12.2.3 Golden Section -- 12.2.4 Triangles -- 12.2.5 Centre of Gravity of a Triangle -- 12.2.6 Isosceles Triangle -- 12.2.7 Equilateral Triangle -- 12.2.8 Right Triangle -- 12.2.9 Theorem of Thales -- 12.2.10 Theorem of Pythagoras -- 12.2.11 Quadrilateral -- 12.2.12 Trapezoid -- 12.2.13 Parallelogram -- 12.2.14 Rhombus -- 12.2.15 Regular Polygon -- 12.2.16 Circle -- 12.3 2D Analytic Geometry -- 12.3.1 Equation of a Straight Line -- 12.3.2 The Hessian Normal Form -- 12.3.3 Space Partitioning -- 12.3.4 The Hessian Normal Form from Two Points -- 12.4 Intersection Points -- 12.4.1 Intersecting Straight Lines -- 12.4.2 Intersecting Line Segments -- 12.5 Point Inside a Triangle -- 12.5.1 Area of a Triangle -- 12.5.2 Hessian Normal Form -- 12.6 Intersection of a Circle with a Straight Line -- 12.7 3D Geometry -- 12.7.1 Equation of a Straight Line -- 12.7.2 Intersecting Two Straight Lines -- 12.8 Equation of a Plane -- 12.8.1 Cartesian Form of the Plane Equation -- 12.8.2 General Form of the Plane Equation -- 12.8.3 Parametric Form of the Plane Equation -- 12.8.4 Converting from the Parametric to the General Form -- 12.8.5 Plane Equation from Three Points -- 12.9 Intersecting Planes -- 12.9.1 Intersection of Three Planes -- 12.9.2 Angle Between Two Planes -- 12.9.3 Angle Between a Line and a Plane -- 12.9.4 Intersection of a Line with a Plane -- 12.10 Summary -- 13 Barycentric Coordinates -- 13.1 Introduction -- 13.2 Background -- 13.3 Ceva's Theorem