Here is another interesting animation in the same vein. It shows two sliding
blocks, one moving horizontally and the other moving vertically. A rod is
pined to the centers of the two blocks. When this is done the motion of the
ends of the rod traces ellipses. The following works in IE/ASV, FF4, WebKit,
and Opera but interestingly does not work in Batik.
------------------------------------------------------------
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
<!ENTITY dur "9s">
<!ENTITY hCirCW "M -25 0 A 25 25 0 1 1 25 0 A 25 25 0 1 1 -25 0">
<!ENTITY hCirCCW "M -25 0 A 25 25 0 1 0 25 0 A 25 25 0 1 0 -25 0">
<!ENTITY vCirCW "M -25 0 A 25 25 0 1 1 25 0 A 25 25 0 1 1 -25 0">
<!ENTITY vCirCCW "M 25 0 A 25 25 0 1 0 -25 0 A 25 25 0 1 0 25 0">
]>
<svg width="100%" height="100%" viewBox="-100 -125 200 250"
xmlns="http://www.w3.org/2000/svg" >
<rect x="-75" y="-75" width="150" height="150" fill="blue" />
<rect x="-75" y="-10" width="150" height="20" fill="gray" />
<rect x="-10" y="-75" width="20" height="150" fill="gray" />
<g>
<animateMotion begin="0s" dur="&dur;" path="&hCirCW;"
repeatCount="indefinite" />
<rect x="-20" y="-10" width="40" height="20" fill="green" >
<animateMotion begin="0s" dur="&dur;" path="&hCirCCW;"
repeatCount="indefinite" />
</rect>
</g>
<g>
<animateMotion begin="0s" dur="&dur;" path="&vCirCW;"
repeatCount="indefinite" />
<rect x="-10" y="-20" width="20" height="40" fill="green" >
<animateMotion begin="0s" dur="&dur;" path="&vCirCCW;"
repeatCount="indefinite" />
</rect>
</g>
<g>
<animateMotion begin="0s" dur="&dur;" path="&hCirCW;"
repeatCount="indefinite" />
<line x1="100" y1="0" x2="-50" y2="0" stroke-width="5" stroke="black"
stroke-linecap="round" >
<animateTransform attributeName="transform" attributeType="XML"
type="rotate" from="0" to="-360"
begin="0s" dur="&dur;" repeatCount="indefinite" />
<animateMotion begin="0s" dur="&dur;" path="&hCirCCW;"
repeatCount="indefinite" />
</line>
</g>
<g>
<animateMotion begin="0s" dur="&dur;" path="&hCirCW;"
repeatCount="indefinite" />
<circle x="0" y="0" r="1" fill="yellow" >
<animateMotion begin="0s" dur="&dur;" path="&hCirCCW;"
repeatCount="indefinite" />
</circle>
</g>
<g>
<animateMotion begin="0s" dur="&dur;" path="&vCirCW;"
repeatCount="indefinite" />
<circle x="0" y="0" r="1" fill="yellow" >
<animateMotion begin="0s" dur="&dur;" path="&vCirCCW;"
repeatCount="indefinite" />
</circle>
</g>
<ellipse cx="0" cy="0" rx="50" ry="100"
fill="none" stroke="red" stroke-width="0.2" />
<ellipse cx="0" cy="0" rx="100" ry="50"
fill="none" stroke="red" stroke-width="0.2" />
</svg>
-----------------------------------------------------------------
The really strange thing is an early version of this file. I thought it would
be simple to replicate the code for one block and rotate it by 90 degrees to
get the second block. It didn't work but rotating it 180 degrees did (in
Chrome where I was testing). When I thought I was done, I checked in FF4 -
same result. In Opera, I got radically different results. IE/ASV showed the
same as Opera. I believe Opera and ASV have the behavior correctly as I coded
it. Again Batik does not show the rod correctly but shows the blocks as ASV
and Opera.
Any idea why FF4 and WebKit show the same but different display?
--------------------------------------------------------------------
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
<!ENTITY dur "9s">
<!ENTITY largeCirCW "M -25 0 A 25 25 0 1 1 25 0 A 25 25 0 1 1 -25 0">
<!ENTITY largeCirCCW "M -25 0 A 25 25 0 1 0 25 0 A 25 25 0 1 0 -25 0">
]>
<svg width="100%" height="100%" viewBox="-100 -150 200 300"
xmlns="http://www.w3.org/2000/svg" >
<rect x="-75" y="-75" width="150" height="150" fill="blue" />
<rect x="-75" y="-10" width="150" height="20" fill="gray" />
<rect x="-10" y="-75" width="20" height="150" fill="gray" />
<g>
<animateMotion begin="0s" dur="&dur;" path="&largeCirCW;"
repeatCount="indefinite" />
<rect x="-20" y="-10" width="40" height="20" fill="green" >
<animateMotion begin="0s" dur="&dur;" path="&largeCirCCW;"
repeatCount="indefinite" />
</rect>
</g>
<g transform="rotate(180)">
<animateMotion begin="0s" dur="&dur;" path="&largeCirCW;"
repeatCount="indefinite" />
<rect x="-10" y="-20" width="20" height="40" fill="green" >
<animateMotion begin="0s" dur="&dur;" path="&largeCirCCW;"
repeatCount="indefinite" />
</rect>
</g>
<g>
<animateMotion begin="0s" dur="&dur;" path="&largeCirCW;"
repeatCount="indefinite" />
<line x1="100" y1="0" x2="0" y2="0" stroke-width="5" stroke="black"
stroke-linecap="round" >
<animateTransform attributeName="transform" attributeType="XML"
type="rotate" from="0" to="-360"
begin="0s" dur="&dur;" repeatCount="indefinite" />
<animateMotion begin="0s" dur="&dur;" path="&largeCirCCW;"
repeatCount="indefinite" />
</line>
</g>
<g>
<animateMotion begin="0s" dur="&dur;" path="&largeCirCW;"
repeatCount="indefinite" />
<circle x="0" y="0" r="1" fill="yellow" >
<animateMotion begin="0s" dur="&dur;" path="&largeCirCCW;"
repeatCount="indefinite" />
</circle>
</g>
<g transform="rotate(180)">
<animateMotion begin="0s" dur="&dur;" path="&largeCirCW;"
repeatCount="indefinite" />
<circle x="0" y="0" r="1" fill="yellow" >
<animateMotion begin="0s" dur="&dur;" path="&largeCirCCW;"
repeatCount="indefinite" />
</circle>
</g>
<ellipse cx="0" cy="0" rx="50" ry="100"
fill="none" stroke="red" stroke-width="0.2" />
</svg>
-------------------------------------------------------------------
Bruce
------------------------------------
-----
To unsubscribe send a message to: [email protected]
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my
membership"
----Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/svg-developers/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/svg-developers/join
(Yahoo! ID required)
<*> To change settings via email:
[email protected]
[email protected]
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/