CoronaMath

CoronaMath 是一个用于 Swift 的跨平台向量和矩阵库。所有类型都是参数化的,因此任何定义了一组数学运算的类型都可以用作向量的组成部分或矩阵的元素。在适用的情况下,协议声明了其方法的默认实现。 这样,类型可以选择加入各种行为,同时仅声明最少的必需属性。

完整的文档可以在这里找到。

向量

所有向量都表示为给定类型分量的数组。 所有向量都以 Base 后缀声明,表示您通常会处理抽象版本,而不是直接处理该类型。


协议

VectorBase

表示一个向量。 声明大小、元素和元素访问。

SignedVectorBase

表示一个分量有符号的向量。 包括数学求反运算符 -

FloatingPointVectorBase

表示一个分量是浮点数的向量。 包括 lengthdotunit 方法。


结构体

PointBase

一个二维向量。 为了方便起见,公开 xy 属性。 Point 等同于 PointBase<Double>IntPoint 等同于 PointBase<Int>

Vector3Base

一个三维向量。 为了方便起见,公开 xyz 属性。 公开 rgbredgreenblue 属性以语义方式表示 RGB 颜色。 Vector3Base+Color 将一些常用颜色名称声明为静态属性。

Vector4Base

一个四维向量。 为了方便起见,公开 xyzw 属性。 公开 rgbaredgreenbluealpha 属性以语义方式表示 RGBA 颜色(包括 alpha 分量)。 Vector4Base+Color 将一些常用颜色名称声明为静态属性。

SizeBase

一个二维向量,表示大小或尺寸。 为了方便起见,公开 widthheight 属性,以及用于矩阵维度的 rowscolumns 属性。


矩阵

所有矩阵都表示为给定类型元素的数组。 所有向量都以 Base 后缀声明,表示您通常会处理抽象版本,而不是直接处理该类型。

尽管从逻辑上讲,一个矩阵声明了许多数学运算,但实际上,对于许多类型,大多数这些运算都是不需要的。 因此,这些运算已从 MatrixBase (表示矩阵的协议) 移至 MatrixOperationsBaseConstantSizeMatrixSquareMatrix 提供这些操作的一些默认实现。


协议

MatrixBase

表示一个矩阵。 声明维度、元素、元素访问和矩阵乘法。

MatrixOperationsBase

表示具有全套数学运算的矩阵。

ConstantSizeMatrix

表示维度在编译时已知的矩阵。

SquareMatrix

表示维度在编译时已知且行数等于列数的矩阵。


结构体

Matrix3Base

一个 3x3 矩阵。

Matrix4Base

一个 4x4 矩阵。

VariableSizeMatrix

一个维度在运行时确定的矩阵。 创建 VariableSizeMatrix 后,其维度无法更改,但不同的实例可以具有不同的维度。