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