| <?xml version="1.0" encoding="iso-8859-1" ?> |
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG Tiny 1.1//EN" |
| "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> |
| <svg viewBox="0 0 500 300" onload="loaded()" |
| xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="tiny" |
| xmlns:xlink="http://www.w3.org/1999/xlink"> |
| |
| <title>Compare from-to, from-by and by animateColor with values animateColor and animate</title> |
| <desc> |
| SMIL specifies, how from-to, from-by and by animations have to be converted into |
| values animations. Therefore they have to be the same as the related values animation. |
| Additionally set animations can be replaced by values animations too. |
| The conversion is as follows: |
| |
| from="a" to="b" ... values="a;b" |
| from="a" by="b" ... values="a;a+b" |
| by="a" ... values="0;a" additive="sum" |
| set to="a" ... values="a" additive="replace" accumulate="none" |
| |
| (by and from-by animations have only a meaning, if values can be added somehow. |
| '0' is used as a general symbol for the neutral element of addition for the related attribute, |
| this means 0 + a = a + 0 = a. And '0' is not equal to the symbol '1' as the basic unit of the |
| related attribute, '0' is a predecessor of '1' in the related attribute space. In the color space |
| 0 is represented by black, #000, #000000, rgb(0,0,0) etc. Addition is performed for each |
| of the three components of the color vector separately.) |
| |
| The from-to, from-by and by animations applied to fill properties |
| of circles are compared with the related values animations including additive and |
| cumulative behaviour for the stroke of the same circles. Additionally underlying |
| filled larger circles simulate the same behaviour using always the defaults additive replace and |
| accumulate none. The fill of the background circle and stroke and fill of the smaller |
| test circle centered in it are always exactly the same. Therefore if |
| rings in each centered circle system with different color get visible, the test is failed. |
| But each separated circle system representing one of 12 subtests can have another color. |
| </desc> |
| <metadata> |
| <rdf:RDF |
| xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| xmlns:dc="http://purl.org/dc/elements/1.1/" |
| xmlns:cc="http://creativecommons.org/ns#" > |
| <rdf:Description rdf:about=""> |
| <dc:title>Compare from-to, from-by and by animateColor with values animateColor and animate</dc:title> |
| <dc:creator>Dr. Olaf Hoffmann</dc:creator> |
| <dc:created>2007-06-16</dc:created> |
| <dc:language>en</dc:language> |
| <dc:description> |
| SVG animation test: |
| Compare from-to, from-by and by animateColor with values animateColor and animate |
| </dc:description> |
| <dc:relation>http://hoffmann.bplaced.net/svgtest/</dc:relation> |
| <dc:rights> |
| <cc:License |
| rdf:about="http://creativecommons.org/licenses/by-sa/3.0/"> |
| <cc:permits |
| rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
| <cc:permits |
| rdf:resource="http://creativecommons.org/ns#Distribution" /> |
| <cc:requires |
| rdf:resource="http://creativecommons.org/ns#Notice" /> |
| <cc:requires |
| rdf:resource="http://creativecommons.org/ns#Attribution" /> |
| <cc:permits |
| rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
| <cc:requires |
| rdf:resource="http://creativecommons.org/ns#ShareAlike" /> |
| </cc:License> |
| </dc:rights> |
| </rdf:Description> |
| </rdf:RDF> |
| </metadata> |
| <rect x="0" y="0" width="500" height="300" fill="#fff" /> |
| |
| <g fill="#ff0" stroke="#ff0" stroke-width="10" transform="translate(-30)"> |
| <title>from-to animation for fill compared with values for stroke</title> |
| <circle cx="80" cy="50" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#882;#084" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#886;#088" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="50" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#802" to="#004" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#802;#004" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="120" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#602;#004" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#606;#008" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="120" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#602" to="#004" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="sum" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#602;#004" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="sum" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="190" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#684;#088" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#684;#088" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="190" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#604" to="#008" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#604;#008" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="260" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#604;#008" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#604;#008" begin="9s" dur="5s" fill="freeze" /> |
| </circle> |
| <circle cx="80" cy="260" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#604" to="#008" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="none" fill="freeze" /> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#604;#008" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="none" fill="freeze"/> |
| </circle> |
| </g> |
| |
| |
| |
| <g fill="#ff0" stroke="#ff0" stroke-width="10" transform="translate(170)"> |
| <title>from-by animation for fill compared with values for stroke</title> |
| <circle cx="80" cy="50" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#082;#085" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#087;#08a" begin="9s" dur="5s" fill="freeze" /> |
| </circle> |
| <circle cx="80" cy="50" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#002" by="#003" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#002;#005" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="120" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#002;#005" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#007;#00a" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="120" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#002" by="#003" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="sum" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#002;#005" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="sum" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="190" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#684;#689" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#684;#689" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="190" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#604" by="#005" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#604;#609" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="260" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#604;#609" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#604;#609" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="260" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" from="#604" by="#005" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="none" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#604;#609" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="none" fill="freeze"/> |
| </circle> |
| </g> |
| |
| |
| |
| <g fill="#ff0" stroke="#ff0" stroke-width="10" transform="translate(370)"> |
| <title>by animation for fill compared with values for stroke</title> |
| <circle cx="80" cy="50" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#080;#084" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#084;#088" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="50" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" by="#004" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#000;#004" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="120" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#080;#084" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#084;#088" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="120" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" by="#004" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="sum" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#000;#004" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="sum" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="190" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#080;#088" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#080;#088" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="190" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" by="#008" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#000;#008" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| </circle> |
| |
| <circle cx="80" cy="260" r="35" stroke="none"> |
| <animate attributeName="fill" values="#080" begin="2s" /> |
| <animate attributeName="fill" values="#080;#088" begin="4s" dur="5s" /> |
| <animate attributeName="fill" values="#080;#088" begin="9s" dur="5s" fill="freeze"/> |
| </circle> |
| <circle cx="80" cy="260" r="20"> |
| <set attributeName="fill" to="#080" begin="2s" /> |
| <animateColor attributeName="fill" by="#008" begin="4s" |
| dur="5s" repeatCount="2" additive="replace" accumulate="none" fill="freeze"/> |
| |
| <animateColor attributeName="stroke" values="#080" begin="2s" /> |
| <animateColor attributeName="stroke" values="#000;#008" begin="4s" |
| dur="5s" repeatCount="2" additive="sum" accumulate="none" fill="freeze"/> |
| </circle> |
| </g> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| function loaded() { |
| document.documentElement.setCurrentTime(15); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| </script> |
| </svg> |