W3C home > Mailing lists > Public > www-style@w3.org > December 2009

Re: [css3-2d-transforms] skew(<angle> [, <angle>])

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Wed, 2 Dec 2009 19:32:23 +0200
To: www-style@w3.org
Message-Id: <200912021832.23981.Dr.O.Hoffmann@gmx.de>
Simon Fraser:
>skew(a, b) results in the this matrix: [1 tan(b) tan(a) 1 0 0].

Zack Weinberg:
> For what it's worth, this is the matrix that Gecko produces for
> skew(ThetaX, ThetaY):
>     |  1           tan(ThetaX)  0|
>     |  tan(ThetaY) 1            0|
>     |  0           0            1|
> skewx(theta) is treated as identical to skew(theta, 0) and
> skewy(theta) is treated as identical to skew(0, theta).
> I have no position on whether this is useful to authors or
> mathematically meaningful.
> zw

Interesting ...
Then the naming is misleading.
Because the determinant is not 1 for arbitrary angles, 
this is not really skewing, it is a mixture of skewing and scaling 
or something even more general...

skewX and skewY are defined to be the same as in SVG, therefore those
are simple and really related to skewing/shearing, because the determinant 
is 1.
SVG has no skew without X or Y, therefore currently the problem occurs
only with the undefined property in the CSS3 proposal.

Maybe more useful to have a vector and an angle as value
to be able to share along the vector instead of having this surprising
transformation not related to skew or shear.

Or with two angles alpha and beta one could define it as  
something like
rotate(-alpha) skewX(beta) rotate(alpha)
to get something meaningful


Received on Wednesday, 2 December 2009 17:36:21 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:38:30 UTC