使用大写(M,L)字母的SVG Path documentation表示坐标是绝对的。因此,在此路径中,它将转到绝对坐标100,100。
<rect x="200" y="0" width="30" height="15" style="stroke: #ff0000;">
<animateMotion path="M0,0 L100,100" begin="0s" dur="1s" repeatCount="indefinite" />
</rect>
但事实上这似乎并非如此。 Here is a simple fiddle动画一个矩形。起点是200,0。如果它移动到100,100那么它应该向下移动并向左移动。它不是。它向右移动。发生了什么事?
(我的目标是创建一个移动通过一系列绝对坐标的动画,并根据用户输入动态移除坐标,而不会丢弃后续动画。因此我需要使用绝对坐标。)
答案 0 :(得分:1)
如果您希望将坐标系的原点设置为(0,0),则应将rect
元素定义为(0,0)或x="0" y="0"
。在此之后,为animateMotion定义path="M200,0 L100,100"
将达到您想要的效果。
这是因为SVG变换的坐标系默认以变换元素为中心,因此坐标(0,0)将位于元素定义的位置。请参阅http://sarasoueidan.com/blog/svg-transformations/的“坐标系变换”部分,了解相关内容。
答案 1 :(得分:0)