Matrix

Matrix

用于存储矩阵数据的类(4x4)

Members

updateFlag : number

获取矩阵的更新标志,该标志是矩阵的唯一编号。每次矩阵数据更改时,它都会增加。您可以使用它来快速判断矩阵是否被修改。
获取矩阵的内部数据

staticreadonly IdentityReadOnly : DeepImmutable<Matrix>

获取只读的单位矩阵

Methods

constructor()

创建一个空矩阵(用零填充)

isIdentity() → boolean

检查当前矩阵是否单位矩阵@returnss true表示矩阵为单位矩阵
以浮点数组形式返回矩阵@returns 返回基础数组的矩阵
以浮点数组形式返回矩阵@returns 返回基础数组的矩阵。

invert() → Matrix

反转当前矩阵@returns 返回当前的反向矩阵

reset() → Matrix

将所有矩阵元素设置为零@returns 返回当前矩阵

add(other) → Matrix

将当前矩阵与第二个矩阵相加
Name Type Description
other DeepImmutable<Matrix> 要添加的矩阵

addToRef(other,result) → Matrix

将给定矩阵“result”设置为当前矩阵和给定矩阵的相加
Name Type Description
other DeepImmutable<Matrix> 要添加的矩阵
result Matrix 目标矩阵

addToSelf(other) → Matrix

将给定矩阵就地添加到当前矩阵
Name Type Description
other DeepImmutable<Matrix> 第二个操作数

invertToRef(other) → Matrix

将给定矩阵设置为当前反向矩阵
Name Type Description
other Matrix 目标矩阵

addAtIndex(index,value) → Matrix

在当前矩阵中的指定位置添加值
Name Type Description
index number 索引。在0到15之间。
value number 要添加的值

multiplyAtIndex(index,value) → Matrix

将当前矩阵中的指定位置乘以一个值
Name Type Description
index number 索引。在0到15之间。
value number 要添加的值

setTranslationFromFloats(x,y,z) → Matrix

在当前矩阵中插入平移向量(使用三个浮点)
Name Type Description
x number 转换的第一个分量
y number 转换的第二个分量
z number 转换的第三个分量

addTranslationFromFloats(x,y,z) → Matrix

在当前矩阵中添加平移向量(使用三个浮点)
Name Type Description
x number 转换的第一个分量
y number 转换的第二个分量
z number 转换的第三个分量

setTranslation(vector3) → Matrix

在当前矩阵中插入平移向量
Name Type Description
vector3 DeepImmutable<Vector3> 要插入的转换

getTranslation() → Vector3

获取当前矩阵的转换值@returns 返回一个新Vector3作为从矩阵中提取的平移

getTranslationToRef(result) → Matrix

用从矩阵中提取的平移填充Vector3
Name Type Description
result Vector3 用于存储翻译的Vector3

removeRotationAndScaling() → Matrix

从矩阵中删除旋转和缩放部分@returns 返回更新后的矩阵

multiply(other) → Matrix

两个矩阵相乘
Name Type Description
other DeepImmutable<Matrix> 第二个操作数

copyFrom(other) → Matrix

从给定矩阵复制当前矩阵
Name Type Description
other DeepImmutable<Matrix> 源矩阵

copyToArray(array,offset) → Matrix

使用当前矩阵值从起始索引填充给定数组
Name Type Description
array Float32Array 目标数组
offset number optional目标数组中开始存储值的偏移量

multiplyToRef(other,result) → Matrix

将给定矩阵“result”与当前矩阵和给定矩阵的乘法结果一起设置
Name Type Description
other DeepImmutable<Matrix> 第二个操作数
result Matrix 存储乘法的矩阵

multiplyToArray(other,result,offset) → Matrix

将给定索引“offset”与当前矩阵和给定矩阵的乘积设置为数组“result”
Name Type Description
other DeepImmutable<Matrix> 第二个操作数
result Float32Array 存储乘法的数组
offset number 目标数组中开始存储值的偏移量

equals(value) → boolean

检查此矩阵与第二个矩阵是否相等
Name Type Description
value DeepImmutable<Matrix> 要比较的第二个矩阵

clone() → Matrix

克隆当前矩阵@从当前矩阵返回一个新矩阵

getClassName() → string

返回当前矩阵类的名称@returns 返回字符串“Matrix”

getHashCode() → number

获取当前矩阵的哈希代码@returns 返回哈希代码

decompose(scale,rotation,translation) → boolean

将当前矩阵分解为平移、旋转和缩放部分
Name Type Description
scale Vector3 optional作为更新参考的缩放Vector3
rotation Quaternion optional作为更新引用的旋转四元数
translation Vector3 optional作为更新参考的翻译Vector3

getRow(index) → Nullable<Vector4>

获取矩阵的特定行
Name Type Description
index number 要获取的行数

setRow(index,row) → Matrix

将当前矩阵的第th行索引设置为vector4值
Name Type Description
index number 要设置的行数

transpose() → Matrix

计算矩阵的转置@returns 返回新的转置矩阵

transposeToRef(result) → Matrix

计算矩阵的转置并将其存储在给定的矩阵中
Name Type Description
result Matrix 目标矩阵

setRowFromFloats(index,x,y,z,w) → Matrix

使用给定的4 x浮点值设置当前矩阵的第index行索引
Name Type Description
index number 行索引
x number 要设置的x分量
y number 要设置的y分量
z number 要设置的z分量
w number 要设置的w分量

scale(scale) → Matrix

用当前矩阵值乘以比例(浮点)计算并设置新矩阵
Name Type Description
scale number 比例因子

scaleToRef(scale,result) → Matrix

按因子将当前矩阵值缩放到给定的结果矩阵
Name Type Description
scale number 比例因子
result Matrix 存储结果的矩阵

scaleAndAddToRef(scale,result) → Matrix

按因子缩放当前矩阵值,并将结果添加到给定矩阵
Name Type Description
scale number 比例因子
result Matrix 存储结果的矩阵

toNormalMatrix(ref)

向给定矩阵写入一个标准矩阵,由该矩阵计算(使用第四行和第四列的单位矩阵中的值)。
Name Type Description
ref Matrix matrix以存储结果

getRotationMatrix() → Matrix

仅获取当前矩阵的旋转部分@returns 将新矩阵集返回到从当前矩阵提取的旋转矩阵

getRotationMatrixToRef(result) → Matrix

从当前旋转矩阵中提取旋转矩阵,并将其设置为给定的“result”
Name Type Description
result Matrix 存储数据的目标矩阵

toggleModelMatrixHandInPlace()

将模型矩阵从右手系切换到左手系,反之亦然

toggleProjectionMatrixHandInPlace()

将投影矩阵从右手系切换到左手系,反之亦然

staticFromArray(array,offset) → Matrix

从数组创建矩阵
Name Type Description
array DeepImmutable<ArrayLike<number>> 源数组
offset number optional源数组中的偏移量

staticFromArrayToRef(array,offset,result)

将数组的内容复制到给定的矩阵中
Name Type Description
array DeepImmutable<ArrayLike<number>> 源数组
offset number 源数组中的偏移量
result Matrix 目标矩阵

staticFromFloat32ArrayToRefScaled(array,offset,scale,result)

将每个分量乘以给定因子后,将数组存储到矩阵中
Name Type Description
array DeepImmutable<Float32Array> 源数组
offset number 源数组中的偏移量
scale number 缩放因子
result Matrix 目标矩阵

staticFromValuesToRef(initialM11,initialM12,initialM13,initialM14,initialM21,initialM22,initialM23,initialM24,initialM31,initialM32,initialM33,initialM34,initialM41,initialM42,initialM43,initialM44,result)

在给定矩阵中存储值列表(16)
Name Type Description
initialM11 number 第一行的第一个值
initialM12 number 第一行的第二个值
initialM13 number 第一行的第三个值
initialM14 number 第一行的第四个值
initialM21 number 第二行的第一个值
initialM22 number 第二行的第二个值
initialM23 number 第二行的第三个值
initialM24 number 第二行的第四个值
initialM31 number 第三行的第一个值
initialM32 number 第三行的第二个值
initialM33 number 第三行的第三个值
initialM34 number 第三行的第四个值
initialM41 number 第四行的第一个值
initialM42 number 第四行的第二个值
initialM43 number 第四行的第三个值
initialM44 number 第四行的第四个值
result Matrix 目标矩阵

staticFromValues(initialM11,initialM12,initialM13,initialM14,initialM21,initialM22,initialM23,initialM24,initialM31,initialM32,initialM33,initialM34,initialM41,initialM42,initialM43,initialM44) → Matrix

从值列表创建新矩阵(16)
Name Type Description
initialM11 number 第一行的第一个值
initialM12 number 第一行的第二个值
initialM13 number 第一行的第三个值
initialM14 number 第一行的第四个值
initialM21 number 第二行的第一个值
initialM22 number 第二行的第二个值
initialM23 number 第二行的第三个值
initialM24 number 第二行的第四个值
initialM31 number 第三行的第一个值
initialM32 number 第三行的第二个值
initialM33 number 第三行的第三个值
initialM34 number 第三行的第四个值
initialM41 number 第四行的第一个值
initialM42 number 第四行的第二个值
initialM43 number 第四行的第三个值
initialM44 number 第四行的第四个值

staticCompose(scale,rotation,translation) → Matrix

通过合并缩放(Vector3)、旋转(四元数)和平移(Vector3)创建新矩阵
Name Type Description
scale DeepImmutable<Vector3> 缩放Vector3
rotation DeepImmutable<Quaternion> 旋转四元数
translation DeepImmutable<Vector3> 平移Vector3

staticComposeToRef(scale,rotation,translation,result)

将矩阵设置为由合并缩放(Vector3)、旋转(四元数)和平移(Vector3)组成的值
Name Type Description
scale DeepImmutable<Vector3> 缩放Vector3
rotation DeepImmutable<Quaternion> 旋转四元数
translation DeepImmutable<Vector3> 平移Vector3
result Matrix 目标矩阵

staticIdentity() → Matrix

创建新的单位矩阵@returns 返回一个新的单位矩阵

staticIdentityToRef(result)

创建一个新的单位矩阵,并将结果存储在给定的矩阵中
Name Type Description
result Matrix 目标矩阵

staticZero() → Matrix

创建一个新的零矩阵@returns 返回一个新的零矩阵

staticRotationX(angle) → Matrix

创建围绕X轴为“angle”弧度的新旋转矩阵
Name Type Description
angle number 角度(以弧度为单位)

staticInvert(source) → Matrix

创建一个新矩阵作为给定矩阵的逆矩阵
Name Type Description
source DeepImmutable<Matrix> 源矩阵

staticRotationXToRef(angle,result)

创建围绕X轴为“angle”弧度的新旋转矩阵,并将其存储在给定矩阵中
Name Type Description
angle number 角度(以弧度为单位)
result Matrix 目标矩阵

staticRotationY(angle) → Matrix

创建围绕Y轴为“angle”弧度的新旋转矩阵
Name Type Description
angle number 角度(以弧度为单位)

staticRotationYToRef(angle,result)

创建围绕Y轴为“angle”弧度的新旋转矩阵,并将其存储在给定矩阵中
Name Type Description
angle number 角度(以弧度为单位)
result Matrix 目标矩阵

staticRotationZ(angle) → Matrix

创建围绕Z轴为“angle”弧度的新旋转矩阵
Name Type Description
angle number 角度(以弧度为单位)

staticRotationZToRef(angle,result)

创建围绕Z轴为“angle”弧度的新矩阵,并将其存储在给定矩阵中
Name Type Description
angle number 角度(以弧度为单位)
result Matrix 目标矩阵

staticRotationAxis(axis,angle) → Matrix

创建围绕给定轴为“angle”弧度的新旋转矩阵
Name Type Description
axis DeepImmutable<Vector3>
angle number 角度(以弧度为单位)

staticRotationAxisToRef(axis,angle,result)

创建围绕给定轴为“angle”弧度的新旋转矩阵,并将其存储在给定矩阵中
Name Type Description
axis DeepImmutable<Vector3>
angle number 角度(以弧度为单位)
result Matrix 目标矩阵

staticRotationAlignToRef(from,to,result)

获取归一化向量并返回一个旋转矩阵,以将“from”与“to”对齐。取自http://www.iquilezles.org/www/articles/noacos/noacos.htm
Name Type Description
from DeepImmutable<Vector3> 要对齐的向量
to DeepImmutable<Vector3> 要对齐的向量
result Matrix 目标矩阵

staticRotationYawPitchRoll(yaw,pitch,roll) → Matrix

创建旋转矩阵
Name Type Description
yaw number 弧度(Y轴) 偏航角
pitch number 弧度(X轴) 俯仰角

staticRotationYawPitchRollToRef(yaw,pitch,roll,result)

创建旋转矩阵并将其存储在给定矩阵中
Name Type Description
pitch number 弧度(X轴) 俯仰角
result Matrix 目标矩阵

staticScaling(x,y,z) → Matrix

创建缩放矩阵
Name Type Description
x number x轴上的比例因子
y number y轴上的比例因子
z number z轴上的比例因子

staticScalingToRef(x,y,z,result)

创建缩放矩阵并将其存储在给定矩阵中
Name Type Description
x number x轴上的比例因子
y number y轴上的比例因子
z number z轴上的比例因子
result Matrix 目标矩阵

staticTranslation(x,y,z) → Matrix

创建平移矩阵
Name Type Description
x number x轴上的平移
y number y轴上的平移
z number z轴上的平移

staticTranslationToRef(x,y,z,result)

创建平移矩阵并将其存储在给定矩阵中
Name Type Description
x number x轴上的平移
y number y轴上的平移
z number z轴上的平移
result Matrix 目标矩阵

staticLerp(startValue,endValue,gradient) → Matrix

返回一个新矩阵,其值是“startValue”和“endValue”矩阵之间的“gradient”(浮点)的插值。
Name Type Description
startValue DeepImmutable<Matrix> 起始值
endValue DeepImmutable<Matrix> 结束值
gradient number 渐变因子

staticDecomposeLerpToRef(startValue,endValue,gradient,result)

将矩阵更新为通过以下方式计算的值:*将“startValue”和“endValue”矩阵分解为各自的缩放、旋转和平移矩阵*使用“gradient”(浮点)为每个分解矩阵计算插值矩阵*用这三个插值后的缩放、旋转和平移矩阵重新构造一个新矩阵
Name Type Description
startValue DeepImmutable<Matrix> 第一个矩阵
endValue DeepImmutable<Matrix> 第二个矩阵
gradient number 两个矩阵之间的梯度
result Matrix 目标矩阵

staticLookAtLH(eye,target,up) → Matrix

获取一个新的旋转矩阵,用于旋转实体,使其从眼Vector3位置看目标Vector3,向上Vector3的方向类似于“向上”此功能在左手系模式下工作
Name Type Description
eye DeepImmutable<Vector3> 实体的最终位置
target DeepImmutable<Vector3> 实体应查看的位置
up DeepImmutable<Vector3> 实体的上方向向量

staticLookAtRH(eye,target,up) → Matrix

获取一个新的旋转矩阵,用于旋转实体,使其从眼Vector3位置看目标Vector3,向上Vector3的方向类似于“向上”此功能在右手系模式下工作
Name Type Description
eye DeepImmutable<Vector3> 实体的最终位置
target DeepImmutable<Vector3> 实体应查看的位置
up DeepImmutable<Vector3> 实体的上方向向量

staticLookAtRHToRef(eye,target,up,result)

将给定的“result”矩阵设置为用于旋转实体的旋转矩阵,以便它从眼Vector3位置查看目标Vector3,向上Vector3的方向类似于“向上”。此功能在右手系模式下工作
Name Type Description
eye DeepImmutable<Vector3> 实体的最终位置
target DeepImmutable<Vector3> 实体应查看的位置
up DeepImmutable<Vector3> 实体的上方向向量
result Matrix 目标矩阵

staticOrthoLH(width,height,znear,zfar) → Matrix

创建左手系正交投影矩阵
Name Type Description
width number 视口宽度
height number 视口高度
znear number 近剪裁平面
zfar number 远剪裁平面

staticOrthoLHToRef(width,height,znear,zfar,result)

将左手系正交投影存储到给定矩阵
Name Type Description
width number 视口宽度
height number 视口高度
znear number 近剪裁平面
zfar number 远剪裁平面
result Matrix 目标矩阵

staticOrthoOffCenterLH(left,right,bottom,top,znear,zfar) → Matrix

创建左手系正交投影矩阵
Name Type Description
left number 视口左坐标
right number 视口右坐标
bottom number 视口底部坐标
top number 视口顶部坐标
znear number 近剪裁平面
zfar number 远剪裁平面

staticOrthoOffCenterLHToRef(left,right,bottom,top,znear,zfar,result)

将左手系正交投影存储到给定矩阵中
Name Type Description
left number 视口左坐标
right number 视口右坐标
bottom number 视口底部坐标
top number 视口顶部坐标
znear number 近剪裁平面
zfar number 远剪裁平面
result Matrix 目标矩阵

staticOrthoOffCenterRH(left,right,bottom,top,znear,zfar) → Matrix

创建右手系正交投影矩阵
Name Type Description
left number 视口左坐标
right number 视口右坐标
bottom number 视口底部坐标
top number 视口顶部坐标
znear number 近剪裁平面
zfar number 远剪裁平面

staticOrthoOffCenterRHToRef(left,right,bottom,top,znear,zfar,result)

将右手系正交投影存储到给定矩阵中
Name Type Description
left number 视口左坐标
right number 视口右坐标
bottom number 视口底部坐标
top number 视口顶部坐标
znear number 近剪裁平面
zfar number 远剪裁平面
result Matrix 目标矩阵

staticPerspectiveLH(width,height,znear,zfar) → Matrix

创建左手系透视投影矩阵
Name Type Description
width number 视口宽度
height number 视口高度
znear number 近剪裁平面
zfar number 远剪裁平面

staticPerspectiveFovLH(fov,aspect,znear,zfar) → Matrix

创建左手系透视投影矩阵
Name Type Description
fov number 水平视野
aspect number 纵横比
znear number 近剪裁平面
zfar number 远剪裁平面

staticPerspectiveFovLHToRef(fov,aspect,znear,zfar,result,isVerticalFovFixed)

将左手系透视投影存储到给定矩阵中
Name Type Description
fov number 水平视野
aspect number 纵横比
znear number 近剪裁平面
zfar number 远剪裁平面
result Matrix 目标矩阵
isVerticalFovFixed boolean optional垂直固定(默认)或水平固定的视野

staticPerspectiveFovRH(fov,aspect,znear,zfar) → Matrix

创建右手系透视投影矩阵
Name Type Description
fov number 水平视野
aspect number 纵横比
znear number 近剪裁平面
zfar number 远剪裁平面

staticPerspectiveFovRHToRef(fov,aspect,znear,zfar,result,isVerticalFovFixed)

将右手系透视投影存储到给定矩阵中
Name Type Description
fov number 水平视野
aspect number 纵横比
znear number 近剪裁平面
zfar number 远剪裁平面
result Matrix 目标矩阵
isVerticalFovFixed boolean optional垂直固定(默认)或水平固定的视野

staticPerspectiveFovWebVRToRef() → {

在给定矩阵中存储WebVR信息的透视投影

staticGetFinalMatrix(viewport,world,view,projection,zmin,zmax) → Matrix

计算完整的变换矩阵
Name Type Description
viewport DeepImmutable<Viewport> 视口
world DeepImmutable<Matrix> 世界矩阵
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵
zmin number 近剪裁平面
zmax number 远剪裁平面

staticGetAsMatrix2x2(matrix) → Float32Array

从给定矩阵中提取2x2矩阵,并将结果存储在Float32Array中
Name Type Description
matrix DeepImmutable<Matrix> 矩阵

staticGetAsMatrix3x3(matrix) → Float32Array

从给定矩阵中提取3x3矩阵,并将结果存储在Float32Array中
Name Type Description
matrix DeepImmutable<Matrix> 矩阵

staticTranspose(matrix) → Matrix

计算给定矩阵的转置
Name Type Description
matrix DeepImmutable<Matrix> 要转置的矩阵

staticTransposeToRef(matrix,result)

计算矩阵的转置并将其存储在目标矩阵中
Name Type Description
matrix DeepImmutable<Matrix> 要转置的矩阵
result Matrix 目标矩阵

staticReflection(plane) → Matrix

从平面计算反射矩阵
Name Type Description
plane DeepImmutable<Plane> 反射平面

staticReflectionToRef(plane,result)

从平面计算反射矩阵
Name Type Description
plane DeepImmutable<Plane> 反射平面
result Matrix 目标矩阵

staticFromXYZAxesToRef(xaxis,yaxis,zaxis,result)

将给定矩阵设置为由三个左手系轴组成的旋转矩阵
Name Type Description
xaxis DeepImmutable<Vector3> 第一个轴的值
yaxis DeepImmutable<Vector3> 第二个轴的值
zaxis DeepImmutable<Vector3> 第三个轴的值
result Matrix 目标矩阵

staticFromQuaternionToRef(quat,result)

从四元数创建旋转矩阵并将其存储在目标矩阵中
Name Type Description
quat DeepImmutable<Quaternion> 四元数
result Matrix 目标矩阵