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!

  • $\begingroup$ I suppose wlog two projected points can lie on x- and y- axes, the third in first or second quadrants. Small edit I made hope ok. Projected like a sun's shadow at noon, right? $\endgroup$ – Narasimham Aug 4 '15 at 19:57
  • $\begingroup$ The most recent edit claims that the projection is orthogonal. Does the OP agree with this? $\endgroup$ – eigenchris Aug 4 '15 at 19:57
  • $\begingroup$ Sorry I shall change back the edit, orthogonal projection is a bit simpler, that OP I thought may have had in mind. $\endgroup$ – Narasimham Aug 4 '15 at 19:59
  • $\begingroup$ @Narasimham you may be correct, I just want to confirm with the OP. I can't see an obvious solution right now, so I don't know if it's relevant at this point. $\endgroup$ – eigenchris Aug 4 '15 at 20:02
  • $\begingroup$ @Bob In case of orthogonal projection normal vector to the plane of triangle only need be considered. $\endgroup$ – Narasimham Aug 4 '15 at 20:09

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).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.