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