工作中遇到相关需求时,kurbo值得先读说明,因为它主要用于用于操作曲线的 Rust 库。实际做日常自动化时,经常会碰到输入边界、依赖和失败处理如果不清楚就很难稳定复用,所以功能列表并不能代替验证。更实际的做法是用一项范围明确的真实任务完成最小试跑,同时核对配置时间、输出质量、异常信息和维护痕迹,不要直接在关键项目上。我会把它列入愿意先做小范围验证并复查原始文档的团队的候选清单,而不是仅凭项目介绍直接纳入生产。
库尔博
Rust 2D 曲线库
Kurbo 库包含曲线和矢量路径的数据结构和算法。 它可能最适合创意工具,但足够通用,可能对其他应用程序有用。
“kurbo”这个名字在世界语中是“曲线”的意思。
重点关注高精度条件下的准确性和良好性能。 因此,该库在工程和科学环境中也可能很有用,而不是视觉艺术,在视觉艺术中粗略的近似通常就足够了。 许多近似函数都带有精度参数,并且在实用时使用解析解。 一个例子是面积计算,它是使用格林定理完成的。
该库仍处于相当早期的开发阶段。 有些特征对一般曲线(不仅仅是贝塞尔曲线)有用,但这些特征可能会被重新组织。
支持的最低 Rust 版本 (MSRV)
此版本的 Kurbo 已被验证可以使用 Rust 1.85 及更高版本进行编译。
Kurbo 的未来版本可能会增加 Rust 版本要求。 它不会被视为重大更改,因此甚至可以在小补丁版本中发生。
如果编译fails.
这里是
Click
随着时间的推移,Kurbo 的一些依赖项可能会发布具有更高 Rust 要求的版本。 如果您因依赖项而遇到编译问题,并且不想升级 Rust 工具链,那么您可以降级依赖项。
# Use the problematic dependency's name and version
cargo update -p package_name --precise 0.1.1
类似的板条箱
在这里,我们提到了一些其他曲线库,并讨论了此处做出的一些不同决定。
[lyon_geom] 有很多非常好的矢量算法。它最专注于渲染。
[flo_curves] 具有良好的贝塞尔基元,并且似乎针对动画进行了调整。它在坐标类型上是通用的,而我们对所有内容都使用 f64。
[vek] 具有 2D 和 3D Béziers 等功能,并且针对游戏引擎进行了调整。
一些代码是从 lyon_geom 复制而来并进行了改编,因此 lyon_geom 的作者 Nicolas Silva 被记入 [AUTHORS] 文件中。
更多信息
要了解更多关于贝塞尔曲线的知识,Pomax 的[贝塞尔曲线入门]是必不可少的。
社区
Kurbo 开发的讨论发生在 Linebender Zulip,特别是 #kurbo 频道。 所有公开内容无需登录即可阅读。