Re: animateTransform nad by-transformation

On 04/05/2010 10:48 AM, Dr. Olaf Hoffmann wrote:
 > It is true, that is, why I have written additive="sum".

D'oh!  I overlooked the "additive="sum" in your email.  Objection 
withdrawn -- I agree about the by/values equivalence that you stated. :)

Per the rest of my last email, I've now reviewed the animateTransform 
definiton at:
   http://www.w3.org/TR/SVG11/animate.html#AnimateTransformElement
and it makes more sense to me now.  It looks like the spec explains this 
similarly to how Olaf did -- |additive="sum"| (and by extension, 
by-animation) is supposed to *append* an additional post-multiplication 
matrix, rather than actually modifying the underlying 'transform' 
attribute.  And that's what causes the unexpected behavior.

In addition to the situation Dirk brought up, we get the following 
paradoxical but correct-according-to-the-spec behavior:
a) The animation...
    <animateTransform type="scale" by="0".../>
    ...makes its target disappear.
b) If you stack N copies of...
    <animateTransform type="scale" by="1" fill="freeze" .../>
   ...all targeting the same element, the final frozen result will be at 
scale=1 (as opposed to scale=N+1 or scale=N).

(In part (b), if we had N animations with |by="2"| instead of |by="1"|, 
we'd end up with a result at scale=2^N)

Anyway, I agree with Dirk that the existing Opera & Firefox-nightly 
behavior isn't immediately intuitive, but it does appear spec-correct 
(based on the animateTransform-specific text) and it does make more 
sense after reviewing that chunk of spec.

~Daniel

Received on Monday, 5 April 2010 18:59:50 UTC