[Math] 3D projection onto 2D plane to determine transformation matrix

geometrylinear algebraprojective-geometry

I'm not sure if there is an actual solution to this problem or not, but thought I would give it a shot here to see if anyone has any ideas. So here goes:

I basically have three vertices of a rigid triangle with known 3D coordinates. The vertices are projected onto a 2D plane, in which I also know the 2D coordinates. A transformation matrix is applied to the original three points (can be a combination of rotation and translation) and I now know the new 2D projection coordinates.

Is it possible to obtain either the unknown transformation matrix or the new coordinates? Any ideas are much appreciated. Thanks!

Best Answer

all you need to do is measure how the vectors vec3(1,0,0) vec3 (0,1,0) vec3(0,0,1) get changed by any matrix.
vec3(1,0,0)'s transformation is equal to the first column of the matrix vec3(0,1,0)'s transformation is equal to the second column of the matrix vec3(0,0,1)'s transformation is equal to the second column of the matrix (only if it has 3 dimensions) vec4(0,0,0,1)'s transformation is equal to the second column of the matrix (only if it has 4 dimensions),...


yes, learn how matrices function on basic core level:

in a 2d to 2d matrix transformation, 2 matrix colums are equal to what the 2 base-vectors vec2(1,0) and vec2(0,1) are changed into by the matrix. any scalar of that is also transformed linearily scaled to that, as a matrix transformation is a linear transformation.

in a 3d to 3d matrix transformation, same goes for 3 base-vectors vec3(1,0,0) vec3 (0,1,0) vec3(0,0,1) being changed by 3 matrix columns.

in a 3d to 2d matrix, 3 columns of 2 lines tell how 3 3d basis vectors as in the above are scamed in 3d space, as a sum of three 2d vectors (that get scaled by the matrix).