2个版本
使用旧的Rust 2015
| 0.1.1 | 2017年3月6日 |
|---|---|
| 0.1.0 | 2017年3月6日 |
#1673 in 数学
230KB
4.5K SLoC
acgmath-rs
cgmath-rs 的测试平台分支。具有可选的序列化和simd支持。这些选项默认开启,因此需要 rustc 的夜间版本来编译。
为什么要分支
我想快速实验像 simd 和 serde 这样的特性。提交一个PR并等待批准,同时修改 cgmath 的版本号,这真是太烦人了。
简介
计算机图形学的线性代数和数学库。
该库提供
- 向量:
Vector2、Vector3、Vector4 - 方阵:
Matrix2、Matrix3、Matrix4 - 四元数类型:
Quaternion - 旋转矩阵:
Basis2、Basis3 - 角度单位:
Rad、Deg - 点:
Point2、Point3 - 透视投影:
Perspective、PerspectiveFov、Ortho - 空间变换:
AffineMatrix3、Transform3
并非所有功能都已实现,现有代码尚未完全由测试套件覆盖。如果您遇到任何错误或遗漏,请通过发布问题通知我,或者更好的是:发送一个包含修复的pull request。
约定
cgmath将其向量解释为列矩阵(也称为“列向量”),这意味着当用矩阵变换向量时,矩阵位于左侧。这体现在cgmath实现了矩阵乘以向量的乘法运算符,但没有向量乘以矩阵的运算符。
限制
cgmath 不是一个n维度的库,它针对的是计算机图形学应用,而不是通用的线性代数。它只提供了2维、3维和4维的结构,这对于大多数计算机图形学应用来说已经足够了。这个设计决策是为了简化实现(Rust无法在编译时对常量进行参数化),并且为了将来更容易进行特定维度的优化。
贡献
欢迎提交拉取请求,特别是在性能提升和纠正我可能犯的错误方面。还需要单元测试和基准测试,所以这方面的帮助将非常受欢迎。
支持
请通过issue或PR联系我。或者如果你喜欢,也可以发电子邮件。
原cgmath的支持渠道
在irc.mozilla.org上的bjz处联系我,在#rust和#rust-gamedev频道,或者在Github上发一个问题。
依赖关系
~0.6–1.3MB
~22K SLoC