Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Mat4

表示四维(4x4)矩阵。

Hierarchy

Index

Constructors

constructor

  • newMat4(other: Mat4): Mat4
  • newMat4(m00?: undefined | number, m01?: undefined | number, m02?: undefined | number, m03?: undefined | number, m04?: undefined | number, m05?: undefined | number, m06?: undefined | number, m07?: undefined | number, m08?: undefined | number, m09?: undefined | number, m10?: undefined | number, m11?: undefined | number, m12?: undefined | number, m13?: undefined | number, m14?: undefined | number, m15?: undefined | number): Mat4
  • Parameters

    Returns Mat4

  • Parameters

    • Optional m00: undefined | number
    • Optional m01: undefined | number
    • Optional m02: undefined | number
    • Optional m03: undefined | number
    • Optional m04: undefined | number
    • Optional m05: undefined | number
    • Optional m06: undefined | number
    • Optional m07: undefined | number
    • Optional m08: undefined | number
    • Optional m09: undefined | number
    • Optional m10: undefined | number
    • Optional m11: undefined | number
    • Optional m12: undefined | number
    • Optional m13: undefined | number
    • Optional m14: undefined | number
    • Optional m15: undefined | number

    Returns Mat4

Properties

m00

m00: number

矩阵第 0 列第 0 行的元素。

m01

m01: number

矩阵第 0 列第 1 行的元素。

m02

m02: number

矩阵第 0 列第 2 行的元素。

m03

m03: number

矩阵第 0 列第 3 行的元素。

m04

m04: number

矩阵第 1 列第 0 行的元素。

m05

m05: number

矩阵第 1 列第 1 行的元素。

m06

m06: number

矩阵第 1 列第 2 行的元素。

m07

m07: number

矩阵第 1 列第 3 行的元素。

m08

m08: number

矩阵第 2 列第 0 行的元素。

m09

m09: number

矩阵第 2 列第 1 行的元素。

m10

m10: number

矩阵第 2 列第 2 行的元素。

m11

m11: number

矩阵第 2 列第 3 行的元素。

m12

m12: number

矩阵第 3 列第 0 行的元素。

m13

m13: number

矩阵第 3 列第 1 行的元素。

m14

m14: number

矩阵第 3 列第 2 行的元素。

m15

m15: number

矩阵第 3 列第 3 行的元素。

Static IDENTITY

IDENTITY: object = Object.freeze(new Mat4())

Type declaration

Methods

add

  • add(mat: Mat4): this
  • 矩阵加法。将当前矩阵与指定矩阵的相加,结果返回给当前矩阵。

    Parameters

    • mat: Mat4

      相加的矩阵

    Returns this

clone

determinant

  • determinant(): number

equals

  • equals(other: Mat4, epsilon?: number): boolean
  • 判断当前矩阵是否在误差范围内与指定矩阵相等。

    Parameters

    • other: Mat4

      相比较的矩阵。

    • Default value epsilon: number = EPSILON

      允许的误差,应为非负数。

    Returns boolean

    两矩阵的各元素都分别相等时返回 true;否则返回 false

fromQuat

  • fromQuat(q: Quat): this
  • 重置当前矩阵的值,使其表示指定四元数表示的旋转变换。

    Parameters

    • q: Quat

      四元数表示的旋转变换。

    Returns this

    this

fromRTS

  • 重置当前矩阵的值,使其表示指定的旋转、缩放、位移依次组合的变换。

    Parameters

    • q: Quat

      四元数表示的旋转变换。

    • v: Vec3

      位移变换,表示为各个轴的位移。

    • s: Vec3

      缩放变换,表示为各个轴的缩放。

    Returns this

    this

getRotation

  • 从当前矩阵中计算出旋转变换的部分,并以四元数的形式赋值给出口四元数。

    Parameters

    • out: Quat

      返回值,当未指定时将创建为新的四元数。

    Returns Quat

getScale

  • 从当前矩阵中计算出缩放变换的部分,并以各个轴上缩放的形式赋值给出口向量。

    Parameters

    • out: Vec3

      返回值,当未指定时将创建为新的向量。

    Returns Vec3

getTranslation

  • 从当前矩阵中计算出位移变换的部分,并以各个轴上位移的形式赋值给出口向量。

    Parameters

    • out: Vec3

      返回向量,当未指定时将创建为新的向量。

    Returns Vec3

identity

  • identity(): this

invert

  • invert(): this
  • 计算当前矩阵的逆矩阵。注意,在矩阵不可逆时,会返回一个全为 0 的矩阵。

    Returns this

multiply

  • multiply(mat: Mat4): this
  • 矩阵乘法。将当前矩阵左乘指定矩阵的结果赋值给当前矩阵。

    Parameters

    • mat: Mat4

      指定的矩阵。

    Returns this

multiplyScalar

  • multiplyScalar(scalar: number): this
  • 矩阵数乘。将当前矩阵与指定标量的数乘结果赋值给当前矩阵。

    Parameters

    • scalar: number

      指定的标量。

    Returns this

rotate

  • rotate(rad: number, axis: Vec3): null | this
  • 将当前矩阵左乘旋转矩阵的结果赋值给当前矩阵,旋转矩阵由旋转轴和旋转角度给出。

    Parameters

    • rad: number

      旋转角度(弧度制)

    • axis: Vec3

      旋转轴

    Returns null | this

scale

  • scale(vec: Vec3): this
  • 将当前矩阵左乘缩放矩阵的结果赋值给当前矩阵,缩放矩阵由各个轴的缩放给出。

    Parameters

    • vec: Vec3

      各个轴的缩放。

    Returns this

set

  • set(other: Mat4): any
  • set(m00?: undefined | number, m01?: undefined | number, m02?: undefined | number, m03?: undefined | number, m04?: undefined | number, m05?: undefined | number, m06?: undefined | number, m07?: undefined | number, m08?: undefined | number, m09?: undefined | number, m10?: undefined | number, m11?: undefined | number, m12?: undefined | number, m13?: undefined | number, m14?: undefined | number, m15?: undefined | number): any
  • 设置当前矩阵使其与指定矩阵相等。

    Parameters

    • other: Mat4

      相比较的矩阵。

    Returns any

    this

  • 设置当前矩阵指定元素值。

    Parameters

    • Optional m00: undefined | number
    • Optional m01: undefined | number
    • Optional m02: undefined | number
    • Optional m03: undefined | number
    • Optional m04: undefined | number
    • Optional m05: undefined | number
    • Optional m06: undefined | number
    • Optional m07: undefined | number
    • Optional m08: undefined | number
    • Optional m09: undefined | number
    • Optional m10: undefined | number
    • Optional m11: undefined | number
    • Optional m12: undefined | number
    • Optional m13: undefined | number
    • Optional m14: undefined | number
    • Optional m15: undefined | number

    Returns any

    this

strictEquals

  • strictEquals(other: Mat4): boolean
  • 判断当前矩阵是否与指定矩阵相等。

    Parameters

    • other: Mat4

      相比较的矩阵。

    Returns boolean

    两矩阵的各元素都分别相等时返回 true;否则返回 false

subtract

  • subtract(mat: Mat4): this
  • 计算矩阵减法。将当前矩阵减去指定矩阵的结果赋值给当前矩阵。

    Parameters

    • mat: Mat4

      减数矩阵。

    Returns this

toString

  • toString(): string

translate

  • translate(vec: Vec3): this
  • 将当前矩阵左乘位移矩阵的结果赋值给当前矩阵,位移矩阵由各个轴的位移给出。

    Parameters

    • vec: Vec3

      位移向量。

    Returns this

transpose

  • transpose(): this

Static add

  • add<Out>(out: Out, a: Out, b: Out): Out

Static clone

  • clone<Out>(a: Out): Mat4

Static copy

  • copy<Out>(out: Out, a: Out): Out

Static determinant

  • determinant<Out>(a: Out): number

Static equals

  • equals<Out>(a: Out, b: Out, epsilon?: number): boolean
  • 排除浮点数误差的矩阵近似等价判断

    Type parameters

    Parameters

    • a: Out
    • b: Out
    • Default value epsilon: number = EPSILON

    Returns boolean

Static fromArray

  • fromArray<Out>(out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out
  • 数组转矩阵

    Type parameters

    Parameters

    • out: Out
    • arr: IWritableArrayLike<number>
    • Default value ofs: number = 0

      数组起始偏移量

    Returns Out

Static fromQuat

  • fromQuat<Out>(out: Out, q: Quat): Out

Static fromRT

  • fromRT<Out, VecLike>(out: Out, q: Quat, v: VecLike): Out

Static fromRTS

  • fromRTS<Out, VecLike>(out: Out, q: Quat, v: VecLike, s: VecLike): Out

Static fromRTSOrigin

  • fromRTSOrigin<Out, VecLike>(out: Out, q: Quat, v: VecLike, s: VecLike, o: VecLike): Out
  • 根据指定的旋转、位移、缩放及变换中心信息计算矩阵,以 S->R->T 的顺序应用

    Type parameters

    Parameters

    • out: Out
    • q: Quat

      旋转值

    • v: VecLike

      位移值

    • s: VecLike

      缩放值

    • o: VecLike

      指定变换中心

    Returns Out

Static fromRotation

  • fromRotation<Out, VecLike>(out: Out, rad: number, axis: VecLike): null | Out

Static fromScaling

  • fromScaling<Out, VecLike>(out: Out, v: VecLike): Out

Static fromTranslation

  • fromTranslation<Out, VecLike>(out: Out, v: VecLike): Out

Static fromXRotation

  • fromXRotation<Out>(out: Out, rad: number): Out

Static fromYRotation

  • fromYRotation<Out>(out: Out, rad: number): Out

Static fromZRotation

  • fromZRotation<Out>(out: Out, rad: number): Out

Static frustum

  • frustum<Out>(out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out
  • 根据指定的视锥体信息计算矩阵

    Type parameters

    Parameters

    • out: Out
    • left: number

      左平面距离

    • right: number

      右平面距离

    • bottom: number

      下平面距离

    • top: number

      上平面距离

    • near: number

      近平面距离

    • far: number

      远平面距离

    Returns Out

Static getRotation

  • getRotation<Out>(out: Quat, mat: Out): Quat
  • 提取矩阵的旋转信息, 默认输入矩阵不含有缩放信息,如考虑缩放应使用 toRTS 函数。

    Type parameters

    Parameters

    • out: Quat
    • mat: Out

    Returns Quat

Static getScaling

  • getScaling<Out, VecLike>(out: VecLike, mat: Out): VecLike

Static getTranslation

  • getTranslation<Out, VecLike>(out: VecLike, mat: Out): VecLike

Static identity

  • identity<Out>(out: Out): Out

Static inverseTranspose

  • inverseTranspose<Out>(out: Out, a: Out): null | Out

Static invert

  • invert<Out>(out: Out, a: Out): Out
  • 矩阵求逆,注意,在矩阵不可逆时,会返回一个全为 0 的矩阵。

    Type parameters

    Parameters

    • out: Out
    • a: Out

    Returns Out

Static lookAt

  • lookAt<Out, VecLike>(out: Out, eye: VecLike, center: VecLike, up: VecLike): Out
  • 根据视点计算矩阵,注意 eye - center 不能为零向量或与 up 向量平行

    Type parameters

    Parameters

    • out: Out
    • eye: VecLike

      当前位置

    • center: VecLike

      目标视点

    • up: VecLike

      视口上方向

    Returns Out

Static multiply

  • multiply<Out>(out: Out, a: Out, b: Out): Out

Static multiplyScalar

  • multiplyScalar<Out>(out: Out, a: Out, b: number): Out

Static multiplyScalarAndAdd

  • multiplyScalarAndAdd<Out>(out: Out, a: Out, b: Out, scale: number): Out

Static ortho

  • ortho<Out>(out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out
  • 计算正交投影矩阵

    Type parameters

    Parameters

    • out: Out
    • left: number

      左平面距离

    • right: number

      右平面距离

    • bottom: number

      下平面距离

    • top: number

      上平面距离

    • near: number

      近平面距离

    • far: number

      远平面距离

    Returns Out

Static perspective

  • perspective<Out>(out: Out, fov: number, aspect: number, near: number, far: number, isFOVY?: boolean): Out
  • 计算透视投影矩阵

    Type parameters

    Parameters

    • out: Out
    • fov: number
    • aspect: number

      长宽比

    • near: number

      近平面距离

    • far: number

      远平面距离

    • Default value isFOVY: boolean = true

    Returns Out

Static rotate

  • rotate<Out, VecLike>(out: Out, a: Out, rad: number, axis: VecLike): null | Out
  • 在给定矩阵变换基础上加入新旋转变换

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • rad: number

      旋转角度

    • axis: VecLike

      旋转轴

    Returns null | Out

Static rotateX

  • rotateX<Out>(out: Out, a: Out, rad: number): Out
  • 在给定矩阵变换基础上加入绕 X 轴的旋转变换

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • rad: number

      旋转角度

    Returns Out

Static rotateY

  • rotateY<Out>(out: Out, a: Out, rad: number): Out
  • 在给定矩阵变换基础上加入绕 Y 轴的旋转变换

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • rad: number

      旋转角度

    Returns Out

Static rotateZ

  • rotateZ<Out>(out: Out, a: Out, rad: number): Out
  • 在给定矩阵变换基础上加入绕 Z 轴的旋转变换

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • rad: number

      旋转角度

    Returns Out

Static scale

  • scale<Out, VecLike>(out: Out, a: Out, v: VecLike): Out

Static set

  • set<Out>(out: Out, m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): Out
  • 设置矩阵值

    Type parameters

    Parameters

    • out: Out
    • m00: number
    • m01: number
    • m02: number
    • m03: number
    • m10: number
    • m11: number
    • m12: number
    • m13: number
    • m20: number
    • m21: number
    • m22: number
    • m23: number
    • m30: number
    • m31: number
    • m32: number
    • m33: number

    Returns Out

Static strictEquals

  • strictEquals<Out>(a: Out, b: Out): boolean

Static subtract

  • subtract<Out>(out: Out, a: Out, b: Out): Out

Static toArray

  • toArray<Out>(out: Out, m: IMat4Like, ofs?: number): Out
  • 矩阵转数组

    Type parameters

    • Out: IWritableArrayLike<number>

    Parameters

    • out: Out
    • m: IMat4Like
    • Default value ofs: number = 0

      数组内的起始偏移量

    Returns Out

Static toRTS

  • toRTS<Out, VecLike>(m: Out, q: Quat, v: VecLike, s: VecLike): void

Static transform

  • transform<Out, VecLike>(out: Out, a: Out, v: VecLike): Out

Static translate

  • translate<Out, VecLike>(out: Out, a: Out, v: VecLike): Out

Static transpose

  • transpose<Out>(out: Out, a: Out): Out

Generated using TypeDoc