mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-08 16:27:31 +09:00
301 lines
16 KiB
XML
301 lines
16 KiB
XML
|
|
<svg version="1.1" baseProfile="tiny" id="svg-root"
|
||
|
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||
|
|
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
|
|
<!--======================================================================-->
|
||
|
|
<!--= SVG 1.1 2nd Edition Test Case =-->
|
||
|
|
<!--======================================================================-->
|
||
|
|
<!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
|
||
|
|
<!--= Institute of Technology, European Research Consortium for =-->
|
||
|
|
<!--= Informatics and Mathematics (ERCIM), Keio University). =-->
|
||
|
|
<!--= All Rights Reserved. =-->
|
||
|
|
<!--= See http://www.w3.org/Consortium/Legal/. =-->
|
||
|
|
<!--======================================================================-->
|
||
|
|
<d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
|
||
|
|
template-version="1.4" reviewer="CN" author="VH" status="accepted"
|
||
|
|
version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-82-t.svg,v $">
|
||
|
|
<d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/animate.html#Animation">
|
||
|
|
<p>
|
||
|
|
This test demonstrates validates the operation of
|
||
|
|
animateTransform with regards to the rotation center
|
||
|
|
and with regards to paced animation.
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The following descriptions describe the various animations,
|
||
|
|
going top bottom, left to right. For each animation, orange
|
||
|
|
rectangle markers show the expected position for the animated rectangle
|
||
|
|
halfway through the animation. The markers are drawn with a thick
|
||
|
|
stroke for 0.2s, starting at the time when they reflect the
|
||
|
|
expected position.
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The first animateTransform has type='rotate' and goes from
|
||
|
|
45 degrees to 90 degrees over a period of 3s. The rotation
|
||
|
|
center for the from and to values is 0, 0. At 0 seconds, the
|
||
|
|
expected transform should be rotate(45). At 1.5 seconds, the
|
||
|
|
expected transform is rotate(0.5 * (90 + 45)) = rotate(67.5).
|
||
|
|
At 3s, the expected transform is rotate(90).
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The second animateTransform has type='rotate' but has a
|
||
|
|
rotation center that varies between the from and to values.
|
||
|
|
The rotation goes from rotate(45,0,0) to rotate(90,-15,-15).
|
||
|
|
At 0s, the expected transform is rotate(45,0,0).
|
||
|
|
At 1.5s, the expected transform is rotate(67.5, -7.5, -7.5).
|
||
|
|
At 3s, the expected transform is rotate(90, -15, -15).
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The third animateTransform has type='translate' and calcMode='paced'.
|
||
|
|
The animation goes from translate(-40,40) to translate(-20,20) to
|
||
|
|
translate(40,-40).
|
||
|
|
At 0s, the expected transform is translate(-40,40).
|
||
|
|
At 1.5s, the expected transform is translate(0,0).
|
||
|
|
At 3s, the expected transform is translate(40,-40).
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The fourth animateTransform has type='translate' and calcMode='linear'.
|
||
|
|
The animation goes from translate(-40,40) to translate(-20,-20) to
|
||
|
|
translate(40,-40).
|
||
|
|
At 0s, the expected transform is translate(-40,40).
|
||
|
|
At 1.5s, the expected transform is translate(-20,-20).
|
||
|
|
At 3s, the expected transform is translate(40,-40).
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The fifth animateTransform has type='scale' and calcMode='paced'.
|
||
|
|
The animation goes from scale(1,2) to scale(3,2) to
|
||
|
|
scale(1,1).
|
||
|
|
At 0s, the expected transform is scale(1,2).
|
||
|
|
At 1.5s, the expected transform is scale(3,2).
|
||
|
|
At 3s, the expected transform is scale(1,1).
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The sixth animateTransform has type='scale' and calcMode='linear'.
|
||
|
|
The animation goes from scale(1,2) to scale(3,2) to
|
||
|
|
scale(1,1).
|
||
|
|
At 0s, the expected transform is scale(1,2).
|
||
|
|
At 1.5s, the expected transform is scale(3,2).
|
||
|
|
At 3s, the expected transform is scale(1,1).
|
||
|
|
</p>
|
||
|
|
<p>
|
||
|
|
The seventh animateTransform has type="rotate" and calcMode='paced'.
|
||
|
|
The animation goes from rotate(0,0,0) to rotate(45,-15,-20) to
|
||
|
|
rotate(180,30,50). The total length along the rotation angle component
|
||
|
|
is (45 - 0) + (180 - 45) = 180. The total length along the rotation
|
||
|
|
center along the x axis is (0 - (-15)) + (30 - (-15)) = 45 + 15 = 60.
|
||
|
|
The total length along the rotation center along the y axis is
|
||
|
|
(0 - (-20)) + (50 - (-20)) = 20 + 70 = 90.
|
||
|
|
At 0s, the expected transform is rotate(45,-15,-20).
|
||
|
|
At 1.5s, the expected transform is rotate(90,0,5) to achieve constant
|
||
|
|
velocity along the rotation angle component, the x-axis rotation center
|
||
|
|
component and the y-axis rotation center component. At 1.5s, half the
|
||
|
|
distance has been run on each component. For the rotation angle, this
|
||
|
|
means that 45 has been reached and that 45 more degrees in the (45 <= r < 180)
|
||
|
|
interval have been consumed. For the x-axis rotation center, this means
|
||
|
|
that 30 units have been run: the (0 >= x > -15) interval has been fully consumed
|
||
|
|
(15 units long) and 15 units on the (-15 <= x < 30) interval have been consumed,
|
||
|
|
which explains the computed 0 value. For the y-axis rotation center, this
|
||
|
|
means that 45 units have been run: the (0 >= y > -20) interval has been fully
|
||
|
|
consumed and 25 units have been consumed in the (-20 <= y < 50) interval, which
|
||
|
|
explains the computed 5 value.
|
||
|
|
At 3s, the expected transform is rotate(180,30,50).
|
||
|
|
</p>
|
||
|
|
</d:testDescription>
|
||
|
|
<d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
|
||
|
|
Run the test. No interaction required.
|
||
|
|
</d:operatorScript>
|
||
|
|
<d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
|
||
|
|
<p>
|
||
|
|
The test is passed if the lightgray rectangles are exactly in the positions indicated by each of the orange rectangles when they are shown with a thick stroke. If any part of the lightgray
|
||
|
|
rectangles are outside the thick stroked orange rectangles then the test has failed.
|
||
|
|
</p>
|
||
|
|
</d:passCriteria>
|
||
|
|
</d:SVGTestCase>
|
||
|
|
<title id="test-title">$RCSfile: animate-elem-82-t.svg,v $</title>
|
||
|
|
<defs>
|
||
|
|
<font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
|
||
|
|
<font-face-src>
|
||
|
|
<font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
|
||
|
|
</font-face-src>
|
||
|
|
</font-face>
|
||
|
|
</defs>
|
||
|
|
<g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
|
||
|
|
<text text-anchor="middle" x="240" y="25" font-size="16"><animateTransform></text>
|
||
|
|
<defs>
|
||
|
|
<g id="ref" stroke="rgb(192,192,192)" fill="none">
|
||
|
|
<circle stroke-width="2" r="40"/>
|
||
|
|
<line x1="-45" x2="45"/>
|
||
|
|
<line y1="-45" y2="45"/>
|
||
|
|
</g>
|
||
|
|
</defs>
|
||
|
|
<g transform="translate(0,0)" font-size="14">
|
||
|
|
<g transform="translate(60,90)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="45" to="90" dur="3s" additive="replace" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(45)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(67.5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(90)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="60" text-anchor="middle">same rotation</text>
|
||
|
|
<text y="75" text-anchor="middle">center</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(180,90)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="45,0,0" to="90,-15,-15" dur="3s" additive="replace" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(45,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(67.5,-7.5,-7.5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(90,-15,-15)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="60" text-anchor="middle">different rotation</text>
|
||
|
|
<text y="75" text-anchor="middle">centers</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(300,90)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="translate" values="-40,40;-20,20;40,-40" dur="3s" calcMode="paced" additive="replace" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="translate(-40,40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="translate(0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="translate(40,-40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="75" text-anchor="middle">paced translation</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(415,90)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="translate" values="-40,40;-20,-20;40,-40" dur="3s" calcMode="linear" additive="replace" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="translate(-40,40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="translate(-20,-20)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="translate(40,-40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="75" text-anchor="middle">linear translation</text>
|
||
|
|
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(60,220)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="none" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="scale" values="1,2;3,2;1,1" dur="3s" calcMode="paced" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-30" width="30" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-45" y="-30" width="90" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="60" text-anchor="middle">paced scale</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(180,220)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="none" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="scale" values="1,2;3,2;1,1" dur="3s" calcMode="linear" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-30" width="30" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-45" y="-30" width="90" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="scale(1,1)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="60" text-anchor="middle">linear scale</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(275,220)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="rotate" values="0,0,0;45,-15,-20;180,30,50" dur="3s" calcMode="paced" additive="replace" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(0,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(90,0,5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(180,30,50)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="75" text-anchor="middle">paced rotation</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
<g transform="translate(395,220)">
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
|
||
|
|
<animateTransform attributeName="transform" attributeType="XML" type="rotate" values="0,0,0;45,-15,-20;180,30,50" dur="3s" calcMode="linear" additive="replace" fill="freeze"/>
|
||
|
|
</rect>
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(0,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(45,-15,-20)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<rect x="-15" y="-15" width="30" height="30" transform="rotate(180,30,50)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
|
||
|
|
<set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
|
||
|
|
</rect>
|
||
|
|
|
||
|
|
<text y="75" text-anchor="middle">linear rotation</text>
|
||
|
|
</g>
|
||
|
|
|
||
|
|
|
||
|
|
</g>
|
||
|
|
</g>
|
||
|
|
<g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
|
||
|
|
<text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
|
||
|
|
</g>
|
||
|
|
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
|
||
|
|
<!-- comment out this watermark once the test is approved -->
|
||
|
|
<!--<g id="draft-watermark">
|
||
|
|
<rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
|
||
|
|
<text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
|
||
|
|
text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
|
||
|
|
</g>-->
|
||
|
|
</svg>
|