- From: Chris Marrin <cmarrin@apple.com>
- Date: Thu, 03 Jun 2010 07:16:14 -0700
- To: Brendan Kenny <bckenny@gmail.com>
- Cc: Paul Duffin <pduffin@volantis.com>, www-style@w3.org, public-fx@w3.org

On Jun 2, 2010, at 9:04 AM, Brendan Kenny wrote: > 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. Skew is there just for compatibility with the 2D matrix capabilites of SVG. That's the motivation for getting rid of the 2 variable form. ----- ~Chris cmarrin@apple.com

Received on Thursday, 3 June 2010 14:16:48 UTC