一个 4x4 矩阵,可作为列主次数组索引。为便于代码阅读,构造函数参数按行主序排列。
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 行的值。 |
column3Row0 |
Number |
0.0
|
optional 第 3 列第 0 行的值。 |
column0Row1 |
Number |
0.0
|
optional 第 0 列第 1 行的值。 |
column1Row1 |
Number |
0.0
|
optional 第 1 列第 1 行的值。 |
column2Row1 |
Number |
0.0
|
optional 第 2 列第 1 行的值。 |
column3Row1 |
Number |
0.0
|
optional 第 3 列第 1 行的值。 |
column0Row2 |
Number |
0.0
|
optional 第 0 列第 2 行的值。 |
column1Row2 |
Number |
0.0
|
optional 第 1 列第 2 行的值。 |
column2Row2 |
Number |
0.0
|
optional 第 2 列第 2 行的值。 |
column3Row2 |
Number |
0.0
|
optional 第 3 列第 2 行的值。 |
column0Row3 |
Number |
0.0
|
optional 第 0 列第 3 行的值。 |
column1Row3 |
Number |
0.0
|
optional 第 1 列第 3 行的值。 |
column2Row3 |
Number |
0.0
|
optional 第 2 列第 3 行的值。 |
column3Row3 |
Number |
0.0
|
optional 第 3 列第 3 行的值。 |
- Matrix4.fromColumnMajorArray
- Matrix4.fromRowMajorArray
- Matrix4.fromRotationTranslation
- Matrix4.fromTranslationRotationScale
- Matrix4.fromTranslationQuaternionRotationScale
- Matrix4.fromTranslation
- Matrix4.fromScale
- Matrix4.fromUniformScale
- Matrix4.fromCamera
- Matrix4.computePerspectiveFieldOfView
- Matrix4.computeOrthographicOffCenter
- Matrix4.computePerspectiveOffCenter
- Matrix4.computeInfinitePerspectiveOffCenter
- Matrix4.computeViewportTransformation
- Matrix4.computeView
- Matrix2
- Matrix3
- Packable
See:
Members
-
用于将对象打包到数组中的元素数。
-
Matrix4 中第 0 列第 0 行的索引。
-
The index into Matrix4 for column 0, row 1.
-
Matrix4 中第 0 列第 1 行的索引。
-
Matrix4 中第 0 列第 3 行的索引。
-
Matrix4 中第 1 列第 0 行的索引。
-
第 1 列第 1 行的 Matrix4 索引。
-
第 1 列第 2 行的 Matrix4 索引。
-
第 1 列第 3 行的 Matrix4 索引。
-
Matrix4 中第 2 列第 0 行的索引。
-
第 2 列第 1 行的 Matrix4 索引。
-
第 2 列第 2 行的 Matrix4 索引。
-
第 2 列第 3 行的 Matrix4 索引。
-
The index into Matrix4 for column 3, row 0.
-
Matrix4 中第 3 列第 0 行的索引。
-
第 3 列第 2 行的 Matrix4 索引。
-
第 3 列第 3 行的 Matrix4 索引。
-
staticconstantSuperMap3D.Matrix4.IDENTITY : Matrix4
-
初始化为单位矩阵的不可变 Matrix4 实例。
-
用于将对象打包到数组中的元素数。
-
staticconstantSuperMap3D.Matrix4.ZERO : Matrix4
-
初始化为零矩阵的不可变 Matrix4 实例。
Methods
-
clone(result) → Matrix4
-
复制提供的 Matrix4 实例。
Name Type Description result
Matrix4 optional 存储结果的对象。 Returns:
修改后的结果参数或新的 Matrix4 实例(如果未提供)。 -
将此矩阵与提供的矩阵进行比较,如果它们相等则返回 true ,否则返回 false 。
Name Type Description right
Matrix4 optional 右手矩阵。 Returns:
如果它们相等,则为 true ,否则为 false 。 -
将此矩阵与提供的矩阵按分量进行比较,如果它们在提供的 epsilon 内,则返回 true ,否则返回 false 。
Name Type Description right
Matrix4 optional 右手矩阵。 epsilon
Number 用于相等性测试的 epsilon。 Returns:
如果它们在提供的 epsilon 内,则为 true ,否则为 false 。 -
计算表示此矩阵的字符串,每行位于单独的行上,格式为'(column0,column1,column2,column3)'。
Returns:
表示提供的矩阵的字符串,每行位于单独的行上,格式为'(column0,column1,column2,column3)'。 -
staticSuperMap3D.Matrix4.abs(matrix, result) → Matrix4
-
计算一个矩阵,其中包含所提供矩阵元素的绝对(无符号)值。
Name Type Description matrix
Matrix4 带有符号元素的矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.add(left, right, result) → Matrix4
-
计算两个矩阵的和。
Name Type Description left
Matrix4 第一个矩阵。 right
Matrix4 第二个矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.clone(matrix, result) → Matrix4
-
复制一个 Matrix4 实例。
Name Type Description matrix
Matrix4 要复制的矩阵。 result
Matrix4 optional 存储结果的对象。 Returns:
修改后的结果参数或新的 Matrix4 实例(如果未提供)。如果矩阵未定义,则返回未定义 -
staticSuperMap3D.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:
修改后的结果参数。 -
staticSuperMap3D.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:
修改后的结果参数。 -
staticSuperMap3D.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:
-
DeveloperError : fovY 必须在 (0, PI] 中。
-
DeveloperError : aspectRatio 必须大于零。
-
DeveloperError : near 必须大于零。
-
DeveloperError : far 必须大于零。
-
-
staticSuperMap3D.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:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.computeView(position, direction, up, right, result) → Matrix4
-
计算从地理空间转换到视图空间的 Matrix4 实例。
Name Type Description position
Cartesian3 相机的位置。 direction
Cartesian3 前进的方向。 up
Cartesian3 向上的方向。 right
Cartesian3 正确的方向。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.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 }
optional 视口的角,如示例 1 所示。 nearDepthRange
Number 0.0
optional 窗口坐标中的近平面距离。 farDepthRange
Number 1.0
optional 窗口坐标中的远平面距离。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。Example:
// Create viewport transformation using an explicit viewport and depth range. var m = SuperMap3D.Matrix4.computeViewportTransformation({ x : 0.0, y : 0.0, width : 1024.0, height : 768.0 }, 0.0, 1.0, new SuperMap3D.Matrix4());
-
逐个比较提供的矩阵,如果相等则返回 true ,否则返回 false 。
Name Type Description left
Matrix4 optional 第一个矩阵。 right
Matrix4 optional 第二个矩阵。 Returns:
如果相等,则为 true ,否则为 false 。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(SuperMap3D.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
-
逐个比较提供的矩阵,如果它们在提供的 epsilon 内,则返回 true ,否则返回 false 。
Name Type Description left
Matrix4 optional 第一个矩阵。 right
Matrix4 optional 第二个矩阵。 epsilon
Number 用于相等性测试的 epsilon Returns:
如果在提供的 epsilon 内,则为 true,否则为 false 。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(SuperMap3D.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
-
staticSuperMap3D.Matrix4.fromArray(array, startingIndex, result) → Matrix4
-
用数组中的 16 个连续元素创建 Matrix4。
Name Type Default Description array
Array.<Number> 16 个连续元素对应矩阵位置的数组。假定列优先顺序。 startingIndex
Number 0
optional 第一个元素在数组中的偏移量,对应于矩阵中第一列第一行的位置。 result
Matrix4 optional 存储结果的对象。 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 = SuperMap3D.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 = SuperMap3D.Matrix4.fromArray(v2, 2);
-
staticSuperMap3D.Matrix4.fromCamera(camera, result) → Matrix4
-
从相机计算 Matrix4 实例。
Name Type Description camera
Camera 要使用的相机。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,如果未提供,则为新的 Matrix4 实例。 -
staticSuperMap3D.Matrix4.fromColumnMajorArray(values, result) → Matrix4
-
从列主序数组计算 Matrix4 实例。
Name Type Description values
Array.<Number> 列主序数组。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,如果未提供,则为新的 Matrix4 实例。 -
staticSuperMap3D.Matrix4.fromRotationTranslation(rotation, translation, result) → Matrix4
-
从表示旋转的 Matrix3 和表示平移的 Cartesian3 计算 Matrix4 实例。
Name Type Default Description rotation
Matrix3 表示旋转的矩阵的左上部分。 translation
Cartesian3 Cartesian3.ZERO
optional 表示平移的矩阵的右上部分。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,如果未提供,则为新的 Matrix4 实例。 -
staticSuperMap3D.Matrix4.fromRowMajorArray(values, result) → Matrix4
-
从行主要顺序数组计算 Matrix4 实例。生成的矩阵将按列优先顺序排列。
Name Type Description values
Array.<Number> 行主序数组。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,或者一个新的 Matrix4 实例(如果没有提供)。 -
staticSuperMap3D.Matrix4.fromScale(scale, result) → Matrix4
-
计算一个表示非均匀比例的 Matrix4 实例。
Name Type Description scale
Cartesian3 x、y 和 z 比例因子。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 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 = SuperMap3D.Matrix4.fromScale(new SuperMap3D.Cartesian3(7.0, 8.0, 9.0));
-
staticSuperMap3D.Matrix4.fromTranslation(translation, result) → Matrix4
-
从表示平移的Cartesian3 中创建一个 Matrix4 实例。
Name Type Description translation
Cartesian3 矩阵右上部分代表平移。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,或者一个新的 Matrix4 实例(如果没有提供)。 -
staticSuperMap3D.Matrix4.fromTranslationQuaternionRotationScale(translation, rotation, scale, result) → Matrix4
-
从平移、旋转和缩放 (TRS) 表示中计算 Matrix4 实例,旋转表示为四元数。
Name Type Description translation
Cartesian3 转换。 rotation
Quaternion 旋转变换。 scale
Cartesian3 非均匀比例变换。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,或者一个新的 Matrix4 实例(如果没有提供)。Example:
var result = SuperMap3D.Matrix4.fromTranslationQuaternionRotationScale( new SuperMap3D.Cartesian3(1.0, 2.0, 3.0), // translation SuperMap3D.Quaternion.IDENTITY, // rotation new SuperMap3D.Cartesian3(7.0, 8.0, 9.0), // scale result);
-
staticSuperMap3D.Matrix4.fromTranslationRotationScale(实例。, result) → Matrix4
-
从
TranslationRotationScale
创建一个 Matrix4 实例。Name Type Description 实例。
TranslationRotationScale result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 Returns:
修改后的结果参数,如果未提供,则为新的 Matrix4 实例。 -
staticSuperMap3D.Matrix4.fromUniformScale(scale, result) → Matrix4
-
计算一个表示统一比例的 Matrix4 实例。
Name Type Description scale
Number 统一比例因子。 result
Matrix4 optional 存储结果的对象,如果未定义,将创建一个新实例。 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 = SuperMap3D.Matrix4.fromUniformScale(2.0);
-
staticSuperMap3D.Matrix4.getColumn(matrix, index, result) → Cartesian4
-
在提供的索引处检索矩阵列的副本作为 Cartesian4 实例。
Name Type Description matrix
Matrix4 要使用的矩阵 index
Number 要检索的列的从零开始的索引。 result
Cartesian4 存储结果的对象。 Returns:
修改后的结果参数。Throws:
-
DeveloperError : 索引必须为 0、1、2 或 3。
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 = SuperMap3D.Matrix4.getColumn(m, 2, new SuperMap3D.Cartesian4());
//Example 2: Sets values for Cartesian instance var a = new SuperMap3D.Cartesian4(); SuperMap3D.Matrix4.getColumn(m, 2, a); // a.x = 12.0; a.y = 16.0; a.z = 20.0; a.w = 24.0;
-
-
计算提供的行和列的元素的数组索引。
Name Type Description row
Number 行的零基索引。 column
Number 列的零基索引。 Returns:
所提供行和列上元素的索引。Throws:
-
DeveloperError : 行必须为 0、1、2 或 3。
-
DeveloperError : 列必须为 0、1、2 或 3。
Example:
var myMatrix = new SuperMap3D.Matrix4(); var column1Row0Index = SuperMap3D.Matrix4.getElementIndex(1, 0); var column1Row0 = myMatrix[column1Row0Index]; myMatrix[column1Row0Index] = 10.0;
-
-
假设矩阵是一个仿射变换,计算最大尺度。最大尺度是左上角3x3矩阵中列向量的最大长度。3x3矩阵的最大长度。
Name Type Description matrix
Matrix4 矩阵。 Returns:
最大比例。 -
staticSuperMap3D.Matrix4.getRotation(matrix, result) → Matrix3
-
假设矩阵是仿射变换,提取旋转矩阵。
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 SuperMap3D.Matrix3(); SuperMap3D.Matrix4.getRotation(m,b); // b = [10.0, 14.0, 18.0] // [11.0, 15.0, 19.0] // [12.0, 16.0, 20.0]
-
staticSuperMap3D.Matrix4.getRow(matrix, index, result) → Cartesian4
-
在提供的索引处检索矩阵行的副本作为 Cartesian4 实例。
Name Type Description matrix
Matrix4 要使用的矩阵。 index
Number 要检索的行的从零开始的索引。 result
Cartesian4 存储结果的对象。 Returns:
修改后的结果参数。Throws:
-
DeveloperError : 索引必须为 0、1、2 或 3。
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 = SuperMap3D.Matrix4.getRow(m, 2, new SuperMap3D.Cartesian4());
//Example 2: Sets values for a Cartesian instance var a = new SuperMap3D.Cartesian4(); SuperMap3D.Matrix4.getRow(m, 2, a); // a.x = 18.0; a.y = 19.0; a.z = 20.0; a.w = 21.0;
-
-
staticSuperMap3D.Matrix4.getScale(matrix, result) → Cartesian3
-
假设矩阵是仿射变换,提取非均匀比例。
Name Type Description matrix
Matrix4 矩阵。 result
Cartesian3 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.getTranslation(matrix, result) → Cartesian3
-
假设矩阵是仿射变换矩阵,获取所提供矩阵的平移部分。
Name Type Description matrix
Matrix4 要使用的矩阵。 result
Cartesian3 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.inverse(matrix, result) → Matrix4
-
使用 Cramers 规则计算提供的矩阵的逆矩阵。如果行列式为零,则不能反转矩阵,并抛出异常。 如果矩阵是适当的刚性变换,则使用
Matrix4.inverseTransformation
进行反转会更有效。Name Type Description matrix
Matrix4 要反转的矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。Throws:
-
RuntimeError : :矩阵不可逆,因为它的行列式为零。
-
-
staticSuperMap3D.Matrix4.inverseTransformation(matrix, result) → Matrix4
-
计算提供的矩阵的逆,假设它是一个适当的刚性矩阵,其中左上角的 3x3 元素是旋转矩阵,第四列中的上三个元素是平移。 假设底行是 [0, 0, 0, 1]。未验证该矩阵的形式是否正确。此方法比使用
Matrix4.inverse
计算一般 4x4 矩阵的逆要快。Name Type Description matrix
Matrix4 要反转的矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.multiply(left, right, result) → Matrix4
-
计算两个矩阵的乘积。
Name Type Description left
Matrix4 第一个矩阵。 right
Matrix4 第二个矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.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 SuperMap3D.Matrix4.multiply(m, SuperMap3D.Matrix4.fromRotationTranslation(rotation), m); SuperMap3D.Matrix4.multiplyByMatrix3(m, rotation, m);
-
staticSuperMap3D.Matrix4.multiplyByPoint(matrix, cartesian, result) → Cartesian3
-
计算矩阵和
Cartesian3
的乘积。这等效于使用 w 分量为 1 的Matrix4.multiplyByVector
调用Cartesian4
w
但返回的是Cartesian3
而不是Cartesian4
。Name Type Description matrix
Matrix4 矩阵。 cartesian
Cartesian3 重点。 result
Cartesian3 存储结果的对象。 Returns:
修改后的结果参数。Example:
var p = new SuperMap3D.Cartesian3(1.0, 2.0, 3.0); var result = SuperMap3D.Matrix4.multiplyByPoint(matrix, p, new SuperMap3D.Cartesian3());
-
staticSuperMap3D.Matrix4.multiplyByPointAsVector(matrix, cartesian, result) → Cartesian3
-
Name Type Description matrix
Matrix4 矩阵。 cartesian
Cartesian3 要乘以的数值。 result
Cartesian3 存储结果的对象。 Returns:
修改后的结果参数。Example:
var p = new SuperMap3D.Cartesian3(1.0, 2.0, 3.0); var result = SuperMap3D.Matrix4.multiplyByPointAsVector(matrix, p, new SuperMap3D.Cartesian3()); // A shortcut for // Cartesian3 p = ... // SuperMap3D.Matrix4.multiplyByVector(matrix, new SuperMap3D.Cartesian4(p.x, p.y, p.z, 0.0), result);
-
staticSuperMap3D.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 = SuperMap3D.Matrix4.multiplyByScalar(m, -2, new SuperMap3D.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]
-
staticSuperMap3D.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 SuperMap3D.Matrix4.multiply(m, SuperMap3D.Matrix4.fromScale(scale), m); SuperMap3D.Matrix4.multiplyByScale(m, scale, m);
See:
-
staticSuperMap3D.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 SuperMap3D.Matrix4.multiply(m, SuperMap3D.Matrix4.fromTranslation(position), m); SuperMap3D.Matrix4.multiplyByTranslation(m, position, m);
-
staticSuperMap3D.Matrix4.multiplyByUniformScale(matrix, scale, result) → Matrix4
-
将仿射变换矩阵(底行为 [0.0, 0.0, 0.0, 1.0])与隐式统一比例矩阵相乘。 multiply(m,Matrix4.fromUniformScale(scale),m);,其中 m 必须是仿射矩阵。此函数执行的分配和算术运算较少。
Name Type Description matrix
Matrix4 左手仿射矩阵。 scale
Number 右手的统一比例。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。Example:
// Instead of SuperMap3D.Matrix4.multiply(m, SuperMap3D.Matrix4.fromUniformScale(scale), m); SuperMap3D.Matrix4.multiplyByUniformScale(m, scale, m);
See:
-
staticSuperMap3D.Matrix4.multiplyByVector(matrix, cartesian, result) → Cartesian4
-
计算矩阵和列向量的乘积。
Name Type Description matrix
Matrix4 矩阵。 cartesian
Cartesian4 向量。 result
Cartesian4 存储结果的对象。 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.multiplyTransformation(left, right, result) → Matrix4
-
计算两个矩阵的乘积,假设矩阵是仿射变换矩阵,其中左上角的 3x3 元素是任意矩阵,第四列中的上三个元素是平移。 假设底行是 [0, 0, 0, 1]。未验证该矩阵的形式是否正确。此方法比使用
Matrix4.multiply
计算一般 4x4 矩阵的乘积更快。Name Type Description left
Matrix4 第一个矩阵。 right
Matrix4 第二个矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。Example:
var m1 = new SuperMap3D.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 = SuperMap3D.Transforms.eastNorthUpToFixedFrame(new SuperMap3D.Cartesian3(1.0, 1.0, 1.0)); var m3 = SuperMap3D.Matrix4.multiplyTransformation(m1, m2, new SuperMap3D.Matrix4());
-
staticSuperMap3D.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 = SuperMap3D.Matrix4.negate(m, new SuperMap3D.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]
-
将提供的实例存储到提供的数组中。
Name Type Default Description value
Matrix4 要打包的值。 array
Array.<Number> 要打包的数组。 startingIndex
Number 0
optional 开始打包元素的数组索引。 Returns:
装入的数组。 -
staticSuperMap3D.Matrix4.setColumn(matrix, index, cartesian, result) → Matrix4
-
计算一个新矩阵,用提供的 Cartesian4 实例替换提供的矩阵中的指定列。
Name Type Description matrix
Matrix4 要使用的矩阵。 index
Number 要设置的列的从零开始的索引。 cartesian
Cartesian4 其值将分配给指定列的Cartesian。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。Throws:
-
DeveloperError : 索引必须为 0、1、2 或 3。
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 = SuperMap3D.Matrix4.setColumn(m, 2, new SuperMap3D.Cartesian4(99.0, 98.0, 97.0, 96.0), new SuperMap3D.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]
-
-
staticSuperMap3D.Matrix4.setRow(matrix, index, cartesian, result) → Matrix4
-
计算一个新矩阵,用提供的 Cartesian4 实例替换提供的矩阵中的指定行。
Name Type Description matrix
Matrix4 要使用的矩阵。 index
Number 要设置的行的从零开始的索引。 cartesian
Cartesian4 其值将分配给指定行的Cartesian。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。Throws:
-
DeveloperError : 索引必须为 0、1、2 或 3。
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 = SuperMap3D.Matrix4.setRow(m, 2, new SuperMap3D.Cartesian4(99.0, 98.0, 97.0, 96.0), new SuperMap3D.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]
-
-
staticSuperMap3D.Matrix4.setTranslation(matrix, translation, 存储结果的对象。) → Matrix4
-
计算一个新矩阵,用提供的平移替换提供的矩阵最右列中的平移。这假设矩阵是仿射变换。
Name Type Description matrix
Matrix4 要使用的矩阵。 translation
Cartesian3 替换所提供矩阵的。 存储结果的对象。
Cartesian4 Returns:
修改后的结果参数。 -
staticSuperMap3D.Matrix4.subtract(left, right, result) → Matrix4
-
计算两个矩阵的差。
Name Type Description left
Matrix4 第一个矩阵。 right
Matrix4 第二个矩阵。 result
Matrix4 存储结果的对象。 Returns:
修改后的结果参数。 -
从提供的 Matrix4 实例计算一个数组。该数组将按列优先顺序排列。
Name Type Description matrix
Matrix4 要使用的矩阵。 result
Array.<Number> optional 存储结果的数组。 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 = SuperMap3D.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]
-
staticSuperMap3D.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 = SuperMap3D.Matrix4.transpose(m, new SuperMap3D.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]
-
staticSuperMap3D.Matrix4.unpack(array, startingIndex, result) → Matrix4
-
从打包数组中检索实例。
Name Type Default Description array
Array.<Number> 打包的数组。 startingIndex
Number 0
optional 要解包的元素的起始索引。 result
Matrix4 optional 存储结果的对象。 Returns:
修改后的结果参数或新的 Matrix4 实例(如果未提供)。