- From: Brendan Kenny <bckenny@gmail.com>
- Date: Wed, 2 Jun 2010 11:04:18 -0500
- To: Paul Duffin <pduffin@volantis.com>
- Cc: www-style@w3.org, public-fx@w3.org

On Wed, Jun 2, 2010 at 10:33 AM, Paul Duffin <pduffin@volantis.com> wrote: > The specification of skew(a,b) refers to the SVG specification but that does not provide an equivalent matrix. > > Assuming > A = tan(a) > B = tan(b) > > skewX(a) is equal to the matrix: > > [1 A 0] > [0 1 0] > [0 0 1] > > skewY(b) is equal to the matrix: > > [1 0 0] > [B 1 0] > [0 0 1] > > skewX(a) x skewY(b) is equal to the matrix: > > [AB+1 A 0] > [ B 1 0] > [ 0 0 1] > > skewY(b) x skewX(A) is equal to the matrix: > > [ 1 A 0] > [ B AB+1 0] > [ 0 0 1] > > But I think that (based on my research on chrome (webkit)) that skew(a,b) should be: > [1 A 0] > [B 1 0] > [0 0 1] > > It certainly makes sense. > My understanding is that the two-argument form of skew() will be removed from the next version of the spec. I don't know the actual basis for that decision, but one problem is that the last matrix you mentioned -- the one I think most people assume after the definitions of skewX() and skewY() -- is not actually a skew matrix; for instance, a skew preserves area, but that matrix does not. That leaves the two previous matrices, but since either one is a reasonable choice, letting the user explicitly specify the order is probably the best approach.

Received on Wednesday, 2 June 2010 16:04:53 UTC