Members
-
获取矩阵的更新标志,该标志是矩阵的唯一编号。每次矩阵数据更改时,它都会增加。您可以使用它来快速判断矩阵是否被修改。
-
readonly m : DeepImmutable<Float32Array>
-
获取矩阵的内部数据
-
staticreadonly IdentityReadOnly : DeepImmutable<Matrix>
-
获取只读的单位矩阵
Methods
创建一个空矩阵(用零填充)
检查当前矩阵是否单位矩阵@returnss true表示矩阵为单位矩阵
toArray() → DeepImmutable<Float32Array>
以浮点数组形式返回矩阵@returns 返回基础数组的矩阵
asArray() → DeepImmutable<Float32Array>
以浮点数组形式返回矩阵@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 | 目标数组中开始存储值的偏移量 |
检查此矩阵与第二个矩阵是否相等
Name | Type | Description |
---|---|---|
value |
DeepImmutable<Matrix> | 要比较的第二个矩阵 |
clone() → Matrix
克隆当前矩阵@从当前矩阵返回一个新矩阵
返回当前矩阵类的名称@returns 返回字符串“Matrix”
获取当前矩阵的哈希代码@returns 返回哈希代码
将当前矩阵分解为平移、旋转和缩放部分
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 | 存储结果的矩阵 |
向给定矩阵写入一个标准矩阵,由该矩阵计算(使用第四行和第四列的单位矩阵中的值)。
Name | Type | Description |
---|---|---|
ref |
Matrix | matrix以存储结果 |
getRotationMatrix() → Matrix
仅获取当前矩阵的旋转部分@returns 将新矩阵集返回到从当前矩阵提取的旋转矩阵
getRotationMatrixToRef(result) → Matrix
从当前旋转矩阵中提取旋转矩阵,并将其设置为给定的“result”
Name | Type | Description |
---|---|---|
result |
Matrix | 存储数据的目标矩阵 |
将模型矩阵从右手系切换到左手系,反之亦然
将投影矩阵从右手系切换到左手系,反之亦然
staticFromArray(array,offset) → Matrix
从数组创建矩阵
Name | Type | Description |
---|---|---|
array |
DeepImmutable<ArrayLike<number>> | 源数组 |
offset |
number | optional源数组中的偏移量 |
将数组的内容复制到给定的矩阵中
Name | Type | Description |
---|---|---|
array |
DeepImmutable<ArrayLike<number>> | 源数组 |
offset |
number | 源数组中的偏移量 |
result |
Matrix | 目标矩阵 |
将每个分量乘以给定因子后,将数组存储到矩阵中
Name | Type | Description |
---|---|---|
array |
DeepImmutable<Float32Array> | 源数组 |
offset |
number | 源数组中的偏移量 |
scale |
number | 缩放因子 |
result |
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 | 第四行的第四个值 |
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 |
将矩阵设置为由合并缩放(Vector3)、旋转(四元数)和平移(Vector3)组成的值
Name | Type | Description |
---|---|---|
scale |
DeepImmutable<Vector3> | 缩放Vector3 |
rotation |
DeepImmutable<Quaternion> | 旋转四元数 |
translation |
DeepImmutable<Vector3> | 平移Vector3 |
result |
Matrix | 目标矩阵 |
staticIdentity() → Matrix
创建新的单位矩阵@returns 返回一个新的单位矩阵
创建一个新的单位矩阵,并将结果存储在给定的矩阵中
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> | 源矩阵 |
创建围绕X轴为“angle”弧度的新旋转矩阵,并将其存储在给定矩阵中
Name | Type | Description |
---|---|---|
angle |
number | 角度(以弧度为单位) |
result |
Matrix | 目标矩阵 |
staticRotationY(angle) → Matrix
创建围绕Y轴为“angle”弧度的新旋转矩阵
Name | Type | Description |
---|---|---|
angle |
number | 角度(以弧度为单位) |
创建围绕Y轴为“angle”弧度的新旋转矩阵,并将其存储在给定矩阵中
Name | Type | Description |
---|---|---|
angle |
number | 角度(以弧度为单位) |
result |
Matrix | 目标矩阵 |
staticRotationZ(angle) → Matrix
创建围绕Z轴为“angle”弧度的新旋转矩阵
Name | Type | Description |
---|---|---|
angle |
number | 角度(以弧度为单位) |
创建围绕Z轴为“angle”弧度的新矩阵,并将其存储在给定矩阵中
Name | Type | Description |
---|---|---|
angle |
number | 角度(以弧度为单位) |
result |
Matrix | 目标矩阵 |
staticRotationAxis(axis,angle) → Matrix
创建围绕给定轴为“angle”弧度的新旋转矩阵
Name | Type | Description |
---|---|---|
axis |
DeepImmutable<Vector3> | 轴 |
angle |
number | 角度(以弧度为单位) |
创建围绕给定轴为“angle”弧度的新旋转矩阵,并将其存储在给定矩阵中
Name | Type | Description |
---|---|---|
axis |
DeepImmutable<Vector3> | 轴 |
angle |
number | 角度(以弧度为单位) |
result |
Matrix | 目标矩阵 |
获取归一化向量并返回一个旋转矩阵,以将“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轴) 俯仰角 |
创建旋转矩阵并将其存储在给定矩阵中
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轴上的比例因子 |
创建缩放矩阵并将其存储在给定矩阵中
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轴上的平移 |
创建平移矩阵并将其存储在给定矩阵中
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 | 渐变因子 |
将矩阵更新为通过以下方式计算的值:*将“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> | 实体的上方向向量 |
将给定的“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 | 远剪裁平面 |
将左手系正交投影存储到给定矩阵
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 | 远剪裁平面 |
将左手系正交投影存储到给定矩阵中
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 | 远剪裁平面 |
将右手系正交投影存储到给定矩阵中
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 | 远剪裁平面 |
将左手系透视投影存储到给定矩阵中
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 | 远剪裁平面 |
将右手系透视投影存储到给定矩阵中
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> | 要转置的矩阵 |
计算矩阵的转置并将其存储在目标矩阵中
Name | Type | Description |
---|---|---|
matrix |
DeepImmutable<Matrix> | 要转置的矩阵 |
result |
Matrix | 目标矩阵 |
staticReflection(plane) → Matrix
从平面计算反射矩阵
Name | Type | Description |
---|---|---|
plane |
DeepImmutable<Plane> | 反射平面 |
从平面计算反射矩阵
Name | Type | Description |
---|---|---|
plane |
DeepImmutable<Plane> | 反射平面 |
result |
Matrix | 目标矩阵 |
将给定矩阵设置为由三个左手系轴组成的旋转矩阵
Name | Type | Description |
---|---|---|
xaxis |
DeepImmutable<Vector3> | 第一个轴的值 |
yaxis |
DeepImmutable<Vector3> | 第二个轴的值 |
zaxis |
DeepImmutable<Vector3> | 第三个轴的值 |
result |
Matrix | 目标矩阵 |
从四元数创建旋转矩阵并将其存储在目标矩阵中
Name | Type | Description |
---|---|---|
quat |
DeepImmutable<Quaternion> | 四元数 |
result |
Matrix | 目标矩阵 |