3x3矩陣,可作為列主順序數(shù)組進(jìn)行索引。對(duì)于代碼可讀性,構(gòu)造函數(shù)參數(shù)按行主順序排列。
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
獲取集合中的項(xiàng)數(shù)。
(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
初始化為標(biāo)識(shí)矩陣的不可變矩陣3實(shí)例。
(static) packedLength : Number
用于將對(duì)象打包到數(shù)組中的元素?cái)?shù)。
(static, constant) ZERO : Matrix3
初始化為零矩陣的不可變矩陣3實(shí)例。
Methods
clone(result) → {Matrix3}
復(fù)制提供的Matrix3實(shí)例。
Parameters:
將此矩陣與提供的矩陣組件進(jìn)行比較,如果相等,則返回
true,否則返回false。
Parameters:
將此矩陣與提供的矩陣組件進(jìn)行比較,如果它們?cè)谔峁┑膃psilon中,則返回
true,否則返回false。
Parameters:
epsilon
(Number)
用于相等性測(cè)試的epsilon。
創(chuàng)建一個(gè)表示此矩陣的字符串,其中每一行位于單獨(dú)的行上,格式為“(第0列,第1列,第2列)”。
計(jì)算包含所提供矩陣元素的絕對(duì)(無(wú)符號(hào))值的矩陣。
Parameters:
計(jì)算兩個(gè)矩陣的和。
Parameters:
復(fù)制Matrix3實(shí)例。
Parameters:
計(jì)算對(duì)稱矩陣的特征向量和特征值。
返回一個(gè)對(duì)角矩陣和一元矩陣,這樣:matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)
沿對(duì)角矩陣的值是特征值。單位矩陣的列是相應(yīng)的特征向量。
Parameters:
result
(Object)
一種具有單位和對(duì)角屬性的對(duì)象,這些屬性是用來(lái)存儲(chǔ)結(jié)果的矩陣。
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)
計(jì)算所提供矩陣的行列式。
Parameters:
比較提供的矩陣組件,如果它們相等,則返回
true,否則返回false。
Parameters:
比較提供的矩陣組件,如果它們?cè)谔峁┑膃psilon中,則返回
true,否則返回false。
Parameters:
從數(shù)組中的9個(gè)連續(xù)元素創(chuàng)建矩陣3。
Parameters:
array
(Array.<Number>)
其9個(gè)連續(xù)元素對(duì)應(yīng)于矩陣位置的數(shù)組。假定列主順序。
startingIndex
(Number)
(default 0)
第一個(gè)元素?cái)?shù)組中的偏移量,它對(duì)應(yīng)于矩陣中第一列第一行的位置。
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);
從列主順序數(shù)組創(chuàng)建Matrix3實(shí)例。
Parameters:
values
(Array.<Number>)
列主順序數(shù)組。
計(jì)算表示cartesian3向量的叉積等價(jià)矩陣的matrix3實(shí)例。
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));
從所提供的頭部俯仰滾軸計(jì)算3x3旋轉(zhuǎn)矩陣。(參見(jiàn)http://en.wikipedia.org/wiki/conversion_quaternions_和_euler_angles之間的轉(zhuǎn)換)
Parameters:
從提供的四元數(shù)計(jì)算3x3旋轉(zhuǎn)矩陣。
Parameters:
圍繞X軸創(chuàng)建旋轉(zhuǎn)矩陣。
Parameters:
angle
(Number)
以弧度表示的旋轉(zhuǎn)角度。正角度是逆時(shí)針的。
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軸創(chuàng)建旋轉(zhuǎn)矩陣。
Parameters:
angle
(Number)
以弧度表示的旋轉(zhuǎn)角度。正角度是逆時(shí)針的。
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軸創(chuàng)建旋轉(zhuǎn)矩陣。
Parameters:
angle
(Number)
以弧度表示的旋轉(zhuǎn)角度。正角度是逆時(shí)針的。
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());
從行主順序數(shù)組創(chuàng)建Matrix3實(shí)例。生成的矩陣將按主列順序排列。
Parameters:
values
(Array.<Number>)
行主順序數(shù)組。
計(jì)算表示非均勻比例的Matrix3實(shí)例。
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));
計(jì)算表示統(tǒng)一比例的Matrix3實(shí)例。
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實(shí)例的形式檢索所提供索引處的矩陣列的副本。
Parameters:
index
(Number)
要檢索的列的從零開(kāi)始的索引。
Throws
-
DeveloperError : 索引必須是0、1或2。
在提供的行和列處計(jì)算元素的數(shù)組索引。
Parameters:
row
(Number)
行的從零開(kāi)始的索引。
column
(Number)
列的從零開(kāi)始的索引。
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。
假設(shè)矩陣是仿射變換,則計(jì)算最大比例。最大比例是列向量的最大長(zhǎng)度。
Parameters:
提取假設(shè)矩陣是仿射變換的旋轉(zhuǎn)。
Parameters:
以cartesian3實(shí)例的形式檢索所提供索引處的矩陣行的副本。
Parameters:
index
(Number)
要檢索的行的從零開(kāi)始的索引。
Throws
-
DeveloperError : 索引必須是0、1或2。
假設(shè)矩陣是仿射變換,則提取不均勻尺度。
Parameters:
計(jì)算所提供矩陣的倒數(shù)。
Parameters:
Throws
-
DeveloperError : 矩陣不可逆。
計(jì)算兩個(gè)矩陣的乘積。
Parameters:
計(jì)算矩陣和標(biāo)量的乘積。
Parameters:
計(jì)算矩陣乘以(非均勻)比例的乘積,就像比例是比例矩陣一樣。
Parameters:
Example
// Instead of bmgl.Matrix3.multiply(m, bmgl.Matrix3.fromScale(scale), m);
bmgl.Matrix3.multiplyByScale(m, scale, m);
- Matrix3.fromScale
- Matrix3.multiplyByUniformScale
See:
計(jì)算矩陣和列向量的乘積。
Parameters:
創(chuàng)建所提供矩陣的否定副本。
Parameters:
將提供的實(shí)例存儲(chǔ)到提供的數(shù)組中。
Parameters:
array
(Array.<Number>)
要打包的數(shù)組。
startingIndex
(Number)
(default 0)
數(shù)組中開(kāi)始打包元素的索引。
計(jì)算用提供的cartesian3實(shí)例替換所提供矩陣中指定列的新矩陣。
Parameters:
index
(Number)
要設(shè)置的列的從零開(kāi)始的索引。
Throws
-
DeveloperError : 索引必須是0、1或2。
計(jì)算用提供的cartesian3實(shí)例替換所提供矩陣中指定行的新矩陣。
Parameters:
index
(Number)
要設(shè)置的行的從零開(kāi)始的索引。
Throws
-
DeveloperError : 索引必須是0、1或2。
計(jì)算兩個(gè)矩陣的差。
Parameters:
從提供的Matrix3實(shí)例創(chuàng)建數(shù)組。數(shù)組將按列主順序排列。
Parameters:
result
(Array.<Number>)
存儲(chǔ)結(jié)果的數(shù)組。
計(jì)算所提供矩陣的轉(zhuǎn)置。
Parameters:
從壓縮數(shù)組中檢索實(shí)例。
Parameters:
array
(Array.<Number>)
壓縮數(shù)組。
startingIndex
(Number)
(default 0)
要解包的元素的起始索引。