3x3矩陣,可作為列主順序數組進行索引。對于代碼可讀性,構造函數參數按行主順序排列。
new Matrix3(column0Row0, column1Row0, column2Row0, column0Row1, column1Row1, column2Row1, column0Row2, column1Row2, column2Row2)
Parameters:
column0Row0
(Number)
(default 0.0)
第0列第0行的值。
column1Row0
(Number)
(default 0.0)
第1列第0行的值。
column2Row0
(Number)
(default 0.0)
第2列第0行的值。
column0Row1
(Number)
(default 0.0)
第0列第1行的值。
column1Row1
(Number)
(default 0.0)
第1列第1行的值。
column2Row1
(Number)
(default 0.0)
第2列第1行的值。
column0Row2
(Number)
(default 0.0)
第0列第2行的值。
column1Row2
(Number)
(default 0.0)
第1列第2行的值。
column2Row2
(Number)
(default 0.0)
第2列第2行的值。
Members
length : Number
獲取集合中的項數。
(static, constant) COLUMN0ROW0 : Number
第0列第0行的Matrix3索引。
(static, constant) COLUMN0ROW1 : Number
第1行第0列的Matrix3索引。
(static, constant) COLUMN0ROW2 : Number
Matrix3中第0列第2行的索引。
(static, constant) COLUMN1ROW0 : Number
Matrix3中第1列第0行的索引。
(static, constant) COLUMN1ROW1 : Number
Matrix3中第1列第1行的索引。
(static, constant) COLUMN1ROW2 : Number
Matrix3中第1列第2行的索引。
(static, constant) COLUMN2ROW0 : Number
Matrix3中第2列第0行的索引。
(static, constant) COLUMN2ROW1 : Number
Matrix3中第2列第1行的索引。
(static, constant) COLUMN2ROW2 : Number
Matrix3中第2列第2行的索引。
(static, constant) IDENTITY : Matrix3
初始化為標識矩陣的不可變矩陣3實例。
(static) packedLength : Number
用于將對象打包到數組中的元素數。
(static, constant) ZERO : Matrix3
初始化為零矩陣的不可變矩陣3實例。
Methods
clone(result) → {Matrix3}
復制提供的Matrix3實例。
Parameters:
將此矩陣與提供的矩陣組件進行比較,如果相等,則返回
true,否則返回false。
Parameters:
將此矩陣與提供的矩陣組件進行比較,如果它們在提供的epsilon中,則返回
true,否則返回false。
Parameters:
epsilon
(Number)
用于相等性測試的epsilon。
創建一個表示此矩陣的字符串,其中每一行位于單獨的行上,格式為“(第0列,第1列,第2列)”。
計算包含所提供矩陣元素的絕對(無符號)值的矩陣。
Parameters:
計算兩個矩陣的和。
Parameters:
復制Matrix3實例。
Parameters:
計算對稱矩陣的特征向量和特征值。
返回一個對角矩陣和一元矩陣,這樣:matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)
沿對角矩陣的值是特征值。單位矩陣的列是相應的特征向量。
Parameters:
result
(Object)
一種具有單位和對角屬性的對象,這些屬性是用來存儲結果的矩陣。
Example
var a = //... symetric matrix
var result = {
unitary : new bmgl.Matrix3(),
diagonal : new bmgl.Matrix3()
};
bmgl.Matrix3.computeEigenDecomposition(a, result);
var unitaryTranspose = bmgl.Matrix3.transpose(result.unitary, new bmgl.Matrix3());
var b = bmgl.Matrix3.multiply(result.unitary, result.diagonal, new bmgl.Matrix3());
bmgl.Matrix3.multiply(b, unitaryTranspose, b); // b is now equal to a
var lambda = bmgl.Matrix3.getColumn(result.diagonal, 0, new bmgl.Cartesian3()).x; // first eigenvalue
var v = bmgl.Matrix3.getColumn(result.unitary, 0, new bmgl.Cartesian3()); // first eigenvector
var c = bmgl.Cartesian3.multiplyByScalar(v, lambda, new bmgl.Cartesian3()); // equal to bmgl.Matrix3.multiplyByVector(a, v)
計算所提供矩陣的行列式。
Parameters:
比較提供的矩陣組件,如果它們相等,則返回
true,否則返回false。
Parameters:
比較提供的矩陣組件,如果它們在提供的epsilon中,則返回
true,否則返回false。
Parameters:
從數組中的9個連續元素創建矩陣3。
Parameters:
array
(Array.<Number>)
其9個連續元素對應于矩陣位置的數組。假定列主順序。
startingIndex
(Number)
(default 0)
第一個元素數組中的偏移量,它對應于矩陣中第一列第一行的位置。
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 = bmgl.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 = bmgl.Matrix3.fromArray(v2, 2);
從列主順序數組創建Matrix3實例。
Parameters:
values
(Array.<Number>)
列主順序數組。
計算表示cartesian3向量的叉積等價矩陣的matrix3實例。
Parameters:
Example
// Creates
// [0.0, -9.0, 8.0]
// [9.0, 0.0, -7.0]
// [-8.0, 7.0, 0.0]
var m = bmgl.Matrix3.fromCrossProduct(new bmgl.Cartesian3(7.0, 8.0, 9.0));
從所提供的頭部俯仰滾軸計算3x3旋轉矩陣。(參見http://en.wikipedia.org/wiki/conversion_quaternions_和_euler_angles之間的轉換)
Parameters:
從提供的四元數計算3x3旋轉矩陣。
Parameters:
圍繞X軸創建旋轉矩陣。
Parameters:
angle
(Number)
以弧度表示的旋轉角度。正角度是逆時針的。
Example
// Rotate a point 45 degrees counterclockwise around the x-axis.
var p = new bmgl.Cartesian3(5, 6, 7);
var m = bmgl.Matrix3.fromRotationX(bmgl.Math.toRadians(45.0));
var rotated = bmgl.Matrix3.multiplyByVector(m, p, new bmgl.Cartesian3());
圍繞Y軸創建旋轉矩陣。
Parameters:
angle
(Number)
以弧度表示的旋轉角度。正角度是逆時針的。
Example
// Rotate a point 45 degrees counterclockwise around the y-axis.
var p = new bmgl.Cartesian3(5, 6, 7);
var m = bmgl.Matrix3.fromRotationY(bmgl.Math.toRadians(45.0));
var rotated = bmgl.Matrix3.multiplyByVector(m, p, new bmgl.Cartesian3());
圍繞Z軸創建旋轉矩陣。
Parameters:
angle
(Number)
以弧度表示的旋轉角度。正角度是逆時針的。
Example
// Rotate a point 45 degrees counterclockwise around the z-axis.
var p = new bmgl.Cartesian3(5, 6, 7);
var m = bmgl.Matrix3.fromRotationZ(bmgl.Math.toRadians(45.0));
var rotated = bmgl.Matrix3.multiplyByVector(m, p, new bmgl.Cartesian3());
從行主順序數組創建Matrix3實例。生成的矩陣將按主列順序排列。
Parameters:
values
(Array.<Number>)
行主順序數組。
計算表示非均勻比例的Matrix3實例。
Parameters:
Example
// Creates
// [7.0, 0.0, 0.0]
// [0.0, 8.0, 0.0]
// [0.0, 0.0, 9.0]
var m = bmgl.Matrix3.fromScale(new bmgl.Cartesian3(7.0, 8.0, 9.0));
計算表示統一比例的Matrix3實例。
Parameters:
scale
(Number)
均勻比例因子。
Example
// Creates
// [2.0, 0.0, 0.0]
// [0.0, 2.0, 0.0]
// [0.0, 0.0, 2.0]
var m = bmgl.Matrix3.fromUniformScale(2.0);
以cartesian3實例的形式檢索所提供索引處的矩陣列的副本。
Parameters:
Throws
-
DeveloperError : 索引必須是0、1或2。
在提供的行和列處計算元素的數組索引。
Parameters:
row
(Number)
行的從零開始的索引。
column
(Number)
列的從零開始的索引。
Example
var myMatrix = new bmgl.Matrix3();
var column1Row0Index = bmgl.Matrix3.getElementIndex(1, 0);
var column1Row0 = myMatrix[column1Row0Index]
myMatrix[column1Row0Index] = 10.0;
Throws
-
DeveloperError : 行必須是0、1或2。
-
DeveloperError : 列必須是0、1或2。
假設矩陣是仿射變換,則計算最大比例。最大比例是列向量的最大長度。
Parameters:
提取假設矩陣是仿射變換的旋轉。
Parameters:
以cartesian3實例的形式檢索所提供索引處的矩陣行的副本。
Parameters:
Throws
-
DeveloperError : 索引必須是0、1或2。
假設矩陣是仿射變換,則提取不均勻尺度。
Parameters:
計算所提供矩陣的倒數。
Parameters:
Throws
-
DeveloperError : 矩陣不可逆。
計算兩個矩陣的乘積。
Parameters:
計算矩陣和標量的乘積。
Parameters:
計算矩陣乘以(非均勻)比例的乘積,就像比例是比例矩陣一樣。
Parameters:
Example
// Instead of bmgl.Matrix3.multiply(m, bmgl.Matrix3.fromScale(scale), m);
bmgl.Matrix3.multiplyByScale(m, scale, m);
- Matrix3.fromScale
- Matrix3.multiplyByUniformScale
See:
計算矩陣和列向量的乘積。
Parameters:
創建所提供矩陣的否定副本。
Parameters:
將提供的實例存儲到提供的數組中。
Parameters:
array
(Array.<Number>)
要打包的數組。
startingIndex
(Number)
(default 0)
數組中開始打包元素的索引。
計算用提供的cartesian3實例替換所提供矩陣中指定列的新矩陣。
Parameters:
index
(Number)
要設置的列的從零開始的索引。
Throws
-
DeveloperError : 索引必須是0、1或2。
計算用提供的cartesian3實例替換所提供矩陣中指定行的新矩陣。
Parameters:
index
(Number)
要設置的行的從零開始的索引。
Throws
-
DeveloperError : 索引必須是0、1或2。
計算兩個矩陣的差。
Parameters:
從提供的Matrix3實例創建數組。數組將按列主順序排列。
Parameters:
result
(Array.<Number>)
存儲結果的數組。
計算所提供矩陣的轉置。
Parameters:
從壓縮數組中檢索實例。
Parameters:
array
(Array.<Number>)
壓縮數組。
startingIndex
(Number)
(default 0)
要解包的元素的起始索引。