Deconstructing affine transformations into rotation, scale, skew



Given a 2-dimensional affine transform (6 coefficients as defined at
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/AffineTransform.html )

[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ]
[ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ]
[ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ]

How can I separate this transformation into its components?

The translation vector is obviously <m02,m12>, but after that it's not so
trivial. I would like to come up with:

* Rotation (scalar)
* Scaling or dilation (scalar or 2-D vector)
* Indication of whether the transform flips the image (bit)
* Skew (2-D vector?)

Pointers to info or even just the "right" terms to use in my web search
will be greatly appreciated!

--Spud Demon
.



Relevant Pages

  • Re: Scalar vs Vectors
    ... Clifford Algebra I don=92t understand why the scalar in an M vector is ... not considered a dimension as the vectors are. ... In a geometric algebra the points, ... we have to figure this out by checking which ones transform ...
    (sci.physics.research)
  • Re: Scalar vs Vectors
    ... Clifford Algebra I don't understand why the scalar in an M vector is ... not considered a dimension as the vectors are. ... we have to figure this out by checking which ones transform ...
    (sci.physics.research)
  • Re: Time -scalar or vector.
    ... > Minkowski is the FOUNDER of SpaceTime. ... Nothing can transform as both a scalar and a vector under a coordinate ... Probably more proficient than you. ...
    (sci.physics)
  • Data Transformation
    ... I have an original data set with multiple attributes. ... row ids) each with the same number of rows (the number of ... data as 4 separate matrices or whether there is another ... Please help with some hints on how to transform the data ...
    (comp.soft-sys.matlab)
  • Re: SQL help !!!
    ... particular part of a text string as represents a unique ... >original post put the values into a delimited list in one ... >TRANSFORM SumAS daValue ... >> I also wonder how to separate those value into ...
    (microsoft.public.access.queries)