#矩阵-向量 #向量 #矩阵 #四元数 #线性代数 #游戏开发

acgmath

计算机图形学的线性代数和数学库。是 cgmath 的分支。

2个版本

使用旧的Rust 2015

0.1.1 2017年3月6日
0.1.0 2017年3月6日

#1673 in 数学

Apache-2.0

230KB
4.5K SLoC

acgmath-rs

Build Status

cgmath-rs 的测试平台分支。具有可选的序列化和simd支持。这些选项默认开启,因此需要 rustc 的夜间版本来编译。

为什么要分支

我想快速实验像 simdserde 这样的特性。提交一个PR并等待批准,同时修改 cgmath 的版本号,这真是太烦人了。

简介

计算机图形学的线性代数和数学库。

该库提供

  • 向量:Vector2Vector3Vector4
  • 方阵:Matrix2Matrix3Matrix4
  • 四元数类型:Quaternion
  • 旋转矩阵:Basis2Basis3
  • 角度单位:RadDeg
  • 点:Point2Point3
  • 透视投影:PerspectivePerspectiveFovOrtho
  • 空间变换:AffineMatrix3Transform3

并非所有功能都已实现,现有代码尚未完全由测试套件覆盖。如果您遇到任何错误或遗漏,请通过发布问题通知我,或者更好的是:发送一个包含修复的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