Matrix2

2x2矩阵,可作为列主顺序数组进行索引。对于代码可读性,构造函数参数按行主顺序排列。
new Matrix2(column0Row0, column1Row0, column0Row1, column1Row1)
Parameters:
column0Row0 (Number) (default 0.0) 第0列第0行的值。
column1Row0 (Number) (default 0.0) 第1列第0行的值。
column0Row1 (Number) (default 0.0) 第0列第1行的值。
column1Row1 (Number) (default 0.0) 第1列第1行的值。
See:

Members

length : Number

获取集合中的项数。

(static, constant) COLUMN0ROW0 : Number

Matrix2中第0列第0行的索引。
Example:
var matrix = new bmgl.Matrix2();
matrix[bmgl.Matrix2.COLUMN0ROW0] = 5.0; // set column 0, row 0 to 5.0

(static, constant) COLUMN0ROW1 : Number

Matrix2中第0列第1行的索引。
Example:
var matrix = new bmgl.Matrix2();
matrix[bmgl.Matrix2.COLUMN0ROW1] = 5.0; // set column 0, row 1 to 5.0

(static, constant) COLUMN1ROW0 : Number

Matrix2中第1列第0行的索引。
Example:
var matrix = new bmgl.Matrix2();
matrix[bmgl.Matrix2.COLUMN1ROW0] = 5.0; // set column 1, row 0 to 5.0

(static, constant) COLUMN1ROW1 : Number

Matrix2中第1列第1行的索引。
Example:
var matrix = new bmgl.Matrix2();
matrix[bmgl.Matrix2.COLUMN1ROW1] = 5.0; // set column 1, row 1 to 5.0

(static, constant) IDENTITY : Matrix2

初始化为标识矩阵的不可变矩阵2实例。

(static) packedLength : Number

用于将对象打包到数组中的元素数。

(static, constant) ZERO : Matrix2

初始化为零矩阵的不可变矩阵2实例。

Methods

clone(result) → {Matrix2}
复制提供的matrix2实例。
Parameters:
result (Matrix2) 存储结果的对象。
equals(right) → {Boolean}
将此矩阵与提供的矩阵组件进行比较,如果相等,则返回true,否则返回false
Parameters:
right (Matrix2) 右侧矩阵。
equalsEpsilon(right, epsilon) → {Boolean}
将此矩阵与提供的矩阵组件进行比较,如果它们在提供的epsilon中,则返回true,否则返回false
Parameters:
right (Matrix2) 右侧矩阵。
epsilon (Number) 用于相等性测试的epsilon。
toString() → {String}
创建一个表示此矩阵的字符串,其中每一行位于单独的行上,格式为“(第0列,第1列)”。
(static) abs(matrix, result) → {Matrix2}
计算包含所提供矩阵元素的绝对(无符号)值的矩阵。
Parameters:
matrix (Matrix2) 带符号元素的矩阵。
result (Matrix2) 存储结果的对象。
(static) add(left, right, result) → {Matrix2}
计算两个矩阵的和。
Parameters:
left (Matrix2) 第一个矩阵。
right (Matrix2) 第二个矩阵。
result (Matrix2) 存储结果的对象。
(static) clone(matrix, result) → {Matrix2}
复制Matrix2实例。
Parameters:
matrix (Matrix2) 要复制的矩阵。
result (Matrix2) 存储结果的对象。
(static) equals(left, right) → {Boolean}
比较提供的矩阵组件,如果它们相等,则返回true,否则返回false
Parameters:
left (Matrix2) 第一个矩阵。
right (Matrix2) 第二个矩阵。
(static) equalsEpsilon(left, right, epsilon) → {Boolean}
比较提供的矩阵组件,如果它们在提供的epsilon中,则返回true,否则返回false
Parameters:
left (Matrix2) 第一个矩阵。
right (Matrix2) 第二个矩阵。
epsilon (Number) 用于相等性测试的epsilon。
(static) fromArray(array, startingIndex, result) → {Matrix2}
从数组中的4个连续元素创建矩阵2。
Parameters:
array (Array.<Number>) 四个连续元素对应矩阵位置的数组。假定列主顺序。
startingIndex (Number) (default 0) 第一个元素数组中的偏移量,它对应于矩阵中第一列第一行的位置。
result (Matrix2) 存储结果的对象。
Example
// Create the Matrix2:
// [1.0, 2.0]
// [1.0, 2.0]

var v = [1.0, 1.0, 2.0, 2.0];
var m = bmgl.Matrix2.fromArray(v);

// Create same Matrix2 with using an offset into an array
var v2 = [0.0, 0.0, 1.0, 1.0, 2.0, 2.0];
var m2 = bmgl.Matrix2.fromArray(v2, 2);
(static) fromColumnMajorArray(values, result) → {Matrix2}
从列主顺序数组创建matrix2实例。
Parameters:
values (Array.<Number>) 列主顺序数组。
result (Matrix2) 将在其中存储结果的对象,如果未定义,将创建新实例。
(static) fromRotation(angle, result) → {Matrix2}
创建旋转矩阵。
Parameters:
angle (Number) 以弧度表示的旋转角度。正角度是逆时针的。
result (Matrix2) 将在其中存储结果的对象,如果未定义,将创建新实例。
Example
// Rotate a point 45 degrees counterclockwise.
var p = new bmgl.Cartesian2(5, 6);
var m = bmgl.Matrix2.fromRotation(bmgl.Math.toRadians(45.0));
var rotated = bmgl.Matrix2.multiplyByVector(m, p, new bmgl.Cartesian2());
(static) fromRowMajorArray(values, result) → {Matrix2}
从行主顺序数组创建matrix2实例。生成的矩阵将按主列顺序排列。
Parameters:
values (Array.<Number>) 行主顺序数组。
result (Matrix2) 将在其中存储结果的对象,如果未定义,将创建新实例。
(static) fromScale(scale, result) → {Matrix2}
计算表示非均匀比例的Matrix2实例。
Parameters:
scale (Cartesian2) X和Y比例因子。
result (Matrix2) 将在其中存储结果的对象,如果未定义,将创建新实例。
Example
// Creates
//   [7.0, 0.0]
//   [0.0, 8.0]
var m = bmgl.Matrix2.fromScale(new bmgl.Cartesian2(7.0, 8.0));
(static) fromUniformScale(scale, result) → {Matrix2}
计算表示统一比例的Matrix2实例。
Parameters:
scale (Number) 均匀比例因子。
result (Matrix2) 将在其中存储结果的对象,如果未定义,将创建新实例。
Example
// Creates
//   [2.0, 0.0]
//   [0.0, 2.0]
var m = bmgl.Matrix2.fromUniformScale(2.0);
(static) getColumn(matrix, index, result) → {Cartesian2}
以cartesian2实例的形式检索所提供索引处的矩阵列的副本。
Parameters:
matrix (Matrix2) 要使用的矩阵。
index (Number) 要检索的列的从零开始的索引。
result (Cartesian2) 存储结果的对象。
Throws
(static) getElementIndex(row, column) → {Number}
在提供的行和列处计算元素的数组索引。
Parameters:
row (Number) 行的从零开始的索引。
column (Number) 列的从零开始的索引。
Example
var myMatrix = new bmgl.Matrix2();
var column1Row0Index = bmgl.Matrix2.getElementIndex(1, 0);
var column1Row0 = myMatrix[column1Row0Index]
myMatrix[column1Row0Index] = 10.0;
Throws
(static) getMaximumScale(matrix) → {Number}
假设矩阵是仿射变换,则计算最大比例。最大比例是列向量的最大长度。
Parameters:
matrix (Matrix2) 矩阵。
(static) getRow(matrix, index, result) → {Cartesian2}
以cartesian2实例的形式检索所提供索引处的矩阵行的副本。
Parameters:
matrix (Matrix2) 要使用的矩阵。
index (Number) 要检索的行的从零开始的索引。
result (Cartesian2) 存储结果的对象。
Throws
(static) getScale(matrix, result) → {Cartesian2}
假设矩阵是仿射变换,则提取不均匀尺度。
Parameters:
matrix (Matrix2) 矩阵。
result (Cartesian2) 存储结果的对象。
(static) multiply(left, right, result) → {Matrix2}
计算两个矩阵的乘积。
Parameters:
left (Matrix2) 第一个矩阵。
right (Matrix2) 第二个矩阵。
result (Matrix2) 存储结果的对象。
(static) multiplyByScalar(matrix, scalar, result) → {Matrix2}
计算矩阵和标量的乘积。
Parameters:
matrix (Matrix2) 矩阵。
scalar (Number) 要乘以的数字。
result (Matrix2) 存储结果的对象。
(static) multiplyByScale(matrix, scale, result) → {Matrix2}
计算矩阵乘以(非均匀)比例的乘积,就像比例是比例矩阵一样。
Parameters:
matrix (Matrix2) 左边的矩阵。
scale (Cartesian2) 右侧的不均匀刻度。
result (Matrix2) 存储结果的对象。
Example
// Instead of bmgl.Matrix2.multiply(m, bmgl.Matrix2.fromScale(scale), m);
bmgl.Matrix2.multiplyByScale(m, scale, m);
See:
(static) multiplyByVector(matrix, cartesian, result) → {Cartesian2}
计算矩阵和列向量的乘积。
Parameters:
matrix (Matrix2) 矩阵。
cartesian (Cartesian2) 列。
result (Cartesian2) 存储结果的对象。
(static) negate(matrix, result) → {Matrix2}
创建所提供矩阵的否定副本。
Parameters:
matrix (Matrix2) 要求反的矩阵。
result (Matrix2) 存储结果的对象。
(static) pack(value, array, startingIndex) → {Array.<Number>}
将提供的实例存储到提供的数组中。
Parameters:
value (Matrix2) 要打包的值。
array (Array.<Number>) 要打包的数组。
startingIndex (Number) (default 0) 数组中开始打包元素的索引。
(static) setColumn(matrix, index, cartesian, result) → {Matrix2}
计算用提供的cartesian2实例替换所提供矩阵中指定列的新矩阵。
Parameters:
matrix (Matrix2) 要使用的矩阵。
index (Number) 要设置的列的从零开始的索引。
cartesian (Cartesian2) 值将分配给指定列的笛卡尔。
result (Cartesian2) 存储结果的对象。
Throws
(static) setRow(matrix, index, cartesian, result) → {Matrix2}
计算用提供的cartesian2实例替换所提供矩阵中指定行的新矩阵。
Parameters:
matrix (Matrix2) 要使用的矩阵。
index (Number) 要设置的行的从零开始的索引。
cartesian (Cartesian2) 值将分配给指定行的笛卡尔。
result (Matrix2) 存储结果的对象。
Throws
(static) subtract(left, right, result) → {Matrix2}
计算两个矩阵的差。
Parameters:
left (Matrix2) 第一个矩阵。
right (Matrix2) 第二个矩阵。
result (Matrix2) 存储结果的对象。
(static) toArray(matrix, result) → {Array.<Number>}
从提供的Matrix2实例创建数组。数组将按列主顺序排列。
Parameters:
matrix (Matrix2) 要使用的矩阵。
result (Array.<Number>) 存储结果的数组。
(static) transpose(matrix, result) → {Matrix2}
计算所提供矩阵的转置。
Parameters:
matrix (Matrix2) 要转置的矩阵。
result (Matrix2) 存储结果的对象。
(static) unpack(array, startingIndex, result) → {Matrix2}
从压缩数组中检索实例。
Parameters:
array (Array.<Number>) 压缩数组。
startingIndex (Number) (default 0) 要解包的元素的起始索引。
result (Matrix2) 存储结果的对象。