19个版本 (3个稳定版)
| 1.0.2 | 2020年10月27日 |
|---|---|
| 1.0.1 | 2020年7月19日 |
| 1.0.0 | 2020年5月29日 |
| 0.5.0 | 2020年4月26日 |
| 0.3.1 | 2019年7月30日 |
#1644 in 数学
每月85次下载
135KB
3.5K SLoC
aljabar
一个实验性的n维线性代数和数学库,用于计算机图形学,设计上大致兼容cgmath。
该库提供
- 向量:
Vector2、Vector3、Vector4和Vector<T, const N: usize> - 点:
Point2、Point3、Point4和Point<T, const N: usize> - 矩阵:
Matrix2、Matrix3、Matrix4和Matrix<T, const N: usize, const M: usize> - 四元数类型:
Quaternion - 正交归一(旋转)矩阵:
Orthonormal
aljabar支持任意大小的向量和矩阵,并将提供由其标量支持的任何数学运算的实现。此外,aljabar可以利用Rust的类型系统来确保仅对正确大小的值应用操作。aljabar可以在保持无标准兼容性的同时执行此操作。
aljabar严重依赖于不稳定的Rust功能,如const泛型,因此需要nightly才能构建。
有关更多信息以及入门指南,请参阅文档。
Cargo功能
- 默认关闭的
mint功能将向mintcrate添加依赖关系,并提供在aljabar类型和mint类型之间进行转换的支持。 - 默认关闭的
serde功能为添加从 serde crate 的序列化/反序列化支持。 - 默认关闭的
rand功能允许您通过从随机数源采样来创建随机点、向量和矩阵。 - 默认关闭的
swizzle功能为向量启用 swizzle 函数。
贡献
欢迎各种类型的拉取请求,特别是关于性能改进的请求。尽管 aljabar 在维度上是通用的,但针对特定维度的算法添加简单,并打算在未来替换掉最常见的代码路径中的通用算法。
支持
请联系作者 map@maplant.com 或在 github 上 提交问题。
依赖项
约 125–530KB
~10K SLoC