Matrix3

A 3x3 matrix, indexable as a column-major order array. Constructor parameters are in row-major order for code readability.

new Cesium.Matrix3(column0Row0, column1Row0, column2Row0, column0Row1, column1Row1, column2Row1, column0Row2, column1Row2, column2Row2)

Name Type Default Description
column0Row0 number 0.0 optional 第 0 列第 0 行的值。
column1Row0 number 0.0 optional 第 1 列第 0 行的值。
column2Row0 number 0.0 optional 第 2 列第 0 行的值。
column0Row1 number 0.0 optional 第 0 列第 1 行的值。
column1Row1 number 0.0 optional 第 1 列第 1 行的值。
column2Row1 number 0.0 optional 第 2 列第 1 行的值。
column0Row2 number 0.0 optional 第 0 列第 2 行的值。
column1Row2 number 0.0 optional 第 1 列第 2 行的值。
column2Row2 number 0.0 optional 第 2 列第 2 行的值。
See:

Members

获取集合中项的数量。

static constant Cesium.Matrix3.COLUMN0ROW0 : number

Matrix3 中第 0 列第 0 行的索引。

static constant Cesium.Matrix3.COLUMN0ROW1 : number

Matrix3 中第 0 列第 1 行的索引。

static constant Cesium.Matrix3.COLUMN0ROW2 : number

Matrix3 中第 0 列第 2 行的索引。

static constant Cesium.Matrix3.COLUMN1ROW0 : number

Matrix3 中第 1 列第 0 行的索引。

static constant Cesium.Matrix3.COLUMN1ROW1 : number

Matrix3 中第 1 列第 1 行的索引。

static constant Cesium.Matrix3.COLUMN1ROW2 : number

Matrix3 中第 1 列第 2 行的索引。

static constant Cesium.Matrix3.COLUMN2ROW0 : number

Matrix3 中第 2 列第 0 行的索引。

static constant Cesium.Matrix3.COLUMN2ROW1 : number

Matrix3 中第 2 列第 1 行的索引。

static constant Cesium.Matrix3.COLUMN2ROW2 : number

Matrix3 中第 2 列第 2 行的索引。

static constant Cesium.Matrix3.IDENTITY : Matrix3

初始化为单位矩阵的不可变 Matrix3 实例。

static Cesium.Matrix3.packedLength : number

用于将对象打包进数组的元素数量。

static constant Cesium.Matrix3.ZERO : Matrix3

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

Methods

复制所提供 Matrix3 实例。
Name Type Description
result Matrix3 optional 用于存储结果的物体。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。

equals(right)boolean

将此矩阵与所提供的矩阵逐分量比较,如果它们相等则返回 true,否则返回 false
Name Type Description
right Matrix3 optional 右侧矩阵。
Returns:
true 如果它们相等,否则为 false

equalsEpsilon(right, epsilon)boolean

将此矩阵与所提供的矩阵逐分量比较,如果它们在所提供的 epsilon 范围内则返回 true,否则返回 false
Name Type Default Description
right Matrix3 optional 右侧矩阵。
epsilon number 0 optional 用于相等性测试的 epsilon。
Returns:
true 如果它们在给定的 epsilon 范围内,否则为 false

toString()string

创建一个表示此 Matrix 的字符串,其中每一行 单独占一行,格式为 '(column0, column1, column2)'。
Returns:
表示所提供 Matrix 的字符串,其中每一行单独占一行,格式为 '(column0, column1, column2)'。

static Cesium.Matrix3.abs(matrix, result)Matrix3

计算一个矩阵,其中包含所提供矩阵各元素的绝对(无符号)值。
Name Type Description
matrix Matrix3 具有有符号元素的矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.add(left, right, result)Matrix3

计算两个矩阵的和。
Name Type Description
left Matrix3 第一个矩阵。
right Matrix3 第二个矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.clone(matrix, result)Matrix3

复制一个 Matrix3 实例。
Name Type Description
matrix Matrix3 要复制的矩阵。
result Matrix3 optional 用于存储结果的物体。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。(如果 matrix 未定义则返回 undefined)

static Cesium.Matrix3.computeEigenDecomposition(matrix, result)EigenDecompositionResult

计算一个对称矩阵的特征向量和特征值。

返回一个对角矩阵和一个酉矩阵,使得: matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)

对角矩阵对角线上的值即为特征值。酉矩阵的 各列即为对应的特征向量。

Name Type Description
matrix Matrix3 要分解为对角矩阵和酉矩阵的矩阵。应为对称矩阵。
result EigenDecompositionResult optional 一个具有 unitary 和 diagonal 属性的对象,这些属性是用于存储结果的矩阵。
Returns:
一个具有 unitary 和 diagonal 属性的对象,分别对应酉矩阵和对角矩阵。
Example:
const a = //... symetric matrix
const result = {
    unitary : new Cesium.Matrix3(),
    diagonal : new Cesium.Matrix3()
};
Cesium.Matrix3.computeEigenDecomposition(a, result);

const unitaryTranspose = Cesium.Matrix3.transpose(result.unitary, new Cesium.Matrix3());
const b = Cesium.Matrix3.multiply(result.unitary, result.diagonal, new Cesium.Matrix3());
Cesium.Matrix3.multiply(b, unitaryTranspose, b); // b is now equal to a

const lambda = Cesium.Matrix3.getColumn(result.diagonal, 0, new Cesium.Cartesian3()).x;  // first eigenvalue
const v = Cesium.Matrix3.getColumn(result.unitary, 0, new Cesium.Cartesian3());          // first eigenvector
const c = Cesium.Cartesian3.multiplyByScalar(v, lambda, new Cesium.Cartesian3());        // equal to Cesium.Matrix3.multiplyByVector(a, v)

static Cesium.Matrix3.determinant(matrix)number

计算所提供矩阵的行列式。
Name Type Description
matrix Matrix3 要使用的矩阵。
Returns:
矩阵行列式的值。

static Cesium.Matrix3.equals(left, right)boolean

将给定的矩阵逐分量比较,如果它们相等则返回 true,否则返回 false
Name Type Description
left Matrix3 optional 第一个矩阵。
right Matrix3 optional 第二个矩阵。
Returns:
true 如果 left 和 right 相等,否则为 false

static Cesium.Matrix3.equalsEpsilon(left, right, epsilon)boolean

将给定的矩阵逐分量比较,如果它们在所提供的 epsilon 范围内则返回 true,否则返回 false
Name Type Default Description
left Matrix3 optional 第一个矩阵。
right Matrix3 optional 第二个矩阵。
epsilon number 0 optional 用于相等性测试的 epsilon。
Returns:
true 如果 left 和 right 在给定的 epsilon 范围内,否则为 false

static Cesium.Matrix3.fromArray(array, startingIndex, result)Matrix3

从数组中的 9 个连续元素创建一个 Matrix3。
Name Type Default Description
array Array.<number> 其 9 个连续元素对应矩阵各位置的数组。假定为列主序。
startingIndex number 0 optional 数组第一个元素的偏移量,对应矩阵中第一列第一行的位置。
result Matrix3 optional 用于存储结果的物体。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Create the Matrix3:
// [1.0, 2.0, 3.0]
// [1.0, 2.0, 3.0]
// [1.0, 2.0, 3.0]

const v = [1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
const m = Cesium.Matrix3.fromArray(v);

// Create same Matrix3 with using an offset into an array
const v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
const m2 = Cesium.Matrix3.fromArray(v2, 2);

static Cesium.Matrix3.fromColumnMajorArray(values, result)Matrix3

从列主序数组创建一个 Matrix3 实例。
Name Type Description
values Array.<number> 列主序数组。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。

static Cesium.Matrix3.fromCrossProduct(vector, result)Matrix3

计算表示 Cartesian3 向量叉积等价矩阵的 Matrix3 实例。
Name Type Description
vector Cartesian3 叉积运算左侧的向量。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Creates
//   [0.0, -9.0,  8.0]
//   [9.0,  0.0, -7.0]
//   [-8.0, 7.0,  0.0]
const m = Cesium.Matrix3.fromCrossProduct(new Cesium.Cartesian3(7.0, 8.0, 9.0));

static Cesium.Matrix3.fromHeadingPitchRoll(headingPitchRoll, result)Matrix3

根据所提供的 headingPitchRoll 计算 3x3 旋转矩阵。(参见 http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles )
Name Type Description
headingPitchRoll HeadingPitchRoll 要使用的 headingPitchRoll。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
由该 headingPitchRoll 得到的 3x3 旋转矩阵。

static Cesium.Matrix3.fromQuaternion(quaternion, result)Matrix3

根据所提供的 quaternion 计算 3x3 旋转矩阵。
Name Type Description
quaternion Quaternion 要使用的 quaternion。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
由该 quaternion 得到的 3x3 旋转矩阵。

static Cesium.Matrix3.fromRotationX(angle, result)Matrix3

创建绕 x 轴旋转的矩阵。
Name Type Description
angle number 旋转的角度(以弧度为单位)。正角度为逆时针方向。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Rotate a point 45 degrees counterclockwise around the x-axis.
const p = new Cesium.Cartesian3(5, 6, 7);
const m = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(45.0));
const rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());

static Cesium.Matrix3.fromRotationY(angle, result)Matrix3

创建绕 y 轴旋转的矩阵。
Name Type Description
angle number 旋转的角度(以弧度为单位)。正角度为逆时针方向。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Rotate a point 45 degrees counterclockwise around the y-axis.
const p = new Cesium.Cartesian3(5, 6, 7);
const m = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(45.0));
const rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());

static Cesium.Matrix3.fromRotationZ(angle, result)Matrix3

创建绕 z 轴旋转的矩阵。
Name Type Description
angle number 旋转的角度(以弧度为单位)。正角度为逆时针方向。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Rotate a point 45 degrees counterclockwise around the z-axis.
const p = new Cesium.Cartesian3(5, 6, 7);
const m = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(45.0));
const rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());

static Cesium.Matrix3.fromRowMajorArray(values, result)Matrix3

从行主序数组创建一个 Matrix3 实例。 结果矩阵将为列主序。
Name Type Description
values Array.<number> 行主序数组。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。

static Cesium.Matrix3.fromScale(scale, result)Matrix3

计算表示非均匀缩放的 Matrix3 实例。
Name Type Description
scale Cartesian3 x、y 和 z 缩放因子。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Creates
//   [7.0, 0.0, 0.0]
//   [0.0, 8.0, 0.0]
//   [0.0, 0.0, 9.0]
const m = Cesium.Matrix3.fromScale(new Cesium.Cartesian3(7.0, 8.0, 9.0));

static Cesium.Matrix3.fromUniformScale(scale, result)Matrix3

计算表示均匀缩放的 Matrix3 实例。
Name Type Description
scale number 均匀缩放因子。
result Matrix3 optional 结果将存储到的物体中,如果未定义则会创建一个新实例。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。
Example:
// Creates
//   [2.0, 0.0, 0.0]
//   [0.0, 2.0, 0.0]
//   [0.0, 0.0, 2.0]
const m = Cesium.Matrix3.fromUniformScale(2.0);

static Cesium.Matrix3.getColumn(matrix, index, result)Cartesian3

以 Cartesian3 实例的形式,获取所提供索引处矩阵列的副本。
Name Type Description
matrix Matrix3 要使用的矩阵。
index number 要获取列的从零开始的索引。
result Cartesian3 用于存储结果的物体。
Returns:
修改后的结果参数。
Throws:

static Cesium.Matrix3.getElementIndex(column, row)number

计算所提供行和列处元素的数组索引。
Name Type Description
column number 列的从零开始的索引。
row number 行的从零开始的索引。
Returns:
所提供行和列处元素的索引。
Throws:
Example:
const myMatrix = new Cesium.Matrix3();
const column1Row0Index = Cesium.Matrix3.getElementIndex(1, 0);
const column1Row0 = myMatrix[column1Row0Index]
myMatrix[column1Row0Index] = 10.0;

static Cesium.Matrix3.getMaximumScale(matrix)number

假设矩阵是一个仿射变换,计算最大缩放。 最大缩放即列向量的最大长度。
Name Type Description
matrix Matrix3 矩阵。
Returns:
最大缩放。

static Cesium.Matrix3.getRotation(matrix, result)Matrix3

假设矩阵是一个仿射变换,提取其旋转矩阵。
Name Type Description
matrix Matrix3 矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
See:

static Cesium.Matrix3.getRow(matrix, index, result)Cartesian3

以 Cartesian3 实例的形式,获取所提供索引处矩阵行的副本。
Name Type Description
matrix Matrix3 要使用的矩阵。
index number 要获取行的从零开始的索引。
result Cartesian3 用于存储结果的物体。
Returns:
修改后的结果参数。
Throws:

static Cesium.Matrix3.getScale(matrix, result)Cartesian3

假设矩阵是一个仿射变换,提取其非均匀缩放。
Name Type Description
matrix Matrix3 矩阵。
result Cartesian3 用于存储结果的物体。
Returns:
修改后的结果参数。
See:

static Cesium.Matrix3.inverse(matrix, result)Matrix3

计算所提供矩阵的逆矩阵。
Name Type Description
matrix Matrix3 要求逆的矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
Throws:

static Cesium.Matrix3.inverseTranspose(matrix, result)Matrix3

计算一个矩阵的逆的转置。
Name Type Description
matrix Matrix3 要转置并求逆的矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.multiply(left, right, result)Matrix3

计算两个矩阵的乘积。
Name Type Description
left Matrix3 第一个矩阵。
right Matrix3 第二个矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.multiplyByScalar(matrix, scalar, result)Matrix3

计算矩阵与标量的乘积。
Name Type Description
matrix Matrix3 矩阵。
scalar number 要乘的数。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.multiplyByScale(matrix, scale, result)Matrix3

计算矩阵与非均匀缩放的乘积,如同该缩放是一个缩放矩阵。
Name Type Description
matrix Matrix3 左侧的矩阵。
scale Cartesian3 右侧的非均匀缩放。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
Example:
// Instead of Cesium.Matrix3.multiply(m, Cesium.Matrix3.fromScale(scale), m);
Cesium.Matrix3.multiplyByScale(m, scale, m);
See:

static Cesium.Matrix3.multiplyByUniformScale(matrix, scale, result)Matrix3

计算矩阵与均匀缩放的乘积,如同该缩放是一个缩放矩阵。
Name Type Description
matrix Matrix3 左侧的矩阵。
scale number 右侧的均匀缩放。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
Example:
// Instead of Cesium.Matrix3.multiply(m, Cesium.Matrix3.fromUniformScale(scale), m);
Cesium.Matrix3.multiplyByUniformScale(m, scale, m);
See:

static Cesium.Matrix3.multiplyByVector(matrix, cartesian, result)Cartesian3

计算矩阵与列向量的乘积。
Name Type Description
matrix Matrix3 矩阵。
cartesian Cartesian3 列向量。
result Cartesian3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.negate(matrix, result)Matrix3

创建所提供矩阵的取反副本。
Name Type Description
matrix Matrix3 要取反的矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.pack(value, array, startingIndex)Array.<number>

将所提供的实例存入所提供的数组。
Name Type Default Description
value Matrix3 要打包的值。
array Array.<number> 要打包到的数组。
startingIndex number 0 optional 数组中开始打包元素的索引位置。
Returns:
被打包到的数组

static Cesium.Matrix3.packArray(array, result)Array.<number>

将一个 Matrix3 数组展平为分量数组。这些分量 以列主序存储。
Name Type Description
array Array.<Matrix3> 要打包的矩阵数组。
result Array.<number> optional 用于存储结果的数组。如果这是一个类型化数组,它必须具有 array.length * 9 个分量,否则将抛出 DeveloperError。如果它是一个常规数组,它将被调整为具有 (array.length * 9) 个元素。
Returns:
打包后的数组。

static Cesium.Matrix3.setColumn(matrix, index, cartesian, result)Matrix3

计算一个新矩阵,用所提供的 Cartesian3 实例替换所提供矩阵中指定的列。
Name Type Description
matrix Matrix3 要使用的矩阵。
index number 要设置的列的从零开始的索引。
cartesian Cartesian3 其值将被赋给指定列的 Cartesian。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
Throws:

static Cesium.Matrix3.setRotation(matrix, rotation, result)Matrix3

假设矩阵是一个仿射变换,设置其旋转。
Name Type Description
matrix Matrix3 矩阵。
rotation Matrix3 旋转矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
See:

static Cesium.Matrix3.setRow(matrix, index, cartesian, result)Matrix3

计算一个新矩阵,用所提供的 Cartesian3 实例替换所提供矩阵中指定的行。
Name Type Description
matrix Matrix3 要使用的矩阵。
index number 要设置的行的从零开始的索引。
cartesian Cartesian3 其值将被赋给指定行的 Cartesian。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
Throws:

static Cesium.Matrix3.setScale(matrix, scale, result)Matrix3

计算一个新矩阵,用所提供的缩放替换原缩放。 这假定矩阵是一个仿射变换。
Name Type Description
matrix Matrix3 要使用的矩阵。
scale Cartesian3 用于替换所提供矩阵缩放的缩放。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
See:

static Cesium.Matrix3.setUniformScale(matrix, scale, result)Matrix3

计算一个新矩阵,用所提供的均匀缩放替换原缩放。 这假定矩阵是一个仿射变换。
Name Type Description
matrix Matrix3 要使用的矩阵。
scale number 用于替换所提供矩阵缩放的均匀缩放。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。
See:

static Cesium.Matrix3.subtract(left, right, result)Matrix3

计算两个矩阵的差。
Name Type Description
left Matrix3 第一个矩阵。
right Matrix3 第二个矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.toArray(matrix, result)Array.<number>

从所提供的 Matrix3 实例创建一个 Array。 该数组将为列主序。
Name Type Description
matrix Matrix3 要使用的矩阵。
result Array.<number> optional 用于存储结果的 Array。
Returns:
修改后的 Array 参数;如果未提供,则为新的 Array 实例。

static Cesium.Matrix3.transpose(matrix, result)Matrix3

计算所提供矩阵的转置。
Name Type Description
matrix Matrix3 要转置的矩阵。
result Matrix3 用于存储结果的物体。
Returns:
修改后的结果参数。

static Cesium.Matrix3.unpack(array, startingIndex, result)Matrix3

从打包后的数组中检索一个实例。
Name Type Default Description
array Array.<number> 打包后的数组。
startingIndex number 0 optional 要解包元素的起始索引。
result Matrix3 optional 结果将存入其中的物体。
Returns:
修改后的结果参数;如果未提供,则为新的 Matrix3 实例。

static Cesium.Matrix3.unpackArray(array, result)Array.<Matrix3>

将列主序矩阵分量数组解包为 Matrix3 数组。
Name Type Description
array Array.<number> 要解包的分量数组。
result Array.<Matrix3> optional 用于存储结果的数组。
Returns:
解包后的数组。
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。