<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: to-animation and animateTransform</title>
	<atom:link href="http://brian.sol1.net/svg/animatetransform-issues/to-animation-and-animatetransform/feed/" rel="self" type="application/rss+xml" />
	<link>http://brian.sol1.net/svg</link>
	<description>News about my attempts to implement SVG Declarative (SMIL) Animation in Mozilla</description>
	<lastBuildDate>Sat, 30 Jan 2010 05:36:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Olaf</title>
		<link>http://brian.sol1.net/svg/animatetransform-issues/to-animation-and-animatetransform/comment-page-1/#comment-32698</link>
		<dc:creator>Olaf</dc:creator>
		<pubDate>Mon, 15 Dec 2008 09:57:54 +0000</pubDate>
		<guid isPermaLink="false">http://brian.sol1.net/svg/to-animation-and-animatetransform/#comment-32698</guid>
		<description>Sure, there are always some limitations. 
If nothing is changed, it still fits to the intented behaviour of SMIL to have a smoth change.
But for animateTransform, because it is just jammed together with SMIL animation without a careful design
and structure, one cannot expect, that everything is perfectly meaningful ;o)
I think, it would be a quite complex thing to design a collection of exception rules to cover all arbitrary cases,
what could be useful for authors.
Currently I do not know any viewer beeing able to get to-animations completely right even without the
complications of animateTransform. Therefore it would be to much to expect solutions for all specific cases
of animateTransform, what is not thought through very well at all.</description>
		<content:encoded><![CDATA[<p>Sure, there are always some limitations.<br />
If nothing is changed, it still fits to the intented behaviour of SMIL to have a smoth change.<br />
But for animateTransform, because it is just jammed together with SMIL animation without a careful design<br />
and structure, one cannot expect, that everything is perfectly meaningful ;o)<br />
I think, it would be a quite complex thing to design a collection of exception rules to cover all arbitrary cases,<br />
what could be useful for authors.<br />
Currently I do not know any viewer beeing able to get to-animations completely right even without the<br />
complications of animateTransform. Therefore it would be to much to expect solutions for all specific cases<br />
of animateTransform, what is not thought through very well at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://brian.sol1.net/svg/animatetransform-issues/to-animation-and-animatetransform/comment-page-1/#comment-32691</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Sun, 14 Dec 2008 19:35:43 +0000</pubDate>
		<guid isPermaLink="false">http://brian.sol1.net/svg/to-animation-and-animatetransform/#comment-32691</guid>
		<description>Hi Olaf,

Thanks for your comment. What you say makes sense to me. I have one question however, what about when the underlying transformation is &quot;rotate(-720)&quot; and you have a to-animation of &quot;rotate(360)&quot;? Intuitively, that should produce an animation that rotates 3 times. But if you just use matrix interpolation you will have an animation that doesn&#039;t rotate at all.

Once you special case rotation, I think you can no longer treat the underlying value as just a matrix. I tried to implement this in terms of matrices and it didn&#039;t work because of the rotation issue.

Thanks,

Brian</description>
		<content:encoded><![CDATA[<p>Hi Olaf,</p>
<p>Thanks for your comment. What you say makes sense to me. I have one question however, what about when the underlying transformation is &#8220;rotate(-720)&#8221; and you have a to-animation of &#8220;rotate(360)&#8221;? Intuitively, that should produce an animation that rotates 3 times. But if you just use matrix interpolation you will have an animation that doesn&#8217;t rotate at all.</p>
<p>Once you special case rotation, I think you can no longer treat the underlying value as just a matrix. I tried to implement this in terms of matrices and it didn&#8217;t work because of the rotation issue.</p>
<p>Thanks,</p>
<p>Brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olaf</title>
		<link>http://brian.sol1.net/svg/animatetransform-issues/to-animation-and-animatetransform/comment-page-1/#comment-32686</link>
		<dc:creator>Olaf</dc:creator>
		<pubDate>Sat, 13 Dec 2008 12:51:40 +0000</pubDate>
		<guid isPermaLink="false">http://brian.sol1.net/svg/to-animation-and-animatetransform/#comment-32686</guid>
		<description>The problem is, we cannot (always) have both, the functionality provided by SMIL to get a 
smooth change from the underlying value to the to-value and to have the specific
rule from SVG to postmultiply the animation effect to the underlying value.

If we want to have the functionality of a to-animation as defined in SMIL - what is 
obiously useful for authors, every other behaviour can be easily covered by other 
animation types, but not that of a to-animation - we need to animate the matrix.
The underlying value can be represented by a matrix and the to-value can be 
represented as a matrix. After this the interpolation between the matrices (!) can be
done as specified in SMIL, leading to a meaningful and useful behaviour.
(Note that unforunately the matrix type cannot be animated itself in SVG, but technically
there is no problem and the resulting effect is interesting - this can be simulated with
a frame based discrete animation for example with an animation of xlink:href of use
to exchange the displayed object, precaluated previously for each frame, with about
10-20 frames per second).
The requirement of SVG to postmultiply the animation effect causes a problem at least
for some situations. For most animations one can simply calculate the inverse of the
underlying value and after some recalculations one can get some formula, which 
expresses the SMIL interpolation as a postmultiplied transformation.
However, because not for all possible underlying values the inverse exists, therefore this
does only work for most cases, not for all. And all this creates a lot of unneccessary 
calulations, similar to the formalism introduced to realise a constrained transformation
in SVGT1.2 - what has the same problem with the possibly missing inverse.

Because there are no specific restrictions in SVG1.1, this is in general a defined 
behaviour, as long as the inverse exists (and for other cases one can in general derive
the correct behaviour simply by ignoring the requirement to postmultiply ;o)</description>
		<content:encoded><![CDATA[<p>The problem is, we cannot (always) have both, the functionality provided by SMIL to get a<br />
smooth change from the underlying value to the to-value and to have the specific<br />
rule from SVG to postmultiply the animation effect to the underlying value.</p>
<p>If we want to have the functionality of a to-animation as defined in SMIL &#8211; what is<br />
obiously useful for authors, every other behaviour can be easily covered by other<br />
animation types, but not that of a to-animation &#8211; we need to animate the matrix.<br />
The underlying value can be represented by a matrix and the to-value can be<br />
represented as a matrix. After this the interpolation between the matrices (!) can be<br />
done as specified in SMIL, leading to a meaningful and useful behaviour.<br />
(Note that unforunately the matrix type cannot be animated itself in SVG, but technically<br />
there is no problem and the resulting effect is interesting &#8211; this can be simulated with<br />
a frame based discrete animation for example with an animation of xlink:href of use<br />
to exchange the displayed object, precaluated previously for each frame, with about<br />
10-20 frames per second).<br />
The requirement of SVG to postmultiply the animation effect causes a problem at least<br />
for some situations. For most animations one can simply calculate the inverse of the<br />
underlying value and after some recalculations one can get some formula, which<br />
expresses the SMIL interpolation as a postmultiplied transformation.<br />
However, because not for all possible underlying values the inverse exists, therefore this<br />
does only work for most cases, not for all. And all this creates a lot of unneccessary<br />
calulations, similar to the formalism introduced to realise a constrained transformation<br />
in SVGT1.2 &#8211; what has the same problem with the possibly missing inverse.</p>
<p>Because there are no specific restrictions in SVG1.1, this is in general a defined<br />
behaviour, as long as the inverse exists (and for other cases one can in general derive<br />
the correct behaviour simply by ignoring the requirement to postmultiply ;o)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
