Documentation
¶
Overview ¶
Package tween 提供缓动函数与贝塞尔曲线插值原语,用于平滑动画和轨迹模拟。
适用:UI 动画(弹出/淡入)、赛车漂移轨迹、RPG 飞弹抛物线、镜头追踪、 状态同步中的客户端预测平滑。
两大组件:
- Ease 函数:输入 t∈[0,1],输出 [0,1] 的变换后进度。提供业界标准的 EaseIn/EaseOut/EaseInOut 系列(Quad、Cubic、Quart、Quint、Sine、Expo、 Circ、Back、Elastic、Bounce)。
- 贝塞尔曲线:二次(Quadratic)与三次(Cubic)Bézier,支持求值、 弧长近似、等速采样。
值类型,无状态,并发安全。
Index ¶
- func EaseInBack(t float64) float64
- func EaseInBounce(t float64) float64
- func EaseInCirc(t float64) float64
- func EaseInCubic(t float64) float64
- func EaseInElastic(t float64) float64
- func EaseInExpo(t float64) float64
- func EaseInOutBack(t float64) float64
- func EaseInOutBounce(t float64) float64
- func EaseInOutCirc(t float64) float64
- func EaseInOutCubic(t float64) float64
- func EaseInOutElastic(t float64) float64
- func EaseInOutExpo(t float64) float64
- func EaseInOutQuad(t float64) float64
- func EaseInOutQuart(t float64) float64
- func EaseInOutQuint(t float64) float64
- func EaseInOutSine(t float64) float64
- func EaseInQuad(t float64) float64
- func EaseInQuart(t float64) float64
- func EaseInQuint(t float64) float64
- func EaseInSine(t float64) float64
- func EaseOutBack(t float64) float64
- func EaseOutBounce(t float64) float64
- func EaseOutCirc(t float64) float64
- func EaseOutCubic(t float64) float64
- func EaseOutElastic(t float64) float64
- func EaseOutExpo(t float64) float64
- func EaseOutQuad(t float64) float64
- func EaseOutQuart(t float64) float64
- func EaseOutQuint(t float64) float64
- func EaseOutSine(t float64) float64
- func Linear(t float64) float64
- type CubicBezier
- type EaseFunc
- type QuadraticBezier
- type Vec2
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EaseInBack ¶
func EaseInBounce ¶
func EaseInCirc ¶
func EaseInCubic ¶
func EaseInElastic ¶
func EaseInExpo ¶
func EaseInOutBack ¶
func EaseInOutBounce ¶
func EaseInOutCirc ¶
func EaseInOutCubic ¶
func EaseInOutElastic ¶
func EaseInOutExpo ¶
func EaseInOutQuad ¶
func EaseInOutQuart ¶
func EaseInOutQuint ¶
func EaseInOutSine ¶
func EaseInQuad ¶
func EaseInQuart ¶
func EaseInQuint ¶
func EaseInSine ¶
func EaseOutBack ¶
func EaseOutBounce ¶
func EaseOutCirc ¶
func EaseOutCubic ¶
func EaseOutElastic ¶
func EaseOutExpo ¶
func EaseOutQuad ¶
func EaseOutQuart ¶
func EaseOutQuint ¶
func EaseOutSine ¶
Types ¶
type CubicBezier ¶
type CubicBezier struct {
P0, P1, P2, P3 Vec2
}
CubicBezier 三次贝塞尔曲线:P0 起点,P1/P2 控制点,P3 终点。 B(t) = (1-t)³P0 + 3(1-t)²tP1 + 3(1-t)t²P2 + t³P3
func (CubicBezier) ArcLength ¶
func (b CubicBezier) ArcLength(segments int) float64
ArcLength 用 N 段线性近似估计曲线弧长。segments <= 0 时默认 64。
func (CubicBezier) EvenSample ¶
func (b CubicBezier) EvenSample(n int) []Vec2
EvenSample 等弧长采样:返回 n+1 个均匀分布在曲线上的点(含首尾)。 用于匀速运动(避免原始 t 参数化带来的变速感)。n <= 0 时返回首尾两点。
func (CubicBezier) Tangent ¶
func (b CubicBezier) Tangent(t float64) Vec2
Tangent 返回参数 t 处的切线方向(未归一化)。
type QuadraticBezier ¶
type QuadraticBezier struct {
P0, P1, P2 Vec2
}
QuadraticBezier 二次贝塞尔曲线:P0 为起点,P1 为控制点,P2 为终点。 B(t) = (1-t)²P0 + 2(1-t)tP1 + t²P2
func (QuadraticBezier) Tangent ¶
func (b QuadraticBezier) Tangent(t float64) Vec2
Tangent 返回参数 t 处的切线方向(未归一化)。
Click to show internal directories.
Click to hide internal directories.