您可以通过对其应用 scale(1, -1) 变换来在 y 轴上翻转对象。如果要为翻转设置动画,则需要将变换从 scale(1, 1) 逐渐设置为 scale(1, -1)
这是原始 SVG 中基本概念的简单示例。
<svg xmlns="http://www.w3.org/2000/svg">
<g transform="translate(0, 100)">
<path transform="translate(0, -50)" fill="red" d="M 75,10 L 25,90 L 125,90 z">
<set attributeName="fill" to="lime" begin="0.5s" fill="freeze" />
</path>
<animateTransform attributeName="transform"
attributeType="XML" type="scale" from="1, 1" to="1, -1" dur="1s" additive="sum" fill="freeze" />
</g>
</svg>
您可以使用 raphael 在中点处操纵形状,而不是我使用的简单 SMIL 填充更改,这样您就可以看到形状的背面。你也可以使用 raphael 来做动画,虽然 raphael 不会做 SMIL,所以你必须一起使用 raphael 和 javascript 来操作 transform 属性,以便它逐渐从 scale(1, 1) 变为 scale(1, -1)。