Re: curves for animation interpolation (previously: RE: Minutes, 22 August 2013 SVG WG telcon)

Hi David,

Thank you for your response to my questions. I believe I appreciate the 
distinction you are making.

I am still unsure about the concrete use cases you have in mind. As I 
understand, this behaviour could be polyfilled. Once the Web Animations 
API is available it could be polyfilled performantly and quite elegantly 
and then if this pattern of usage proves popular we can bake it into the 
platform with the benefit of lessons learned from the polyfill.

If there are widespread concrete uses cases that cannot be addressed now 
then by all means, please send them to the list.

Best regards,

Brian


(2013/08/27 21:19), David Dailey wrote:
> Yes, keysplines and direct function animation as proposed are rather different models though they both impart control over how an animation's values are transitioned over time. Keysplines is more concerned with the control over timing, while extensions to animatePath would be directly concerned with attribute values.
>
> Cheers
> David
>
> -----Original Message-----
> From: Dr. Olaf Hoffmann [mailto:Dr.O.Hoffmann@gmx.de]
> Sent: Tuesday, August 27, 2013 6:54 AM
> To: www-svg@w3.org
> Subject: curves for animation interpolation (previously: RE: Minutes, 22 August 2013 SVG WG telcon)
>
> Hello,
>
> David Dailey:
>> The curves that are drawable through keysplines are a bit unwieldy and
>> it seems to take folks a long time to wrap their heads around their
>> use.  Being able to say: here is a curve; dear SVG, please use it, just makes sense.
>
>
> The animation splines represent cubic Bezier curves - because linear and quadratic Bezier curves can be represented by cubic curves as well, this covers already most curves, which can be drawn in SVG, an exception is the elliptical arc including circles.
> In most cases there is maybe no big difference in calculating such a path or calculation the keyTimes and keySplines instead.
>
> The animation task is to present a time (t) dependent attribute (a):  a(t).
> The main problems with the current keyTimes/keySplines solution are:
> a) One has to prepare the values list and keyTimes list in such a way, that all extremal values of a(t) are in the list
> b) To get the right keyTimes and keySplines for an approximation of a(t) can result in a larger amount of mathematical/numerial computation
>
> A good example to get an impression, what one has to do is to calculate proper values, keyTimes and keySplines lists for a harmonic oscillator (a, b, c are parameters):
> cx(t) = a sin(t +c)
> cy(t) = b cos(t +c)
> (for a=b this can be simply compared with a rotation with animateTransform, therefore simple to check, how good the approximation is).
> An advanced example would be for example the rotation of a planet around a sun on an elliptical orbit (this has different timing then the harmonic oscillator above, but there is already an analytical solution for the approximation with keyTimes available in theoretical physics, therefore in this case one has a representation of (cx,cy,t)(s) with s the interpolation parameter instead of the time directly).
>
> The question is, is there a method to get a good animation approximation of an a(t) in a simpler way with less effort for the user, if only the a(t) is known? Is there a simpler way to provide information like  (cx,cy,t)(s)?
> Does this suggested animatePath really solve such problems to get an acceptable animation function?
> How is the timing controlled and is it really easier to approximate such an
> a(t) with this method or should there be a more simpler approach for authors to provide for example a function a(t) directly to indicate the intended animation effect?
> To provide it directly with a formula would be an approach for better accessibility as well, because such a formula provides good textual information compared to lists of computed numerical values.
> But to provide a formula directly could be a challenge for the interpretation by viewers.
>
> Olaf
>
>
>
>
>
>
>

Received on Wednesday, 28 August 2013 05:13:14 UTC