亚洲动漫在线观看-亚洲动漫第一页-亚洲丁香婷婷-亚洲丶国产丶欧美一区二区三区-亚洲第一综合网站-亚洲第一永久色

Matrix4

4x4矩陣,可作為列主順序數組進行索引。對于代碼可讀性,構造函數參數按行主順序排列。
new Matrix4(column0Row0, column1Row0, column2Row0, column3Row0, column0Row1, column1Row1, column2Row1, column3Row1, column0Row2, column1Row2, column2Row2, column3Row2, column0Row3, column1Row3, column2Row3, column3Row3)
Parameters:
column0Row0 (Number) (default 0.0) 第0列第0行的值。
column1Row0 (Number) (default 0.0) 第1列第0行的值。
column2Row0 (Number) (default 0.0) 第2列第0行的值。
column3Row0 (Number) (default 0.0) 第3列第0行的值。
column0Row1 (Number) (default 0.0) 第0列第1行的值。
column1Row1 (Number) (default 0.0) 第1列第1行的值。
column2Row1 (Number) (default 0.0) 第2列第1行的值。
column3Row1 (Number) (default 0.0) 第3列第1行的值。
column0Row2 (Number) (default 0.0) 第0列第2行的值。
column1Row2 (Number) (default 0.0) 第1列第2行的值。
column2Row2 (Number) (default 0.0) 第2列第2行的值。
column3Row2 (Number) (default 0.0) 第3列第2行的值。
column0Row3 (Number) (default 0.0) 第0列第3行的值。
column1Row3 (Number) (default 0.0) 第1列第3行的值。
column2Row3 (Number) (default 0.0) 第2列第3行的值。
column3Row3 (Number) (default 0.0) 第3列第3行的值。
See:

Members

length : Number

獲取集合中的項數。

(static, constant) COLUMN0ROW0 : Number

Matrix4中第0列第0行的索引。

(static, constant) COLUMN0ROW1 : Number

第0列第1行的matrix4索引。

(static, constant) COLUMN0ROW2 : Number

Matrix4中第0列第2行的索引。

(static, constant) COLUMN0ROW3 : Number

Matrix4中第0列第3行的索引。

(static, constant) COLUMN1ROW0 : Number

Matrix4中第1列第0行的索引。

(static, constant) COLUMN1ROW1 : Number

Matrix4中第1列第1行的索引。

(static, constant) COLUMN1ROW2 : Number

Matrix4中第1列第2行的索引。

(static, constant) COLUMN1ROW3 : Number

Matrix4中第1列第3行的索引。

(static, constant) COLUMN2ROW0 : Number

Matrix4中第2列第0行的索引。

(static, constant) COLUMN2ROW1 : Number

Matrix4中第2列第1行的索引。

(static, constant) COLUMN2ROW2 : Number

Matrix4中第2列第2行的索引。

(static, constant) COLUMN2ROW3 : Number

Matrix4中第2列第3行的索引。

(static, constant) COLUMN3ROW0 : Number

Matrix4中第3列第0行的索引。

(static, constant) COLUMN3ROW1 : Number

Matrix4中第3列第1行的索引。

(static, constant) COLUMN3ROW2 : Number

Matrix4中第3列第2行的索引。

(static, constant) COLUMN3ROW3 : Number

Matrix4中第3列第3行的索引。

(static, constant) IDENTITY : Matrix4

初始化為標識矩陣的不可變矩陣4實例。

(static) packedLength : Number

用于將對象打包到數組中的元素數。

(static, constant) ZERO : Matrix4

初始化為零矩陣的不可變矩陣4實例。

Methods

clone(result) → {Matrix4}
復制提供的matrix4實例。
Parameters:
result (Matrix4) 存儲結果的對象。
equals(right) → {Boolean}
將此矩陣與提供的矩陣組件進行比較,如果相等,則返回true,否則返回false。
Parameters:
right (Matrix4) 右側矩陣。
equalsEpsilon(right, epsilon) → {Boolean}
將此矩陣與提供的矩陣組件進行比較,如果它們在提供的epsilon中,則返回true,否則返回false。
Parameters:
right (Matrix4) 右側矩陣。
epsilon (Number) 用于相等性測試的epsilon。
toString() → {String}
計算表示此矩陣的字符串,每一行都位于單獨的行上,格式為“(第0列、第1列、第2列、第3列)”。
(static) abs(matrix, result) → {Matrix4}
計算包含所提供矩陣元素的絕對(無符號)值的矩陣。
Parameters:
matrix (Matrix4) 帶符號元素的矩陣。
result (Matrix4) 存儲結果的對象。
(static) add(left, right, result) → {Matrix4}
計算兩個矩陣的和。
Parameters:
left (Matrix4) 第一個矩陣。
right (Matrix4) 第二個矩陣。
result (Matrix4) 存儲結果的對象。
(static) clone(matrix, result) → {Matrix4}
復制Matrix4實例。
Parameters:
matrix (Matrix4) 要復制的矩陣。
result (Matrix4) 存儲結果的對象。
(static) computeInfinitePerspectiveOffCenter(left, right, bottom, top, near, result) → {Matrix4}
計算表示無限偏心透視轉換的Matrix4實例。
Parameters:
left (Number) 攝像機左側將在視圖中的米數。
right (Number) 攝像機右側將在視圖中的米數。
bottom (Number) 將在視圖中的相機下方的米數。
top (Number) 攝像機上方將在視圖中的米數。
near (Number) 到近平面的距離,單位為米。
result (Matrix4) 存儲結果的對象。
(static) computeOrthographicOffCenter(left, right, bottom, top, near, far, result) → {Matrix4}
計算表示正交變換矩陣的Matrix4實例。
Parameters:
left (Number) 攝像機左側將在視圖中的米數。
right (Number) 攝像機右側將在視圖中的米數。
bottom (Number) 將在視圖中的相機下方的米數。
top (Number) 攝像機上方將在視圖中的米數。
near (Number) 到近平面的距離,單位為米。
far (Number) 到遠平面的距離,單位為米。
result (Matrix4) 存儲結果的對象。
(static) computePerspectiveFieldOfView(fovY, aspectRatio, near, far, result) → {Matrix4}
計算表示透視轉換矩陣的Matrix4實例。
Parameters:
fovY (Number) 沿Y軸以弧度表示的視場。
aspectRatio (Number) 縱橫比。
near (Number) 到近平面的距離,單位為米。
far (Number) 到遠平面的距離,單位為米。
result (Matrix4) 存儲結果的對象。
Throws
(static) computePerspectiveOffCenter(left, right, bottom, top, near, far, result) → {Matrix4}
計算表示偏心透視轉換的Matrix4實例。
Parameters:
left (Number) 攝像機左側將在視圖中的米數。
right (Number) 攝像機右側將在視圖中的米數。
bottom (Number) 將在視圖中的相機下方的米數。
top (Number) 攝像機上方將在視圖中的米數。
near (Number) 到近平面的距離,單位為米。
far (Number) 到遠平面的距離,單位為米。
result (Matrix4) 存儲結果的對象。
(static) computeView(position, direction, up, right, result) → {Matrix4}
計算從世界空間轉換為視圖空間的Matrix4實例。
Parameters:
position (Cartesian3) 相機的位置。
direction (Cartesian3) 前進方向。
up (Cartesian3) 向上方向。
right (Cartesian3) 正確的方向。
result (Matrix4) 存儲結果的對象。
(static) computeViewportTransformation(viewport, nearDepthRange, farDepthRange, result) → {Matrix4}
計算從標準化設備坐標轉換為窗口坐標的Matrix4實例。
Parameters:
viewport (Object) (default { x : 0.0, y : 0.0, width : 0.0, height : 0.0 }) 如示例1所示的視區角。
nearDepthRange (Number) (default 0.0) 窗口坐標中的近平面距離。
farDepthRange (Number) (default 1.0) 窗口坐標中的遠平面距離。
result (Matrix4) 存儲結果的對象。
Example
// Create viewport transformation using an explicit viewport and depth range.
var m = bmgl.Matrix4.computeViewportTransformation({
    x : 0.0,
    y : 0.0,
    width : 1024.0,
    height : 768.0
}, 0.0, 1.0, new bmgl.Matrix4());
(static) equals(left, right) → {Boolean}
比較提供的矩陣組件,如果它們相等,則返回true,否則返回false
Parameters:
left (Matrix4) 第一個矩陣。
right (Matrix4) 第二個矩陣。
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(bmgl.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
(static) equalsEpsilon(left, right, epsilon) → {Boolean}
比較提供的矩陣組件,如果它們在提供的epsilon中,則返回true,否則返回false
Parameters:
left (Matrix4) 第一個矩陣。
right (Matrix4) 第二個矩陣。
epsilon (Number) 用于相等性測試的epsilon。
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(bmgl.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
(static) fromArray(array, startingIndex, result) → {Matrix4}
從數組中的16個連續元素創建matrix4。
Parameters:
array (Array.<Number>) 16個連續元素對應矩陣位置的數組。假定列主順序。
startingIndex (Number) (default 0) 第一個元素數組中的偏移量,它對應于矩陣中第一列第一行的位置。
result (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 = bmgl.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 = bmgl.Matrix4.fromArray(v2, 2);
(static) fromCamera(camera, result) → {Matrix4}
從相機計算Matrix4實例。
Parameters:
camera (Camera) 要使用的攝像頭。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
(static) fromColumnMajorArray(values, result) → {Matrix4}
從列主順序數組計算matrix4實例。
Parameters:
values (Array.<Number>) 列主順序數組。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
(static) fromRotationTranslation(rotation, translation, result) → {Matrix4}
從表示旋轉的Matrix3和表示轉換的Cartesian3計算Matrix4實例。
Parameters:
rotation (Matrix3) 表示旋轉的矩陣的左上角。
translation (Cartesian3) (default Cartesian3.ZERO) 表示翻譯的矩陣的右上角。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
(static) fromRowMajorArray(values, result) → {Matrix4}
從行主順序數組計算matrix4實例。生成的矩陣將按主列順序排列。
Parameters:
values (Array.<Number>) 行主順序數組。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
(static) fromScale(scale, result) → {Matrix4}
計算表示非均勻比例的Matrix4實例。
Parameters:
scale (Cartesian3) X、Y和Z比例因子。
result (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 = bmgl.Matrix4.fromScale(new bmgl.Cartesian3(7.0, 8.0, 9.0));
(static) fromTranslation(translation, result) → {Matrix4}
從表示轉換的cartesian3創建matrix4實例。
Parameters:
translation (Cartesian3) 表示翻譯的矩陣的右上角。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
See:
(static) fromTranslationQuaternionRotationScale(translation, rotation, scale, result) → {Matrix4}
使用四元數表示的旋轉,從平移、旋轉和縮放(TRS)表示計算Matrix4實例。
Parameters:
translation (Cartesian3) 翻譯轉換。
rotation (Quaternion) 旋轉變換。
scale (Cartesian3) 非均勻尺度變換。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
Example
var result = bmgl.Matrix4.fromTranslationQuaternionRotationScale(
  new bmgl.Cartesian3(1.0, 2.0, 3.0), // translation
  bmgl.Quaternion.IDENTITY,           // rotation
  new bmgl.Cartesian3(7.0, 8.0, 9.0), // scale
  result);
(static) fromTranslationRotationScale(translationRotationScale, result) → {Matrix4}
TranslationRotationScale實例創建matrix4實例。
Parameters:
translationRotationScale (TranslationRotationScale) 實例。
result (Matrix4) 將在其中存儲結果的對象,如果未定義,將創建新實例。
(static) fromUniformScale(scale, result) → {Matrix4}
計算表示統一比例的Matrix4實例。
Parameters:
scale (Number) 均勻比例因子。
result (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 = bmgl.Matrix4.fromUniformScale(2.0);
(static) getColumn(matrix, index, result) → {Cartesian4}
以cartesian4實例的形式檢索所提供索引處的矩陣列的副本。
Parameters:
matrix (Matrix4) 要使用的矩陣。
index (Number) 要檢索的列的從零開始的索引。
result (Cartesian4) 存儲結果的對象。
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 = bmgl.Matrix4.getColumn(m, 2, new bmgl.Cartesian4());
//Example 2: Sets values for Cartesian instance
var a = new bmgl.Cartesian4();
bmgl.Matrix4.getColumn(m, 2, a);

// a.x = 12.0; a.y = 16.0; a.z = 20.0; a.w = 24.0;
Throws
(static) getElementIndex(row, column) → {Number}
在提供的行和列處計算元素的數組索引。
Parameters:
row (Number) 行的從零開始的索引。
column (Number) 列的從零開始的索引。
Example
var myMatrix = new bmgl.Matrix4();
var column1Row0Index = bmgl.Matrix4.getElementIndex(1, 0);
var column1Row0 = myMatrix[column1Row0Index];
myMatrix[column1Row0Index] = 10.0;
Throws
(static) getMatrix3(matrix, result) → {Matrix3}
獲取所提供矩陣的左上3x3旋轉矩陣,假定該矩陣是仿射變換矩陣。
Parameters:
matrix (Matrix4) 要使用的矩陣。
result (Matrix3) 存儲結果的對象。
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 bmgl.Matrix3();
bmgl.Matrix4.getMatrix3(m,b);

// b = [10.0, 14.0, 18.0]
//     [11.0, 15.0, 19.0]
//     [12.0, 16.0, 20.0]
(static) getMaximumScale(matrix) → {Number}
假設矩陣是仿射變換,則計算最大比例。最大比例是左上3x3矩陣中列向量的最大長度。
Parameters:
matrix (Matrix4) 矩陣。
(static) getRotation(matrix, result) → {Matrix3}
獲取所提供矩陣的左上3x3旋轉矩陣,假定該矩陣是仿射變換矩陣。
Parameters:
matrix (Matrix4) 要使用的矩陣。
result (Matrix3) 存儲結果的對象。

Deprecated: moved to Matrix4.getMatrix3

(static) getRow(matrix, index, result) → {Cartesian4}
以cartesian4實例的形式檢索所提供索引處的矩陣行的副本。
Parameters:
matrix (Matrix4) 要使用的矩陣。
index (Number) 要檢索的行的從零開始的索引。
result (Cartesian4) 存儲結果的對象。
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 = bmgl.Matrix4.getRow(m, 2, new bmgl.Cartesian4());
//Example 2: Sets values for a Cartesian instance
var a = new bmgl.Cartesian4();
bmgl.Matrix4.getRow(m, 2, a);

// a.x = 18.0; a.y = 19.0; a.z = 20.0; a.w = 21.0;
Throws
(static) getScale(matrix, result) → {Cartesian3}
假設矩陣是仿射變換,則提取不均勻尺度。
Parameters:
matrix (Matrix4) 矩陣。
result (Cartesian3) 存儲結果的對象。
(static) getTranslation(matrix, result) → {Cartesian3}
獲取所提供矩陣的轉換部分,假定該矩陣是仿射變換矩陣。
Parameters:
matrix (Matrix4) 要使用的矩陣。
result (Cartesian3) 存儲結果的對象。
(static) inverse(matrix, result) → {Matrix4}
使用Cramers規則計算所提供矩陣的逆矩陣。如果行列式為零,則矩陣不能反轉,并引發異常。如果矩陣是仿射變換矩陣,用Matrix4.inverseTransformation倒轉更有效。
Parameters:
matrix (Matrix4) 要反轉的矩陣。
result (Matrix4) 存儲結果的對象。
Throws
  • RuntimeError : 矩陣不可逆,因為它的確定度為零。
(static) inverseTransformation(matrix, result) → {Matrix4}
假設所提供的矩陣是仿射變換矩陣,其中左上3x3元素是旋轉矩陣,第四列中的上三個元素是平移,則計算所提供矩陣的逆矩陣。假定底行為[0,0,0,1]。未驗證矩陣的形式是否正確。此方法比使用Matrix4.inverse計算一般4x4矩陣的逆矩陣更快。
Parameters:
matrix (Matrix4) 要反轉的矩陣。
result (Matrix4) 存儲結果的對象。
(static) multiply(left, right, result) → {Matrix4}
計算兩個矩陣的乘積。
Parameters:
left (Matrix4) 第一個矩陣。
right (Matrix4) 第二個矩陣。
result (Matrix4) 存儲結果的對象。
(static) multiplyByMatrix3(matrix, rotation, result) → {Matrix4}
將轉換矩陣(底行為[0.0, 0.0, 0.0, 1.0])乘以3x3旋轉矩陣。這是針對Matrix4.multiply(m, Matrix4.fromRotationTranslation(rotation), m);的優化,具有較少的分配和算術運算。
Parameters:
matrix (Matrix4) 左邊的矩陣。
rotation (Matrix3) 右側的3x3旋轉矩陣。
result (Matrix4) 存儲結果的對象。
Example
// Instead of bmgl.Matrix4.multiply(m, bmgl.Matrix4.fromRotationTranslation(rotation), m);
bmgl.Matrix4.multiplyByMatrix3(m, rotation, m);
(static) multiplyByPoint(matrix, cartesian, result) → {Cartesian3}
計算矩陣和aCartesian3的乘積。這相當于用一個Cartesian4調用Matrix4.multiplyByVector,組件w為1,但返回一個Cartesian3而不是一個Cartesian4。
Parameters:
matrix (Matrix4) 矩陣。
cartesian (Cartesian3) 重點。
result (Cartesian3) 存儲結果的對象。
Example
var p = new bmgl.Cartesian3(1.0, 2.0, 3.0);
var result = bmgl.Matrix4.multiplyByPoint(matrix, p, new bmgl.Cartesian3());
(static) multiplyByPointAsVector(matrix, cartesian, result) → {Cartesian3}
計算矩陣和aCartesian3的乘積。這相當于使用Cartesian4調用Matrix4.multiplyByVector,其中w組件為零。
Parameters:
matrix (Matrix4) 矩陣。
cartesian (Cartesian3) 重點。
result (Cartesian3) 存儲結果的對象。
Example
var p = new bmgl.Cartesian3(1.0, 2.0, 3.0);
var result = bmgl.Matrix4.multiplyByPointAsVector(matrix, p, new bmgl.Cartesian3());
// A shortcut for
//   Cartesian3 p = ...
//   bmgl.Matrix4.multiplyByVector(matrix, new bmgl.Cartesian4(p.x, p.y, p.z, 0.0), result);
(static) multiplyByScalar(matrix, scalar, result) → {Matrix4}
計算矩陣和標量的乘積。
Parameters:
matrix (Matrix4) 矩陣。
scalar (Number) 要乘以的數字。
result (Matrix4) 存儲結果的對象。
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 = bmgl.Matrix4.multiplyByScalar(m, -2, new bmgl.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]
(static) multiplyByScale(matrix, scale, result) → {Matrix4}
將仿射變換矩陣(底行為[0.0, 0.0, 0.0, 1.0])乘以隱式非均勻比例矩陣。這是對Matrix4.multiply(m, Matrix4.fromUniformScale(scale), m);的優化,其中m必須是仿射矩陣。此函數執行的分配和算術運算更少。
Parameters:
matrix (Matrix4) 左邊的仿射矩陣。
scale (Cartesian3) 右側的不均勻刻度。
result (Matrix4) 存儲結果的對象。
Example
// Instead of bmgl.Matrix4.multiply(m, bmgl.Matrix4.fromScale(scale), m);
bmgl.Matrix4.multiplyByScale(m, scale, m);
See:
(static) multiplyByTranslation(matrix, translation, result) → {Matrix4}
將轉換矩陣(底行為[0.0, 0.0, 0.0, 1.0])乘以由Cartesian3定義的隱式轉換矩陣。這是針對Matrix4.multiply(m, Matrix4.fromTranslation(position), m);的優化,分配和算術運算更少。
Parameters:
matrix (Matrix4) 左邊的矩陣。
translation (Cartesian3) 右邊的譯文。
result (Matrix4) 存儲結果的對象。
Example
// Instead of bmgl.Matrix4.multiply(m, bmgl.Matrix4.fromTranslation(position), m);
bmgl.Matrix4.multiplyByTranslation(m, position, m);
(static) multiplyByUniformScale(matrix, scale, result) → {Matrix4}
將仿射變換矩陣(底行為[0.0, 0.0, 0.0, 1.0])乘以隱式均勻比例矩陣。這是對Matrix4.multiply(m, Matrix4.fromUniformScale(scale), m);的優化,其中m必須是仿射矩陣。此函數執行的分配和算術運算更少。
Parameters:
matrix (Matrix4) 左邊的仿射矩陣。
scale (Number) 右手邊的統一比例。
result (Matrix4) 存儲結果的對象。
Example
// Instead of bmgl.Matrix4.multiply(m, bmgl.Matrix4.fromUniformScale(scale), m);
bmgl.Matrix4.multiplyByUniformScale(m, scale, m);
See:
(static) multiplyByVector(matrix, cartesian, result) → {Cartesian4}
計算矩陣和列向量的乘積。
Parameters:
matrix (Matrix4) 矩陣。
cartesian (Cartesian4) 向量。
result (Cartesian4) 存儲結果的對象。
(static) multiplyTransformation(left, right, result) → {Matrix4}
假設兩個矩陣是仿射變換矩陣,其中左上3x3元素是旋轉矩陣,第四列中的上三個元素是平移,則計算兩個矩陣的乘積。假定底行為[0,0,0,1]。未驗證矩陣的形式是否正確。此方法比使用Matrix4.multiply計算一般4x4矩陣的產品更快。
Parameters:
left (Matrix4) 第一個矩陣。
right (Matrix4) 第二個矩陣。
result (Matrix4) 存儲結果的對象。
Example
var m1 = new bmgl.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 = bmgl.Transforms.eastNorthUpToFixedFrame(new bmgl.Cartesian3(1.0, 1.0, 1.0));
var m3 = bmgl.Matrix4.multiplyTransformation(m1, m2, new bmgl.Matrix4());
(static) negate(matrix, result) → {Matrix4}
計算所提供矩陣的否定副本。
Parameters:
matrix (Matrix4) 要求反的矩陣。
result (Matrix4) 存儲結果的對象。
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 = bmgl.Matrix4.negate(m, new bmgl.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]
(static) pack(value, array, startingIndex) → {Array.<Number>}
將提供的實例存儲到提供的數組中。
Parameters:
value (Matrix4) 要打包的值。
array (Array.<Number>) 要打包的數組。
startingIndex (Number) (default 0) 數組中開始打包元素的索引。
(static) setColumn(matrix, index, cartesian, result) → {Matrix4}
計算用提供的cartesian4實例替換所提供矩陣中指定列的新矩陣。
Parameters:
matrix (Matrix4) 要使用的矩陣。
index (Number) 要設置的列的從零開始的索引。
cartesian (Cartesian4) 值將分配給指定列的笛卡爾。
result (Matrix4) 存儲結果的對象。
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 = bmgl.Matrix4.setColumn(m, 2, new bmgl.Cartesian4(99.0, 98.0, 97.0, 96.0), new bmgl.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]
Throws
(static) setRow(matrix, index, cartesian, result) → {Matrix4}
計算用提供的cartesian4實例替換所提供矩陣中指定行的新矩陣。
Parameters:
matrix (Matrix4) 要使用的矩陣。
index (Number) 要設置的行的從零開始的索引。
cartesian (Cartesian4) 值將分配給指定行的笛卡爾。
result (Matrix4) 存儲結果的對象。
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 = bmgl.Matrix4.setRow(m, 2, new bmgl.Cartesian4(99.0, 98.0, 97.0, 96.0), new bmgl.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]
Throws
(static) setScale(matrix, scale, result) → {Matrix4}
計算用提供的比例替換比例的新矩陣。假設矩陣是仿射變換。
Parameters:
matrix (Matrix4) 要使用的矩陣。
scale (Cartesian3) 替換所提供矩陣的小數位數的小數位數。
result (Matrix4) 存儲結果的對象。
(static) setTranslation(matrix, translation, result) → {Matrix4}
計算一個新的矩陣,用所提供的翻譯替換所提供矩陣最右列中的翻譯。假設矩陣是仿射變換。
Parameters:
matrix (Matrix4) 要使用的矩陣。
translation (Cartesian3) 替換所提供矩陣的翻譯的翻譯。
result (Matrix4) 存儲結果的對象。
(static) subtract(left, right, result) → {Matrix4}
計算兩個矩陣的差。
Parameters:
left (Matrix4) 第一個矩陣。
right (Matrix4) 第二個矩陣。
result (Matrix4) 存儲結果的對象。
(static) toArray(matrix, result) → {Array.<Number>}
從提供的Matrix4實例計算數組。數組將按列主順序排列。
Parameters:
matrix (Matrix4) 要使用的矩陣。
result (Array.<Number>) 存儲結果的數組。
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 = bmgl.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]
(static) transpose(matrix, result) → {Matrix4}
計算所提供矩陣的轉置。
Parameters:
matrix (Matrix4) 要轉置的矩陣。
result (Matrix4) 存儲結果的對象。
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 = bmgl.Matrix4.transpose(m, new bmgl.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]
(static) unpack(array, startingIndex, result) → {Matrix4}
從壓縮數組中檢索實例。
Parameters:
array (Array.<Number>) 壓縮數組。
startingIndex (Number) (default 0) 要解包的元素的起始索引。
result (Matrix4) 存儲結果的對象。
主站蜘蛛池模板: 国产卡一卡二卡三乱码手机 | 欧美成人另类人妖 | 出水小说 | 久久福利影院 | 天天干天天日天天射天天操毛片 | 国产精品久久久久久久久久久久 | 国产精品日本一区二区不卡视频 | 青青精品| 国产精品麻豆99久久 | 亚洲精品无码久久不卡 | 男女一级簧色带 | 欧美女孩13一14v | 四虎影院在线免费观看视频 | 双性少爷受糙汉攻h | 日本www视频在线观看 | 日韩人成免费网站大片 | 久久中文字幕亚洲精品最新 | 国产免费午夜高清 | 欧美日韩国内 | 免费高清视频在线观看 | 色综合天天综合网站中国 | 亚洲国产成人精品无码区5566 | 日韩中文字幕网站 | 色综合视频一区二区观看 | 精品久久久久久综合网 | 丁香网五月天 | 国产亚洲精aa在线观看不卡 | 99超级碰碰成人香蕉网 | 欧美成狂野欧美在线观看 | 女老板用丝袜脚夹我好爽 | 亚洲成人aa | 日韩a无吗一区二区三区 | 99精品视频一区在线观看miya | 日本一区二区三区在线 视频 | 国产成人盗拍精品免费视频 | 经典千人斩一区二区视频 | 国产福利微拍精品一区二区 | 国产午夜视频在线观看网站 | 大胸美女被c | 久久婷婷电影网 | 欧美一级片免费看 |