Matrix3

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

3x3矩阵,可按列优先顺序数组进行索引。构造函数参数按行顺序排列,以提高代码的可读性。
Name Type Default Description
column0Row0 Number 0.0 可选 列0,行0的值。
column1Row0 Number 0.0 可选 第1列第0行的值。
column2Row0 Number 0.0 可选 第2列第0行的值。
column0Row1 Number 0.0 可选 列0,第1行的值。
column1Row1 Number 0.0 可选 第1列第1行的值。
column2Row1 Number 0.0 可选 第2列第1行的值。
column0Row2 Number 0.0 可选 列0,第2行的值。
column1Row2 Number 0.0 可选 第1列第2行的值。
column2Row2 Number 0.0 可选 第2列第2行的值。
See:

Members

获取集合中的项目数。

static constant LSGlobe.Matrix3.COLUMN0ROW0 : Number

列0,行0到Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN0ROW1 : Number

列0第1行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN0ROW2 : Number

列0第2行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN1ROW0 : Number

第1列第0行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN1ROW1 : Number

第1列第1行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN1ROW2 : Number

第1列第2行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN2ROW0 : Number

第2列第0行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN2ROW1 : Number

第2列第1行进入Matrix3的索引。

static constant LSGlobe.Matrix3.COLUMN2ROW2 : Number

第2列第2行进入Matrix3的索引。

static constant LSGlobe.Matrix3.IDENTITY : Matrix3

一个不变的Matrix3实例,初始化为单位矩阵。

static LSGlobe.Matrix3.packedLength : Number

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

static constant LSGlobe.Matrix3.ZERO : Matrix3

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

Methods

复制提供的Matrix3实例。
Name Type Description
result Matrix3 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的Matrix3实例。

equals ( right ) Boolean

将此矩阵与提供的矩阵进行逐项比较,然后返回如果相等,则为 true ,否则为 false
Name Type Description
right Matrix3 可选 右侧矩阵。
Returns:
真正 如果相等, 除此以外。

equalsEpsilon ( right , epsilon ) Boolean

将此矩阵与提供的矩阵进行逐项比较,然后返回 true (如果它们在提供的epsilon内),否则为 false
Name Type Default Description
right Matrix3 可选 右侧矩阵。
epsilon Number 0 可选 用于相等性测试的epsilon。
Returns:
真正 如果它们在提供的epsilon中, 除此以外。

toString () String

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

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

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

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

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

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

复制一个Matrix3实例。
Name Type Description
matrix Matrix3 要复制的矩阵。
result Matrix3 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的Matrix3实例。 (如果矩阵未定义,则返回未定义)

static LSGlobe.Matrix3.computeEigenDecomposition (matrix, result ) Object

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

返回对角矩阵和unit矩阵,使得: 矩阵= ary矩阵*对角矩阵*转置(unit矩阵)

沿对角矩阵对角线的值是特征值。列unit矩阵的是对应的特征向量。

Name Type Description
matrix Matrix3 分解为对角矩阵和unit矩阵的矩阵。应该是对称的。
result Object 可选 具有单一和对角线属性的对象,这些属性是将结果存储到其上的矩阵。
Returns:
具有unit和对角属性的对象,分别是are和对角矩阵。
Example:
var a = //... symetric matrix
var result = {
    unitary : new LSGlobe.Matrix3(),
    diagonal : new LSGlobe.Matrix3()
};
LSGlobe.Matrix3.computeEigenDecomposition(a, result);

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

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

static LSGlobe.Matrix3.determinant (matrix) Number

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

static LSGlobe.Matrix3.equals ( left , right ) Boolean

按组件比较提供的矩阵并返回如果相等,则为 true ,否则为 false
Name Type Description
left Matrix3 可选 第一个矩阵。
right Matrix3 可选 第二个矩阵。
Returns:
真正 如果左右相等 除此以外。

static LSGlobe.Matrix3.equalsEpsilon ( left , right , epsilon ) Boolean

按组件比较提供的矩阵并返回 true (如果它们在提供的epsilon内),否则为 false
Name Type Default Description
left Matrix3 可选 第一个矩阵。
right Matrix3 可选 第二个矩阵。
epsilon Number 0 可选 用于相等性测试的epsilon。
Returns:
真正 如果左右在提供的epsilon之内, 除此以外。

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

从数组中的9个连续元素创建Matrix3。
Name Type Default Description
array Array.<Number> 其9个连续元素对应于矩阵位置的数组。假定列为主要顺序。
startingIndex Number 0 可选 第一个元素的数组中的偏移量,它对应于矩阵中第一列第一行的位置。
result Matrix3 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的Matrix3实例。
Example:
// Create the 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 = LSGlobe.Matrix3.fromArray(v);

// Create same Matrix3 with using an offset into an array
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 = LSGlobe.Matrix3.fromArray(v2, 2);

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

从列优先顺序数组创建Matrix3实例。
Name Type Description
values Array.<Number> 列为主要顺序的数组。
result Matrix3 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix3实例。

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

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

static LSGlobe.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 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
此headingPitchRoll的3x3旋转矩阵。

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

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

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

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

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

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

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

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

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

从行优先顺序数组创建Matrix3实例。所得矩阵将按列优先顺序排列。
Name Type Description
values Array.<Number> 行优先顺序数组。
result Matrix3 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix3实例。

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

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

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

计算表示统一比例尺的Matrix3实例。
Name Type Description
scale Number 统一比例因子。
result Matrix3 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix3实例。
Example:
// Creates
//   [2.0, 0.0, 0.0]
//   [0.0, 2.0, 0.0]
//   [0.0, 0.0, 2.0]
var m = LSGlobe.Matrix3.fromUniformScale(2.0);

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

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

static LSGlobe.Matrix3.getElementIndex (row, column) Number

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

static LSGlobe.Matrix3.getMaximumScale (matrix) Number

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

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

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

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

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

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

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

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

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

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

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

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

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

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

计算矩阵乘以(非均匀)标度的乘积,就好像该标度是一个标度矩阵一样。
Name Type Description
matrix Matrix3 左侧的矩阵。
scale Cartesian3 比例尺在右侧。
result Matrix3 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// Instead of LSGlobe.Matrix3.multiply(m, LSGlobe.Matrix3.fromScale(scale), m);
LSGlobe.Matrix3.multiplyByScale(m, scale, m);
See:

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

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

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

创建所提供矩阵的求反副本。
Name Type Description
matrix Matrix3 求反的矩阵。
result Matrix3 将结果存储到的对象。
Returns:
修改后的结果参数。

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

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

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

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

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

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

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

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

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

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

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

计算提供的矩阵的转置。
Name Type Description
matrix Matrix3 要转置的矩阵。
result Matrix3 将结果存储到的对象。
Returns:
修改后的结果参数。

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

从压缩数组中检索实例。
Name Type Default Description
array Array.<Number> 压缩数组。
startingIndex Number 0 可选 要解压缩的元素的起始索引。
result Matrix3 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的Matrix3实例。