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...
Saved in:
| Main Author | |
|---|---|
| Format | eBook Book |
| Language | English |
| Published |
London
Springer Nature
2017
Springer Springer London, Limited Springer London |
| Edition | 5 |
| Series | Undergraduate Topics in Computer Science |
| Subjects | |
| Online Access | Get full text |
| ISBN | 9781447173366 1447173368 1447173341 9781447173342 |
| ISSN | 1863-7310 2197-1781 |
| DOI | 10.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