Options
All
  • Public
  • Public/Protected
  • All
Menu

用以保存表示 (x, y, z, w) 四元数数据的类。 通常会用来表示空间旋转。它与常用的另外两种表示方式(三维正交矩阵和欧拉角) 是等价的,但是避免了欧拉角表示法中的[万向锁问题][1]。比起三维正交矩阵表示, 四元数表示能够更方便地给出旋转的转轴与旋转角。

see

https://en.wikipedia.org/wiki/Quaternion

see

https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

Hierarchy

  • Quaternion

Index

Constructors

constructor

  • new Quaternion(x?: number, y?: number, z?: number, w?: number): Quaternion
  • 根据指定浮点数创建四元数。

    Parameters

    • x: number = 0.0

      x 分量 (默认值 0)

    • y: number = 0.0

      y 分量 (默认值 0)

    • z: number = 0.0

      z 分量 (默认值 0)

    • w: number = 1.0

      w 分量 (默认值 1.0)

    Returns Quaternion

Accessors

length

  • get length(): number
  • 获取四元数长度(模)

    Returns number

tuple

  • 获取元组形式的四元数。

    Returns QuaternionTuple

    [x:number, y:number, z:number, w:number]

w

  • get w(): number
  • Returns number

x

  • get x(): number
  • Returns number

y

  • get y(): number
  • Returns number

z

  • get z(): number
  • Returns number

Methods

add

  • 获取一个新的四元数,表示当前值加上目标值的结果。

    Parameters

    Returns Quaternion

    新的四元数

addInPlace

  • 加上目标值。

    Parameters

    Returns Quaternion

    更新后的四元数

clone

  • 从当前四元数克隆创建新的四元数。

    Returns Quaternion

    新的旋转四元数

copyFrom

equals

  • 判断当前四元数与指定四元数是否严格相等。

    Parameters

    Returns boolean

    判断结果

equalsWithEpsilon

  • equalsWithEpsilon(quat: Quaternion, epsilon?: number): boolean
  • 判断当前向量与指定向量是否在机械极小值(默认 0.001)误差范围内相等。

    Parameters

    • quat: Quaternion

      指定相比较的向量

    • epsilon: number = ...

      机械极小值(默认 0.001)

    Returns boolean

    判断结果

normalize

  • 将当前四元数标准化(归一化)。

    Returns Quaternion

    标准化后的新四元数

normalizeInPlace

  • 将当前四元数标准化(归一化)。

    Returns Quaternion

    当前更新后的四元数

slerpTo

  • 以自身为起始状态,参数传入的四元数为终止状态,按指定浮点梯度进行球面线性插值。

    Parameters

    • end: Quaternion

      终止状态的四元数

    • gradient: number

      插值梯度,取值 0~1

    Returns Quaternion

    新的插值四元数

subtract

  • 获取一个新的四元数,表示从当前至减去目标值的结果。

    Parameters

    Returns Quaternion

    新的四元数

subtractInPlace

  • 减去目标值。

    Parameters

    Returns Quaternion

    更新后的四元数

Static FromEuler

Static FromEulerAngles

  • FromEulerAngles(x: number, y: number, z: number): Quaternion
  • 根据欧拉旋转角创建一个新的四元数旋转。

    deprecated

    该方法已弃用,请使用更为准确的转换方法。FromEuler() 方法

    Parameters

    • x: number

      纵倾弧度角度 (Pitch) - 绕 y 轴旋转

    • y: number

      横倾弧度角度 (Yaw) - 绕 z 轴旋转

    • z: number

      横摆弧度角度 (Roll) - 绕 x 轴旋转

    Returns Quaternion

    创建的四元数旋转

Static FromEulerVector

  • 根据欧拉旋转向量创建一个新的四元数旋转。

    deprecated

    该方法已弃用,请使用更为准确的转换方法。FromEuler() 方法

    Parameters

    • vector: Vector3

      欧拉旋转向量 (x Pitch, y Yaw, z Roll)

    Returns Quaternion

    创建的四元数旋转

Static FromRotationMatrix

  • 根据转换矩阵创建一个新的四元数旋转。

    Parameters

    Returns Quaternion

    创建的四元数旋转

Static RotationAxis

  • 创建一个四元组旋转表示根据给定轴向量旋转指定弧度角度。

    Parameters

    • axis: Vector3

      表示旋转轴方向的向量

    • angle: number

      旋转弧度角度

    Returns Quaternion

    创建的四元数旋转

Static RotationYawPitchRoll

  • RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Quaternion
  • 根据欧拉角创建一个新的四元数旋转。

    Parameters

    • yaw: number

      y 轴旋转弧度角度

    • pitch: number

      x 轴旋转弧度角度

    • roll: number

      z 周旋转弧度角度

    Returns Quaternion