该示例演示了如何使用 SVG <path>
元素的属性 getPointAtLength
对路径进行插值,以创建路径切换的补间动画。
为了便于插值,对(过渡开始时的)source path 原始路径和(过渡结束时的)target path 目标路径进行均匀采样(可配置采样的精度,此处为 4px),在过渡期间将曲线替换为分段的 linear curve
线性曲线(实际是将采样所得的相邻数据点相连,形成一系列的线段)或 polyline 折线。过渡完成后,再将 <path>
恢复为原始的三次贝塞尔曲线。
这种实现路径切换补间动画的方法通用性很强,它适用于任何类型的路径(无论是曲线还是折线,只要路径可以通过 <path>
元素的属性 d
来表示即可)。