To change from basis A to basis B, use the matrix whose columns are the basis vectors of A expressed in B. Answer from NewbornMuse on reddit.com
🌐
Reddit
reddit.com › r/math › is it possible to find transformation matrix between two coordinate systems?
r/math on Reddit: Is it possible to find transformation matrix between two coordinate systems?
September 27, 2019 -

I want to transform geometry from one coordinate system to another. I am given origins and axes of both. I've managed to do so using this method, but I'd like to find one ultimate transformation matrix which would directly transform geometry from one coordinate system to another (which I could also use to e.g easily revert transformation).

I found something about it here and here and it looks like they say that it's impossible. But my English is too weak to be sure if that's the point or even if they talk about problem similar to mine *.*

I'd appreciate any help :)

Discussions

linear algebra - Transformations between coordinate systems - Mathematics Stack Exchange
I have three three-dimensional orthogonal coordinate systems, O, A and B. A and B are the result of two different transformations from O. I now want to calculate the transformation matrix R, which ... More on math.stackexchange.com
🌐 math.stackexchange.com
linear algebra - How to get the rotation matrix to transform between two 3d cartesian coordinate systems? - Game Development Stack Exchange
I'd like to know how to get the rotation matrix for the transformation from one cartesian coordinate system (X, Y, Z) to another one (X', Y', Z'). Both systems are defined with three orthogonal v... More on gamedev.stackexchange.com
🌐 gamedev.stackexchange.com
March 24, 2012
rotation matrix between two coordinate systems matlab
rotation matrix between two coordinate systems... Learn more about 3d transformation More on mathworks.com
🌐 mathworks.com
1
0
September 14, 2017
Is it possible to find transformation matrix between two coordinate systems?
To change from basis A to basis B, use the matrix whose columns are the basis vectors of A expressed in B. More on reddit.com
🌐 r/math
7
2
September 27, 2019
People also ask

How do you convert between coordinate systems? What is meant by coordinate transformation? How many types of coordinate transformations exist? Why do we need coordinate transformations? Why are coordinate systems important?
Converting between coordinate systems involves applying a mathematical equation to change from one system, such as Cartesian, to another, like polar coordinates. A coordinate transformation refers to changing the description of a point in a geometric space from one coordinate system to another. There are countless types of transformations, including linear, nonlinear, affine, and projective transformations. Coordinate transformations are necessary to comprehend phenomena in different reference frames and coordinate systems are vital for identifying locations in a space or plane.
🌐
vaia.com
vaia.com › transformation between coordinate systems
Transformation: Matrix and Vector for Coordinate Systems - Vaia
What is the mathematical process involved in the transformation between coordinate systems?
The transformation between coordinate systems involves applying a function or a set of operations that change coordinates from one system to another, such as rotation, scaling, shear or translation. These operations can often be represented using matrices.
🌐
vaia.com
vaia.com › transformation between coordinate systems
Transformation: Matrix and Vector for Coordinate Systems - Vaia
What are the significant applications of transformation between coordinate systems in physics?
Transformation between coordinate systems in physics is crucial for solving problems where the system's behaviour is simpler or more intuitive in a different coordinate system. It also plays a vital role in relativity physics, aiding understanding of how laws of physics behave in different frames of reference.
🌐
vaia.com
vaia.com › transformation between coordinate systems
Transformation: Matrix and Vector for Coordinate Systems - Vaia
To change from basis A to basis B, use the matrix whose columns are the basis vectors of A expressed in B. Answer from NewbornMuse on reddit.com
🌐
Wikipedia
en.wikipedia.org › wiki › Transformation_matrix
Transformation matrix - Wikipedia
2 weeks ago - In the physical sciences, an active transformation is one which actually changes the physical position of a system, and makes sense even in the absence of a coordinate system whereas a passive transformation is a change in the coordinate description of the physical system (change of basis). The distinction between active and passive transformations is important. By default, by transformation, mathematicians usually mean active transformations, while physicists could mean either. Put differently, a passive transformation refers to description of the same object as viewed from two different coordinate frames. ... {\displaystyle T(x)} in functional form, it is easy to determine the transformation matrix A by transforming each of the vectors of the standard basis by T, then inserting the result into the columns of a matrix.
🌐
Etsu
math.etsu.edu › multicalc › prealpha › chap3 › chap3-1 › printversion.pdf pdf
Coordinate Transformation Coordinate Transformations
The matrix of coe¢ cients a; b; c; d is called the matrix of the transformation. ... Together, these curves are called the coordinate curves of the transformation.
Find elsewhere
🌐
Vaia
vaia.com › transformation between coordinate systems
Transformation: Matrix and Vector for Coordinate Systems - Vaia
November 3, 2023 - Assume a vector \(\vec {a}\) expressed in an initial coordinate system as \(\vec {a} = a_1 \hat {e}_1 + a_2 \hat {e}_2 + a_3 \hat {e}_3\). If one wishes to express this same vector in a new coordinate system, \(\vec {a} = a'_1 \hat {e}'_1 + a'_2 \hat {e}'_2 + a'_3 \hat {e}'_3\), one must find the new components \(a'_i\) in terms of the old components \(a_i\) via a transformation matrix, \(T\). This transformation process might seem daunting, but it's analogous to translation software converting French to English. The intention (vector) remains the same, while the way it's expressed (coordinate
🌐
Geometrictools
geometrictools.com › Documentation › ConvertingBetweenCoordinateSystems.pdf pdf
Converting Between Coordinate Systems
April 23, 2014 - the U-basis and the change of basis matrix C to convert to the V-basis, the matrix transformation in the ... M = C−1MC. ... The process for linear change of basis applies when the two observers use the same origin for their coordinate · systems. However, in some applications the origins ...
🌐
Master PDF Editor
code-industry.net › masterpdfeditor-help › transformation-matrix
Transfomation Matrix
Transformation matrices are formed following way: Movements are represented as [1 0 0 1 tx ty], where tx and ty — distances from coordinate axis horizontally and vertically correspondingly. Scaling is represented as ty. This scales coordinates so that 1 unit in horizontal and vertical ...
🌐
Brainvoyager
brainvoyager.com › bv › doc › UsersGuide › CoordsAndTransforms › SpatialTransformationMatrices.html
Spatial Transformation Matrices
The topic describes how affine spatial transformation matrices are used to represent the orientation and position of a coordinate system within a "world" coordinate system and how spatial transformation matrices can be used to map from one coordinate system to another one.
🌐
Continuummechanics
continuummechanics.org › coordxforms.html
Coordinate Transforms
\(\lambda_{ij}\) is defined as \[ \lambda_{ij} = \cos(x'_i,x_j) \] For example, if \(i = 1\) and \(j = 2\), then \[ \lambda_{12} = \cos(x'_1,x_2) = \cos(x',y) \] \(\lambda_{ij}\) is the direction cosine of the angle between the \(x'_i\) axis and the \(x_j\) axis. Again, this is equally applicable to 3-D transformations as well. Recall from above that the dot product of any two different rows or columns of a transformation matrix is zero, while the dot product of any row or column with itself is one.
Top answer
1 of 2
6

One easy way is to think of both coordinate systems as transforms from the unit vectors (1,0,0) (0,1,0) and (0,0,1). You start off in this coordinate space (I will call it '1')whose transform matrix is the identity matrix:

    [1,0,0]
I = [0,1,0]
    [0,0,1]

then your first coordinate space (I will call it '2') has the transform matrix:

    [Xx,Xy,Xz]
A = [Yx,Yy,Yz]
    [Zx,Zy,Zz]

and your second coordinate space (I will call it '3') has the transform matrix:

    [Xx',Xy',Xz']
B = [Yx',Yy',Yz']
    [Zx',Zy',Zz']

For your points to be in the first coordinate system, then you have transformed them from 1 to 2. If you want to go from 2 to 3 then you can undo the transform from 1 to 2 then do the transform from 1 to 3. You can reverse the transform by inverting 2's transform matrix.

A point v in 2 can be transformed to a point v' in 3 with this equation: v' = B(A^-1)v where (A^-1) is the inverse of A.

Note this also handles scaling even though you don't need it. This approach will work with translation as well, though you would need a 4x4 matrix instead of a 3x3.

2 of 2
1

I worked on a project that had lots of transformation to do. I found lots of links on the subject, but they used math that I couldn't comprehend because the symbology was alien. I finally found this paper, which revealed the contents of the matrix to use. The short answer is that the matrix is composed of the dot product of the different axis that you're trying to convert to and from.

In order to save some pain for the next developer I posted some C# in GitHub that has a working sample. The program was derived from one that I found on Code Project, which was written to demonstrate using quaternions but which I found to be useful as a ready-to-go program that would let me rotate and display a surface.

If you want to see what's under the hood here is the essential code. This doesn't show the actual transformation, that's in the code, but the secret sauce of how to do it is located here.

Vector3d X1 = XAxisWorld;            // This is vector (1,0,0)
Vector3d X2 = YAxisWorld;            // This is vector (0,1,0)
Vector3d X3 = ZAxisWorld;            // This is vector (0,0,1)

// These vectors are the local X,Y,Z of the rotated object
Vector3d X1Prime = XAxisLocal;
Vector3d X2Prime = YAxisLocal;
Vector3d X3Prime = ZAxisLocal;
// This matrix will transform points from the rotated axis to the world
LocalToWorldTransform = new Matrix3x3()
{
    M11 = (float)Vector3d.DotProduct(X1, X1Prime),
    M12 = (float)Vector3d.DotProduct(X1, X2Prime),
    M13 = (float)Vector3d.DotProduct(X1, X3Prime),
    M21 = (float)Vector3d.DotProduct(X2, X1Prime),
    M22 = (float)Vector3d.DotProduct(X2, X2Prime),
    M23 = (float)Vector3d.DotProduct(X2, X3Prime),
    M31 = (float)Vector3d.DotProduct(X3, X1Prime),
    M32 = (float)Vector3d.DotProduct(X3, X2Prime),
    M33 = (float)Vector3d.DotProduct(X3, X3Prime),
};
// This matrix will transform points from the world back to the rotated axis
WorldToLocalTransform = new Matrix3x3()
{
    M11 = (float)Vector3d.DotProduct(X1Prime, X1),
    M12 = (float)Vector3d.DotProduct(X1Prime, X2),
    M13 = (float)Vector3d.DotProduct(X1Prime, X3),
    M21 = (float)Vector3d.DotProduct(X2Prime, X1),
    M22 = (float)Vector3d.DotProduct(X2Prime, X2),
    M23 = (float)Vector3d.DotProduct(X2Prime, X3),
    M31 = (float)Vector3d.DotProduct(X3Prime, X1),
    M32 = (float)Vector3d.DotProduct(X3Prime, X2),
    M33 = (float)Vector3d.DotProduct(X3Prime, X3),
};

The text is copied from an archived version of the page originally presented as the answer and that had rot.

🌐
MIT OpenCourseWare
ocw.mit.edu › courses › 16-07-dynamics-fall-2009 › 66b42ce6c35f2757ad11dc0a6e2b2896_MIT16_07F09_Lec03.pdf pdf
Vectors, Matrices and Coordinate Transformations
We introduce the symbol [T ] for the transformation matrix from x to X’. ... This relationship, which expresses how the components of a vector in one coordinate system relate to the · components of the same vector in a different coordinate system, is then written · A’ = [T ]A. ... We now consider the process that transforms the vector A’ from the X’ system to the x system. ... By comparing the two coordinate transformations shown in a) and b), we see that cos(θ12)=cos(Θ21), and
🌐
University of Texas
farside.ph.utexas.edu › teaching › celestial › Celestial › node122.html
Rotational coordinate transformations
The reverse transformation is accomplished by rotating the coordinate axes through an angle about the -axis: It follows that the matrix appearing in Equation (A.89) is the inverse of that appearing in Equation (A.90), and vice versa. However, because these two matrices are clearly also the transposes of one another, we deduce that both matrices are unitary.
🌐
Accessengineeringlibrary
accessengineeringlibrary.com › content › book › 9780071761123 › back-matter › appendix3
Coordinate Transformations | McGraw-Hill Education - Access Engineering
To illustrate the application of matrix algebra in two-dimensional conformal coordinate transformation by least squares, assume that coordinates of three control points A, B, and C are known in both the XY system and the EN system. Let their coordinates be of equal reliability so that their weights are equal.
🌐
TU Chemnitz
tu-chemnitz.de › informatik › KI › edu › robotik › ws2017 › trans.mat.pdf pdf
Transformation Matrices Dr.-Ing. John Nassour
Summary: Rotation Matrix · 1.It represents a coordinate transformation · relating the coordinates of a point p in two · different frames. 2. It gives the orientation of a transformed · coordinate frame with respect to a fixed · coordinate frame. 3. It is an operator taking a vector and ...