blob: 50cc3bfaa91d2a3a5146b089cd4ff4312081aab4 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!-- =====================================================================-->
<!-- animate-elem-41-t.svg -->
<!-- -->
<!-- Graphics properties animation with the animate element. -->
<!-- -->
<!-- Author : [author] -->
<!-- =====================================================================--><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
<SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="CN" owner="VH" desc="Animation of the various graphics properties with the animate element." status="accepted" version="$Revision: 1.9 $" testname="$RCSfile: animate-elem-41-t.svg,v $">
<OperatorScript>
<Paragraph>
This test validates the operation of the animate element on the various graphics
properties. This test is very similar to animate-elem-78-t which uses the set element
instead of the animate element to modify graphics properties.
</Paragraph>
<Paragraph>
For each graphics properties, there are three tests. One animates the graphics
property directly on an element (such as a rect or a line) which uses the
property. The other two tests apply the animation on a container element (g and
a), and validate that the animated property is inherited by elements which
are child of the container.
</Paragraph>
<Paragraph>
For each animation test, the element on which the animation is applied is also
translated by an animation so that the various states of the animation can
be checked more easily. In most tests, there is a gray reference marker which shows
the expected animation state at the begining of the animation, mid-way, or at the
end of the animation.
</Paragraph>
<Paragraph>
The following animations should show continuous changes: fill, stroke,
stroke-width, stroke-miterlimit, stroke-dashoffset and color. Note that
visually, stroke-miterlimit shows a sharp transition, but that is because
the miter is cut off when the animated miter limit reaches the test sharp
angle's miter value. The stroke-miterlimit value is changed continously
but that is not visible in this test.
</Paragraph>
<Paragraph>
The following animations have a discrete behavior: fill-rule, stroke-linecap,
stroke-linejoin, display and visibility.
</Paragraph>
</OperatorScript>
</SVGTestCase>
<text text-anchor="middle" x="240" y="25" font-size="20">graphics</text>
<g transform="translate(80, 75)">
<g transform="translate(30,10)" text-anchor="end" font-size="12">
<text>fill</text>
<text y="20">fill-rule</text>
<text y="40">stroke</text>
<text y="60">stroke-width</text>
<text y="80">stroke-linecap</text>
<text y="100">stroke-linejoin</text>
<text y="120">stroke-miterlimit</text>
<text y="140">stroke-dashoffset</text>
<text y="160">display</text>
<text y="180">visibility</text>
<text y="200">color</text>
</g>
<g id="type" transform="translate(90, -20)" text-anchor="middle" font-size="14">
<text x="20" y="3">element</text>
<text x="130" y="3">&lt;g&gt;</text>
<text x="235" y="3">&lt;a&gt;</text>
</g>
<g transform="translate(80,0)" fill="rgb(204,0,102)">
<g id="setZero">
<defs>
<g id="animateZeroRef">
<rect x="10" y="-6" width="8" height="4" fill="rgb(204,0,102)"/>
<rect x="10" y="-6" width="8" height="4" fill="rgb(230,82,51)" transform="translate(15,0)"/>
<rect x="10" y="-6" width="8" height="4" fill="rgb(255,165,0)" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#animateZeroRef"/>
<use xlink:href="#animateZeroRef" x="110"/>
<use xlink:href="#animateZeroRef" x="220"/>
<rect x="10" width="8" height="8" fill="rgb(204,0,102)">
<animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
<animate attributeName="x" to="40" dur="3s" fill="freeze"/>
</rect>
<g transform="translate(110, 0)">
<rect x="10" width="8" height="8"/>
<animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</g>
<a transform="translate(220, 0)">
<rect x="10" width="8" height="8"/>
<animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</a>
</g>
<g id="setOne" transform="translate(5,15)" stroke="rgb(204,0,102)">
<defs>
<g id="setOneRef" fill="#ccc" stroke="none">
<polyline stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10"/>
<polyline fill-rule="evenodd" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#setOneRef"/>
<use xlink:href="#setOneRef" x="110"/>
<use xlink:href="#setOneRef" x="220"/>
<polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
<animate attributeName="fill-rule" to="evenodd" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</polyline>
<g transform="translate(110, 0)">
<animate attributeName="fill-rule" to="evenodd" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<polyline points="20,10,0,10,15,20,10,2,5,20,20,10"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="fill-rule" to="evenodd" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<polyline points="20,10,0,10,15,20,10,2,5,20,20,10"/>
</a>
</g>
<g id="setTwo" transform="translate(0,45)" fill="none">
<defs>
<g id="setTwoRef" fill="none" stroke-width="4">
<rect x="10" width="8" height="8" stroke="rgb(204,0,102)"/>
<rect x="10" width="8" height="8" transform="translate(15,0)" stroke="rgb(230,82,51)"/>
<rect x="10" width="8" height="8" transform="translate(30,0)" stroke="rgb(255,165,0)"/>
</g>
</defs>
<use xlink:href="#setTwoRef"/>
<use xlink:href="#setTwoRef" x="110"/>
<use xlink:href="#setTwoRef" x="220"/>
<rect x="10" width="8" height="8" stroke-width="3">
<animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</rect>
<g transform="translate(110, 0)">
<animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8" stroke-width="3"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8" stroke-width="3"/>
</a>
</g>
<g id="setThree" transform="translate(0,60)">
<defs>
<g id="setThreeRef">
<line x1="10" y1="3" x2="20" y2="3" stroke-width="1" stroke="gray"/>
<line x1="10" y1="3" x2="20" y2="3" stroke-width="5" stroke="gray" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#setThreeRef"/>
<use xlink:href="#setThreeRef" x="110"/>
<use xlink:href="#setThreeRef" x="220"/>
<line x1="10" y1="8" x2="20" y2="8" stroke="gray">
<animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</line>
<g transform="translate(110, 0)">
<animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<line x1="10" y1="8" x2="20" y2="8" stroke="gray"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<line x1="10" y1="8" x2="20" y2="8" stroke="gray"/>
</a>
</g>
<g id="setFour" transform="translate(0,80)" stroke-width="4" stroke="rgb(204,0,102)">
<defs>
<g id="setFourRef" stroke-width="12">
<line x1="10" y1="8" x2="12" y2="8" stroke="#ccc"/>
<line x1="10" y1="8" x2="12" y2="8" stroke-linecap="round" stroke="#ccc" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#setFourRef"/>
<use xlink:href="#setFourRef" x="110"/>
<use xlink:href="#setFourRef" x="220"/>
<line x1="10" y1="8" x2="12" y2="8" stroke-width="12">
<animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</line>
<g transform="translate(110, 0)">
<animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<line x1="10" y1="8" x2="12" y2="8" stroke-width="12"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<line x1="10" y1="8" x2="12" y2="8" stroke-width="12"/>
</a>
</g>
<g id="setFive" transform="translate(5,100)" fill="none" stroke-miterlimit="10" stroke-width="3" stroke="rgb(204,0,102)">
<defs>
<g id="setFiveRef">
<polyline stroke="#ccc" points="5,2,20,5,5,8"/>
<polyline stroke="#ccc" points="5,2,20,5,5,8" stroke-linejoin="bevel" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#setFiveRef"/>
<use xlink:href="#setFiveRef" x="110"/>
<use xlink:href="#setFiveRef" x="220"/>
<polyline points="5,2,20,5,5,8">
<animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</polyline>
<g transform="translate(110, 0)">
<animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<polyline points="5,2,20,5,5,8"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<polyline points="5,2,20,5,5,8"/>
</a>
</g>
<g id="setSix" transform="translate(5,120)" stroke-miterlimit="1" fill="none" stroke-width="3" stroke="rgb(204,0,102)">
<defs>
<g id="setSixRef">
<polyline points="5,0,20,5,5,10" stroke="#ccc"/>
<polyline points="5,0,20,5,5,10" stroke="#ccc" stroke-miterlimit="10" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#setSixRef"/>
<use xlink:href="#setSixRef" x="110"/>
<use xlink:href="#setSixRef" x="220"/>
<polyline points="5,0,20,5,5,10">
<animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</polyline>
<g transform="translate(110, 0)">
<animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<polyline points="5,0,20,5,5,10"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<polyline points="5,0,20,5,5,10"/>
</a>
</g>
<g id="setSeven" transform="translate(-5,145)" stroke-dasharray="3,4,5" stroke-width="3" stroke="rgb(204,0,102)">
<defs>
<g id="setSevenRef">
<line x1="0" y1="0" x2="25" y2="0" stroke="#ccc"/>
<line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" stroke-dashoffset="5.5" transform="translate(40,0)"/>
</g>
</defs>
<use xlink:href="#setSevenRef"/>
<use xlink:href="#setSevenRef" x="110"/>
<use xlink:href="#setSevenRef" x="220"/>
<line x1="0" y1="0" x2="25" y2="0">
<animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum"/>
</line>
<g transform="translate(110, 0)">
<animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum"/>
<line x1="0" y1="0" x2="25" y2="0"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum"/>
<line x1="0" y1="0" x2="25" y2="0"/>
</a>
</g>
<g id="setEight" transform="translate(0,160)">
<defs>
<g id="setEightRef">
<rect x="10" width="8" height="8" fill="#ccc"/>
<rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" display="none"/>
</g>
</defs>
<use xlink:href="#setEightRef"/>
<use xlink:href="#setEightRef" x="110"/>
<use xlink:href="#setEightRef" x="220"/>
<rect x="10" width="8" height="8">
<animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</rect>
<g transform="translate(110, 0)">
<animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8"/>
</a>
</g>
<g id="setNine" transform="translate(0,180)">
<defs>
<g id="setNineRef">
<rect x="10" width="8" height="8" fill="#ccc"/>
<rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#setNineRef"/>
<use xlink:href="#setNineRef" x="110"/>
<use xlink:href="#setNineRef" x="220"/>
<rect x="10" width="8" height="8">
<animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</rect>
<g transform="translate(110, 0)">
<animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8"/>
</g>
<a transform="translate(220, 0)">
<animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8"/>
</a>
</g>
<g id="setTen" color="rgb(204,0,102)" transform="translate(0,200)">
<defs>
<g id="animateTenRef">
<rect x="10" y="-6" width="8" height="4" fill="rgb(204,0,102)"/>
<rect x="10" y="-6" width="8" height="4" fill="rgb(230,82,51)" transform="translate(15,0)"/>
<rect x="10" y="-6" width="8" height="4" fill="rgb(255,165,0)" transform="translate(30,0)"/>
</g>
</defs>
<use xlink:href="#animateTenRef"/>
<use xlink:href="#animateTenRef" x="110"/>
<use xlink:href="#animateTenRef" x="220"/>
<rect x="10" width="8" height="8" fill="currentColor">
<animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
</rect>
<g transform="translate(110, 0)" fill="currentColor">
<animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8"/>
</g>
<a transform="translate(220, 0)" fill="currentColor">
<animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
<animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
<rect x="10" width="8" height="8"/>
</a>
</g>
</g>
</g>
<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>