#计算几何 #二维 #空间 #几何 #计算 #图形 #算法

cavalier_contours

二维多边形/形状库,用于偏移、组合等

4 个版本 (破坏性更新)

0.4.0 2024年2月22日
0.3.0 2023年2月19日
0.2.0 2022年5月13日
0.1.0 2021年3月11日

#200算法

Download history 35/week @ 2024-03-13 4/week @ 2024-03-20 36/week @ 2024-03-27 23/week @ 2024-04-03 8/week @ 2024-04-24 30/week @ 2024-05-01 1/week @ 2024-05-15 3/week @ 2024-05-22 13/week @ 2024-05-29 52/week @ 2024-06-05 23/week @ 2024-06-12 45/week @ 2024-06-19 73/week @ 2024-06-26

每月196 次下载
用于 cavalier_contours_ffi

MIT/Apache 许可

395KB
8K SLoC

摘要

此项目是基于 C++ CavalierContours 库的重写,用 Rust 编写,旨在构建更多功能、更好的文档和创建稳定的 C FFI。此项目具有 C++ 仓库的所有功能,以及更多的代码文档、测试覆盖率和一些处理多边形的附加函数。要跟踪进度和贡献,请查看项目的 GitHub 问题。有关并行偏移算法和背景信息的更多信息,请参阅旧的 C++ 仓库中的 README.md 此处

此库在主 cavalier_contours 包中不使用任何不安全的代码(应用了 #![forbid(unsafe_code)])。在 cavalier_contours_ffi 包中用于 C 绑定时使用了不安全代码。

用于可视化和测试的交互式网页

此项目被编译为 wasm 以创建用于可视化和测试的交互式网页。

为什么选择 Rust?

  • 与使用 C 或 C++ 相同的好处(出色的性能/优化、原生编译、无垃圾回收、无运行时)用于创建具有 C FFI 的快速可移植库
  • 出色的构建和打包内置工具(cargo + crates)
  • 出色的测试编写和维护内置工具
  • 所有内置工具使得开源贡献和参与更容易实现
  • 借用检查器 + 生命周期允许进行更高级的内存分配优化,而不会出现内存错误/损坏错误
  • 类型系统允许在风险较低的情况下大量使用线程/并发
  • 区分联合和模式匹配作为一等语言特性
  • 针对wasm的出色工具

刚接触Rust但仍然想贡献代码吗?

我推荐官方的Rust书籍这里。Visual Studio Code + rust-analyzer 扩展非常适合编辑。如果您在寻找具体的工作内容,请检查标记为 good first issue 的项目问题。

许可协议

以下任一许可协议下发布:

您可以选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,将如上所述双重许可,不附加任何额外条款或条件。

依赖关系

~155–385KB