logo back up home forward   further reading more topics »

Maths - Homogeneous Coordinates

This uses a 4D space to model the 3D world, the additional dimension gets round some problems we have when using the usual 3D vector space. The extra dimension can be thought of as the point at the origin in the physical space.

This space, known as Projective Space, allows us to represent a location in physical space as a direction (ratio of x,y,z with w). Since rotations operate on directions then this gives us a way to represent rotations and translations in a common way.

It is useful where:

Projective Space

This is used as the coordinate system for projective space. Projective space has one additional dimension compared to the equivalent euclidean space.

This page discusses rendering 3D models on a 2D screen.

projective space

(x,y,z) (x:y:z:w)

Plücker Coordinates

If a point is at (x,y,z) in euclidean space then the equivalent in projective space is (x*w, y*w, z*w, w). Or to put it the other way round, if a point is defined as (x',y',z',w) in projective space this is equivalent to (x'/w,y'/w,z'/w) in euclidean space. So we can scale the object in projective space without affecting what it represents.

more about Plücker coordinates here.

We can also use Geometric Algebra or Matrices to represent the homogeneous geometry.

Geometric Algebra Representation

Here we can see how we represent a location in physical space as a direction (ratio of x,y,z with w) in homogeneous space

quantity Physical Space Homogeneous Space
  physical space homogeneous space
coordinate x,y,z x,y,z,w
direction a
(notation as bold)
a

location

a = vector (representing an offset from origin)

a + e0

oriented line  

outer product of two vectors:

a^b

oriented plane  

outer product of three vectors:

a^b^c

     
     
     
     

For a discussion of alternative ways to use Geometric Algebra to combine rotations and translations see this page.

This geometric algebra has 4 dimensions (which all square to +ve), known as G4,0,0, this is discussed on this page. We could alternatively allow e0 to square to -ve, this would work just as well.

One of the advantages of projective space is that it allows points at infinity to be defined. The plane at infinity is identified by (x,y,z,0).

 

element 3D space Homogeneous 4D space
Point offset point point
Line offset line line
Plane offset plane plane
Volume
whole space
 
For information about using Geometric Algebra to work with projective space see this page

metadata block
see also:
Correspondence about this page

Book Shop - Further reading.

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.

cover Geometric Algebra for Computer Science: An Object-oriented Approach to Geometry. This book stresses the Geometry in Geometric Algebra, although it is still very mathematically orientated. Programmers using this book will need to have a lot of mathematical knowledge. Its good to have a Geometric Algebra book aimed at computer scientists rather than physicists. There is more information about this book here.

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to the software project, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

 

Can you help?

Please send me any improvements to here. I would appreciate ideas to make the pages more useful including error correction, ideas for new pages, improvements to wording. It helps if you quote the full URL of the page.

 

progam

I am working on a project which uses these principles, if you would like to help me with this you are welcome to join in, here:

http://sourceforge.net/projects/mjbworld/

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2008 Martin John Baker - All rights reserved - privacy policy.