logo back up home forward   further reading more topics »

Maths - Projections of lines on planes

This was my original working before Xavier pointed out the inconsistencies. (back to main page)

Alternative using Matrix representation

perpendicular component

A outer B = (A outer B) * B/|B|2

A outer B can be calculated as follows:

x = Ay * Bz - By * Az
y = Az * Bx - Bz * Ax
z = Ax * By - Bx * Ay

So,

(A B)x = ((Az * Bx - Bz * Ax) * Bz - By * (Ax * By - Bx * Ay)) / (Bx2 + By2 + Bz2)
(A B)y = ((Ax * By - Bx * Ay) * Bx - Bz * (Ay * Bz - By * Az)) / (Bx2 + By2 + Bz2)
(A B)z = ((Ay * Bz - By * Az) * By - Bx * (Az * Bx - Bz * Ax)) / (Bx2 + By2 + Bz2)

grouping terms,

(A B)x = (Az * Bx* Bz - Bz * Ax* Bz - Ax * By* By + Bx * Ay* By) / (Bx2 + By2 + Bz2)
(A B)y = (Ax * By* Bx - Bx * Ay* Bx - Ay * Bz*Bz + By * Az*Bz) / (Bx2 + By2 + Bz2)
(A B)z = (Ay * Bz* By - By * Az* By - Az * Bx*Bx + Bz * Ax*Bx) / (Bx2 + By2 + Bz2)

In matrix form,

(A B) = 1 / (Bx2 + By2 + Bz2)*
-Bz* Bz- By* By Bx * By Bx* Bz
By* Bx -Bx*Bx- Bz*Bz By *Bz
Bz *Bx Bz* By -By*By- Bx*Bx
[A]

I think the signs of all terms should be inverted, see error heading below, can anyone help?

Alternative Form

As pointed out here, If B is normalised (unit length) then Bx2 + By2 + Bz2 =1 so we get:

(A B) =
Bx*Bx - 1 Bx * By Bx* Bz
By* Bx By*By- 1 By *Bz
Bz *Bx Bz* By Bz*Bz - 1
[A]

which is:

(A B) = (
Bx
By
Bz
*
Bx By Bz
-[I])[A]

which is:

(A B) = (B * Bt - [I]) [A]

where:

  • [I] = unit matrix
  • Bt = transpose of B vector

As this is quite a simple equation I wonder if there is a simpler way to derive it? perhaps the method of least squares discussed here.

parallel component

A || P = A • P * P/|B|2

A • P can be calculated as follows:

Ax * Bx + Ay * By + Az * Bz

so,

(A || P)x = (Ax * Bx + Ay * By + Az * Bz) * Bx / (Bx2 + By2 + Bz2)
(A || P)y = (Ax * Bx + Ay * By + Az * Bz) * By/ (Bx2 + By2 + Bz2)
(A || P)z = (Ax * Bx + Ay * By + Az * Bz) * Bz/ (Bx2 + By2 + Bz2)

in matrix form this is:

(A || P) = 1 / (Bx2 + By2 + Bz2)*
Bx2 Bx * By Bx * Bz
By * Bx By2 By * Bz
Bz * Bx Bz * By Bz2
[A]

Alternative Form

If B is normalised (unit length) then Bx2 + By2 + Bz2 =1 so we get:

(A || P) =
Bx * Bx Bx * By Bx * Bz
By * Bx By * By By * Bz
Bz * Bx Bz * By Bz * Bz
[A]

which is:

(A P) = (
Bx
By
Bz
*
Bx By Bz
)[A]

which is:

(A P) = (B * Bt) [A]

where:

  • Bt = transpose of B vector

As this is quite a simple equation I wonder if there is a simpler way to derive it? perhaps the method of least squares discussed here.

Error

we have shown above that:

A = A || B + A B

which would give:

A = (B * Bt - [I] + B * Bt)[A]

which should simplify to A = [I][A] but it does not so it looks like the sign of (A B) is inverted can anyone see where I went wrong?


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 New Foundations for Classical Mechanics (Fundamental Theories of Physics). This is very good on the geometric interpretation of this algebra. It has lots of insights into the mechanics of solid bodies. I still cant work out if the position, velocity, etc. of solid bodies can be represented by a 3D multivector or if 4 or 5D multivectors are required to represent translation and rotation.

Other Math Books

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.

Are the signs of the terms correct? see error heading above

Is there a simpler derivation?

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.