# 数学
# 缓动函数
缓动函数(Easing Functions)用于控制动画的运动速度变化,常用的缓动函数如下表所示:
| 名称 | 描述 | 说明 |
|---|---|---|
| easeLinear | 线性匀速 | 无缓动效果 |
| easeInQuad | 二次方缓动 | 先慢后快 |
| easeOutQuad | 二次方缓动 | 先快后慢 |
| easeInOutQuad | 二次方缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInCubic | 三次方缓动 | 先慢后快 |
| easeOutCubic | 三次方缓动 | 先快后慢 |
| easeInOutCubic | 三次方缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInQuart | 四次方缓动 | 先慢后快 |
| easeOutQuart | 四次方缓动 | 先快后慢 |
| easeInOutQuart | 四次方缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInQuint | 五次方缓动 | 先慢后快 |
| easeOutQuint | 五次方缓动 | 先快后慢 |
| easeInOutQuint | 五次方缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInSine | 正弦曲线缓动 | 先慢后快 |
| easeOutSine | 正弦曲线缓动 | 先快后慢 |
| easeInOutSine | 正弦曲线缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInExpo | 指数曲线缓动 | 先慢后快 |
| easeOutExpo | 指数曲线缓动 | 先快后慢 |
| easeInOutExpo | 指数曲线缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInCirc | 圆形曲线缓动 | 先慢后快 |
| easeOutCirc | 圆形曲线缓动 | 先快后慢 |
| easeInOutCirc | 圆形曲线缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInBack | 超过范围的三次方缓动 | 先慢后快 |
| easeOutBack | 超过范围的三次方缓动 | 先快后慢 |
| easeInOutBack | 超过范围的三次方缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInElastic | 指数衰减的正弦曲线缓动 | 先慢后快 |
| easeOutElastic | 指数衰减的正弦曲线缓动 | 先快后慢 |
| easeInOutElastic | 指数衰减的正弦曲线缓动 | 前半段先慢后快,后半段先快后慢 |
| easeInBounce | 指数衰减的反弹缓动 | 先慢后快 |
| easeOutBounce | 指数衰减的反弹缓动 | 先快后慢 |
| easeInOutBounce | 指数衰减的反弹缓动 | 前半段先慢后快,后半段先快后慢 |
缓动曲线图:

提示
缓动函数目前主要用于控制相机动画和粒子行为,此外开发人员也可以手动调用缓动函数实现缓动控制,如下所示:
import { getEasing } from '@tx3d/core';
// 获取二次方缓动函数
const fun = getEasing( 'easeInQuad' );
// 计算缓动结果,注意输入参数需要在[ 0~1 ]区间内
const result = fun( 0.5 );
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
← 缓存 Transform组件 →