#bezier #physics #primitive #velocity #spring #animation #yoyo

yoyo-physics

Yoyo 中使用的基于物理的基本原语

6 个版本 (3 个破坏性更新)

0.4.0 2020年12月2日
0.3.2 2020年10月20日
0.2.0 2020年10月10日
0.1.0 2020年9月25日

#9#velocity


用于 2 个 crate(通过 yoyo

MIT 许可证

31KB
601

此库实现了我们在 Yoyo 中使用的基于物理的基本原语。此库最重要的任务是支持连续动画。

连续动画是指将具有特定值和速度的运行中未完成的动画替换为新动画,新动画从相同值和速度开始,因此对用户来说似乎是一个相同的动画。

示例

use yoyo_physics::Curve;
use yoyo_physics::bezier::Bezier;
use yoyo_physics::spring::Spring;

// Start a Bezier with strong easing.
let bezier = Bezier {
    from_value: 0.0,
    to_value: 320.0,
    duration: 1.0,
    control_points: [(0.95, 0.05), (0.05, 0.95)],
};

// Pause the Bezier midway.
let sample = bezier.approximate(0.5);

// Start a spring from the Bezier's state.
let spring = Spring {
    from_value: sample.value,
    to_value: 320.0,
    initial_velocity: sample.velocity,
    ..Default::default()
};

// Verify that the spring's starting velocity equals the Bezier's midway
// velocity.
assert_eq!(spring.approximate(0.0).velocity, sample.velocity);

依赖项

~150KB