Appearance
KBE3D / KBCore / Cesium / Matrix4
类: Matrix4
A 4x4 matrix, indexable as a column-major order array. Constructor parameters are in row-major order for code readability.
参数
The value for column 0, row 0.
参数
The value for column 1, row 0.
参数
The value for column 2, row 0.
参数
The value for column 3, row 0.
参数
The value for column 0, row 1.
参数
The value for column 1, row 1.
参数
The value for column 2, row 1.
参数
The value for column 3, row 1.
参数
The value for column 0, row 2.
参数
The value for column 1, row 2.
参数
The value for column 2, row 2.
参数
The value for column 3, row 2.
参数
The value for column 0, row 3.
参数
The value for column 1, row 3.
参数
The value for column 2, row 3.
参数
The value for column 3, row 3.
继承
ArrayLike<number>
实现
ArrayLike<number>
可索引
[n: number]: number
属性
packedLength
staticpackedLength:number
The number of elements used to pack the object into an array.
IDENTITY
readonlystaticIDENTITY:Matrix4
An immutable Matrix4 instance initialized to the identity matrix.
ZERO
readonlystaticZERO:Matrix4
An immutable Matrix4 instance initialized to the zero matrix.
COLUMN0ROW0
readonlystaticCOLUMN0ROW0:number
The index into Matrix4 for column 0, row 0.
COLUMN0ROW1
readonlystaticCOLUMN0ROW1:number
The index into Matrix4 for column 0, row 1.
COLUMN0ROW2
readonlystaticCOLUMN0ROW2:number
The index into Matrix4 for column 0, row 2.
COLUMN0ROW3
readonlystaticCOLUMN0ROW3:number
The index into Matrix4 for column 0, row 3.
COLUMN1ROW0
readonlystaticCOLUMN1ROW0:number
The index into Matrix4 for column 1, row 0.
COLUMN1ROW1
readonlystaticCOLUMN1ROW1:number
The index into Matrix4 for column 1, row 1.
COLUMN1ROW2
readonlystaticCOLUMN1ROW2:number
The index into Matrix4 for column 1, row 2.
COLUMN1ROW3
readonlystaticCOLUMN1ROW3:number
The index into Matrix4 for column 1, row 3.
COLUMN2ROW0
readonlystaticCOLUMN2ROW0:number
The index into Matrix4 for column 2, row 0.
COLUMN2ROW1
readonlystaticCOLUMN2ROW1:number
The index into Matrix4 for column 2, row 1.
COLUMN2ROW2
readonlystaticCOLUMN2ROW2:number
The index into Matrix4 for column 2, row 2.
COLUMN2ROW3
readonlystaticCOLUMN2ROW3:number
The index into Matrix4 for column 2, row 3.
COLUMN3ROW0
readonlystaticCOLUMN3ROW0:number
The index into Matrix4 for column 3, row 0.
COLUMN3ROW1
readonlystaticCOLUMN3ROW1:number
The index into Matrix4 for column 3, row 1.
COLUMN3ROW2
readonlystaticCOLUMN3ROW2:number
The index into Matrix4 for column 3, row 2.
COLUMN3ROW3
readonlystaticCOLUMN3ROW3:number
The index into Matrix4 for column 3, row 3.
length
length:
number
Gets the number of items in the collection.
继承自
ArrayLike.length
方法
pack()
staticpack(value:Matrix4,array:number[],startingIndex?:number):number[]
Stores the provided instance into the provided array.
参数
value
Matrix4
The value to pack.
array
number[]
The array to pack into.
startingIndex?
number
The index into the array at which to start packing the elements.
返回
number[]
The array that was packed into
unpack()
staticunpack(array:number[],startingIndex?:number,result?:Matrix4):Matrix4
Retrieves an instance from a packed array.
参数
array
number[]
The packed array.
startingIndex?
number
The starting index of the element to be unpacked.
result?
Matrix4
The object into which to store the result.
返回
Matrix4
The modified result parameter or a new Matrix4 instance if one was not provided.
packArray()
staticpackArray(array:Matrix4[],result?:number[]):number[]
Flattens an array of Matrix4s into an array of components. The components are stored in column-major order.
参数
array
Matrix4[]
The array of matrices to pack.
result?
number[]
The array onto which to store the result. If this is a typed array, it must have array.length * 16 components, else a DeveloperError will be thrown. If it is a regular array, it will be resized to have (array.length * 16) elements.
返回
number[]
The packed array.
unpackArray()
staticunpackArray(array:number[],result?:Matrix4[]):Matrix4[]
Unpacks an array of column-major matrix components into an array of Matrix4s.
参数
array
number[]
The array of components to unpack.
result?
Matrix4[]
The array onto which to store the result.
返回
Matrix4[]
The unpacked array.
clone()
staticclone(matrix:Matrix4,result?:Matrix4):Matrix4
Duplicates a Matrix4 instance.
参数
matrix
Matrix4
The matrix to duplicate.
result?
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter or a new Matrix4 instance if one was not provided. (Returns undefined if matrix is undefined)
fromArray()
staticfromArray(array:number[],startingIndex?:number,result?:Matrix4):Matrix4
Creates a Matrix4 from 16 consecutive elements in an array.
参数
array
number[]
The array whose 16 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
startingIndex?
number
The offset into the array of the first element, which corresponds to first column first row position in the matrix.
result?
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter or a new Matrix4 instance if one was not provided.
示例
ts
// 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]
const 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];
const m = Cesium.Matrix4.fromArray(v);
// Create same Matrix4 with using an offset into an array
const 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];
const m2 = Cesium.Matrix4.fromArray(v2, 2);fromColumnMajorArray()
staticfromColumnMajorArray(values:number[],result?:Matrix4):Matrix4
Computes a Matrix4 instance from a column-major order array.
参数
values
number[]
The column-major order array.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
fromRowMajorArray()
staticfromRowMajorArray(values:number[],result?:Matrix4):Matrix4
Computes a Matrix4 instance from a row-major order array. The resulting matrix will be in column-major order.
参数
values
number[]
The row-major order array.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
fromRotationTranslation()
staticfromRotationTranslation(rotation:Matrix3,translation?:Cartesian3,result?:Matrix4):Matrix4
Computes a Matrix4 instance from a Matrix3 representing the rotation and a Cartesian3 representing the translation.
参数
rotation
The upper left portion of the matrix representing the rotation.
translation?
The upper right portion of the matrix representing the translation.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
fromTranslationQuaternionRotationScale()
staticfromTranslationQuaternionRotationScale(translation:Cartesian3,rotation:Quaternion,scale:Cartesian3,result?:Matrix4):Matrix4
Computes a Matrix4 instance from a translation, rotation, and scale (TRS) representation with the rotation represented as a quaternion.
参数
translation
The translation transformation.
rotation
The rotation transformation.
scale
The non-uniform scale transformation.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
示例
ts
const result = Cesium.Matrix4.fromTranslationQuaternionRotationScale(
new Cesium.Cartesian3(1.0, 2.0, 3.0), // translation
Cesium.Quaternion.IDENTITY, // rotation
new Cesium.Cartesian3(7.0, 8.0, 9.0), // scale
result);fromTranslationRotationScale()
staticfromTranslationRotationScale(translationRotationScale:TranslationRotationScale,result?:Matrix4):Matrix4
Creates a Matrix4 instance from a TranslationRotationScale instance.
参数
translationRotationScale
The instance.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
fromTranslation()
staticfromTranslation(translation:Cartesian3,result?:Matrix4):Matrix4
Creates a Matrix4 instance from a Cartesian3 representing the translation.
参数
translation
The upper right portion of the matrix representing the translation.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
fromScale()
staticfromScale(scale:Cartesian3,result?:Matrix4):Matrix4
Computes a Matrix4 instance representing a non-uniform scale.
参数
scale
The x, y, and z scale factors.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
示例
ts
// 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]
const m = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(7.0, 8.0, 9.0));fromUniformScale()
staticfromUniformScale(scale:number,result?:Matrix4):Matrix4
Computes a Matrix4 instance representing a uniform scale.
参数
scale
number
The uniform scale factor.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
示例
ts
// 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]
const m = Cesium.Matrix4.fromUniformScale(2.0);fromRotation()
staticfromRotation(rotation:Matrix3,result?:Matrix4):Matrix4
Creates a rotation matrix.
参数
rotation
The rotation matrix.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
fromCamera()
staticfromCamera(camera:Camera,result?:Matrix4):Matrix4
Computes a Matrix4 instance from a Camera.
参数
camera
The camera to use.
result?
Matrix4
The object in which the result will be stored, if undefined a new instance will be created.
返回
Matrix4
The modified result parameter, or a new Matrix4 instance if one was not provided.
computePerspectiveFieldOfView()
staticcomputePerspectiveFieldOfView(fovY:number,aspectRatio:number,near:number,far:number,result:Matrix4):Matrix4
Computes a Matrix4 instance representing a perspective transformation matrix.
参数
fovY
number
The field of view along the Y axis in radians.
aspectRatio
number
The aspect ratio.
near
number
The distance to the near plane in meters.
far
number
The distance to the far plane in meters.
result
Matrix4
The object in which the result will be stored.
返回
Matrix4
The modified result parameter.
computeOrthographicOffCenter()
staticcomputeOrthographicOffCenter(left:number,right:number,bottom:number,top:number,near:number,far:number,result:Matrix4):Matrix4
Computes a Matrix4 instance representing an orthographic transformation matrix.
参数
left
number
The number of meters to the left of the camera that will be in view.
right
number
The number of meters to the right of the camera that will be in view.
bottom
number
The number of meters below of the camera that will be in view.
top
number
The number of meters above of the camera that will be in view.
near
number
The distance to the near plane in meters.
far
number
The distance to the far plane in meters.
result
Matrix4
The object in which the result will be stored.
返回
Matrix4
The modified result parameter.
computePerspectiveOffCenter()
staticcomputePerspectiveOffCenter(left:number,right:number,bottom:number,top:number,near:number,far:number,result:Matrix4):Matrix4
Computes a Matrix4 instance representing an off center perspective transformation.
参数
left
number
The number of meters to the left of the camera that will be in view.
right
number
The number of meters to the right of the camera that will be in view.
bottom
number
The number of meters below the camera that will be in view.
top
number
The number of meters above the camera that will be in view.
near
number
The distance to the near plane in meters.
far
number
The distance to the far plane in meters.
result
Matrix4
The object in which the result will be stored.
返回
Matrix4
The modified result parameter.
computeInfinitePerspectiveOffCenter()
staticcomputeInfinitePerspectiveOffCenter(left:number,right:number,bottom:number,top:number,near:number,result:Matrix4):Matrix4
Computes a Matrix4 instance representing an infinite off center perspective transformation.
参数
left
number
The number of meters to the left of the camera that will be in view.
right
number
The number of meters to the right of the camera that will be in view.
bottom
number
The number of meters below of the camera that will be in view.
top
number
The number of meters above of the camera that will be in view.
near
number
The distance to the near plane in meters.
result
Matrix4
The object in which the result will be stored.
返回
Matrix4
The modified result parameter.
computeViewportTransformation()
staticcomputeViewportTransformation(viewport?:any,nearDepthRange?:number,farDepthRange?:number,result?:Matrix4):Matrix4
Computes a Matrix4 instance that transforms from normalized device coordinates to window coordinates.
参数
viewport?
any
The viewport's corners as shown in Example 1.
nearDepthRange?
number
The near plane distance in window coordinates.
farDepthRange?
number
The far plane distance in window coordinates.
result?
Matrix4
The object in which the result will be stored.
返回
Matrix4
The modified result parameter.
示例
ts
// Create viewport transformation using an explicit viewport and depth range.
const m = Cesium.Matrix4.computeViewportTransformation({
x : 0.0,
y : 0.0,
width : 1024.0,
height : 768.0
}, 0.0, 1.0, new Cesium.Matrix4());computeView()
staticcomputeView(position:Cartesian3,direction:Cartesian3,up:Cartesian3,right:Cartesian3,result:Matrix4):Matrix4
Computes a Matrix4 instance that transforms from world space to view space.
参数
position
The position of the camera.
direction
The forward direction.
up
The up direction.
right
The right direction.
result
Matrix4
The object in which the result will be stored.
返回
Matrix4
The modified result parameter.
toArray()
statictoArray(matrix:Matrix4,result?:number[]):number[]
Computes an Array from the provided Matrix4 instance. The array will be in column-major order.
参数
matrix
Matrix4
The matrix to use..
result?
number[]
The Array onto which to store the result.
返回
number[]
The modified Array parameter or a new Array instance if one was not provided.
示例
ts
//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]
const a = Cesium.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]getElementIndex()
staticgetElementIndex(row:number,column:number):number
Computes the array index of the element at the provided row and column.
参数
row
number
The zero-based index of the row.
column
number
The zero-based index of the column.
返回
number
The index of the element at the provided row and column.
示例
ts
const myMatrix = new Cesium.Matrix4();
const column1Row0Index = Cesium.Matrix4.getElementIndex(1, 0);
const column1Row0 = myMatrix[column1Row0Index];
myMatrix[column1Row0Index] = 10.0;getColumn()
staticgetColumn(matrix:Matrix4,index:number,result:Cartesian4):Cartesian4
Retrieves a copy of the matrix column at the provided index as a Cartesian4 instance.
参数
matrix
Matrix4
The matrix to use.
index
number
The zero-based index of the column to retrieve.
result
The object onto which to store the result.
返回
The modified result parameter.
Examples
ts
//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
const a = Cesium.Matrix4.getColumn(m, 2, new Cesium.Cartesian4());ts
//Example 2: Sets values for Cartesian instance
const a = new Cesium.Cartesian4();
Cesium.Matrix4.getColumn(m, 2, a);
// a.x = 12.0; a.y = 16.0; a.z = 20.0; a.w = 24.0;setColumn()
staticsetColumn(matrix:Matrix4,index:number,cartesian:Cartesian4,result:Matrix4):Matrix4
Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian4 instance.
参数
matrix
Matrix4
The matrix to use.
index
number
The zero-based index of the column to set.
cartesian
The Cartesian whose values will be assigned to the specified column.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
//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]
const a = Cesium.Matrix4.setColumn(m, 2, new Cesium.Cartesian4(99.0, 98.0, 97.0, 96.0), new Cesium.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]getRow()
staticgetRow(matrix:Matrix4,index:number,result:Cartesian4):Cartesian4
Retrieves a copy of the matrix row at the provided index as a Cartesian4 instance.
参数
matrix
Matrix4
The matrix to use.
index
number
The zero-based index of the row to retrieve.
result
The object onto which to store the result.
返回
The modified result parameter.
Examples
ts
//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
const a = Cesium.Matrix4.getRow(m, 2, new Cesium.Cartesian4());ts
//Example 2: Sets values for a Cartesian instance
const a = new Cesium.Cartesian4();
Cesium.Matrix4.getRow(m, 2, a);
// a.x = 18.0; a.y = 19.0; a.z = 20.0; a.w = 21.0;setRow()
staticsetRow(matrix:Matrix4,index:number,cartesian:Cartesian4,result:Matrix4):Matrix4
Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian4 instance.
参数
matrix
Matrix4
The matrix to use.
index
number
The zero-based index of the row to set.
cartesian
The Cartesian whose values will be assigned to the specified row.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
//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]
const a = Cesium.Matrix4.setRow(m, 2, new Cesium.Cartesian4(99.0, 98.0, 97.0, 96.0), new Cesium.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]setTranslation()
staticsetTranslation(matrix:Matrix4,translation:Cartesian3,result:Matrix4):Matrix4
Computes a new matrix that replaces the translation in the rightmost column of the provided matrix with the provided translation. This assumes the matrix is an affine transformation.
参数
matrix
Matrix4
The matrix to use.
translation
The translation that replaces the translation of the provided matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
setScale()
staticsetScale(matrix:Matrix4,scale:Cartesian3,result:Matrix4):Matrix4
Computes a new matrix that replaces the scale with the provided scale. This assumes the matrix is an affine transformation.
参数
matrix
Matrix4
The matrix to use.
scale
The scale that replaces the scale of the provided matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
setUniformScale()
staticsetUniformScale(matrix:Matrix4,scale:number,result:Matrix4):Matrix4
Computes a new matrix that replaces the scale with the provided uniform scale. This assumes the matrix is an affine transformation.
参数
matrix
Matrix4
The matrix to use.
scale
number
The uniform scale that replaces the scale of the provided matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
getScale()
staticgetScale(matrix:Matrix4,result:Cartesian3):Cartesian3
Extracts the non-uniform scale assuming the matrix is an affine transformation.
参数
matrix
Matrix4
The matrix.
result
The object onto which to store the result.
返回
The modified result parameter
getMaximumScale()
staticgetMaximumScale(matrix:Matrix4):number
Computes the maximum scale assuming the matrix is an affine transformation. The maximum scale is the maximum length of the column vectors in the upper-left 3x3 matrix.
参数
matrix
Matrix4
The matrix.
返回
number
The maximum scale.
setRotation()
staticsetRotation(matrix:Matrix4,rotation:Matrix3,result:Matrix4):Matrix4
Sets the rotation assuming the matrix is an affine transformation.
参数
matrix
Matrix4
The matrix.
rotation
The rotation matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
getRotation()
staticgetRotation(matrix:Matrix4,result:Matrix3):Matrix3
Extracts the rotation matrix assuming the matrix is an affine transformation.
参数
matrix
Matrix4
The matrix.
result
The object onto which to store the result.
返回
The modified result parameter.
multiply()
staticmultiply(left:Matrix4,right:Matrix4,result:Matrix4):Matrix4
Computes the product of two matrices.
参数
left
Matrix4
The first matrix.
right
Matrix4
The second matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
add()
staticadd(left:Matrix4,right:Matrix4,result:Matrix4):Matrix4
Computes the sum of two matrices.
参数
left
Matrix4
The first matrix.
right
Matrix4
The second matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
subtract()
staticsubtract(left:Matrix4,right:Matrix4,result:Matrix4):Matrix4
Computes the difference of two matrices.
参数
left
Matrix4
The first matrix.
right
Matrix4
The second matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
multiplyTransformation()
staticmultiplyTransformation(left:Matrix4,right:Matrix4,result:Matrix4):Matrix4
Computes the product of two matrices assuming the matrices are affine transformation matrices, where the upper left 3x3 elements are any matrix, and the upper three elements in the fourth column are the translation. The bottom row is assumed to be [0, 0, 0, 1]. The matrix is not verified to be in the proper form. This method is faster than computing the product for general 4x4 matrices using Matrix4.multiply.
参数
left
Matrix4
The first matrix.
right
Matrix4
The second matrix.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
const m1 = new Cesium.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);
const m2 = Cesium.Transforms.eastNorthUpToFixedFrame(new Cesium.Cartesian3(1.0, 1.0, 1.0));
const m3 = Cesium.Matrix4.multiplyTransformation(m1, m2, new Cesium.Matrix4());multiplyByMatrix3()
staticmultiplyByMatrix3(matrix:Matrix4,rotation:Matrix3,result:Matrix4):Matrix4
Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>) by a 3x3 rotation matrix. This is an optimization for <code>Matrix4.multiply(m, Matrix4.fromRotationTranslation(rotation), m);</code> with less allocations and arithmetic operations.
参数
matrix
Matrix4
The matrix on the left-hand side.
rotation
The 3x3 rotation matrix on the right-hand side.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
// Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromRotationTranslation(rotation), m);
Cesium.Matrix4.multiplyByMatrix3(m, rotation, m);multiplyByTranslation()
staticmultiplyByTranslation(matrix:Matrix4,translation:Cartesian3,result:Matrix4):Matrix4
Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>) by an implicit translation matrix defined by a Cartesian3. This is an optimization for <code>Matrix4.multiply(m, Matrix4.fromTranslation(position), m);</code> with less allocations and arithmetic operations.
参数
matrix
Matrix4
The matrix on the left-hand side.
translation
The translation on the right-hand side.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
// Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromTranslation(position), m);
Cesium.Matrix4.multiplyByTranslation(m, position, m);multiplyByScale()
staticmultiplyByScale(matrix:Matrix4,scale:Cartesian3,result:Matrix4):Matrix4
Multiplies an affine transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>) by an implicit non-uniform scale matrix. This is an optimization for <code>Matrix4.multiply(m, Matrix4.fromUniformScale(scale), m);</code>, where <code>m</code> must be an affine matrix. This function performs fewer allocations and arithmetic operations.
参数
matrix
Matrix4
The affine matrix on the left-hand side.
scale
The non-uniform scale on the right-hand side.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
// Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromScale(scale), m);
Cesium.Matrix4.multiplyByScale(m, scale, m);multiplyByUniformScale()
staticmultiplyByUniformScale(matrix:Matrix4,scale:number,result:Matrix4):Matrix4
Computes the product of a matrix times a uniform scale, as if the scale were a scale matrix.
参数
matrix
Matrix4
The matrix on the left-hand side.
scale
number
The uniform scale on the right-hand side.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
// Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromUniformScale(scale), m);
Cesium.Matrix4.multiplyByUniformScale(m, scale, m);multiplyByVector()
staticmultiplyByVector(matrix:Matrix4,cartesian:Cartesian4,result:Cartesian4):Cartesian4
Computes the product of a matrix and a column vector.
参数
matrix
Matrix4
The matrix.
cartesian
The vector.
result
The object onto which to store the result.
返回
The modified result parameter.
multiplyByPointAsVector()
staticmultiplyByPointAsVector(matrix:Matrix4,cartesian:Cartesian3,result:Cartesian3):Cartesian3
Computes the product of a matrix and a Cartesian3. This is equivalent to calling Matrix4.multiplyByVector with a Cartesian4 with a <code>w</code> component of zero.
参数
matrix
Matrix4
The matrix.
cartesian
The point.
result
The object onto which to store the result.
返回
The modified result parameter.
示例
ts
const p = new Cesium.Cartesian3(1.0, 2.0, 3.0);
const result = Cesium.Matrix4.multiplyByPointAsVector(matrix, p, new Cesium.Cartesian3());
// A shortcut for
// Cartesian3 p = ...
// Cesium.Matrix4.multiplyByVector(matrix, new Cesium.Cartesian4(p.x, p.y, p.z, 0.0), result);multiplyByPoint()
staticmultiplyByPoint(matrix:Matrix4,cartesian:Cartesian3,result:Cartesian3):Cartesian3
Computes the product of a matrix and a Cartesian3. This is equivalent to calling Matrix4.multiplyByVector with a Cartesian4 with a <code>w</code> component of 1, but returns a Cartesian3 instead of a Cartesian4.
参数
matrix
Matrix4
The matrix.
cartesian
The point.
result
The object onto which to store the result.
返回
The modified result parameter.
示例
ts
const p = new Cesium.Cartesian3(1.0, 2.0, 3.0);
const result = Cesium.Matrix4.multiplyByPoint(matrix, p, new Cesium.Cartesian3());multiplyByScalar()
staticmultiplyByScalar(matrix:Matrix4,scalar:number,result:Matrix4):Matrix4
Computes the product of a matrix and a scalar.
参数
matrix
Matrix4
The matrix.
scalar
number
The number to multiply by.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
//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]
const a = Cesium.Matrix4.multiplyByScalar(m, -2, new Cesium.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]negate()
staticnegate(matrix:Matrix4,result:Matrix4):Matrix4
Computes a negated copy of the provided matrix.
参数
matrix
Matrix4
The matrix to negate.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
//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]
const a = Cesium.Matrix4.negate(m, new Cesium.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]transpose()
statictranspose(matrix:Matrix4,result:Matrix4):Matrix4
Computes the transpose of the provided matrix.
参数
matrix
Matrix4
The matrix to transpose.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
示例
ts
//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]
const a = Cesium.Matrix4.transpose(m, new Cesium.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]abs()
staticabs(matrix:Matrix4,result:Matrix4):Matrix4
Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.
参数
matrix
Matrix4
The matrix with signed elements.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
equals()
staticequals(left?:Matrix4,right?:Matrix4):boolean
Compares the provided matrices componentwise and returns <code>true</code> if they are equal, <code>false</code> otherwise.
参数
left?
Matrix4
The first matrix.
right?
Matrix4
The second matrix.
返回
boolean
true if left and right are equal, false otherwise.
示例
ts
//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(Cesium.Matrix4.equals(a,b)) {
console.log("Both matrices are equal");
} else {
console.log("They are not equal");
}
//Prints "Both matrices are equal" on the consoleequalsEpsilon()
staticequalsEpsilon(left?:Matrix4,right?:Matrix4,epsilon?:number):boolean
Compares the provided matrices componentwise and returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
参数
left?
Matrix4
The first matrix.
right?
Matrix4
The second matrix.
epsilon?
number
The epsilon to use for equality testing.
返回
boolean
true if left and right are within the provided epsilon, false otherwise.
示例
ts
//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(Cesium.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 consolegetTranslation()
staticgetTranslation(matrix:Matrix4,result:Cartesian3):Cartesian3
Gets the translation portion of the provided matrix, assuming the matrix is an affine transformation matrix.
参数
matrix
Matrix4
The matrix to use.
result
The object onto which to store the result.
返回
The modified result parameter.
getMatrix3()
staticgetMatrix3(matrix:Matrix4,result:Matrix3):Matrix3
Gets the upper left 3x3 matrix of the provided matrix.
参数
matrix
Matrix4
The matrix to use.
result
The object onto which to store the result.
返回
The modified result parameter.
示例
ts
// 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]
const b = new Cesium.Matrix3();
Cesium.Matrix4.getMatrix3(m,b);
// b = [10.0, 14.0, 18.0]
// [11.0, 15.0, 19.0]
// [12.0, 16.0, 20.0]inverse()
staticinverse(matrix:Matrix4,result:Matrix4):Matrix4
Computes the inverse of the provided matrix using Cramers Rule. If the determinant is zero, the matrix can not be inverted, and an exception is thrown. If the matrix is a proper rigid transformation, it is more efficient to invert it with Matrix4.inverseTransformation.
参数
matrix
Matrix4
The matrix to invert.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
inverseTransformation()
staticinverseTransformation(matrix:Matrix4,result:Matrix4):Matrix4
Computes the inverse of the provided matrix assuming it is a proper rigid matrix, where the upper left 3x3 elements are a rotation matrix, and the upper three elements in the fourth column are the translation. The bottom row is assumed to be [0, 0, 0, 1]. The matrix is not verified to be in the proper form. This method is faster than computing the inverse for a general 4x4 matrix using Matrix4.inverse.
参数
matrix
Matrix4
The matrix to invert.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
inverseTranspose()
staticinverseTranspose(matrix:Matrix4,result:Matrix4):Matrix4
Computes the inverse transpose of a matrix.
参数
matrix
Matrix4
The matrix to transpose and invert.
result
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter.
clone()
clone(
result?:Matrix4):Matrix4
Duplicates the provided Matrix4 instance.
参数
result?
Matrix4
The object onto which to store the result.
返回
Matrix4
The modified result parameter or a new Matrix4 instance if one was not provided.
equals()
equals(
right?:Matrix4):boolean
Compares this matrix to the provided matrix componentwise and returns <code>true</code> if they are equal, <code>false</code> otherwise.
参数
right?
Matrix4
The right hand side matrix.
返回
boolean
true if they are equal, false otherwise.
equalsEpsilon()
equalsEpsilon(
right?:Matrix4,epsilon?:number):boolean
Compares this matrix to the provided matrix componentwise and returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
参数
right?
Matrix4
The right hand side matrix.
epsilon?
number
The epsilon to use for equality testing.
返回
boolean
true if they are within the provided epsilon, false otherwise.
toString()
toString():
string
Computes a string representing this Matrix with each row being on a separate line and in the format '(column0, column1, column2, column3)'.
返回
string
A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2, column3)'.
构造函数
构造函数
new Matrix4(
column0Row0?:number,column1Row0?:number,column2Row0?:number,column3Row0?:number,column0Row1?:number,column1Row1?:number,column2Row1?:number,column3Row1?:number,column0Row2?:number,column1Row2?:number,column2Row2?:number,column3Row2?:number,column0Row3?:number,column1Row3?:number,column2Row3?:number,column3Row3?:number):Matrix4
参数
column0Row0?
number
column1Row0?
number
column2Row0?
number
column3Row0?
number
column0Row1?
number
column1Row1?
number
column2Row1?
number
column3Row1?
number
column0Row2?
number
column1Row2?
number
column2Row2?
number
column3Row2?
number
column0Row3?
number
column1Row3?
number
column2Row3?
number
column3Row3?
number
返回
Matrix4
继承自
ArrayLike<number>.constructor
