39个版本

0.11.0 2024年2月14日
0.10.4 2023年10月20日
0.9.5 2023年5月17日
0.9.2 2023年3月29日
0.1.0 2018年12月27日

#8 in 数学

Download history 43627/week @ 2024-04-22 41779/week @ 2024-04-29 42872/week @ 2024-05-06 40061/week @ 2024-05-13 40792/week @ 2024-05-20 41459/week @ 2024-05-27 41737/week @ 2024-06-03 53639/week @ 2024-06-10 54794/week @ 2024-06-17 59893/week @ 2024-06-24 51846/week @ 2024-07-01 57405/week @ 2024-07-08 57088/week @ 2024-07-15 58292/week @ 2024-07-22 52018/week @ 2024-07-29 51408/week @ 2024-08-05

224,420 每月下载量
用于 511 个crates (53直接)

MIT/Apache

465KB
10K SLoC

kurbo,一个Rust 2D曲线库

Build Status Docs Crates.io

kurbo库包含曲线和向量路径的数据结构和算法。它可能最适合创意工具,但足够通用,可能对其他应用也很有用。

"kurbo"这个名字在埃斯帕诺拉语中意为“曲线”。

库注重在高精度条件下的准确性和良好的性能。因此,它可能在工程和科学环境中也很有用,而不仅仅是视觉艺术,在视觉艺术中通常粗略的近似就足够了。许多近似函数都带有精度参数,并在实际可行的情况下使用解析解。例如,面积计算就是使用格林定理进行的。

该库仍处于相对早期的发展阶段。有一些特性是为通用曲线(不仅仅是贝塞尔曲线)设计的,但这些可能会被重新组织。

最低支持的Rust版本

从版本0.9开始,kurbo使用泛型关联类型,因此需要rustc版本1.65或更高版本。

类似的crates

在这里,我们提到了一些其他曲线库,并简要讨论了这里所做的不同决策。

  • lyon_geom 有许多非常好的向量算法。它最专注于渲染。

  • flo_curves 具有良好的贝塞尔原语,似乎针对动画进行了优化。它在坐标类型上具有泛型,而我们在所有方面都使用 f64

  • vek 提供了2D和3D贝塞尔曲线等功能,并且针对游戏引擎进行了优化。

一些代码已经从 lyon_geom 复制并进行了适配,因此 lyon_geom 的作者 Nicolas Silva 在 AUTHORS 文件中得到了认可。

更多信息

要了解更多关于贝塞尔曲线的信息,Pomax 的《贝塞尔曲线入门》不可或缺:贝塞尔曲线入门

贡献

欢迎贡献。遵循 Rust 行为准则。请在任何实质性的拉取请求中自由添加您的名字到 AUTHORS 文件。

依赖

~110–540KB
~12K SLoC