Take the 2-minute tour ×
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.

In most vector graphic software libraries I can use (3x3) matrices to transform 2D geometry (e.g. scale, rotate, skew). How does a matrix need to look like to transform a 2D rectangle to a symmetrical trapezoid (or equilateral triangle if parameters are taken to the extreme)? What parts of the matrix define which parameters?

share|improve this question

2 Answers 2

If you are looking for a transformation determined by multiplication with a 2x2 matrix, then I'm afraid this cannot be done. Such a transformation is linear, so maps a vector to the same vector irrespective of its starting points. In other words, if $A,B,C,D$ are points on the plane such that $\vec{AB}=\vec{CD}$, and $A',B',C',D'$ are their respective images under this transformation, then we also have $\vec{A'B'}=\vec{C'D'}$.

So a linear transformation will map any parallelogram to another parallelogram, because the opposite sides of a parallelogram form the same vector. As that does not hold for a trapezoid, a linear transformation cannot turn a rectangle (= special case of a parallelogram) into such a trapezoid that is not also a parallelogram.

share|improve this answer
    
A 3D-rectangle OTOH will often look like a trapezoid, when it is projected to the plane of the monitor. That is because its coordinates will be divided by the distance (IIRC often the $z$-coordinate gets that role), because in the projection a point is moved along a line of sight starting from the origin. –  Jyrki Lahtonen Jul 10 '12 at 19:54
3  
You can use a projective transformation. I would go to homogeneous coordinates, and use a suitable $3\times 3$ matrix. With the right matrix, one can transform any quadrilateral into any other quadrilateral. This is a relatively standard computer vision problem, and there must be modern implementations. –  André Nicolas Jul 10 '12 at 20:00
    
@André: I suspected that much. Your explanation stirs a memory. But won't projective transformations preserve convexity? –  Jyrki Lahtonen Jul 10 '12 at 20:04
    
I should have said complete quadrilateral (or dually complete quadrangle). So no three points of the configuration on a line, no three lines on a point. Apart from that there is no restriction. –  André Nicolas Jul 10 '12 at 20:24
1  
I think that $3\times 3$ is fine. –  André Nicolas Jul 11 '12 at 0:52

There is a kind of transformation that is not linear but it is simple and fits the job. It allows you to transform the unit square into an arbitrary quadrilateral.

$$\pmatrix{x'\\y'} = \pmatrix{u_x&v_x&w_x\\u_y&v_y&w_y}\pmatrix{x\\y\\xy}$$

$$x'=u_xx+v_xy+w_xxy\\ y'=u_yx+v_yy+w_yxy$$

It transforms the unit square in a way controlled by the vectors $u=(u_x,u_y), v=(v_x,v_y), w=(w_x,w_y)$ as follows:

Geometric interpretation of u, v, w

Note however that it's not a perspective transformation.

share|improve this answer

Your Answer

 
discard

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.