Converting Rotation Matrices (Left handed to Right handed)

Click For Summary
SUMMARY

The discussion focuses on converting left-handed rotation matrices to their right-handed equivalents for use in a right-handed coordinate system. The user, neorich, seeks to maintain the integrity of object positions while transitioning from a left-handed matrix (ML) to a right-handed matrix (MR). The solution involves recognizing that the left-handed matrices have a determinant of -1, and by multiplying them by -1, they can be transformed into proper right-handed rotation matrices with a determinant of 1. This adjustment allows compatibility with standard code libraries.

PREREQUISITES
  • Understanding of rotation matrices in 3D geometry
  • Familiarity with left-handed and right-handed coordinate systems
  • Knowledge of matrix multiplication and determinants
  • Experience with geometric transformations in computer graphics
NEXT STEPS
  • Research the properties of rotation matrices and their determinants
  • Learn about converting between left-handed and right-handed coordinate systems
  • Explore the implementation of matrix transformations in libraries such as OpenGL or DirectX
  • Study the effects of matrix inversion and multiplication on geometric transformations
USEFUL FOR

This discussion is beneficial for computer graphics developers, game developers, and anyone involved in 3D modeling or simulation who needs to work with rotation matrices and coordinate systems.

neorich
Messages
19
Reaction score
1
Dear All,

I have inherited a few rotation matrices through some old computer code I am updating. The code is used to construct some geometry.

The matrices I have inherited are left handed rotation matrices and they are being applied to a right handed coordinate system, but they give the correct rotations (by correct I mean that the objects being rotated have the correct x, y and z in the right handed coordinate system).

What I want to do is to find the right handed equivalent rotation matrices to apply to the right handed coordinate system such that the the objects positions are unchanged, but my matrices become "standard". I require standard right handed matrices to allow me to make use of some code libraries.

So to re-cap:

I have a left handed matrix ML, a starting position vector V1, and a rotated position vector V2, at present I have:

V2 = ML * V1 ... and this gives the correct V2 for my geometry.

What I want is a right handed matrix MR, which also gives:

V2 = MR * V1 ... where V2 is the same in both equations and V1 is the same in both equations.

I need my solution to hold true for any V1 I choose to use, I am able to get a RH rotation matrix which applies to any given pair V1 and V2, but not simultaneously to all pairs.

Simply looking at the above equations, it is unclear that this can be done unless ML=MR.

But considering the geometry, I must be able to construct a RH rotation matrix that provides me with the rotations I need.

Below is an example of one of my present left handed rotation matrices:

ColX, ColY, ColZ
( 0.0397092 , -0.0288239 , 0.998795 )
( 0.808299 , -0.586725 , -0.0490677 )
( -0.587432 , -0.809273 , 0 )

clearly X cross Y = -Z here, and I need a matrix which has the property X cross Y = Z.

Thanks for any solutions, pointers and advice you can provide to me.

Regards

neorich
 
Physics news on Phys.org
Your rotation matrices have determinant -1. In 3D, you can multiply them by -1 to make them proper rotation matrices with determinant 1.
 
Thanks fzero, that was really helpful.

Regards

neorich
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 9 ·
Replies
9
Views
4K
Replies
2
Views
2K
Replies
3
Views
3K