determine transform matrix given two points

2.7k Views Asked by At

You'll have to excuse me if this is a dumb question, but I am only familiar with the basics of linear algebra.

I have the coordinates of the SAME point in two different coordinate systems. Is it possible to know the transformation matrix between the two coordinate systems?

for example, in csys1, the point's coords are:

[-200.0,-200.0,-200.0]

...in csys2 the point's coords are:

[-108.246,-729.828,-2837.073]

From this information can I then know how to express the coordinates of any point in csys1 in csys2? The csys's may be only rotated or translated with respect to each other (no scaling, etc.). Is more information needed?

1

There are 1 best solutions below

0
On BEST ANSWER

I don't think that you can know it in general, and here's why on a conceptual level. A transformation matrix applied to a point produces $N$ equations, where $N$ is the rank of the matrix (number of dimensions). However, there are $N^2$ unknowns in the matrix, since there are $N$ columns in the matrix, but only $1$ column in the resultant vector. Now if you had three points, the answer would be yes. In your case. $$ \begin{bmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \end{bmatrix} * \begin{Bmatrix} x \\ y \\ z \end{Bmatrix} = \begin{Bmatrix} x' \\ y' \\ z' \end{Bmatrix} $$ This expands to: $$\begin{bmatrix} a_{1,1}*x+a_{1,2}*y+a_{1,3}*z=x' \\ a_{2,1}*x+a_{3,2}*y+a_{2,3}*z=y' \\ a_{3,1}*x+a_{3,2}*y+a_{3,3}*z=z' \\ \end{bmatrix}$$ That gives us three equations, but since we need the coefficients of the transformation matrix $A$, we need nine equations.