Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Quat

四元数。

Hierarchy

Index

Constructors

constructor

  • newQuat(other: Quat): Quat
  • newQuat(x?: undefined | number, y?: undefined | number, z?: undefined | number, w?: undefined | number): Quat
  • Parameters

    Returns Quat

  • Parameters

    • Optional x: undefined | number
    • Optional y: undefined | number
    • Optional z: undefined | number
    • Optional w: undefined | number

    Returns Quat

Properties

w

w: number

w 分量。

x

x: number

x 分量。

y

y: number

y 分量。

z

z: number

z 分量。

Static IDENTITY

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

Type declaration

Methods

clone

  • 克隆当前四元数。

    Returns Quat

equals

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

    Parameters

    • other: Quat

      相比较的向量。

    • Default value epsilon: number = EPSILON

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

    Returns boolean

    当两向量的各分量都在指定的误差范围内分别相等时,返回 true;否则返回 false

getEulerAngles

  • 将当前四元数转化为欧拉角(x-y-z)并赋值给出口向量。

    Parameters

    • out: Vec3

      出口向量。

    Returns Vec3

length

  • length(): number
  • 求四元数长度

    Returns number

lengthSqr

  • lengthSqr(): number
  • 求四元数长度平方

    Returns number

lerp

  • lerp(to: Quat, ratio: number): this
  • 根据指定的插值比率,从当前四元数到目标四元数之间做插值。

    Parameters

    • to: Quat

      目标四元数。

    • ratio: number

      插值比率,范围为 [0,1]。

    Returns this

set

  • set(other: Quat): Quat
  • set(x?: undefined | number, y?: undefined | number, z?: undefined | number, w?: undefined | number): Quat
  • 设置当前四元数使其与指定四元数相等。

    Parameters

    • other: Quat

      相比较的四元数。

    Returns Quat

    this

  • 设置当前四元数指定元素值。

    Parameters

    • Optional x: undefined | number

      四元数 x 元素值

    • Optional y: undefined | number

      四元数 y 元素值

    • Optional z: undefined | number

      四元数 z 元素值

    • Optional w: undefined | number

      四元数 w 元素值

    Returns Quat

    this

strictEquals

  • strictEquals(other: Quat): boolean
  • 判断当前四元数是否与指定四元数相等。

    Parameters

    • other: Quat

      相比较的四元数。

    Returns boolean

    两四元数的各分量都相等时返回 true;否则返回 false

toString

  • toString(): string
  • 返回当前值的字符串表示。 本方法的基类版本返回空字符串。

    Returns string

    当前值的字符串表示。

Static calculateW

  • calculateW<Out>(out: Out, a: Out): Out
  • 根据 xyz 分量计算 w 分量,默认已归一化

    Type parameters

    Parameters

    • out: Out
    • a: Out

    Returns Out

Static clone

  • clone<Out>(a: Out): Quat
  • 获得指定四元数的拷贝

    Type parameters

    Parameters

    • a: Out

    Returns Quat

Static conjugate

  • conjugate<Out>(out: Out, a: Out): Out
  • 求共轭四元数,对单位四元数与求逆等价,但更高效

    Type parameters

    Parameters

    • out: Out
    • a: Out

    Returns Out

Static copy

  • copy<Out, QuatLike>(out: Out, a: QuatLike): Out
  • 复制目标四元数

    Type parameters

    Parameters

    • out: Out
    • a: QuatLike

    Returns Out

Static dot

  • dot<Out>(a: Out, b: Out): number
  • 四元数点积(数量积)

    Type parameters

    Parameters

    • a: Out
    • b: Out

    Returns 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 fromAxes

  • fromAxes<Out, VecLike>(out: Out, xAxis: VecLike, yAxis: VecLike, zAxis: VecLike): Out
  • 根据本地坐标轴朝向计算四元数,默认三向量都已归一化且相互垂直

    Type parameters

    Parameters

    • out: Out
    • xAxis: VecLike
    • yAxis: VecLike
    • zAxis: VecLike

    Returns Out

Static fromAxisAngle

  • fromAxisAngle<Out, VecLike>(out: Out, axis: VecLike, rad: number): Out
  • 根据旋转轴和旋转弧度计算四元数

    Type parameters

    Parameters

    • out: Out
    • axis: VecLike
    • rad: number

    Returns Out

Static fromEuler

  • fromEuler<Out>(out: Out, x: number, y: number, z: number): Out
  • 根据欧拉角信息计算四元数,旋转顺序为 YZX

    Type parameters

    Parameters

    • out: Out
    • x: number
    • y: number
    • z: number

    Returns Out

Static fromMat3

  • fromMat3<Out>(out: Out, m: Mat3): Out
  • 根据三维矩阵信息计算四元数,默认输入矩阵不含有缩放信息

    Type parameters

    Parameters

    Returns Out

Static fromViewUp

  • fromViewUp<Out, VecLike>(out: Out, view: VecLike, up?: Vec3): Out
  • 根据视口的前方向和上方向计算四元数

    Type parameters

    Parameters

    • out: Out
    • view: VecLike

      视口面向的前方向,必须归一化

    • Optional up: Vec3

      视口的上方向,必须归一化,默认为 (0, 1, 0)

    Returns Out

Static getAxisAngle

  • getAxisAngle<Out, VecLike>(outAxis: VecLike, q: Out): number
  • 获取四元数的旋转轴和旋转弧度

    Type parameters

    Parameters

    • outAxis: VecLike

      旋转轴输出

    • q: Out

      源四元数

    Returns number

    旋转弧度

Static identity

  • identity<Out>(out: Out): Out
  • 将目标赋值为单位四元数

    Type parameters

    Parameters

    • out: Out

    Returns Out

Static invert

  • invert<Out, QuatLike>(out: Out, a: QuatLike): Out
  • 四元数求逆

    Type parameters

    Parameters

    • out: Out
    • a: QuatLike

    Returns Out

Static len

  • len<Out>(a: Out): number
  • 求四元数长度

    Type parameters

    Parameters

    • a: Out

    Returns number

Static lengthSqr

  • lengthSqr<Out>(a: Out): number
  • 求四元数长度平方

    Type parameters

    Parameters

    • a: Out

    Returns number

Static lerp

  • lerp<Out>(out: Out, a: Out, b: Out, t: number): Out
  • 逐元素线性插值: A + t * (B - A)

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • b: Out
    • t: number

    Returns Out

Static multiply

  • multiply<Out, QuatLike_1, QuatLike_2>(out: Out, a: QuatLike_1, b: QuatLike_2): Out
  • 四元数乘法

    Type parameters

    Parameters

    • out: Out
    • a: QuatLike_1
    • b: QuatLike_2

    Returns Out

Static multiplyScalar

  • multiplyScalar<Out>(out: Out, a: Out, b: number): Out
  • 四元数标量乘法

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • b: number

    Returns Out

Static normalize

  • normalize<Out>(out: Out, a: Out): Out
  • 归一化四元数

    Type parameters

    Parameters

    • out: Out
    • a: Out

    Returns Out

Static rotateAround

  • rotateAround<Out, VecLike>(out: Out, rot: Out, axis: VecLike, rad: number): Out
  • 绕世界空间下指定轴旋转四元数

    Type parameters

    Parameters

    • out: Out
    • rot: Out
    • axis: VecLike

      旋转轴,默认已归一化

    • rad: number

      旋转弧度

    Returns Out

Static rotateAroundLocal

  • rotateAroundLocal<Out, VecLike>(out: Out, rot: Out, axis: VecLike, rad: number): Out
  • 绕本地空间下指定轴旋转四元数

    Type parameters

    Parameters

    • out: Out
    • rot: Out
    • axis: VecLike

      旋转轴

    • rad: number

      旋转弧度

    Returns 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 rotationTo

  • rotationTo<Out, VecLike>(out: Out, a: VecLike, b: VecLike): Out
  • 设置四元数为两向量间的最短路径旋转,默认两向量都已归一化

    Type parameters

    Parameters

    • out: Out
    • a: VecLike
    • b: VecLike

    Returns Out

Static scaleAndAdd

  • scaleAndAdd<Out>(out: Out, a: Out, b: Out, scale: number): Out
  • 四元数乘加:A + B * scale

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • b: Out
    • scale: number

    Returns Out

Static set

  • set<Out>(out: Out, x: number, y: number, z: number, w: number): Out
  • 设置四元数值

    Type parameters

    Parameters

    • out: Out
    • x: number
    • y: number
    • z: number
    • w: number

    Returns Out

Static slerp

  • slerp<Out, QuatLike_1, QuatLike_2>(out: Out, a: QuatLike_1, b: QuatLike_2, t: number): Out
  • 四元数球面插值

    Type parameters

    Parameters

    • out: Out
    • a: QuatLike_1
    • b: QuatLike_2
    • t: number

    Returns Out

Static sqlerp

  • sqlerp<Out>(out: Out, a: Out, b: Out, c: Out, d: Out, t: number): Out
  • 带两个控制点的四元数球面插值

    Type parameters

    Parameters

    • out: Out
    • a: Out
    • b: Out
    • c: Out
    • d: Out
    • t: number

    Returns Out

Static strictEquals

  • strictEquals<Out>(a: Out, b: Out): boolean
  • 四元数等价判断

    Type parameters

    Parameters

    • a: Out
    • b: Out

    Returns boolean

Static toArray

  • toArray<Out>(out: Out, q: IQuatLike, ofs?: number): Out
  • 四元数转数组

    Type parameters

    • Out: IWritableArrayLike<number>

    Parameters

    • out: Out
    • q: IQuatLike
    • Default value ofs: number = 0

      数组内的起始偏移量

    Returns Out

Static toAxisX

  • toAxisX<Out, VecLike>(out: VecLike, q: Out): VecLike
  • 返回定义此四元数的坐标系 X 轴向量

    Type parameters

    Parameters

    • out: VecLike
    • q: Out

    Returns VecLike

Static toAxisY

  • toAxisY<Out, VecLike>(out: VecLike, q: Out): VecLike
  • 返回定义此四元数的坐标系 Y 轴向量

    Type parameters

    Parameters

    • out: VecLike
    • q: Out

    Returns VecLike

Static toAxisZ

  • toAxisZ<Out, VecLike>(out: VecLike, q: Out): VecLike
  • 返回定义此四元数的坐标系 Z 轴向量

    Type parameters

    Parameters

    • out: VecLike
    • q: Out

    Returns VecLike

Static toEuler

  • toEuler<Out>(out: Out, q: IQuatLike, outerZ?: undefined | false | true): Out
  • 根据四元数计算欧拉角,返回角度 x, y 在 [-180, 180] 区间内, z 默认在 [-90, 90] 区间内,旋转顺序为 YZX

    Type parameters

    Parameters

    • out: Out
    • q: IQuatLike
    • Optional outerZ: undefined | false | true

      z 取值范围区间改为 [-180, -90] U [90, 180]

    Returns Out

Generated using TypeDoc