Representing 3D rotations

M = is a multivector representing the product of two vectors and so contains only the scalar and bivector terms (even subalgebra) it is equivalent to (isomorphic to) quaternion algebra. we can show this as follows:

Representing 3D rotations

On this page we saw that we can use the 'sandwich' product to execute a transform as follows:

Pout = M Pin M-1

where:

M = a multivector which defines the transform

Pin = an object to be transformed, for example, a point.

M-1 = the multiplicative inverse

Pout = the result of the transform

A 3D rotation is represented by the product of two 3D vectors (a e1 + b e2 + c e3)(d e1 + e e2 + f e3) which gives one scalar term and three bivector terms (e12, e31 and e23), this is equivalent (isomorphic to) quaternions. Note the odd grades (vectors and trivectors) cancel out because the dimensions anticommute

In 3D we can greatly simplify this because the multiplicative inverse is equivalent to the reverse (described on this page). This is because there are only 3 basis vectors so we can't have two completely independent bivectors.

In other words M-1 = M† ,so ,

Pout = M Pin M†

where:

M† = the reversal of the transform, that is we reverse the order of basis vectors in each term separately.

In this case M is a linear combination of the scalar and bivector terms:

Representing 3D transforms

To represent isometry transforms in 3D we need 3 or 4 scalar values (quaternion or 3D vector) to represent rotations and we need 3 scalar values (a 3D vector) to represent translation. A multivector based on 3D vectors therefore has enough values to represent 3D isometries , for instance (e12,e31,e23) might hold the rotation value and (e1,e2,e3) hold the translation value, but does the algebra work out? Can we do useful operations on the multivector using such a notation? Below I have shown how 3D multivectors can be used to implement reflections, rotations and scaling about the origin. However I cant find a way to represent a translation combined with these.

Of course we can represent a translation by adding a vector but what we are trying to do here is to combine rotation and translation into one multiplication operation. I cant find a way to do that here using 3D transforms, 3D transforms only seem to be able to do the same things as quaternions but not more.

To represent 3D rotations and translations with a single multiplication we need to goto a 4-dimentional algebra G 3,0,1 as described on this page.

Reflection Transforms

We can specify a transform by mapping a → -n*a*n

In this section we will investigate the properties of such a transformation and show that if 'n' is a vector representing a normal to a plane then this expression represents a reflection in this plane. This can be derived by splitting the vector into components parallel and perpendicular to the plane but it still does not seem very intuitive.

Rotating a multivector

We can form a rotation by combing two reflections as described on this page. So reflecting in plane 'n' gives:

-n*a*n

If we then reflect the result in a different plane 'm' we get the expression for the rotation:

m*n*a*n*m

but, since n and m are pure vectors, if we let

R = m * n

then

R† = n† * m†

but since n and m are pure vectors then n†= n and m†= m which means that:

R† = n * m

Which means that the expression for the rotation is:

R a R†

where R is known as a Rotor, since it is the geometric product of two pure vectors (multivectors containing only grade 1 factors) then the result is a multivector with only real and bivector (grade 0 and 2) parts. The real part comes from the inner product and the bivector part comes from the outer product.

Standards

There are a lot of choices we need to make in mathematics, for example,

Left or right handed coordinate systems.

Vector shown as row or column.

Matrix order.

Direction of x,y and z coordinates.

Euler angle order

Direction of positive angles

Choice of basis for bivectors

Etc. etc.

A lot of these choices are arbitrary as long as we are consistent about it, different authors tend to make different choices and this leads to a lot of confusion. Where standards exist I have tried to follow them (for example x3d and MathML) otherwise I have at least tried to be consistent across the site. I have documented the choices I have made on this page.

Projective Geometry

Has many applications including:

Represent points, lines, planes, etc. which may be offset from origin.

Rotation as Two Reflections

If we get two mirrors and put them at 90° to each other we can get a view that has been reflected in both mirrors. The object will appear to have been rotated by 180° which is twice the angle between the mirrors.

Duality

Join

If we have two vectors then they define a plane (assuming the vectors are different from each other).

This page explains how this is an extension of the idea of a cross product.

Meet

If we have two planes then they define a vector (assuming the planes are different from each other). That is along the line where the planes intersect.

This page explains how this is related to the inner and outer products of Geometric Algebra.

Lie Group

Groups are usually defined over a set but in the case of Lie groups they are defined over manifolds. That is like taking a group, unplugging it from the set structure and instead plugging in the manifold.

So a Lie group is a combination
of infinite groups and calculus. For example 'infinitesimal
elements' allow us to build rotations by integrating some
infinitesimal rotation. A group that has infinitesimal generators is called a continuous group.

It is useful to be able to linearise the group, for instance taking the exponent of the group, this linearised version is known as its Lie algebra , this takes a group with one operation and creates an algebra with both a addition and a multiplication operation.

Category Theory

Category theory (see Page here) allows us to study algebraic structures by looking at their external properties. Other approaches build up structures from simpler elements. Here we look at morphisms between whole structures and represent these as diagrams like this:

Where I can, I have put links to Amazon for books that are relevant to
the subject, click on the appropriate country flag to get more details
of the book or to buy it from them.

Geometric Computing for Perception Action Systems: Concepts, Algorithms, and Scientific Applications (Hardcover). This is the only book I have so far come across that has a reasonable explanation of 'motors' and why it is useful to use 4D Geometric algebra to represent kinematics of solid bodies (in chapter 2). The book is quite a slim volume considering that it covers both fundamental concepts and practical applications. Therefore I think you will need to have a good understanding of Geometric Algebra before starting on this book.