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
后,其维度无法更改,但不同的实例可以具有不同的维度。