CoronaMath 是一个用于 Swift 的跨平台向量和矩阵库。所有类型都是参数化的,因此任何定义了一组数学运算的类型都可以用作向量的组成部分或矩阵的元素。在适用的情况下,协议声明了其方法的默认实现。 这样,类型可以选择加入各种行为,同时仅声明最少的必需属性。
完整的文档可以在这里找到。
所有向量都表示为给定类型分量的数组。 所有向量都以 Base 后缀声明,表示您通常会处理抽象版本,而不是直接处理该类型。
表示一个向量。 声明大小、元素和元素访问。
表示一个分量有符号的向量。 包括数学求反运算符 -。
表示一个分量是浮点数的向量。 包括 length,dot 和 unit 方法。
一个二维向量。 为了方便起见,公开 x 和 y 属性。 Point 等同于 PointBase<Double>。 IntPoint 等同于 PointBase<Int>。
一个三维向量。 为了方便起见,公开 x,y 和 z 属性。 公开 r,g,b 和 red,green,blue 属性以语义方式表示 RGB 颜色。 Vector3Base+Color 将一些常用颜色名称声明为静态属性。
一个四维向量。 为了方便起见,公开 x,y,z 和 w 属性。 公开 r,g,b,a 和 red,green,blue,alpha 属性以语义方式表示 RGBA 颜色(包括 alpha 分量)。 Vector4Base+Color 将一些常用颜色名称声明为静态属性。
一个二维向量,表示大小或尺寸。 为了方便起见,公开 width 和 height 属性,以及用于矩阵维度的 rows 和 columns 属性。
所有矩阵都表示为给定类型元素的数组。 所有向量都以 Base 后缀声明,表示您通常会处理抽象版本,而不是直接处理该类型。
尽管从逻辑上讲,一个矩阵声明了许多数学运算,但实际上,对于许多类型,大多数这些运算都是不需要的。 因此,这些运算已从 MatrixBase (表示矩阵的协议) 移至 MatrixOperationsBase。 ConstantSizeMatrix 和 SquareMatrix 提供这些操作的一些默认实现。
表示一个矩阵。 声明维度、元素、元素访问和矩阵乘法。
表示具有全套数学运算的矩阵。
表示维度在编译时已知的矩阵。
表示维度在编译时已知且行数等于列数的矩阵。
一个 3x3 矩阵。
一个 4x4 矩阵。
一个维度在运行时确定的矩阵。 创建 VariableSizeMatrix 后,其维度无法更改,但不同的实例可以具有不同的维度。