Skip to content
本页内容

Class: Matrix4

4*4 的矩阵

Properties

Methods

Constructors

Accessors

Properties

blockBytes

Static blockBytes: number

区块大小

Defined in

src/engine/math/Matrix4.ts:15


count

Static count: number = 31000

初始化的区块数量

Defined in

src/engine/math/Matrix4.ts:25


EPSILON

Static EPSILON: number = 0.000001

保留的最小精度

Defined in

src/engine/math/Matrix4.ts:30


index

index: number = 0

矩阵索引值

Defined in

src/engine/math/Matrix4.ts:35


help_matrix_0

Static help_matrix_0: Matrix4

临时缓存矩阵

Defined in

src/engine/math/Matrix4.ts:57


help_matrix_1

Static help_matrix_1: Matrix4

临时缓存矩阵

Defined in

src/engine/math/Matrix4.ts:62


help_matrix_2

Static help_matrix_2: Matrix4

临时缓存矩阵

Defined in

src/engine/math/Matrix4.ts:67


rawData

rawData: Float32Array

Language

zh_CN 一个由 16 个数字组成的矢量,其中,每四个元素可以是 4x4 矩阵的一行或一列

Version

UU3D 3.0

Platform

Web,Native

Defined in

src/engine/math/Matrix4.ts:133

Methods

init

Static init(count): Promise<void>

初始化矩阵,分配wasm内存

Parameters

NameTypeDescription
countnumber分配的区块数量

Returns

Promise<void>

Defined in

src/engine/math/Matrix4.ts:86


lookAt

lookAt(eye, at, up?): void

Language

zh_CN 生成一个注视目标的矩阵.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDefault valueDescription
eyeVector3undefined眼睛的位置.
atVector3undefined目标的位置.
upVector3Vector3.Y_AXIS向上的方向.

Returns

void

Defined in

src/engine/math/Matrix4.ts:169


multiply

multiply(mat4): void

Language

zh_CN 矩阵相乘.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
mat4Matrix4相乘的矩阵

Returns

void

Defined in

src/engine/math/Matrix4.ts:223


multiplyMatrices

multiplyMatrices(a, b): Matrix4

Parameters

NameType
aMatrix4
bMatrix4

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:266


multiplyPoint3

multiplyPoint3(v, output?): Vector3

当前矩阵与3维相乘

Parameters

NameTypeDescription
vVector3相剩的3维向量
output?Vector3结果向量

Returns

Vector3

结果向量

Defined in

src/engine/math/Matrix4.ts:312


multiplyVector4

multiplyVector4(a, out?): Vector3

Parameters

NameType
aVector3
out?Vector3

Returns

Vector3

Defined in

src/engine/math/Matrix4.ts:323


transformVector4

transformVector4(v, target?): Vector3

Language

zh_CN 用当前矩阵变换一个3D向量

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
vVector3变换的向量 w 会进行计算
target?Vector3如果当前参数为null那么就会new一个新的Vector3返回

Returns

Vector3

Vector3 变换后的向量

Defined in

src/engine/math/Matrix4.ts:359


perspectiveMultiplyPoint3

perspectiveMultiplyPoint3(v, output): boolean

将投影坐标转换为3D坐标

Parameters

NameTypeDescription
vVector3投影坐标点
outputVector33D坐标点

Returns

boolean

Defined in

src/engine/math/Matrix4.ts:385


perspective

perspective(fov, aspect, zn, zf): void

Language

zh_CN 生成一个透视投影矩阵.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
fovnumber观察时y 轴方向的角度,就是观察范围夹角。
aspectnumber横纵比,在视空间宽度除以高度.
znnumber近裁剪面位置Z值.
zfnumber远裁剪面位置Z值.

Returns

void

Defined in

src/engine/math/Matrix4.ts:468


ortho

ortho(w, h, zn, zf): void

Language

zh_CN 生成一个透视投影矩阵.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
wnumber屏幕的宽度。
hnumber屏幕的高度.
znnumber近裁剪面位置Z值.
zfnumber远裁剪面位置Z值.

Returns

void

Defined in

src/engine/math/Matrix4.ts:506


orthoZO

orthoZO(left, right, bottom, top, near, far): Matrix4

计算一个正交投影矩阵。

Parameters

NameTypeDescription
leftnumber视图的左边界
rightnumber视图的右边界
bottomnumber视图的下边界
topnumber视图的左上界
nearnumber近截面
farnumber远截面

Returns

Matrix4

结果矩阵

Defined in

src/engine/math/Matrix4.ts:540


orthoOffCenter

orthoOffCenter(l, r, b, t, zn, zf): void

Language

zh_CN 生成一个透视投影矩阵.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
lnumber观察时X轴最小值.
rnumber观察时X轴最大值.
bnumber观察时Y轴最小值。
tnumber观察时Y轴最大值.
znnumber近裁剪面位置Z值.
zfnumber远裁剪面位置Z值.

Returns

void

Defined in

src/engine/math/Matrix4.ts:576


transformDir

transformDir(fromDirection, toDirection): void

Language

zh_CN 计算出一个方向变换到另一个方向的旋转矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
fromDirectionVector3初始方向
toDirectionVector3变换后的方向

Returns

void

Defined in

src/engine/math/Matrix4.ts:608


fromToRotation

Static fromToRotation(fromDirection, toDirection, target?): Matrix4

Language

zh_CN 计算出一个方向变换到另一个方向的旋转矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
fromDirectionVector3初始方向
toDirectionVector3变换后的方向
target?Matrix4计算出的旋转矩阵 默认为null 结果会返回

Returns

Matrix4

Matrix4 计算出的旋转矩阵 如果 target为null 就会创建新实例返回

Defined in

src/engine/math/Matrix4.ts:713


append

append(lhs): void

Language

zh_CN 通过将当前 Matrix4 对象与另一个 Matrix4 对象相乘来前置一个矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
lhsMatrix4目标矩阵.

Returns

void

Defined in

src/engine/math/Matrix4.ts:729


add

add(lhs): Matrix4

Language

zh_CN 矩阵相加.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
lhsMatrix4目标矩阵.

Returns

Matrix4

Matrix4 相加后的结果.

Defined in

src/engine/math/Matrix4.ts:777


sub

sub(lhs): Matrix4

Language

zh_CN 矩阵相减.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
lhsMatrix4目标矩阵.

Returns

Matrix4

Matrix4 相加减的结果.

Defined in

src/engine/math/Matrix4.ts:842


mult

mult(v): Matrix4

Language

zh_CN 矩阵乘分量.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
vnumber该矩阵会乘以这个值

Returns

Matrix4

Matrix4 返回一个相乘后的结果 矩阵.

Defined in

src/engine/math/Matrix4.ts:908


appendRotation

appendRotation(degrees, axis): void

Language

zh_CN 给当前矩阵追加一个方向角旋转 (按axis轴旋转degrees角度创建出来的矩阵)

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
degreesnumber旋转角度.
axisVector3绕axis轴旋转角度

Returns

void

Defined in

src/engine/math/Matrix4.ts:958


createByRotation

createByRotation(degrees, axis): void

Language

zh_CN 根据坐标轴和旋转角,创建矩阵 (按axis轴旋转degrees角度创建出来的矩阵)

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
degreesnumber旋转角度.
axisVector3绕axis轴旋转角度.axis需要指定为x/y/z之间的一个轴的朝向

Returns

void

Defined in

src/engine/math/Matrix4.ts:971


appendScale

appendScale(xScale, yScale, zScale): void

Language

zh_CN 追加三轴缩放值

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
xScalenumberx轴缩放
yScalenumbery轴缩放
zScalenumberz轴缩放

Returns

void

Defined in

src/engine/math/Matrix4.ts:1048


createByScale

createByScale(xScale, yScale, zScale): void

Language

zh_CN 生成一个缩放矩阵,其他的属性会被重置

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
xScalenumberx轴缩放
yScalenumbery轴缩放
zScalenumberz轴缩放

Returns

void

Defined in

src/engine/math/Matrix4.ts:1062


appendTranslation

appendTranslation(x, y, z): void

Language

zh_CN 加上一个平移矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
xnumberx轴坐标
ynumbery轴坐标
znumberz轴坐标

Returns

void

Defined in

src/engine/math/Matrix4.ts:1091


clone

clone(): Matrix4

Language

zh_CN 返回一个当前矩阵的克隆矩阵

Version

UU3D 3.0

Platform

Web,Native

Returns

Matrix4

Matrix4 克隆后的矩阵

Defined in

src/engine/math/Matrix4.ts:1105


copyRowFrom

copyRowFrom(row, Vector3): void

Language

zh_CN 给当前矩阵其中一行赋值

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
rownumber拷贝的行
Vector3Vector3拷贝的值

Returns

void

Defined in

src/engine/math/Matrix4.ts:1119


copyRowTo

copyRowTo(row, Vector3): void

Language

zh_CN 拷贝矩阵中的其中一行 把值存在Vector3.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
rownumber拷贝的行
Vector3Vector3拷贝存值目标

Returns

void

Defined in

src/engine/math/Matrix4.ts:1159


copyFrom

copyFrom(sourceMatrix3D): Matrix4

Language

zh_CN 把一个矩阵的值赋给当前矩阵.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
sourceMatrix3DMatrix4源矩阵.

Returns

Matrix4

返回当前矩阵

Defined in

src/engine/math/Matrix4.ts:1199


copyRawDataTo

copyRawDataTo(vector, index?, transpose?): void

Language

zh_CN 把当前矩阵的值拷贝给一个 float 数组.

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDefault valueDescription
vectorFloat32Arrayundefined目标数组.
indexnumber0从数组的index 开始copy.
transposebooleanfalse是否转置当前矩阵.

Returns

void

Defined in

src/engine/math/Matrix4.ts:1229


copyColFrom

copyColFrom(col, Vector3): void

Language

zh_CN 给当前矩阵的某一列 赋值

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
colnumber
Vector3Vector3值来源

Returns

void

Defined in

src/engine/math/Matrix4.ts:1257


copyColTo

copyColTo(col, Vector3): void

Language

zh_CN 拷贝当前矩阵的某一列

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
colnumber
Vector3Vector3拷贝目标

Returns

void

Defined in

src/engine/math/Matrix4.ts:1297


copyToMatrix3D

copyToMatrix3D(dest): void

Language

zh_CN 拷贝当前矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
destMatrix4拷贝目标

Returns

void

Defined in

src/engine/math/Matrix4.ts:1336


makeRotationFromQuaternion

makeRotationFromQuaternion(quaternion): Matrix4

计算旋转矩阵

Parameters

NameTypeDescription
quaternionQuaternion旋转

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:1348


decompose

decompose(orientationStyle?, target?): Vector3[]

Language

zh_CN 分解当前矩阵

See

  • fly.Orientation3D.AXIS_ANGLE
  • fly.Orientation3D.EULER_ANGLES
  • fly.Orientation3D.QUATERNION

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDefault valueDescription
orientationStylestring'eulerAngles'分解类型 默认为 Orientation3D.EULER_ANGLES
target?Vector3[]undefined-

Returns

Vector3[]

Vector3[3] pos rot scale

Defined in

src/engine/math/Matrix4.ts:1466


getEuler

Static getEuler(target, quaternion, isDegree?, order?): Vector3

获取欧拉向量

Parameters

NameTypeDefault valueDescription
targetVector3undefined结果向量
quaternionQuaternionundefined旋转
isDegreebooleantrue是否转换为角度
order?stringundefined转换顺序

Returns

Vector3

Defined in

src/engine/math/Matrix4.ts:1590


compose

compose(position, quaternion, scale): Matrix4

计算位移、旋转、缩放组合矩阵

Parameters

NameTypeDescription
positionVector3位移
quaternionQuaternion旋转
scaleVector3缩放

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:1603


deltaTransformVector

deltaTransformVector(v, target?): Vector3

Language

zh_CN 当前矩阵变换一个向量

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
vVector3要变换的向量
target?Vector3默认为 null 如果当前参数为null那么就会new一个新的Vector3返回

Returns

Vector3

Vector3 变换后的向量

Defined in

src/engine/math/Matrix4.ts:1659


identity

identity(): Matrix4

Language

zh_CN 单位化当前矩阵

Version

UU3D 3.0

Platform

Web,Native

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:1681


fill

fill(value): void

Language

zh_CN 填充当前矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
valuenumber填充的值

Returns

void

Defined in

src/engine/math/Matrix4.ts:1710


invers33

invers33(): void

Language

zh_CN 当前矩阵求逆

Version

UU3D 3.0

Platform

Web,Native

Returns

void

Defined in

src/engine/math/Matrix4.ts:1736


invert

invert(): boolean

Language

zh_CN 当前矩阵求逆

Version

UU3D 3.0

Platform

Web,Native

Returns

boolean

boolean 是否能求逆

Defined in

src/engine/math/Matrix4.ts:1834


transformPoint

transformPoint(v, target?): Vector3

将当前坐标转换为世界坐标

Parameters

NameTypeDescription
vVector3当前坐标
target?Vector3世界坐标

Returns

Vector3

世界坐标

Defined in

src/engine/math/Matrix4.ts:1993


transformVector

transformVector(v, target?): Vector3

Language

zh_CN 用当前矩阵变换一个3D向量 不处理位移

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
vVector3变换的向量
target?Vector3如果当前参数为null那么就会new一个新的Vector3返回

Returns

Vector3

Vector3 变换后的向量

Defined in

src/engine/math/Matrix4.ts:2020


transpose

transpose(): void

Language

zh_CN 当前矩阵转置

Version

UU3D 3.0

Platform

Web,Native

Returns

void

Defined in

src/engine/math/Matrix4.ts:2044


getAxisRotation

Static getAxisRotation(x, y, z, degrees): Matrix4

Language

zh_CN 生成一个(以x,y,z为中心轴旋转degrees角度)的矩阵

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
xnumber中心轴的x
ynumber中心轴的y
znumber中心轴的z
degreesnumber旋转角度

Returns

Matrix4

Matrix4 矩阵

Defined in

src/engine/math/Matrix4.ts:2076


getPosition

getPosition(out?): Vector3

返回矩阵位移

Parameters

NameTypeDescription
out?Vector3位移

Returns

Vector3

位移

Defined in

src/engine/math/Matrix4.ts:2129


toString

toString(): string

Language

zh_CN 以字符串返回矩阵的值

Version

UU3D 3.0

Platform

Web,Native

Returns

string

string 字符

Defined in

src/engine/math/Matrix4.ts:2203


lerp

lerp(m0, m1, t): void

Language

zh_CN 求两个矩阵之间的插值

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
m0Matrix4矩阵0
m1Matrix4矩阵1
tnumber时间差 0.0 - 1.0

Returns

void

Defined in

src/engine/math/Matrix4.ts:2251


get

get(row, column): number

读取矩阵元素值

Parameters

NameTypeDescription
rownumber
columnnumber

Returns

number

Defined in

src/engine/math/Matrix4.ts:2262


set

set(row, column, v): void

设置矩阵元素值

Parameters

NameTypeDescription
rownumber
columnnumber
vnumber

Returns

void

Defined in

src/engine/math/Matrix4.ts:2272


getMaxScaleOnAxis

getMaxScaleOnAxis(): number

Language

zh_CN 求矩阵在各个轴上缩放的最大值

Version

UU3D 4.0

Platform

Web,Native

Returns

number

Defined in

src/engine/math/Matrix4.ts:2282


sanitizeEuler

Static sanitizeEuler(euler): void

整理欧拉值

Parameters

NameTypeDescription
eulerVector3待整理区拉值

Returns

void

Defined in

src/engine/math/Matrix4.ts:2296


makePositive

Static makePositive(euler): void

Parameters

NameType
eulerVector3

Returns

void

Defined in

src/engine/math/Matrix4.ts:2304


matrixToEuler

Static matrixToEuler(matrix, v): boolean

将矩阵转换为欧拉角

Parameters

NameTypeDescription
matrixMatrix4待转换矩阵
vVector3欧拉角

Returns

boolean

Defined in

src/engine/math/Matrix4.ts:2324


translate

translate(inTrans): Matrix4

根据向量计算位移

Parameters

NameTypeDescription
inTransVector3需要位移的向量

Returns

Matrix4

当前矩阵

Defined in

src/engine/math/Matrix4.ts:2360


setTRInverse

setTRInverse(pos, q): void

form unity API

Parameters

NameType
posVector3
qQuaternion

Returns

void

Defined in

src/engine/math/Matrix4.ts:2378


setScale

setScale(inScale): Matrix4

缩放

Parameters

NameTypeDescription
inScaleVector3缩放向量

Returns

Matrix4

当前矩阵

Defined in

src/engine/math/Matrix4.ts:2389


matrix_Multiply

Static matrix_Multiply(aMat, bMat, target_Mat): void

世界矩阵间相乘,根据索引指定参数与结果

Parameters

NameTypeDescription
aMatMatrix4待乘矩阵(请指定索引)
bMatMatrix4待乘矩阵(请指定索引)
target_MatMatrix4结果矩阵(根据索引获取结果)

Returns

void

Defined in

src/engine/math/Matrix4.ts:2418


matrix_Append

Static matrix_Append(aMat, bMat, target_Mat): void

世界矩阵间伸展,根据索引指定参数与结果

Parameters

NameTypeDescription
aMatMatrix4待乘矩阵(请指定索引)
bMatMatrix4待乘矩阵(请指定索引)
target_MatMatrix4结果矩阵(根据索引获取结果)

Returns

void

Defined in

src/engine/math/Matrix4.ts:2428


matrix_RotateY

Static matrix_RotateY(rad, target_Mat): void

世界矩阵间延Y轴旋转,根据索引指定参数与结果

Parameters

NameTypeDescription
radnumber-
target_MatMatrix4结果矩阵(根据索引获取结果)

Returns

void

Defined in

src/engine/math/Matrix4.ts:2438


matrix_Rotate

Static matrix_Rotate(rad, axis, target_Mat): void

世界矩阵间旋转,根据索引指定参数与结果

Parameters

NameTypeDescription
radnumber-
axisVector3-
target_MatMatrix4结果矩阵(根据索引获取结果)

Returns

void

Defined in

src/engine/math/Matrix4.ts:2448


makeBasis

makeBasis(xAxis, yAxis, zAxis): Matrix4

根据三轴生成矩阵

Parameters

NameType
xAxisVector3
yAxisVector3
zAxisVector3

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:2458


setElements

setElements(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44): Matrix4

Parameters

NameType
n11any
n12any
n13any
n14any
n21any
n22any
n23any
n24any
n31any
n32any
n33any
n34any
n41any
n42any
n43any
n44any

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:2469


makeRotationAxis

makeRotationAxis(axis, angle): Matrix4

Parameters

NameType
axisany
angleany

Returns

Matrix4

Defined in

src/engine/math/Matrix4.ts:2482

Constructors

constructor

new Matrix4(noWasm?)

构造函数,创建一个矩阵实例

Language

zh_CN

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDefault value
noWasmbooleantrue

Defined in

src/engine/math/Matrix4.ts:142

Accessors

determinant

get determinant(): number

Language

zh_CN 返回矩阵行列式

Version

UU3D 3.0

Platform

Web,Native

Returns

number

number 行列式值

Defined in

src/engine/math/Matrix4.ts:2112


position

get position(): Vector3

Language

zh_CN 返回矩阵位移

Version

UU3D 3.0

Platform

Web,Native

Returns

Vector3

Vector3 位移

Defined in

src/engine/math/Matrix4.ts:2148

set position(value): void

Language

zh_CN 设置矩阵位移

Version

UU3D 3.0

Platform

Web,Native

Parameters

NameTypeDescription
valueVector3位移

Returns

void

Defined in

src/engine/math/Matrix4.ts:2161


scale

get scale(): Vector3

Language

zh_CN 返回矩阵缩放

Version

UU3D 3.0

Platform

Web,Native

Returns

Vector3

Vector3 缩放

Defined in

src/engine/math/Matrix4.ts:2176

set scale(value): void

设置矩阵缩放

Parameters

NameType
valueVector3

Returns

void

Defined in

src/engine/math/Matrix4.ts:2184