Re: [css3-2d-transforms] transform:matrix() questions

...
Oli Studholme:
> I think we can’t transition
> rotations larger than 360° with transform:matrix() — is there anything
> else they can’t do?

Dean Jackson:

>Exactly.
>
>It's not just rotations > 360 though. Anytime you're interpolating the matrix 
>simplification of a list of transforms you're risking a different behaviour.

If someone really wants to work around the limitations for such a matrix 
description in animation for example - and avoiding escpecially that the
inversion and recomposition is not important, that is mentioned in the
current draft, the usual trick is to provide sufficient values for the 
animation.
If the active duration is for example 10 seconds, one can provide about
100 to 300 values for the animation and it does not really matter for the
visual presentation anymore, how the viewer interpolates between to values,
because typically it will not refresh the display more than 10 to 30 times a 
second. And due to the mathematical structure of a matrix typically there
will not happen something exciting within the interpolation 
(well in the algorithm mentioned in the draft there is a problematic matrix
inversion that can result in numerical nonsense or at least problems not
covered by the accuray of a typical viewer, that can produce funny artefacts, 
but this is limited to some specific types of matrices).
The other disadvantage of this approach is of course that the source code
is blown up with a lot of data.
Therefore if something specific than the rotation, skewing, scaling or 
translation is intended, it is typically not a good idea to use the matrix 
representation, the others provide more accuracy and robustness with less
data.
But if an animated matrix is really needed, currently there is no other way 
than to blow up the source code with 10 to 30 values per second and
observing carefully, if viewers get numerical problems with the inversion
operation within interpolation.

Olaf

Received on Friday, 18 February 2011 10:14:22 UTC