[Math] 3D projection coordinates 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 (by projection, I mean that each vertex would basically have a fixed line drawn from it to the 2D plane, and that "line" would also stay rigid to the triangle so that the lines would move along with the triangle if it is transformed), 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

Here's a way of doing what I think you want to do.

First, find two perpendicular unit-vectors that are parallel to the plane (i.e. perpendicular to the normal vector). You might want to use Gram-Schmidt here. Call the vectors $u_1$ and $u_2$. These are the "axes" along the plane you're projecting onto.

Any point on the plane can be written in the form $a_1u_1 + a_2u_2$ for some coordinates $(a_1,a_2)$. To find the coordinates of the orthogonal projection of a vector $x$ onto your plane, calculate $$ a_1 = u_1^Tx\\ a_2 = u_2^Tx $$ Or, all together: $$ \pmatrix{a_1\\a_2} = \pmatrix{u_1^T\\u_2^T} \pmatrix{x_1\\x_2\\x_3} $$