- From: Brendan Kenny <bckenny@gmail.com>
- Date: Wed, 2 Dec 2009 16:03:00 -0600
- To: "L. David Baron" <dbaron@dbaron.org>
- Cc: www-style@w3.org
The inclusion of the tan function makes animating skew() probably inherently problematic because of its non-linear *and* asymptotic behavior. The change you suggest would be a good one, I think, but it seems strange to interpolate the value in a different space than the user specifies...a bit of magic introduced because skew() was used instead of shear(). Would it make more sense to introduce a shear() function instead, where the parameter is a <length> value? Another alternative, though not standard nomenclature, would be to overload skew() with a length unit. On Wed, Dec 2, 2009 at 1:58 PM, L. David Baron <dbaron@dbaron.org> wrote: > http://dev.w3.org/csswg/css3-2d-transforms/#animation says that an > animation of skewX(), skewY(), or skew() is animation in the space > of angles. > > In other words, it says that the midpoint (along the transition > function, not necessarily in terms of time) of an animation between > skewX(0) and skewX(60deg) is skewX(30deg). > > I think it would make more sense if the animation of these functions > were in the space of the tangent of the angles (which seems like > it's a common representation of such transformations, see, e.g., > http://en.wikipedia.org/wiki/Shear_mapping ). In other words, the > midpoint of the animation between skewX(0) and skewX(60deg) should > be skewX(40.8934deg), because at this angle any point is transformed > to a position halfway between where it would be at skewX(0) and > where it would be at skewX(60deg), since atan(tan(60deg)/2) == > 40.8934deg. > > -David > > -- > L. David Baron http://dbaron.org/ > Mozilla Corporation http://www.mozilla.com/ > >
Received on Wednesday, 2 December 2009 22:03:39 UTC