Re: [css3-2d-transforms] animation of skewX(), skewY(), skew()

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