Matrix3

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

一个3*3矩阵,可作为一个列-主序数组索引。 构造函数参数按行主序排列,以提高代码的可读性。
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

length : Number

获取集合中的项的个数。

staticconstantCesium.Matrix3.COLUMN0ROW0 : Number

索引为第0列,第0行的Matrix3。

staticconstantCesium.Matrix3.COLUMN0ROW1 : Number

索引为第0列,第1行的Matrix3。

staticconstantCesium.Matrix3.COLUMN0ROW2 : Number

索引为第0列,第2行的Matrix3。

staticconstantCesium.Matrix3.COLUMN1ROW0 : Number

索引为第1列,第0行的Matrix3。

staticconstantCesium.Matrix3.COLUMN1ROW1 : Number

索引为第1列,第1行的Matrix3。

staticconstantCesium.Matrix3.COLUMN1ROW2 : Number

索引为第1列,第2行的Matrix3。

staticconstantCesium.Matrix3.COLUMN2ROW0 : Number

索引为第2列,第0行的Matrix3。

staticconstantCesium.Matrix3.COLUMN2ROW1 : Number

索引为第2列,第1行的Matrix3。

staticconstantCesium.Matrix3.COLUMN2ROW2 : Number

索引为第2列,第2行的Matrix3。

staticconstantCesium.Matrix3.IDENTITY : Matrix3

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

staticCesium.Matrix3.packedLength : Number

用于将对象封装成数组的元素数。

staticconstantCesium.Matrix3.ZERO : Matrix3

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

Methods

clone(result)Matrix3

克隆提供的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 Description
right Matrix3 optional 要进行比较的矩阵实例。
epsilon Number 用于等式检验的epsilon。
Returns:
true如果它们在给定的epsilon范围内,否则false

toString()String

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

staticCesium.Matrix3.abs(matrix, result)Matrix3

计算一个矩阵,该矩阵包含所提供的矩阵元素的绝对值(无符号)。
Name Type Description
matrix Matrix3 带符号元素的矩阵。
result Matrix3 存储结果的对象。
Returns:
修改后的结果参数。

staticCesium.Matrix3.add(left, right, result)Matrix3

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

staticCesium.Matrix3.clone(matrix, result)Matrix3

克隆一个 Matrix3 实例。
Name Type Description
matrix Matrix3 要被克隆的矩阵。
result Matrix3 optional 存储结果的对象。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。(如果矩阵是未定义的,则返回undefined)

staticCesium.Matrix3.computeEigenDecomposition(matrix, result)Object

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

返回一个对角(diagonal)矩阵和单式(unitary)矩阵,如: matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)

对角矩阵对角线上的值为特征值。单式矩阵的列是对应的特征向量。

Name Type Description
matrix Matrix3 将矩阵分解为对角矩阵和单式矩阵。 预期是对称的。
result Object optional 一个具有单式和对角属性的对象,这些属性是用来存储结果的矩阵。
Returns:
一个具有单式和对角属性的对象,分别是单式矩阵和对角矩阵。
Example:
var a = //... symetric matrix
var result = {
    unitary : new Cesium.Matrix3(),
    diagonal : new Cesium.Matrix3()
};
Cesium.Matrix3.computeEigenDecomposition(a, result);

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

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

staticCesium.Matrix3.determinant(matrix)Number

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

staticCesium.Matrix3.equals(left, right)Boolean

比较所提供的矩阵的分量,如果相等则返回true,否则返回false
Name Type Description
left Matrix3 optional 第一个矩阵。
right Matrix3 optional 第二个矩阵。
Returns:
true 如果两者相等,否则 false

staticCesium.Matrix3.equalsEpsilon(left, right, epsilon)Boolean

比较提供的矩阵的分量,如果它们在提供的epsilon范围内,则返回true,否则返回false
Name Type Description
left Matrix3 optional 第一个矩阵。
right Matrix3 optional 第二个矩阵。
epsilon Number 用于等式检验的epsilon。
Returns:
true 如果两者在给定的epsilon范围内,否则 false

staticCesium.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:
// 创建 Matrix3:
// [1.0, 2.0, 3.0]
// [1.0, 2.0, 3.0]
// [1.0, 2.0, 3.0]

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

// 使用偏移量在数组中创建相同的Matrix3
var v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
var m2 = Cesium.Matrix3.fromArray(v2, 2);

staticCesium.Matrix3.fromColumnMajorArray(values, result)Matrix3

从列主序数组创建一个Matrix3实例。
Name Type Description
values Array.<Number> 列主序数组。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。

staticCesium.Matrix3.fromCrossProduct(vector, result)Matrix3

计算一个Matrix3实例来表示Cartesian3向量的外(叉)积等价矩阵。
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]
var m = Cesium.Matrix3.fromCrossProduct(new Cesium.Cartesian3(7.0, 8.0, 9.0));

staticCesium.Matrix3.fromHeadingPitchRoll(headingPitchRoll, result)Matrix3

从提供的headingPitchRoll对象计算一个3x3旋转矩阵。 (see http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles )
Name Type Description
headingPitchRoll HeadingPitchRoll 要使用的headingPitchRoll对象。
result Matrix3 optional 存储结果的对象, 如果未定义,将创建一个新实例。
Returns:
从headingPitchRoll而来的3 * 3的旋转矩阵。

staticCesium.Matrix3.fromQuaternion(quaternion, result)Matrix3

从提供的四元数(quaternion)计算一个3x3旋转矩阵。
Name Type Description
quaternion Quaternion 要使用的四元数(quaternion)
result Matrix3 optional 存储结果的对象, 如果未定义,将创建一个新实例。
Returns:
这个四元数(quaternion)的3x3旋转矩阵。

staticCesium.Matrix3.fromRotationX(angle, result)Matrix3

创建一个绕x轴旋转的矩阵。
Name Type Description
angle Number 以弧度表示的旋转角度。正角(positive angles)是逆时针的。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
Example:
// 绕x轴逆时针旋转45度。
var p = new Cesium.Cartesian3(5, 6, 7);
var m = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(45.0));
var rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());

staticCesium.Matrix3.fromRotationY(angle, result)Matrix3

创建一个绕y轴旋转的矩阵。
Name Type Description
angle Number 以弧度表示的旋转角度。正角(positive angles)是逆时针的。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
Example:
// 绕y轴逆时针旋转45度。
var p = new Cesium.Cartesian3(5, 6, 7);
var m = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(45.0));
var rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());

staticCesium.Matrix3.fromRotationZ(angle, result)Matrix3

创建一个绕z轴旋转的矩阵。
Name Type Description
angle Number 以弧度表示的旋转角度。正角(positive angles)是逆时针的。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
Example:
// 绕z轴逆时针旋转45度。
var p = new Cesium.Cartesian3(5, 6, 7);
var m = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(45.0));
var rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());

staticCesium.Matrix3.fromRowMajorArray(values, result)Matrix3

从行主序数组创建一个Matrix3实例。得到的矩阵将按列主序排列。
Name Type Description
values Array.<Number> 行主序数组
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。

staticCesium.Matrix3.fromScale(scale, result)Matrix3

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

staticCesium.Matrix3.fromUniformScale(scale, result)Matrix3

计算表示均匀缩放的Matrix3实例。
Name Type Description
scale Number 均匀缩放因子。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
Example:
// 创建
//   [2.0, 0.0, 0.0]
//   [0.0, 2.0, 0.0]
//   [0.0, 0.0, 2.0]
var m = Cesium.Matrix3.fromUniformScale(2.0);

staticCesium.Matrix3.getColumn(matrix, index, result)Cartesian3

以Cartesian3实例的形式在提供的索引处检索矩阵列的副本。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要检索的列的从零开始的索引。
result Cartesian3 存储结果的对象。
Returns:
修改后的结果参数。
Throws:

staticCesium.Matrix3.getElementIndex(row, column)Number

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

staticCesium.Matrix3.getMaximumScale(matrix)Number

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

staticCesium.Matrix3.getRotation(matrix, result)Matrix3

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

staticCesium.Matrix3.getRow(matrix, index, result)Cartesian3

以Cartesian3实例的形式在提供的索引处检索矩阵行的副本。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要检索的行的从零开始的索引。
result Cartesian3 存储结果的对象。
Returns:
修改后的结果参数。
Throws:

staticCesium.Matrix3.getScale(matrix, result)Cartesian3

提取非均匀缩放,假设矩阵是仿射变换。
Name Type Description
matrix Matrix3 矩阵。
result Cartesian3 存储结果的对象。
Returns:
修改后的结果参数。

staticCesium.Matrix3.inverse(matrix, result)Matrix3

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

staticCesium.Matrix3.multiply(left, right, result)Matrix3

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

staticCesium.Matrix3.multiplyByScalar(matrix, scalar, result)Matrix3

计算矩阵与标量(scalar)的乘积。
Name Type Description
matrix Matrix3 矩阵。
scalar Number 要乘以的数。
result Matrix3 存储结果的对象。
Returns:
修改后的结果参数。

staticCesium.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:

staticCesium.Matrix3.multiplyByVector(matrix, cartesian, result)Cartesian3

计算矩阵和列向量的乘积。
Name Type Description
matrix Matrix3 矩阵。
cartesian Cartesian3 列。
result Cartesian3 存储结果的对象。
Returns:
修改后的结果参数。

staticCesium.Matrix3.negate(matrix, result)Matrix3

创建所提供的矩阵的负(negated)副本。(对每个分量取反)
Name Type Description
matrix Matrix3 要取反的矩阵。
result Matrix3 存储结果的对象。
Returns:
修改后的结果参数。

staticCesium.Matrix3.pack(value, array, startingIndex)Array.<Number>

将提供的实例存储到提供的数组中。
Name Type Default Description
value Matrix3 要封装的值。
array Array.<Number> 要封装到的数组。
startingIndex Number 0 optional 开始包装元素的数组索引。
Returns:
被封装到的数组

staticCesium.Matrix3.setColumn(matrix, index, cartesian, result)Matrix3

计算一个新矩阵,该矩阵用提供的Cartesian3实例替换提供的矩阵中的指定列。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要设置的列的从零开始的索引。
cartesian Cartesian3 将被赋给指定列的笛卡儿坐标值。
result Cartesian3 存储结果的对象。
Returns:
修改后的结果参数。
Throws:

staticCesium.Matrix3.setRow(matrix, index, cartesian, result)Matrix3

计算一个新矩阵,该矩阵用提供的Cartesian3实例替换提供的矩阵中的指定行。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要设置的行的从零开始的索引。
cartesian Cartesian3 将被赋给指定行的笛卡儿坐标值。
result Cartesian3 存储结果的对象。
Returns:
修改后的结果参数。
Throws:

staticCesium.Matrix3.subtract(left, right, result)Matrix3

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

staticCesium.Matrix3.toArray(matrix, result)Array.<Number>

从提供的Matrix3实例创建一个数组。数组将按列主序排列。
Name Type Description
matrix Matrix3 要使用的矩阵。
result Array.<Number> optional 存储结果的数组。
Returns:
已修改的数组参数或新的数组实例(如果未提供)。

staticCesium.Matrix3.transpose(matrix, result)Matrix3

计算给定矩阵的转置(transpose)。
Name Type Description
matrix Matrix3 要进行转置(transpose)的矩阵。
result Matrix3 存储结果的对象。
Returns:
修改后的结果参数。

staticCesium.Matrix3.unpack(array, startingIndex, result)Matrix3

从已封装的数组中检索实例。
Name Type Default Description
array Array.<Number> 封装的数组。
startingIndex Number 0 optional 要解包的元素的起始索引。
result Matrix3 optional 存储结果的对象。
Returns:
修改后的结果参数或新的Matrix3实例(如果没有提供)。