Matrix4

new LSGlobe.Matrix4 ( column0Row0 , column1Row0 , column2Row0 , column3Row0 , column0Row1 , column1Row1 , column2Row1 , column3Row1 , column0Row2 , column1Row2 , column2Row2 , column3Row2 , column0Row3 , column1Row3 , column2Row3 , column3Row3 )

一个4x4矩阵,可索引为列主序数组。构造函数参数按行顺序排列,以提高代码的可读性。
Name Type Default Description
column0Row0 Number 0.0 可选 列0,行0的值。
column1Row0 Number 0.0 可选 第1列第0行的值。
column2Row0 Number 0.0 可选 第2列第0行的值。
column3Row0 Number 0.0 可选 第3列第0行的值。
column0Row1 Number 0.0 可选 列0,第1行的值。
column1Row1 Number 0.0 可选 第1列第1行的值。
column2Row1 Number 0.0 可选 第2列第1行的值。
column3Row1 Number 0.0 可选 第3列第1行的值。
column0Row2 Number 0.0 可选 列0,第2行的值。
column1Row2 Number 0.0 可选 第1列第2行的值。
column2Row2 Number 0.0 可选 第2列第2行的值。
column3Row2 Number 0.0 可选 第3列第2行的值。
column0Row3 Number 0.0 可选 0列第3行的值。
column1Row3 Number 0.0 可选 第1列第3行的值。
column2Row3 Number 0.0 可选 第2列第3行的值。
column3Row3 Number 0.0 可选 第3列第3行的值。
See:

Members

获取集合中的项目数。

static constant LSGlobe.Matrix4.COLUMN0ROW0 : Number

列0,行0的Matrix4索引。

static constant LSGlobe.Matrix4.COLUMN0ROW1 : Number

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

static constant LSGlobe.Matrix4.COLUMN0ROW2 : Number

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

static constant LSGlobe.Matrix4.COLUMN0ROW3 : Number

Matrix4的索引,列0,第3行。

static constant LSGlobe.Matrix4.COLUMN1ROW0 : Number

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

static constant LSGlobe.Matrix4.COLUMN1ROW1 : Number

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

static constant LSGlobe.Matrix4.COLUMN1ROW2 : Number

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

static constant LSGlobe.Matrix4.COLUMN1ROW3 : Number

第1列第3行进入Matrix4的索引。

static constant LSGlobe.Matrix4.COLUMN2ROW0 : Number

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

static constant LSGlobe.Matrix4.COLUMN2ROW1 : Number

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

static constant LSGlobe.Matrix4.COLUMN2ROW2 : Number

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

static constant LSGlobe.Matrix4.COLUMN2ROW3 : Number

第2列第3行进入Matrix4的索引。

static constant LSGlobe.Matrix4.COLUMN3ROW0 : Number

第3列第0行进入Matrix4的索引。

static constant LSGlobe.Matrix4.COLUMN3ROW1 : Number

第3列第1行进入Matrix4的索引。

static constant LSGlobe.Matrix4.COLUMN3ROW2 : Number

第3列第2行进入Matrix4的索引。

static constant LSGlobe.Matrix4.COLUMN3ROW3 : Number

第3列第3行进入Matrix4的索引。

static constant LSGlobe.Matrix4.IDENTITY : Matrix4

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

static LSGlobe.Matrix4.packedLength : Number

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

static constant LSGlobe.Matrix4.ZERO : Matrix4

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

Methods

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

equals ( right ) Boolean

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

equalsEpsilon ( right , epsilon ) Boolean

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

toString () String

计算代表此Matrix的字符串,每一行为在单独的行上,格式为'(column0,column1,column2,column3)'。
Returns:
一个字符串,表示提供的Matrix,每行位于单独的一行上,格式为'(column0,column1,column2,column3)'。

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

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

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

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

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

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

static LSGlobe.Matrix4.computeInfinitePerspectiveOffCenter (left, right, bottom, top, near, result) Matrix4

计算表示无限偏心透视转换的Matrix4实例。
Name Type Description
left Number 可以看到的相机左侧的米数。
right Number 可以看到的相机右侧的米数。
bottom Number 可以看到的相机下方的米数。
top Number 可以看到的相机上方的米数。
near Number 到附近飞机的距离,以米为单位。
result Matrix4 结果将存储在其中的对象。
Returns:
修改后的结果参数。

static LSGlobe.Matrix4.computeOrthographicOffCenter (left, right, bottom, top, near, far, result) Matrix4

计算表示正交变换矩阵的Matrix4实例。
Name Type Description
left Number 可以看到的相机左侧的米数。
right Number 可以看到的相机右侧的米数。
bottom Number 可以看到的相机下方的米数。
top Number 可以看到的相机上方的米数。
near Number 到附近飞机的距离,以米为单位。
far Number 到远平面的距离,以米为单位。
result Matrix4 结果将存储在其中的对象。
Returns:
修改后的结果参数。

static LSGlobe.Matrix4.computePerspectiveFieldOfView (fovY, aspectRatio, near, far, result) Matrix4

计算表示透视变换矩阵的Matrix4实例。
Name Type Description
fovY Number 沿Y轴的弧度视场。
aspectRatio Number 长宽比。
near Number 到附近飞机的距离,以米为单位。
far Number 到远平面的距离,以米为单位。
result Matrix4 结果将存储在其中的对象。
Returns:
修改后的结果参数。
Throws:

static LSGlobe.Matrix4.computePerspectiveOffCenter (left, right, bottom, top, near, far, result) Matrix4

计算表示偏心透视转换的Matrix4实例。
Name Type Description
left Number 可以看到的相机左侧的米数。
right Number 可以看到的相机右侧的米数。
bottom Number 可以看到的相机下方的米数。
top Number 可以看到的相机上方的米数。
near Number 到附近飞机的距离,以米为单位。
far Number 到远平面的距离,以米为单位。
result Matrix4 结果将存储在其中的对象。
Returns:
修改后的结果参数。

static LSGlobe.Matrix4.computeView (position, direction, up, right, result) Matrix4

计算从世界空间转换为视图空间的Matrix4实例。
Name Type Description
position Cartesian3 相机的位置。
direction Cartesian3 前进的方向。
up Cartesian3 向上的方向。
right Cartesian3 正确的方向。
result Matrix4 结果将存储在其中的对象。
Returns:
修改后的结果参数。

static LSGlobe.Matrix4.computeViewportTransformation ( viewport , nearDepthRange , farDepthRange , result ) Matrix4

计算从规范化的设备坐标转换为窗口坐标的Matrix4实例。
Name Type Default Description
viewport Object { x : 0.0, y : 0.0, width : 0.0, height : 0.0 } 可选 视口的角如示例1所示。
nearDepthRange Number 0.0 可选 窗口坐标中的近平面距离。
farDepthRange Number 1.0 可选 窗口坐标中的远平面距离。
result Matrix4 可选 结果将存储在其中的对象。
Returns:
修改后的结果参数。
Example:
// Create viewport transformation using an explicit viewport and depth range.
var m = LSGlobe.Matrix4.computeViewportTransformation({
    x : 0.0,
    y : 0.0,
    width : 1024.0,
    height : 768.0
}, 0.0, 1.0, new LSGlobe.Matrix4());

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

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

// a = [10.0, 14.0, 18.0, 22.0]
//     [11.0, 15.0, 19.0, 23.0]
//     [12.0, 16.0, 20.0, 24.0]
//     [13.0, 17.0, 21.0, 25.0]

// b = [10.0, 14.0, 18.0, 22.0]
//     [11.0, 15.0, 19.0, 23.0]
//     [12.0, 16.0, 20.0, 24.0]
//     [13.0, 17.0, 21.0, 25.0]

if(LSGlobe.Matrix4.equals(a,b)) {
     console.log("Both matrices are equal");
} else {
     console.log("They are not equal");
}

//Prints "Both matrices are equal" on the console

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

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

// a = [10.5, 14.5, 18.5, 22.5]
//     [11.5, 15.5, 19.5, 23.5]
//     [12.5, 16.5, 20.5, 24.5]
//     [13.5, 17.5, 21.5, 25.5]

// b = [10.0, 14.0, 18.0, 22.0]
//     [11.0, 15.0, 19.0, 23.0]
//     [12.0, 16.0, 20.0, 24.0]
//     [13.0, 17.0, 21.0, 25.0]

if(LSGlobe.Matrix4.equalsEpsilon(a,b,0.1)){
     console.log("Difference between both the matrices is less than 0.1");
} else {
     console.log("Difference between both the matrices is not less than 0.1");
}

//Prints "Difference between both the matrices is not less than 0.1" on the console

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

从数组中的16个连续元素创建Matrix4。
Name Type Default Description
array Array.<Number> 其16个连续元素对应于矩阵位置的数组。假定列为主要顺序。
startingIndex Number 0 可选 第一个元素的数组中的偏移量,它对应于矩阵中第一列第一行的位置。
result Matrix4 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的Matrix4实例。
Example:
// Create the Matrix4:
// [1.0, 2.0, 3.0, 4.0]
// [1.0, 2.0, 3.0, 4.0]
// [1.0, 2.0, 3.0, 4.0]
// [1.0, 2.0, 3.0, 4.0]

var v = [1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
var m = LSGlobe.Matrix4.fromArray(v);

// Create same Matrix4 with using an offset into an array
var v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
var m2 = LSGlobe.Matrix4.fromArray(v2, 2);

static LSGlobe.Matrix4.fromCamera (camera, result ) Matrix4

从Camera计算Matrix4实例。
Name Type Description
camera Camera 要使用的相机。
result Matrix4 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix4实例。

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

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

static LSGlobe.Matrix4.fromRotationTranslation (rotation, translation , result ) Matrix4

从Matrix3计算代表旋转的Matrix4实例和代表翻译的Cartesian3。
Name Type Default Description
rotation Matrix3 矩阵的左上角代表旋转。
translation Cartesian3 Cartesian3.ZERO 可选 矩阵的右上角代表翻译。
result Matrix4 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix4实例。

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

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

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

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

static LSGlobe.Matrix4.fromTranslation (translation, result ) Matrix4

从笛卡尔3创建一个表示转换的Matrix4实例。
Name Type Description
translation Cartesian3 矩阵的右上角代表翻译。
result Matrix4 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix4实例。
See:

static LSGlobe.Matrix4.fromTranslationQuaternionRotationScale (translation, rotation, scale, result ) Matrix4

根据平移,旋转和缩放(TRS)计算Matrix4实例用四元数表示旋转。
Name Type Description
translation Cartesian3 翻译转换。
rotation Quaternion 旋转变换。
scale Cartesian3 非均匀尺度变换。
result Matrix4 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix4实例。
Example:
var result = LSGlobe.Matrix4.fromTranslationQuaternionRotationScale(
  new LSGlobe.Cartesian3(1.0, 2.0, 3.0), // translation
  LSGlobe.Quaternion.IDENTITY,           // rotation
  new LSGlobe.Cartesian3(7.0, 8.0, 9.0), // scale
  result);

static LSGlobe.Matrix4.fromTranslationRotationScale (translationRotationScale, result ) Matrix4

TranslationRotationScale 实例创建Matrix4实例。
Name Type Description
translationRotationScale TranslationRotationScale 实例。
result Matrix4 可选 存储结果的对象,如果未定义,将创建一个新实例。
Returns:
修改后的结果参数,如果未提供,则为新的Matrix4实例。

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

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

static LSGlobe.Matrix4.getColumn (matrix, index, result) Cartesian4

在提供的索引处作为Cartesian4实例检索矩阵列的副本。
Name Type Description
matrix Matrix4 使用的矩阵。
index Number 要检索的列的从零开始的索引。
result Cartesian4 将结果存储到的对象。
Returns:
修改后的结果参数。
Throws:
Examples:
//returns a Cartesian4 instance with values from the specified column
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

//Example 1: Creates an instance of Cartesian
var a = LSGlobe.Matrix4.getColumn(m, 2, new LSGlobe.Cartesian4());
//Example 2: Sets values for Cartesian instance
var a = new LSGlobe.Cartesian4();
LSGlobe.Matrix4.getColumn(m, 2, a);

// a.x = 12.0; a.y = 16.0; a.z = 20.0; a.w = 24.0;

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

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

static LSGlobe.Matrix4.getMatrix3 (matrix, result) Matrix3

假设矩阵是仿射变换矩阵,则获取所提供矩阵的左上3x3旋转矩阵。
Name Type Description
matrix Matrix4 使用的矩阵。
result Matrix3 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// returns a Matrix3 instance from a Matrix4 instance

// m = [10.0, 14.0, 18.0, 22.0]
//     [11.0, 15.0, 19.0, 23.0]
//     [12.0, 16.0, 20.0, 24.0]
//     [13.0, 17.0, 21.0, 25.0]

var b = new LSGlobe.Matrix3();
LSGlobe.Matrix4.getMatrix3(m,b);

// b = [10.0, 14.0, 18.0]
//     [11.0, 15.0, 19.0]
//     [12.0, 16.0, 20.0]

static LSGlobe.Matrix4.getMaximumScale (matrix) Number

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

static LSGlobe.Matrix4.getRow (matrix, index, result) Cartesian4

在提供的索引处作为Cartesian4实例检索矩阵行的副本。
Name Type Description
matrix Matrix4 使用的矩阵。
index Number 要检索的行的从零开始的索引。
result Cartesian4 将结果存储到的对象。
Returns:
修改后的结果参数。
Throws:
Examples:
//returns a Cartesian4 instance with values from the specified column
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

//Example 1: Returns an instance of Cartesian
var a = LSGlobe.Matrix4.getRow(m, 2, new LSGlobe.Cartesian4());
//Example 2: Sets values for a Cartesian instance
var a = new LSGlobe.Cartesian4();
LSGlobe.Matrix4.getRow(m, 2, a);

// a.x = 18.0; a.y = 19.0; a.z = 20.0; a.w = 21.0;

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

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

static LSGlobe.Matrix4.getTranslation (matrix, result) Cartesian3

假设矩阵是仿射变换矩阵,则获取提供的矩阵的平移部分。
Name Type Description
matrix Matrix4 使用的矩阵。
result Cartesian3 将结果存储到的对象。
Returns:
修改后的结果参数。

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

使用Cramers规则计算所提供矩阵的逆。如果行列式为零,则矩阵无法求逆,并引发异常。如果矩阵是仿射变换矩阵,则效率更高使用 Matrix4.inverseTransformation 将其反转。
Name Type Description
matrix Matrix4 要求逆的矩阵。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Throws:

static LSGlobe.Matrix4.inverseTransformation (matrix, result) Matrix4

假设所提供的矩阵是仿射变换矩阵,其中左上3x3元素是旋转矩阵,第四个元素的前三个元素专栏是翻译。底行假定为[0,0,0,1]。矩阵未验证为正确形式。此方法比计算一般4x4的逆速度更快使用 Matrix4.inverse 的矩阵。
Name Type Description
matrix Matrix4 要求逆的矩阵。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。

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

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

static LSGlobe.Matrix4.multiplyByMatrix3 (matrix, rotation, result) Matrix4

乘以一个转换矩阵(底行为 [0.0,0.0,0.0,1.0] )由3x3旋转矩阵组成。这是一个优化对于 Matrix4.multiply(m,Matrix4.fromRotationTranslation(rotation),m); 而言,分配和运算量较少。
Name Type Description
matrix Matrix4 左侧的矩阵。
rotation Matrix3 右侧的3x3旋转矩阵。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// Instead of LSGlobe.Matrix4.multiply(m, LSGlobe.Matrix4.fromRotationTranslation(rotation), m);
LSGlobe.Matrix4.multiplyByMatrix3(m, rotation, m);

static LSGlobe.Matrix4.multiplyByPoint (matrix, cartesian, result) Cartesian3

计算矩阵与 Cartesian3 的乘积。这等效于调用 Matrix4.multiplyByVector Cartesian4 w 组件为1,但返回 Cartesian3 而不是 Cartesian4
Name Type Description
matrix Matrix4 矩阵。
cartesian Cartesian3 重点。
result Cartesian3 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
var p = new LSGlobe.Cartesian3(1.0, 2.0, 3.0);
var result = LSGlobe.Matrix4.multiplyByPoint(matrix, p, new LSGlobe.Cartesian3());

static LSGlobe.Matrix4.multiplyByPointAsVector (matrix, cartesian, result) Cartesian3

计算矩阵与 Cartesian3 的乘积。这等效于调用 Matrix4.multiplyByVector Cartesian4 w 分量为零。
Name Type Description
matrix Matrix4 矩阵。
cartesian Cartesian3 重点。
result Cartesian3 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
var p = new LSGlobe.Cartesian3(1.0, 2.0, 3.0);
var result = LSGlobe.Matrix4.multiplyByPointAsVector(matrix, p, new LSGlobe.Cartesian3());
// A shortcut for
//   Cartesian3 p = ...
//   LSGlobe.Matrix4.multiplyByVector(matrix, new LSGlobe.Cartesian4(p.x, p.y, p.z, 0.0), result);

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

计算矩阵与标量的乘积。
Name Type Description
matrix Matrix4 矩阵。
scalar Number 要乘以的数字。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
//create a Matrix4 instance which is a scaled version of the supplied Matrix4
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

var a = LSGlobe.Matrix4.multiplyByScalar(m, -2, new LSGlobe.Matrix4());

// m remains the same
// a = [-20.0, -22.0, -24.0, -26.0]
//     [-28.0, -30.0, -32.0, -34.0]
//     [-36.0, -38.0, -40.0, -42.0]
//     [-44.0, -46.0, -48.0, -50.0]

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

乘以仿射变换矩阵(底行为 [0.0,0.0,0.0,1.0] )通过隐式非均匀比例矩阵。这是一个优化对于 Matrix4.multiply(m,Matrix4.fromUniformScale(scale),m); ,其中 m 必须是仿射矩阵。此函数执行较少的分配和算术运算。
Name Type Description
matrix Matrix4 左侧的仿射矩阵。
scale Cartesian3 比例尺在右侧。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// Instead of LSGlobe.Matrix4.multiply(m, LSGlobe.Matrix4.fromScale(scale), m);
LSGlobe.Matrix4.multiplyByScale(m, scale, m);
See:

static LSGlobe.Matrix4.multiplyByTranslation (matrix, translation, result) Matrix4

乘以一个转换矩阵(底行为 [0.0,0.0,0.0,1.0] )由 Cartesian3 定义的隐式转换矩阵。这是一个优化对于 Matrix4.multiply(m,Matrix4.fromTranslation(position),m); 而言,分配和运算量较少。
Name Type Description
matrix Matrix4 左侧的矩阵。
translation Cartesian3 翻译在右侧。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// Instead of LSGlobe.Matrix4.multiply(m, LSGlobe.Matrix4.fromTranslation(position), m);
LSGlobe.Matrix4.multiplyByTranslation(m, position, m);

static LSGlobe.Matrix4.multiplyByUniformScale (matrix, scale, result) Matrix4

乘以仿射变换矩阵(底行为 [0.0,0.0,0.0,1.0] )通过隐式均匀比例矩阵。这是一个优化对于 Matrix4.multiply(m,Matrix4.fromUniformScale(scale),m); ,其中 m 必须是仿射矩阵。此函数执行较少的分配和算术运算。
Name Type Description
matrix Matrix4 左侧的仿射矩阵。
scale Number 右边的统一比例尺。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// Instead of LSGlobe.Matrix4.multiply(m, LSGlobe.Matrix4.fromUniformScale(scale), m);
LSGlobe.Matrix4.multiplyByUniformScale(m, scale, m);
See:

static LSGlobe.Matrix4.multiplyByVector (matrix, cartesian, result) Cartesian4

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

static LSGlobe.Matrix4.multiplyTransformation (left, right, result) Matrix4

假设两个矩阵的乘积为2,则计算两个矩阵的乘积仿射变换矩阵,其中左上3x3元素是旋转矩阵,第四个元素的前三个元素专栏是翻译。底行假定为[0,0,0,1]。矩阵未验证为正确形式。这种方法比计算一般4x4产品的速度更快使用 Matrix4.multiply 的矩阵。
Name Type Description
left Matrix4 第一个矩阵。
right Matrix4 第二个矩阵。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
var m1 = new LSGlobe.Matrix4(1.0, 6.0, 7.0, 0.0, 2.0, 5.0, 8.0, 0.0, 3.0, 4.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0);
var m2 = LSGlobe.Transforms.eastNorthUpToFixedFrame(new LSGlobe.Cartesian3(1.0, 1.0, 1.0));
var m3 = LSGlobe.Matrix4.multiplyTransformation(m1, m2, new LSGlobe.Matrix4());

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

计算所提供矩阵的求反副本。
Name Type Description
matrix Matrix4 求反的矩阵。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
//create a new Matrix4 instance which is a negation of a Matrix4
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

var a = LSGlobe.Matrix4.negate(m, new LSGlobe.Matrix4());

// m remains the same
// a = [-10.0, -11.0, -12.0, -13.0]
//     [-14.0, -15.0, -16.0, -17.0]
//     [-18.0, -19.0, -20.0, -21.0]
//     [-22.0, -23.0, -24.0, -25.0]

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

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

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

计算一个新矩阵,用提供的Cartesian4实例替换提供的矩阵中的指定列。
Name Type Description
matrix Matrix4 使用的矩阵。
index Number 要设置的列的从零开始的索引。
cartesian Cartesian4 直角坐标系,其值将分配给指定的列。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Throws:
Example:
//creates a new Matrix4 instance with new column values from the Cartesian4 instance
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

var a = LSGlobe.Matrix4.setColumn(m, 2, new LSGlobe.Cartesian4(99.0, 98.0, 97.0, 96.0), new LSGlobe.Matrix4());

// m remains the same
// a = [10.0, 11.0, 99.0, 13.0]
//     [14.0, 15.0, 98.0, 17.0]
//     [18.0, 19.0, 97.0, 21.0]
//     [22.0, 23.0, 96.0, 25.0]

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

计算一个新矩阵,用提供的Cartesian4实例替换提供的矩阵中的指定行。
Name Type Description
matrix Matrix4 使用的矩阵。
index Number 要设置的行的从零开始的索引。
cartesian Cartesian4 直角坐标系,其值将分配给指定的行。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Throws:
Example:
//create a new Matrix4 instance with new row values from the Cartesian4 instance
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

var a = LSGlobe.Matrix4.setRow(m, 2, new LSGlobe.Cartesian4(99.0, 98.0, 97.0, 96.0), new LSGlobe.Matrix4());

// m remains the same
// a = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [99.0, 98.0, 97.0, 96.0]
//     [22.0, 23.0, 24.0, 25.0]

static LSGlobe.Matrix4.setScale (matrix, scale, result) Matrix4

计算一个新矩阵,用提供的比例尺替换比例尺。假设矩阵是仿射变换
Name Type Description
matrix Matrix4 使用的矩阵。
scale Cartesian3 该比例尺替代了所提供矩阵的比例尺。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Matrix4.setTranslation (matrix, translation, result) Matrix4

计算一个新矩阵,该矩阵替换提供的最右边一列中的转换具有提供的翻译的矩阵。假设矩阵是仿射变换
Name Type Description
matrix Matrix4 使用的矩阵。
translation Cartesian3 该翻译将替换提供的矩阵的翻译。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。

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

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

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

根据提供的Matrix4实例计算一个数组。该数组将按列优先顺序排列。
Name Type Description
matrix Matrix4 要使用的矩阵。
result Array.<Number> 可选 将结果存储到的数组。
Returns:
修改后的Array参数或新的Array实例(如果未提供)。
Example:
//create an array from an instance of Matrix4
// m = [10.0, 14.0, 18.0, 22.0]
//     [11.0, 15.0, 19.0, 23.0]
//     [12.0, 16.0, 20.0, 24.0]
//     [13.0, 17.0, 21.0, 25.0]
var a = LSGlobe.Matrix4.toArray(m);

// m remains the same
//creates a = [10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0]

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

计算提供的矩阵的转置。
Name Type Description
matrix Matrix4 要转置的矩阵。
result Matrix4 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
//returns transpose of a Matrix4
// m = [10.0, 11.0, 12.0, 13.0]
//     [14.0, 15.0, 16.0, 17.0]
//     [18.0, 19.0, 20.0, 21.0]
//     [22.0, 23.0, 24.0, 25.0]

var a = LSGlobe.Matrix4.transpose(m, new LSGlobe.Matrix4());

// m remains the same
// a = [10.0, 14.0, 18.0, 22.0]
//     [11.0, 15.0, 19.0, 23.0]
//     [12.0, 16.0, 20.0, 24.0]
//     [13.0, 17.0, 21.0, 25.0]

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

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