2个版本

0.1.1 2024年7月11日
0.1.0 2024年7月11日

#769算法

Download history 140/week @ 2024-07-05 74/week @ 2024-07-12

214 每月下载量

MIT 许可证

31KB
783

BAISER

Tests Status Build Status Clippy Status Format Status

BAISER是一个Rust库,用于处理曲线,提供了创建和操作曲线的简单工具。它提供了各种曲线类型,包括不同阶数的贝塞尔曲线,以及组合曲线的实用工具。该库的关键特性之一是调整曲线以具有线性速度,这使得它在动画和需要沿曲线进行一致移动的任何应用程序中特别有用。

功能

  • 贝塞尔曲线:支持最高到三阶的贝塞尔曲线(Bezier0(点),Bezier1(线),Bezier2Bezier3),允许创建广泛的形状和运动。
  • 组合曲线:允许将多个曲线组合成单个连续路径。
  • 曲线操作:提供计算曲线上的点和切线的功能,使处理几何形状变得更加容易。
  • 线性速度调整:包含一个LinearSpeed结构体,可以将给定的曲线调整为确保沿曲线行进的时间和距离之间存在线性关系。
  • 任何点类型:曲线可以很好地与实现CurvePoint特质的任何点类型一起使用。对于实现Distance特质的类型,构建线性速度曲线就像调用Curve::linear_speed方法一样简单。

用法

以下是如何创建线性速度调整的贝塞尔曲线的快速示例

use baiser::Curve;

let linear_speed_curve = Curve::cubic_bezier(v1, v2, v3, v4)
    .linear_speed(/* table size */ 64, /* steps count */ 100);

// Now you can use `linear_speed_curve` for operations requiring linear speed
let middle_value = linear_speed_curve.point_at(0.5);

// An example of building a composed curve
let composed_curve = Curve::composed(p0)
    .line_to(p1, p2)
    .quadratic_to(p3, p4)
    .cubic_to(p5, p6, p7);

贡献

欢迎贡献!请随时提交拉取请求或打开问题以讨论潜在的改进或功能。

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

依赖项

~155KB