麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - Matrix3 中文文档

本文介绍下Cesium中 Matrix3 API的详细使用说明。

Matrix3 API 调用方法

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行的值。
参考:

成员变量

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实例。

内置方法

clone(result)Matrix3
克隆提供的Matrix3实例。
Name Type Description
result Matrix3 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
equals(right)Boolean
将这个矩阵与提供的矩阵分量比较,如果它们相等,则返回true,否则返回false
Name Type Description
right Matrix3 optional 要进行比较的矩阵实例。
返回值:
true 如果它们相等,否则false
equalsEpsilon(right, epsilon)Boolean
将这个矩阵与提供的矩阵分量比较,如果它们在提供的epsilon范围内,则返回true,否则返回false
Name Type Description
right Matrix3 optional 要进行比较的矩阵实例。
epsilon Number 用于等式检验的epsilon。
返回值:
true如果它们在给定的epsilon范围内,否则false
toString()String
创建一个表示此矩阵的字符串,其中每一行位于单独的行上,格式为'(column0, column1, column2)'。
返回值:
表示所提供的矩阵的字符串,其中每行位于单独的行上,格式为'(column0, column1, column2)'。
staticCesium.Matrix3.abs(matrix, result)Matrix3
计算一个矩阵,该矩阵包含所提供的矩阵元素的绝对值(无符号)。
Name Type Description
matrix Matrix3 带符号元素的矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.add(left, right, result)Matrix3
计算两个矩阵的和。
Name Type Description
left Matrix3 第一个矩阵。
right Matrix3 第二个矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.clone(matrix, result)Matrix3
克隆一个 Matrix3 实例。
Name Type Description
matrix Matrix3 要被克隆的矩阵。
result Matrix3 optional 存储结果的对象。
返回值:
修改后的结果参数或新的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 一个具有单式和对角属性的对象,这些属性是用来存储结果的矩阵。
返回值:
一个具有单式和对角属性的对象,分别是单式矩阵和对角矩阵。
示例:
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 要使用的矩阵
返回值:
矩阵行列式的值。
staticCesium.Matrix3.equals(left, right)Boolean
比较所提供的矩阵的分量,如果相等则返回true,否则返回false
Name Type Description
left Matrix3 optional 第一个矩阵。
right Matrix3 optional 第二个矩阵。
返回值:
true 如果两者相等,否则 false
staticCesium.Matrix3.equalsEpsilon(left, right, epsilon)Boolean
比较提供的矩阵的分量,如果它们在提供的epsilon范围内,则返回true,否则返回false
Name Type Description
left Matrix3 optional 第一个矩阵。
right Matrix3 optional 第二个矩阵。
epsilon Number 用于等式检验的epsilon。
返回值:
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 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 创建 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 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
staticCesium.Matrix3.fromCrossProduct(vector, result)Matrix3
计算一个Matrix3实例来表示Cartesian3向量的外(叉)积等价矩阵。
Name Type Description
vector Cartesian3 外(叉)积运算左侧的向量。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 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 存储结果的对象, 如果未定义,将创建一个新实例。
返回值:
从headingPitchRoll而来的3 * 3的旋转矩阵。
staticCesium.Matrix3.fromQuaternion(quaternion, result)Matrix3
从提供的四元数(quaternion)计算一个3x3旋转矩阵。
Name Type Description
quaternion Quaternion 要使用的四元数(quaternion)
result Matrix3 optional 存储结果的对象, 如果未定义,将创建一个新实例。
返回值:
这个四元数(quaternion)的3x3旋转矩阵。
staticCesium.Matrix3.fromRotationX(angle, result)Matrix3
创建一个绕x轴旋转的矩阵。
Name Type Description
angle Number 以弧度表示的旋转角度。正角(positive angles)是逆时针的。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 绕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 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 绕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 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 绕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 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
staticCesium.Matrix3.fromScale(scale, result)Matrix3
计算表示非均匀缩放的Matrix3实例。
Name Type Description
scale Cartesian3 x,y和z的比例因子。
result Matrix3 optional 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 创建
//   [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 存储结果的对象,如果未定义,将创建一个新实例。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 创建
//   [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 存储结果的对象。
返回值:
修改后的结果参数。
异常情况:
staticCesium.Matrix3.getElementIndex(row, column)Number
在提供的行和列上计算元素的数组索引。
Name Type Description
row Number 行的从零开始的索引。
column Number 列的从零开始的索引。
返回值:
在提供的行和列上索引的元素。
异常情况:
示例:
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 矩阵。
返回值:
最大的比例。
staticCesium.Matrix3.getRotation(matrix, result)Matrix3
提取旋转矩阵,假设矩阵是一个仿射变换。
Name Type Description
matrix Matrix3 矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.getRow(matrix, index, result)Cartesian3
以Cartesian3实例的形式在提供的索引处检索矩阵行的副本。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要检索的行的从零开始的索引。
result Cartesian3 存储结果的对象。
返回值:
修改后的结果参数。
异常情况:
staticCesium.Matrix3.getScale(matrix, result)Cartesian3
提取非均匀缩放,假设矩阵是仿射变换。
Name Type Description
matrix Matrix3 矩阵。
result Cartesian3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.inverse(matrix, result)Matrix3
计算所提供矩阵的逆。
Name Type Description
matrix Matrix3 要求逆的矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
异常情况:
staticCesium.Matrix3.multiply(left, right, result)Matrix3
计算两个矩阵的乘积。
Name Type Description
left Matrix3 第一个矩阵。
right Matrix3 第二个矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.multiplyByScalar(matrix, scalar, result)Matrix3
计算矩阵与标量(scalar)的乘积。
Name Type Description
matrix Matrix3 矩阵。
scalar Number 要乘以的数。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.multiplyByScale(matrix, scale, result)Matrix3
计算一个矩阵与一个(非均匀)缩放的乘积,就好像这个比例是一个比例矩阵。
Name Type Description
matrix Matrix3 左边的矩阵。
scale Cartesian3 右边的非均匀缩放。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
示例:
// Instead of Cesium.Matrix3.multiply(m, Cesium.Matrix3.fromScale(scale), m);
Cesium.Matrix3.multiplyByScale(m, scale, m);
参考:
staticCesium.Matrix3.multiplyByVector(matrix, cartesian, result)Cartesian3
计算矩阵和列向量的乘积。
Name Type Description
matrix Matrix3 矩阵。
cartesian Cartesian3 列。
result Cartesian3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.negate(matrix, result)Matrix3
创建所提供的矩阵的负(negated)副本。(对每个分量取反)
Name Type Description
matrix Matrix3 要取反的矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.pack(value, array, startingIndex)Array.<Number>
将提供的实例存储到提供的数组中。
Name Type Default Description
value Matrix3 要封装的值。
array Array.<Number> 要封装到的数组。
startingIndex Number 0 optional 开始包装元素的数组索引。
返回值:
被封装到的数组
staticCesium.Matrix3.setColumn(matrix, index, cartesian, result)Matrix3
计算一个新矩阵,该矩阵用提供的Cartesian3实例替换提供的矩阵中的指定列。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要设置的列的从零开始的索引。
cartesian Cartesian3 将被赋给指定列的笛卡儿坐标值。
result Cartesian3 存储结果的对象。
返回值:
修改后的结果参数。
异常情况:
staticCesium.Matrix3.setRow(matrix, index, cartesian, result)Matrix3
计算一个新矩阵,该矩阵用提供的Cartesian3实例替换提供的矩阵中的指定行。
Name Type Description
matrix Matrix3 要使用的矩阵。
index Number 要设置的行的从零开始的索引。
cartesian Cartesian3 将被赋给指定行的笛卡儿坐标值。
result Cartesian3 存储结果的对象。
返回值:
修改后的结果参数。
异常情况:
staticCesium.Matrix3.subtract(left, right, result)Matrix3
计算两个矩阵的差值。
Name Type Description
left Matrix3 第一个矩阵。
right Matrix3 第二个矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.toArray(matrix, result)Array.<Number>
从提供的Matrix3实例创建一个数组。数组将按列主序排列。
Name Type Description
matrix Matrix3 要使用的矩阵。
result Array.<Number> optional 存储结果的数组。
返回值:
已修改的数组参数或新的数组实例(如果未提供)。
staticCesium.Matrix3.transpose(matrix, result)Matrix3
计算给定矩阵的转置(transpose)。
Name Type Description
matrix Matrix3 要进行转置(transpose)的矩阵。
result Matrix3 存储结果的对象。
返回值:
修改后的结果参数。
staticCesium.Matrix3.unpack(array, startingIndex, result)Matrix3
从已封装的数组中检索实例。
Name Type Default Description
array Array.<Number> 封装的数组。
startingIndex Number 0 optional 要解包的元素的起始索引。
result Matrix3 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)