𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Geometric Algebra for Computer Science: An Object-Oriented Approach to Geometry (The Morgan Kaufmann Series in Computer Graphics)

✍ Scribed by Leo Dorst, Daniel Fontijne, Stephen Mann


Publisher
Morgan Kaufmann
Year
2007
Tongue
English
Leaves
674
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Until recently, almost all of the interactions between objects in virtual 3D worlds have been based on calculations performed using linear algebra. Linear algebra relies heavily on coordinates, however, which can make many geometric programming tasks very specific and complex-often a lot of effort is required to bring about even modest performance enhancements. Although linear algebra is an efficient way to specify low-level computations, it is not a suitable high-level language for geometric programming.

Geometric Algebra for Computer Science presents a compelling alternative to the limitations of linear algebra. Geometric algebra, or GA, is a compact, time-effective, and performance-enhancing way to represent the geometry of 3D objects in computer programs. In this book you will find an introduction to GA that will give you a strong grasp of its relationship to linear algebra and its significance for your work. You will learn how to use GA to represent objects and perform geometric operations on them. And you will begin mastering proven techniques for making GA an integral part of your applications in a way that simplifies your code without slowing it down.

✦ Table of Contents


Cover
Title page
Date-line
Contents
LIST OF FIGURES
1.1 Example of the use of geometric algebra
1.2 Code to generate Figure 1.1
1.3 Example of the use of geometric algebra
1.4 The outer product and its interpretations
2.1 Spanning homogeneous subspaces in a 3-D vector space
2.2 Imagining vector addition
2.3 Bivector representations
2.4 Imagining bivector addition in 2-D space
2.5 Bivector addition in 3-D space
2.6 The associativity of the outer product
2.7 Solving linear equations with bivectors
2.8 Intersecting lines in the plane
2.9 Code for drawing bivectors
2.10 Drawing bivectors screenshot (Example 1)
2.11 The orientation of front- and back-facing polygons
2.12 A wire-frame torus with and without backface culling
2.13 The code that renders a model from its 2-D vertices (Exercise 2)
2.14 Sampling a vector field and summing trivectors
2.15 Code to test for singularity (Example 3)
2.16 A helix-shaped singularity, as detected by Example 3
3.1 Computing the scalar product of 2-blades
3.2 From scalar product to contraction
3.3 The contraction of a vector onto a 2
3.4 Duality of vectors in 2-D
3.5 Duality of vectors and bivectors in 3-D
3.6 Projection onto a subspace
3.7 Three uses of the cross product
3.8 Duality and the cross product
3.9 Orthonormalization code (Example 1)
3.10 Orthonormalization
3.11 Reciprocal frame code
3.12 Color space conversion code (Example 4)
3.13 Color space conversion screenshot
4.1 The defining properties of a linear transformation
4.2 Projection onto a line a in the b-direction
4.3 A rotation around the origin of unit vectors in the plane
4.4 Projection of a vector onto a bivector
4.5 Matrix representation of projection code
4.6 Transforming normals vector
5.1 The ambiguity of the magnitude of the intersection of two planes
5.2 The meet of two oriented planes
5.3 A line meeting a plane in the origin
5.4 When the join of two (near-)parallel vectors becomes a 2-blade (Example 3)
6.1 Invertibility of the subspace products
6.2 Ratios of vectors
6.3 Projection and rejection of a vector
6.4 Reflecting a vector in a line
6.5 Gram-Schmidt orthogonalization
6.6 Gram-Schmidt orthogonalization code (Example 2)
7.1 Line and plane reflection
7.2 A rotation in a plane parallel to I is two reflections in vectors in that plane
7.3 A rotor in action
7.4 Sense of rotation
7.5 The unique rotor-based rotations in the range $\phi = [0,4\pi)$
7.6 (a) A spherical triangle, (b) Composition of rotations through concatenation of rotor arcs
7.7 A reflector in action
7.8 The rotor product in Euclidean spaces as a Taylor series
7.9 Interactive version of Figure 7.2
7.10 Rotation matrix to rotor conversion
7.11 2-D Julia fractal code
7.12 A 2-D Julia fractal, computed using the geometric product of real vectors
7.13 3-D Julia fractal
8.1 Directional differentiation of a vector inversion
8.2 Changes in reflection of a rotating mirror
8.3 The directional derivative of the spherical projection
10.1 A triangle a + b + c = 0 in a directed plane I
10.2 The angle between a vector and a bivector (see text)
10.3 A spherical triangle
10.4 Interpolation of rotations
10.5 Interpolation of rotations (Example 1)
10.6 Crystallography (Example 2)
10.7 External camera calibration (Example 3)
11.1 The extra dimension of the homogeneous representation space
11.2 Representing offset subspaces in $\mathbb{R}^{n+1}$
11.3 Defining offset subspaces fully in the base space
11.4 The dual hyperplane representation in $\mathbb{R}^2$ and $$\mathbb{R}^1$
11.5 The intersection of two offset lines $L$ and $M$ to produce a point $p$
11.6 The meet of two skew lines
11.7 The relative orientation of oriented flats
11.8 The combinations of four points taken in the cross ratio
11.9 The combinations of four lines taken in the cross ratio
11.10 Conies in the homogeneous model
11.11 Finding a line through a point, perpendicular to a given line
11.12 The orthogonal projection in the homogeneous model (see text)
11.13 The beginning of a row of equidistant telegraph poles
11.14 Example 2 in action
11.15 Perspective projection (Example 4)
12.1 Plucker coordinates of aline in 3-D
12.2 A pinhole camera
12.3 The epipolar constraint
12.4 The plane of rays generated by a line observation $L$
12.5 The projection of the optical center onto all rays generates an eyeball
12.6 Reconstruction of motion capture data
12.7 Reconstruction of markers
12.8 Crossing lines code
13.1 Euclidean transformations as multiple reflections in planes
13.2 Flat elements in the conformal model
13.3 Planar reflection in the conformal model
13.4 Chasles' screw
13.5 Computation of the logarithm of a rigid body motion
13.6 Rigid body motion interpolation
13.7 Reflection in a rotating mirror
13.8 The output of the solution to Example 2
13.9 Example 4 in action: the interpolation of rigid body motions
14.1 Dual rounds in the conformal model
14.2 Intersection of two spheres of decreasing radii
14.3 Visualization of a 2-D Euclidean point on the representative paraboloid
14.4 The representation of a circle on the representative paraboloid
14.5 Cross section of the parabola of null vectors
14.6 Visualization of the intersection of circles on the representative paraboloid
14.7 A Voronoi diagram in the conformal model
14.8 Inner product as distance measure
14.9 Forward kinematics of a robot arm
14.10 Inverse kinematics of a robot arm
14.11 A Voronoi diagram of a set of points, as computed by Example 1
14.12 Euclid's elements (Example 2)
14.13 Example 3 in action
14.14 Fitting-a-sphere code
15.1 The meet and plunge of three spheres
15.2 The pi unge of diverse elements
15.3 The meet and plunge of two spheres at decreasing distances
15.4 Visualization of flats as pi unge
15.5 Orbits of a dual line versor
15.6 Tangents of elements
15.7 Factorization of rounds
15.8 Affine combination of conformal points
15.9 Affine combination of circles and point pairs
15.10 Orthogonal projections in the conformal model of Euclidean geometry
15.11 Various kinds of vectors in the conformal model
15.12 Definition of symbols for the Voronoi derivations
15.13 Construction of a contour circle
15.14 Screenshot of Example 2
15.15 Screenshot of Example 3 on projection and pi unge
16.1 Inversion in a sphere
16.2 Reflection in a sphere
16.3 Generation of a snail shell
16.4 Swapping scaling and translation
16.5 Computation of the logarithm of a positively scaled rigid body motion
16.6 Loxodromes
16.7 Conformal orbits
16.8 Hyperbolic geometry
16.9 Spherical geometry
16.10 Imaging by the eye
16.11 Reflection in a point pair
16.12 Dupin cycloid as the inversion of a torus into a sphere
16.13 Metrical Mystery Tour
16.14 Function matrix4x4 ToVersorO
16.15 Function log (const TRSversor &V)
16.16 Screenshot of Example 4
19.1 Function canoni cal ReorderingSign( i nt a, int b)
19.2 Function gp_op (BasisBlade a, BasisBlade b)
20.1 Matrices for geometric product, outer product, and left contraction
20.2 Implementation of the outer product of multivectors
21.1 Venn diagrams illustrating union, intersection, and the delta product of two sets
21.2 Venn diagrams illustrating meet, j oi n, and the delta product of two blades
22.1 Basic tool-chain from source code to running application
22.2 Code generated by Gai gen 2
22.3 Generated matrix-point multiplication code
23.1 Teapot polygonal mesh
23.2 Screenshot of the user interface of the modeler
23.3 Rotating an object
23.4 The spaceball interface
LIST OF TABLES
2.1 Geometrical properties of a subspace
2.2 Pascal's triangle of the number of basis $k$-blades in n-dimensional space
2.3 Notational conventions for blades and multivectors for Part I of this book
2.4 C++ Operator bindings
5.1 The order of the arguments for a meet may affect the sign of the result
7.1 Reflection of an oriented subspace X in a subspace A
8.1 Directional differentiation and vector derivatives
8.2 Elementary results of multivector differentiation
10.1 The point group $2H_4$
11.1 The geometric algebra of the homogeneous model of 3-D Euclidean space
11.2 The number of blades representing subspaces and directions
11.3 Nonzero blades in the homogeneous model of Euclidean geometry
11.4 Specialized multivector types in the h 3 g a
12.1 Common Pliicker coordinate computations
12.2 Transformation of the flats in the homogeneous model
13.1 Multiplication table for the inner product of the conformal model of 3-D Euclidean geometry $\mathbb{E}^3$, for two choices of basis
13.2 The interpretation of vectors in the conformal model
13.3 A list of the most important specialized multivector types in c3ga
13.4 Constants in c3ga
14.1 Nonzero blades in the conformal model of Euclidean geometry
16.1 Basic operations in the conformal model and their versors
16.2 Common proper transformations of some of the standard elements of the conformal model
18.1 Matrix representations of Clifford algebras of signatures $(p,q)$
19.1 The bitmap representation of basis blades
19.2 Bitwise boolean operators used in Java code examples
19.3 Reversion, grade involution, and Clifford Conjugate for basis blades
22.1 Performance benchmarks for the ray tracer
LIST OF PROGRAMMING EXAMPLES
1.1 An Example in Geometric Algebra 3-D conformal
2.13.1 Drawing Bivectors 2-D vector space
2.13.2 Exercise: Hidden Surface Removal 3-D vector space
2.13.3 Singularities in Vector Fields 3-D vector space
3.11.1 Orthonormalization 3-D vector space
3.11.2 Exercise: Implementing the Cross Product 3-D vector space
3.11.3 Reciprocal Frames 3-D vector space
3.11.4 Color Space Conversion 3-D vector space
4.9.1 Orthogonal Projection 3-D vector space
4.9.2 Orthogonal Projection, Matrix Representation 3-D vector space
4.9.3 Transforming Normal Vectors 3-D vector space
5.11.1 The Meet and Join 3-D vector space
5.11.2 Efficiency 3-D vector space
5.11.3 Floating Point Issues 3-D vector space
6.7.1 Exercise: Subspace Products Retrieved 3-D vector space
6.7.2 Gram-Schmidt Orthogonalization 3-D vector space
7.10.1 Reflecting in Vectors 3-D vector space
7.10.2 Two Reflections Equals One Rotation 3-D vector space
7.10.3 Matrix-Rotor Conversion 1 3-D vector space
7.10.4 Exercise: Matrix-Rotor Conversion 2 3-D vector space
7.10.5 Julia Fractals 2-D vector space
10.7.1 Interpolating Rotations 3-D vector space
10.7.2 Crystallography 3-D vector space
10.7.3 External Camera Calibration 3-D vector space
11.13.1 Working with Points 3-D homogeneous
11.13.2 Intersecting Primitives 3-D homogeneous
11.13.3 Don't Add Lines 3-D homogeneous
11.13.4 Perspective Projection 3-D homogeneous
12.5.1 Loading Transformations into OpenGL 3-D homogeneous
12.5.2 Transforming Primitives with OpenGL Matrices 3-D homogeneous
12.5.3 Marker Reconstruction in Optical Motion Capture 3-D homogeneous
13.10.1 Metric Matters 3-D conformal
13.10.2 Exercise: The Distance Between Points 3-D conformal
13.10.3 Loading Transformations into OpenGL, Again 3-D conformal
13.10.4 Interpolation of Rigid Body Motions 3-D conformal
14.9.1 Voronoi Diagrams and Delaunay Triangulations 2-D conformal
14.9.2 Exercise: Drawing Euclid's Elements 3-D conformal
14.9.3 Conformal Primitives and Intersections 3-D conformal
14.9.4 Fitting a Sphere to a Set of Points 3-D conformal
15.8.1 The Plunge 3-D conformal
15.8.2 Affine Combinations of Points 2-D conformal
15.8.3 Euclidean Projections 3-D conformal
16.10.1 Homogeneous 4x4 Matrices to Conformal Versors 3-D conformal
16.10.2 Logarithm of Scaled Rigid Body Motion 3-D conformal
16.10.3 Interpolation of Scaled Rigid Body Motions 3-D conformal
16.10.4 TheSeashell 3-D conformal
PREFACE
CHAPTER 1. WHY GEOMETRIC ALGEBRA?
1.1 An Example in Geometric Algebra
1.2 How It Works and How It's Different
1.2.1 Vector Spaces as Modeling Tools
1.2.2 Subspaces as Elements of Computation
1.2.3 Linear Transformations Extended
1.2.4 Universal Orthogonal Transformations
1.2.5 Objects are Operators
1.2.6 Closed-Form Interpolation and Perturbation
1.3 Programming Geometry
1.3.1 You Can Only Gain
1.3.2 Software Implementation
1.4 The Structure of This Book
1.4.1 Part I: Geometric Algebra
1.4.2 Part II: Models of Geometry
1.4.3 Part III: Implementation of Geometric Algebra
1.5 The Structure of the Chapters
PART I GEOMETRIC ALGEBRA
CHAPTER 2. SPANNING ORIENTED SUBSPACES
2.1 Vector Spaces
2.2 Oriented Line Elements
2.2.1 Properties of Homogeneous Lines
2.2.2 Visualizing Vectors
2.3 Oriented Area Elements
2.3.1 Properties of Planes
2.3.2 Introducing the Outer Product
2.3.3 Visualizing Bivectors
2.3.4 Visualizing Bivector Addition
2.4 Oriented Volume Elements
2.4.1 Properties of Volumes
2.4.2 Associativity of the Outer Product
2.4.3 Visualization of Trivectors
2.5 Quadvectors in 3-D Are Zero
2.6 Scalars Interpreted Geometrically
2.7 Applications
2.7.1 Solving Linear Equations
2.7.2 Intersecting Planar Lines
2.8 Homogeneous Subspace Representation
2.8.1 Parallelness
2.8.2 Direct Representation of Oriented Weighted Subspaces
2.8.3 Nonmetric Lengths, Areas, and Volumes
2.9 The Graded Algebra of Subspaces
2.9.1 Blades and Grades
2.9.2 The Ladder of Subspaces
2.9.3 /c-Blades Versus k-Vectors
2.9.4 The Grassmann Algebra of Multivectors
2.9.5 Reversion and Grade Involution
2.10 Summary of Outer Product Properties
2.11 Further Reading
2.12 Exercises
2.12.1 Drills
2.12.2 Structural Exercises
2.13 Programming Examples and Exercises
2.13.1 Drawing Bivectors
2.13.2 Exercise: Hidden Surface Removal
2.13.3 Singularities in Vector Fields
CHAPTER 3. METRIC PRODUCTS OF SUBSPACES
3.1 Sizing Up Subspaces
3.1.1 Metrics, Norms, and Angles
3.1.2 Definition of the Scalar Product *
3.1.3 The Squared Norm of a Subspace
3.1.4 The Angle Between Subspaces
3.2 From Scalar Product to Contraction
3.2.1 Implicit Definition of Contraction $\rfloor$
3.2.2 Computing the Contraction Explicitly
3.2.3 Algebraic Subtleties
3.3 Geometric Interpretation of the Contraction
3.4 The Other Contraction $\lfloor$
3.5 Orthogonality and Duality
3.5.1 Nonassociativity of the Contraction
3.5.2 The Inverse of a Blade
3.5.3 Orthogonal Complement and Duality
3.5.4 The Duality Relationships
3.5.5 Dual Representation of Subspaces
3.6 Orthogonal Projection of Subspaces
3.7 The 3-D Cross Product
3.7.1 Uses of the Cross Product
3.7.2 The Cross Product Incorporated
3.8 Application: Reciprocal Frames
3.9 Further Reading
3.10 Exercises
3.10.1 Drills
3.10.2 Structural Exercises
3.11 Programming Examples and Exercises
3.11.1 Orthonormalization
3.11.2 Exercise: Implementing the Cross Product
3.11.3 Reciprocal Frames
3.11.4 Color Space Conversion
CHAPTER 4. LINEAR TRANSFORMATIONS OF SUBSPACES
4.1 Linear Transformations of Vectors
4.2 Outermorphisms: Linear Transformations of Blades
4.2.1 Motivation of the Outermorphism
4.2.2 Examples of Outermorphisms
4.2.3 The Determinant of a Linear Transformation
4.3 Linear Transformation of the Metric Products
4.3.1 Linear Transformation of the Scalar Product
4.3.2 The Adjoint of a Linear Transformation
4.3.3 Linear Transformation of the Contraction
4.3.4 Orthogonal Transformations
4.3.5 Transforming a Dual Representation
4.3.6 Application: Linear Transformation of the Cross Product
4.4 Inverses of Outermorphisms
4.5 Matrix Representations
4.5.1 Matrices for Vector Transformations
4.5.2 Matrices for Outermorphisms
4.6 Summary
4.7 Suggestions for Further Reading
4.8 Structural Exercises
4.9 Programming Examples and Exercises
4.9.1 Orthogonal Projection
4.9.2 Orthogonal Projection, Matrix Representation
4.9.3 Transforming Normal Vectors
CHAPTER 5. INTERSECTION AND UNION OF SUBSPACES
5.1 The Phenomenology of Intersection
5.2 Intersection through Outer Factorization
5.3 Relationships Between Meet and Join
5.4 Using Meet and Join
5.5 Joi n and Meet are Mostly Linear
5.6 Quantitative Properties of the Meet
5.7 Linear Transformation of Meet and Join
5.8 Offset Subspaces
5.9 Further Reading
5.10 Exercises
5.10.1 Drills
5.10.2 Structural Exercises
5.11 Programming Examples and Exercises
5.11.1 The Meet and Join
5.11.2 Efficiency
5.11.3 Floating Point Issues
CHAPTER 6. THE FUNDAMENTAL PRODUCT OF GEOMETRIC ALGEBRA
6.1 The Geometric Product for Vectors
6.1.1 An Invertible Product for Geometry
6.1.2 Symmetry and Antisymmetry
6.1.3 Properties of the Geometric Product
6.1.4 The Geometric Product for Vectors on a Basis
6.1.5 Dividing by a Vector
6.1.6 Ratios of Vectors as Operators
6.2 The Geometric Product of Multivectors
6.2.1 Algebraic Definition of the Geometric Product
6.2.2 Evaluating the Geometric Product
6.2.3 Grades and the Geometric Product
6.3 The Subspace Products Retrieved
6.3.1 The Subspace Products from Symmetry
6.3.2 The Subspace Products as Selected Grades
6.4 Geometric Division
6.4.1 Inverses of Blades
6.4.2 Decomposition: Projection to Subspaces
6.4.3 The Other Division: Reflection
6.5 Further Reading
6.6 Exercises
6.6.1 Drills
6.6.2 Structural Exercises
6.7 Programming Examples and Exercises
6.7.1 Exercise: Subspace Products Retrieved
6.7.2 Gram-Schmidt Orthogonalization
CHAPTER 7. ORTHOGONAL TRANSFORMATIONS ASVERSORS
7.1 Reflections of Subspaces
7.2 Rotations of Subspaces
7.2.1 3-D Rotors as Double Reflectors
7.2.2 Rotors Perform Rotations
7.2.3 A Sense of Rotation
7.3 Composition of Rotations
7.3.1 Multiple Rotations in 2-D
7.3.2 Real 2-D Rotors Subsume Complex Numbers
7.3.3 Multiple Rotations in 3-D
7.3.4 Visualizing 3-D Rotations
7.3.5 Unit Quaternions Subsumed
7.4 The Exponential Representation of Rotors
7.4.1 Pure Rotors as Exponentials of 2-Blades
7.4.2 Trigonometric and Hyperbolic Functions
7.4.3 Rotors as Exponentials of Bivectors
7.4.4 Logarithms
7.5 Subspaces as Operators
7.5.1 Reflection by Subspaces
7.5.2 Subspace Projection as Sandwiching
7.5.3 Transformations as Objects
7.6 Versors Generate Orthogonal Transformations
7.6.1 The Versor Product
7.6.2 Even and Odd Versors
7.6.3 Orthogonal Transformations are Versor Products
7.6.4 Versors, Blades, Rotors, and Spinors
7.7 The Product Structure of Geometric Algebra
7.7.1 The Products Summarized
7.7.2 Geometric Algebra versus Clifford Algebra
7.7.3 Butβ€”is it Efficient?
7.8 Further Reading
7.9 Exercises
7.9.1 Drills
7.9.2 Structural Exercises
7.10 Programming Examples and Exercises
7.10.1 Reflecting in Vectors
7.10.2 Two Reflections Equal One Rotation
7.10.3 Matrix-Rotor Conversion 1
7.10.4 Exercise: Matrix-Rotor Conversion 2
7.10.5 Julia Fractals
7.10.6 Extra Example: Rotations Used for Example User Interface
CHAPTER 8. GEOMETRIC DIFFERENTIATION
8.1 Geometrical Changes by Orthogonal Transformations
8.2 Transformational Changes
8.2.1 The Commutator Product
8.2.2 Rotor-Induced Changes
8.2.3 Multiple Rotor-Induced Changes
8.2.4 Transformation of a Change
8.2.5 Change of a Transformation
8.3 Parametric Differentiation
8.4 Scalar Differentiation
8.4.1 Application: Radius of Curvature of a Planar Curve
8.5 Directional Differentiation
8.5.1 Table of Elementary Results
8.5.2 Application: Tilting a Mirror
8.6 Vector Differentiation
8.6.1 Elementary Results of Vector Differentiation
8.6.2 Properties of Vector Differentiation
8.7 Multivector Differentiation
8.7.1 Definition
8.7.2 Application: Estimating Rotors Optimally
8.8 Further Reading
8.9 Exercises
8.9.1 Drills
8.9.2 Structural Exercises
PART II MODELS OF GEOMETRIES
CHAPTER 9. MODELING GEOMETRIES
CHAPTER 10. THE VECTOR SPACE MODEL: THE ALGEBRA OF DIRECTIONS
10.1 The Natural Model for Directions
10.2 Angular Relationships
10.2.1 The Geometry of Planar Triangles
10.2.2 Angular Relationships in 3-D
10.2.3 Rotation Groups and Crystallography
10.3 Computing with 3-D Rotors
10.3.1 Determining a Rotor from Rotation Plane and Angle
10.3.2 Determining a Rotor from a Frame Rotation in 3-D
10.3.3 The Logarithm of a 3-D Rotor
10.3.4 Rotation Interpolation
10.4 Application: Estimation in the Vector Space Model
10.4.1 Noisy Rotor Estimation
10.4.2 External Camera Calibration
10.5 Convenient Abuse: Locations as Directions
10.6 Further Reading
10.7 Programming Examples and Exercises
10.7.1 Interpolating Rotations
10.7.2 Crystallography Implementation
10.7.3 External Camera Calibration
CHAPTER 11. THE HOMOGENEOUS MODEL
11.1 Homogeneous Representation Space
11.2 All Points Are Vectors
11.2.1 Finite Points
11.2.2 Infinite Points and Attitudes
11.2.3 Addition of Points
11.2.4 Terminology: from Precise to Convenient
11.3 All Lines Are 2-Blades
11.3.1 Finite Lines
11.3.2 Lines at Infinity
11.3.3 Don't Add Lines
11.4 All Planes Are 3-Blades
11.5 $k$-Flats as $(k + 1)$-Blades
11.5.1 Finite $k$-Flats
11.5.2 Infinites $k$-Flats
11.5.3 Parameters of $k$-Flats
11.5.4 The Number of Parameters of an Offset Flat
11.6 Direct and Dual Representations of Flats
11.6.1 Direct Representation
11.6.2 Dual Representation
11.7 Incidence Relationships
11.7.1 Examples of Incidence Computations
11.7.2 Relative Orientation
11.7.3 Relative Lengths: Distance Ratio and Cross Ratio
11.8 Linear Transformations: Motions, and More
11.8.1 Linear Transformations on Blades
11.8.2 Translations
11.8.3 Rotation Around the Origin
11.8.4 General Rotation
11.8.5 Rigid Body Motion
11.8.6 Constructing Elements Through Motions
11.8.7 Rigid Body Motion Outermorphisms as Matrices
11.8.8 Affine Transformations
11.8.9 Projective Transformations
11.9 Coordinate-Free Parameterized Constructions
11.10 Metric Products in the Homogeneous Model
11.10.1 Non-Euclidean Results
11.10.2 Nonmetric Orthogonal Projection
11.11 Further Reading
11.12 Exercises
11.12.1 Drills
11.12.2 Structural Exercises
11.13 Programming Examples and Exercises
11.13.1 Working with Points
11.13.2 Intersecting Primitives
11.13.3 Don'tAddLines
11.13.4 Perspective Projection
CHAPTER 12. APPLICATIONS OF THE HOMOGENEOUS MODEL
12.1 Homogeneous Pliicker Coordinates in 3-D
12.1.1 Line Representation
12.1.2 The Elements in Coordinate Form
12.1.3 Combining Elements
12.1.4 Matrices of Motions in Plucker Coordinates
12.1.5 Sparse Usage of the $2^4$ Dimensions
12.2 Imaging by Multiple Cameras
12.2.1 The Pinhole Camera
12.2.2 Homogeneous Coordinates as Imaging
12.2.3 Cameras and Stereo Vision
12.2.4 Line-based Stereo Vision
12.3 Further Reading
12.4 Exercises
12.4.1 Structural Exercises
12.5 Programming Examples and Exercises
12.5.1 Loading Transformations into OpenGL
12.5.2 Transforming Primitives with OpenGL Matrices
12.5.3 Marker Reconstruction in Optical Motion Capture
CHAPTER 13. THE CONFORMAL MODEL: OPERATIONAL EUCLIDEAN GEOMETRY
13.1 The Conformal Model
13.1.1 Representational Space and Metric
13.1.2 Points as Null Vectors
13.1.3 General Vectors Represent Dual Planes and Spheres
13.2 Euclidean Transformations as Versors
13.2.1 Euclidean Versors
13.2.2 Proper Euclidean Motions as Even Versors
13.2.3 Covariant Preservation of Structure
13.2.4 The Invariance of Properties
13.3 Flats and Directions
13.3.1 The Direct Representation of Flats
13.3.2 Correspondence with the Homogeneous Model
13.3.3 Dual Representation of Flats
13.3.4 Directions
13.4 Application: General Planar Reflection
13.5 Rigid Body Motions
13.5.1 Algebraic Properties of Translations and Rotations
13.5.2 Screw Motions
13.5.3 Logarithm of a Rigid Body Motion
13.6 Application: Interpolation of Rigid Body Motions
13.7 Application: Differential Planar Reflections
13.8 Further Reading
13.9 Exercises
13.9.1 Drills
13.9.2 Structural Exercises
13.10 Programming Examples and Exercises
13.10.1 Metric Matters
13.10.2 Exercise: The Distance Between Points
13.10.3 Loading Transformations into OpenGL, Again
13.10.4 Interpolation of Rigid Body Motions
CHAPTER 14. NEW PRIMITIVES FOR EUCLIDEAN GEOMETRY
14.1 Rounds
14.1.1 Dual Rounds
14.1.2 Direct Rounds
14.1.3 Oriented Rounds
14.2 Tangents as Intersections of Touching Rounds
14.2.1 Euclid's Elements
14.2.2 From Blades to Parameters
14.3 A Visual Explanation of Rounds as Blades
14.3.1 Point Representation
14.3.2 Circle Representation
14.3.3 Euclidean Circles Intersect as Planes
14.4 Application: Voronoi Diagrams
14.5 Application: Fitting a Sphere to Points
14.5.1 The Inner Product Distance of Spheres
14.5.2 Fitting a Sphere to Points
14.6 Application: Kinematics
14.6.1 Forward Kinematics
14.6.2 Inverse Kinematics
14.7 Further Reading
14.8 Exercises
14.8.1 Drills
14.8.2 Structural Exercises
14.9 Programming Examples and Exercises
14.9.1 Voronoi Diagrams and Delaunay Triangulations
14.9.2 Exercise: Drawing Euclid's Elements
14.9.3 Conformal Primitives and Intersections
14.9.4 Fitting a Sphere to a Set of Points
CHAPTER 15. CONSTRUCTIONS IN EUCLIDEAN GEOMETRY
15.1 Euclidean Incidence and Coincidence
15.1.1 Incidence Revisited
15.1.2 Co-Incidence
15.1.3 Real Meet or Plunge
15.1.4 The Plunge of Flats
15.2 Euclidean Nuggets
15.2.1 Tangents Without Differentiating
15.2.2 Carriers, Tangent Flat
15.2.3 Surrounds, Factorization of Rounds
15.2.4 Affine Combinations
15.3 Euclidean Projections
15.4 Application: All Kinds of Vectors
15.5 Application: Analysis of a Voronoi Cell
15.5.1 Edge Lines
15.5.2 Edge Point
15.5.3 Edge Length
15.5.4 Conversion to Classical Formulas
15.6 Further Reading
15.7 Exercises
15.7.1 Drills
15.7.2 Structural Exercises
15.8 Programming Examples and Exercises
15.8.1 The Plunge
15.8.2 Affine Combinations of Points
15.8.3 Euclidean Projections
CHAPTER 16. CONFORMAL OPERATORS
16.1 Spherical Inversion
16.2 Applications of Inversion
16.2.1 The Center of a Round
16.2.2 Reflection in Spheres and Circles
16.3 Scaling
16.3.1 The Positive Scaling Rotor
16.3.2 Reflection in the Origin: Negative Scaling
16.3.3 Positively Scaled Rigid Body Motions
16.3.4 Logarithm of a Scaled Rigid Body Motion
16.4 Transversions
16.5 Transformations of the Standard Blades
16.6 General Conformal Transformations
16.6.1 Loxodromes
16.6.2 Circular Rotations
16.6.3 Mobius Transformations
16.7 Non-Euclidean Geometries
16.7.1 Hyperbolic Geometry
16.7.2 Spherical Geometry
16.8 Further Reading
16.9 Exercises
16.9.1 Drills
16.9.2 Structural Exercises
16.10 Programming Examples and Exercises
16.10.1 Homogeneous $4\times 4$ Matrices to Conformal Versors
16.10.2 Logarithm of Scaled Rigid Body Motion
16.10.3 Interpolation of Scaled Rigid Body Motions
16.10.4 TheSeashell
CHAPTER 17. OPERATIONAL MODELS FOR GEOMETRIES
17.1 Algebras for Geometries
PART III IMPLEMENTING GEOMETRIC ALGEBRA
CHAPTER 18. IMPLEMENTATION ISSUES
18.1 The Levels of Geometric Algebra Implementation
18.2 Who Should Read What
18.3 Alternative Implementation Approaches
18.3.1 Isomorphic Matrix Algebras
18.3.2 Irreducible Matrix Implementations
18.3.3 Factored Representations
18.4 Structural Exercises
CHAPTER 19. BASIS BLADES AND OPERATIONS
19.1 Representing Unit Basis Blades with Bitmaps
19.2 The Outer Product of Basis Blades
19.3 The Geometric Product of Basis Blades in an Orthogonal Metric
19.4 The Geometric Product of Basis Blades in Nonorthogonal Metrics
19.5 The Inner Products of Basis Blades
19.6 Commutator Product of Basis Blades
19.7 Grade-Dependent Signs on Basis Blades
CHAPTER 20. THE LINEAR PRODUCTS AND OPERATIONS
20.1 A Linear Algebra Approach
20.1.1 Implementing the Linear Operations
20.1.2 Implementing the Linear Products
20.2 The List of Basis Blades Approach
20.3 Structural Exercises
CHAPTER 21. FUNDAMENTAL ALGORITHMS FOR NONLINEAR PRODUCTS
21.1 Inverse of Versors (and Blades)
21.2 Inverse of Multivectors
21.3 Exponential, Sine, and Cosine of Multi vectors
21.4 Logarithm of Versors
21.5 Multivector Classification
21.6 Blade Factorization
21.7 The Meet and Join of Blades
21.8 Structural Exercises
CHAPTER 22. SPECIALIZING THE STRUCTURE FOR EFFICIENCY
22.1 Issues in Efficient Implementation
22.2 Generative Programming
22.3 Resolving the Issues
22.3.1 The Approach
22.4 Implementation
22.4.1 Algebra Specification
22.4.2 Implementation of the General Multivector Class
22.4.3 Implementation of the Specialized Multivector Classes
22.4.4 Optimizing Functions Over the Algebra
22.4.5 Outermorphisms
22.4.6 Optimizing the Nonlinear Functions
22.5 Benchmarks
22.6 A Small Price to Pay
22.7 Exercises
CHAPTER 23. USING THE GEOMETRY IN A RAY-TRACING APPLICATION
23.1 Ray-Tracing Basics
23.2 The Ray-Tracing Algorithm
23.3 Representing Meshes
23.4 Modeling the Scene
23.4.1 Scene Transformations
23.5 Tracing the Rays
23.5.1 The Representation of Rays
23.5.2 Spawning Rays
23.5.3 Ray-Model Intersection
23.5.4 Reflection
23.5.5 Refraction
23.6 Shading
23.7 Evaluation
PART IV APPENDICES
A METRICS AND NULL VECTORS
A.1 The Bilinear Form
A.2 Diagonalization to Orthonormal Basis
A.3 General Metrics
A.4 Null Vectors and Null Blades
A.5 Rotors in General Metrics
B CONTRACTIONS AND OTHER INNER PRODUCTS
B.1 Other Inner Products
B.1.1 The Dot Product
B.1.2 Hestenes'Inner Product
B.1.3 Near Equivalence of Inner Products
B.1.4 Geometric Interpretation and Usage
B.2 Equivalence of the Implicit and Explicit Contraction Definitions
B.3 Proof of the Second Duality
B.4 Projection and the Norm of the Contraction
C SUBSPACE PRODUCTS RETRIEVED
C.1 Outer Product from Peometric Product
C.2 Contractions from Geometric Product
C.3 Proof of the Grade Approach
D COMMON EQUATIONS
BIBLIOGRAPHY
INDEX
ERRATA


πŸ“œ SIMILAR VOLUMES


Geometric Algebra for Computer Science (
✍ Leo Dorst, Daniel Fontijne, Stephen Mann πŸ“‚ Library πŸ“… 2007 πŸ› Morgan Kaufmann 🌐 English

The book Geometric Algebra For Computer Science, by Dorst, Fontijne, and Mann has one of the best introductions to the subject that I have seen. It contains particularly good introductions to the dot and wedge products and how they can be applied and what they can be used to model. After one gets

Geometric Algebra for Computer Science (
✍ Leo Dorst, Daniel Fontijne and Stephen Mann (Auth.) πŸ“‚ Library πŸ“… 2009 πŸ› Morgan Kaufmann 🌐 English

</div><div class='box-content'><ul><li><p><span class=''review_text''><P/>Within the last decade, Geometric Algebra (GA) has emerged as a powerful alternative to classical matrix algebra as a comprehensive conceptual language and computational system for computer science. This book will serve as a s