Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a given rectangle that I need to transform into a given quadrilateral shape that resulted from a rotation and translation in 3D space, and subsequent projection.

*---------*        *---------*
|         |  -->   \         /
|         |         \        / 
*---------*          *------*

I only have the coordinates of the projected rectangle (i.e. the four coordinates of the quadrilateral's corners). I need to get back to the 3D rotation and translation that resulted in that projected shape.

Is there a simple mathematical formula that would enable me to compute the values of the rotation vector, rotation angle and translation vector?


share|cite|improve this question
Well, if it's true mathematical projection, it will always end up being a parallelogram, and how far up the z-axis you translate it will not be visible. Also, it's neccesary to know something about the rectangle you started with, like it's the smallest possible, given the result, or something like that. – Arthur Mar 2 '12 at 20:40
It's a perspective projection, so it's not a parallelogram. About the rectangle, we can make it any size or shape we want (as long as it's a rectangle). – KPM Mar 2 '12 at 20:54
See for an example. We need to map a picture into the blue-green shape. – KPM Mar 2 '12 at 21:00
Your answer might lie in the functions of this – user822711 May 17 '12 at 17:01
Have you looked into plane-to-plane "homographies" ( – Hauke Strasdat Aug 17 '12 at 2:03

In this answer, it is described how to construct a perspective transform $M$ that maps the any quadrilateral to any other quadrilateral.

Once $M$ is computed, it can be decomposed into a standard $2\times2$ transform $$ \begin{bmatrix}a&b&0\\c&d&0\\0&0&1\end{bmatrix} $$ a translation $$ \begin{bmatrix}1&0&0\\0&1&0\\h&k&1\end{bmatrix} $$ and rotations on the $x$ and $y$ axes $$ \begin{bmatrix}1&0&0\\0&\cos(\theta)&\sin(\theta)\\0&0&1\end{bmatrix} \quad\text{and}\quad \begin{bmatrix}\cos(\phi)&0&\sin(\phi)\\0&1&0\\0&0&1\end{bmatrix} $$ to give the $3$D motions equivalent to $M$.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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