跳到主要内容

Quat

简要描述

四元数。

描述

用于表示3D旋转的单位四元数。

它类似于Basis,它实现旋转的矩阵表示,并且可以使用轴角对或Euler角进行参数化。

四元数需要(重新)规范化。

成员

类型属性名默认值
floatw1.0
floatx0.0
floaty0.0
floatz0.0

方法

返回值类型方法名称
QuatQuat(#method-Quat)(from: Basis)
QuatQuat(#method-Quat)(euler: Vector3)
QuatQuat(#method-Quat)(axis: Vector3, angle: float)
QuatQuat(#method-Quat)(x: float, y: float, z: float, w: float)
Quatcubic_slerp(b: Quat, pre_a: Quat, post_b: Quat, t: float)
floatdot(b: Quat)
Vector3get_euler()
Quatinverse()
boolis_equal_approx(quat: Quat)
boolis_normalized()
floatlength()
floatlength_squared()
Quatnormalized()
set_axis_angle(axis: Vector3, angle: float)
set_euler(euler: Vector3)
Quatslerp(b: Quat, t: float)
Quatslerpni(b: Quat, t: float)
Vector3xform(v: Vector3)

常量

  • **IDENTITY = Quat( 0, 0, 0, 1 )**

单位四元数。等同于一个单位矩阵。如果一个向量由单位四元数变换,则它不会改变。

成员说明

  • float w
Default1.0
getter****
  • float x
Default0.0
getter****
  • float y
Default0.0
getter****
  • float z
Default0.0
getter****

方法说明

  • Quat Quat(from: Basis)

返回对应于给定四元数的旋转矩阵。


  • Quat Quat(euler: Vector3)

返回一个四元数,该四元数将执行由欧拉角指定的旋转(按照YXZ约定:第一个Z,然后X,最后一个Y),矢量格式为(X角,Y角,Z角)。


  • Quat Quat(axis: Vector3, angle: float)

返回将围绕给定轴旋转指定角度的四元数。


  • Quat Quat(x: float, y: float, z: float, w: float)

返回由这些值定义的四元数。


  • cubic_slerp cubic_slerp(b: Quat, pre_a: Quat, post_b: Quat, t: float)

用另一个四元数执行三次球面线性插值。


  • dot dot(b: Quat)

返回两个四元数的点积。


  • get_euler get_euler()

返回与单位四元数表示的旋转相对应的欧拉角(按照YXZ约定:第一个Z,然后是X,最后是Y)。


  • inverse inverse()

返回四元数的倒数。


  • is_equal_approx is_equal_approx(quat: Quat)

通过在每个组件上运行[@],如果此四分位数和quat近似相等,则返回true


  • is_normalized is_normalized()

返回四元数是否已规范化。


  • length length()

返回四元数的长度。


  • length_squared length_squared()

返回四元数的长度,平方。


  • normalized normalized()

返回四元数的副本,将其标准化为单位长度。


  • set_axis_angle set_axis_angle(axis: Vector3, angle: float)

将四元数设置为以弧度为单位围绕轴旋转指定角度的旋转。


  • set_euler set_euler(euler: Vector3)

将四元数设置为由Euler角指定的旋转(在YXZ约定中:首先是Z,然后是X,最后是Y),以矢量格式给出(X角,Y角,Z角)。


  • slerp slerp(b: Quat, t: float)

用另一个四元数执行球面线性插值。


  • slerpni slerpni(b: Quat, t: float)

使用另一个四元数执行球面线性插值,而不检查旋转路径是否不大于90°。


  • xform xform(v: Vector3)

通过此四元数变换向量v