W3C home > Mailing lists > Public > www-svg@w3.org > April 2010

Re: animateTransform nad by-transformation

From: Daniel Holbert <dholbert@mozilla.com>
Date: Mon, 05 Apr 2010 11:59:16 -0700
Message-ID: <4BBA3304.1040801@mozilla.com>
To: www-svg@w3.org
CC: "Dr. Olaf Hoffmann" <Dr.O.Hoffmann@gmx.de>, vbs85@gmx.de
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 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:44 GMT