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
获取集合中的项的个数。
索引为第0列,第0行的Matrix3。
索引为第0列,第1行的Matrix3。
索引为第0列,第2行的Matrix3。
索引为第1列,第0行的Matrix3。
索引为第1列,第1行的Matrix3。
索引为第1列,第2行的Matrix3。
索引为第2列,第0行的Matrix3。
索引为第2列,第1行的Matrix3。
索引为第2列,第2行的Matrix3。
初始化为单位(identity)矩阵的不可变Matrix3实例。
用于将对象封装成数组的元素数。
初始化为零(zero)矩阵的不可变的Matrix3实例。
内置方法
克隆提供的Matrix3实例。
Name | Type | Description |
---|---|---|
result |
Matrix3 | optional 存储结果的对象。 |
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
将这个矩阵与提供的矩阵分量比较,如果它们相等,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
right |
Matrix3 | optional 要进行比较的矩阵实例。 |
返回值:
true
如果它们相等,否则false
。
将这个矩阵与提供的矩阵分量比较,如果它们在提供的epsilon范围内,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
right |
Matrix3 | optional 要进行比较的矩阵实例。 |
epsilon |
Number | 用于等式检验的epsilon。 |
返回值:
true
如果它们在给定的epsilon范围内,否则false
。
创建一个表示此矩阵的字符串,其中每一行位于单独的行上,格式为'(column0, column1, column2)'。
返回值:
表示所提供的矩阵的字符串,其中每行位于单独的行上,格式为'(column0, column1, column2)'。
计算一个矩阵,该矩阵包含所提供的矩阵元素的绝对值(无符号)。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 带符号元素的矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算两个矩阵的和。
Name | Type | Description |
---|---|---|
left |
Matrix3 | 第一个矩阵。 |
right |
Matrix3 | 第二个矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
克隆一个 Matrix3 实例。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要被克隆的矩阵。 |
result |
Matrix3 | optional 存储结果的对象。 |
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。(如果矩阵是未定义的,则返回undefined)
计算对称矩阵的特征向量和特征值。
返回一个对角(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)
计算所提供矩阵的行列式(determinant)。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要使用的矩阵 |
返回值:
矩阵行列式的值。
比较所提供的矩阵的分量,如果相等则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
left |
Matrix3 | optional 第一个矩阵。 |
right |
Matrix3 | optional 第二个矩阵。 |
返回值:
true
如果两者相等,否则 false
。
比较提供的矩阵的分量,如果它们在提供的epsilon范围内,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
left |
Matrix3 | optional 第一个矩阵。 |
right |
Matrix3 | optional 第二个矩阵。 |
epsilon |
Number | 用于等式检验的epsilon。 |
返回值:
true
如果两者在给定的epsilon范围内,否则 false
。
从数组中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);
从列主序数组创建一个Matrix3实例。
Name | Type | Description |
---|---|---|
values |
Array.<Number> | 列主序数组。 |
result |
Matrix3 | optional 存储结果的对象,如果未定义,将创建一个新实例。 |
返回值:
修改后的结果参数或新的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));
从提供的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的旋转矩阵。
从提供的四元数(quaternion)计算一个3x3旋转矩阵。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要使用的四元数(quaternion) |
result |
Matrix3 | optional 存储结果的对象, 如果未定义,将创建一个新实例。 |
返回值:
这个四元数(quaternion)的3x3旋转矩阵。
创建一个绕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());
创建一个绕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());
创建一个绕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());
从行主序数组创建一个Matrix3实例。得到的矩阵将按列主序排列。
Name | Type | Description |
---|---|---|
values |
Array.<Number> | 行主序数组 |
result |
Matrix3 | optional 存储结果的对象,如果未定义,将创建一个新实例。 |
返回值:
修改后的结果参数或新的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));
计算表示均匀缩放的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);
以Cartesian3实例的形式在提供的索引处检索矩阵列的副本。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要使用的矩阵。 |
index |
Number | 要检索的列的从零开始的索引。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
异常情况:
-
DeveloperError : 索引必须是0,1或2。
在提供的行和列上计算元素的数组索引。
Name | Type | Description |
---|---|---|
row |
Number | 行的从零开始的索引。 |
column |
Number | 列的从零开始的索引。 |
返回值:
在提供的行和列上索引的元素。
异常情况:
-
DeveloperError : 行必须是0,1或2。
-
DeveloperError : 列必须是0,1或2。
示例:
var myMatrix = new Cesium.Matrix2();
var column1Row0Index = Cesium.Matrix2.getElementIndex(1, 0);
var column1Row0 = myMatrix[column1Row0Index]
myMatrix[column1Row0Index] = 10.0;
计算最大比例假设矩阵是一个仿射变换。最大比例是列向量的最大长度。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 矩阵。 |
返回值:
最大的比例。
提取旋转矩阵,假设矩阵是一个仿射变换。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
以Cartesian3实例的形式在提供的索引处检索矩阵行的副本。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要使用的矩阵。 |
index |
Number | 要检索的行的从零开始的索引。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
异常情况:
-
DeveloperError : 索引必须是0,1或2。
提取非均匀缩放,假设矩阵是仿射变换。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 矩阵。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算所提供矩阵的逆。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要求逆的矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
异常情况:
-
DeveloperError : 矩阵是不可逆的。
计算两个矩阵的乘积。
Name | Type | Description |
---|---|---|
left |
Matrix3 | 第一个矩阵。 |
right |
Matrix3 | 第二个矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算矩阵与标量(scalar)的乘积。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 矩阵。 |
scalar |
Number | 要乘以的数。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算一个矩阵与一个(非均匀)缩放的乘积,就好像这个比例是一个比例矩阵。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 左边的矩阵。 |
scale |
Cartesian3 | 右边的非均匀缩放。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
- Matrix3.fromScale
- Matrix3.multiplyByUniformScale
示例:
// Instead of Cesium.Matrix3.multiply(m, Cesium.Matrix3.fromScale(scale), m);
Cesium.Matrix3.multiplyByScale(m, scale, m);
参考:
计算矩阵和列向量的乘积。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 矩阵。 |
cartesian |
Cartesian3 | 列。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
创建所提供的矩阵的负(negated)副本。(对每个分量取反)
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要取反的矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
将提供的实例存储到提供的数组中。
Name | Type | Default | Description |
---|---|---|---|
value |
Matrix3 | 要封装的值。 | |
array |
Array.<Number> | 要封装到的数组。 | |
startingIndex |
Number |
0
|
optional 开始包装元素的数组索引。 |
返回值:
被封装到的数组
计算一个新矩阵,该矩阵用提供的Cartesian3实例替换提供的矩阵中的指定列。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要使用的矩阵。 |
index |
Number | 要设置的列的从零开始的索引。 |
cartesian |
Cartesian3 | 将被赋给指定列的笛卡儿坐标值。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
异常情况:
-
DeveloperError : 索引必须是0,1或2。
计算一个新矩阵,该矩阵用提供的Cartesian3实例替换提供的矩阵中的指定行。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要使用的矩阵。 |
index |
Number | 要设置的行的从零开始的索引。 |
cartesian |
Cartesian3 | 将被赋给指定行的笛卡儿坐标值。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
异常情况:
-
DeveloperError : 索引必须是0,1或2。
计算两个矩阵的差值。
Name | Type | Description |
---|---|---|
left |
Matrix3 | 第一个矩阵。 |
right |
Matrix3 | 第二个矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
从提供的Matrix3实例创建一个数组。数组将按列主序排列。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要使用的矩阵。 |
result |
Array.<Number> | optional 存储结果的数组。 |
返回值:
已修改的数组参数或新的数组实例(如果未提供)。
计算给定矩阵的转置(transpose)。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 要进行转置(transpose)的矩阵。 |
result |
Matrix3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
从已封装的数组中检索实例。
Name | Type | Default | Description |
---|---|---|---|
array |
Array.<Number> | 封装的数组。 | |
startingIndex |
Number |
0
|
optional 要解包的元素的起始索引。 |
result |
Matrix3 | optional 存储结果的对象。 |
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。