Python svgwrite和同步动画转换

2024-09-30 20:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python svgwrite来同时缩放和旋转对象。到目前为止,我一直在努力添加两个连续的“animateTransform”。然而,它似乎只考虑了最后一个动作,如我的例子所示

import svgwrite 

path = [(100,100),(100,200),(200,200),(200,100)]

image = svgwrite.Drawing('test.svg',size=(300,300))

rectangle = image.add(image.polygon(path,id ='polygon',stroke="black",fill="white"))
rectangle.add(image.animateTransform("rotate","transform",id="polygon", from_="0 150 150", to="360 150 150",dur="4s",begin="0s",repeatCount="indefinite"))
rectangle.add(image.animateTransform("scale","transform",id="polygon", from_="0", to="1",dur="4s",begin="0s",repeatCount="indefinite"))

image.save()
display(SVG('test.svg'))

有人能帮忙吗


Tags: topathfromsvgtestimageaddid
1条回答
网友
1楼 · 发布于 2024-09-30 20:35:06

这可能来得太晚了,但对我来说有效的是将additive = "sum"添加到两个动画中。请注意,添加动画的顺序会影响最终结果

import svgwrite 

path = [(100,100),(100,200),(200,200),(200,100)]

image = svgwrite.Drawing('test.svg',size=(300,300))

rectangle = image.add(image.polygon(path,id ='polygon',stroke="black",fill="white"))
rectangle.add(image.animateTransform("scale","transform",id="polygon", from_="0", to="1",dur="4s",begin="0s",repeatCount="indefinite", additive = "sum"))    
rectangle.add(image.animateTransform("rotate","transform",id="polygon", from_="0 150 150", to="360 150 150",dur="4s",begin="0s", additive = "sum", repeatCount="indefinite"))

image.save()
display(SVG('test.svg'))

相关问题 更多 >