Packagelaya.d3.math
Classpublic class Quaternion
InheritanceQuaternion Inheritance Object
Implements laya.d3.core.IClone

Quaternion 类用于创建四元数。



Public Properties
 PropertyDefined By
  elements : Float32Array
四元数元素数组
Quaternion
  w : Number
[read-only] 获取四元数的w值
Quaternion
  x : Number
[read-only] 获取四元数的x值
Quaternion
  y : Number
[read-only] 获取四元数的y值
Quaternion
  z : Number
[read-only] 获取四元数的z值
Quaternion
Public Methods
 MethodDefined By
  
Quaternion(x:Number = 0, y:Number = 0, z:Number = 0, w:Number = 1)
创建一个 Quaternion 实例。
Quaternion
  
add(left:Quaternion, right:Quaternion, out:Quaternion):void
[static] 计算两个四元数的和
Quaternion
  
clone():*
克隆。
Quaternion
  
cloneTo(destObject:*):void
克隆。
Quaternion
  
createFromAxisAngle(axis:Vector3, rad:Number, out:Quaternion):void
[static] 从指定的轴和角度计算四元数
Quaternion
  
[static] 根据3x3矩阵计算四元数
Quaternion
  
[static] 从旋转矩阵计算四元数
Quaternion
  
createFromYawPitchRoll(yaw:Number, pitch:Number, roll:Number, out:Quaternion):void
[static] 从欧拉角基元四元数(顺序为Yaw、Pitch、Roll)
Quaternion
  
dot(left:Quaternion, right:Quaternion):Number
[static] 计算两个四元数的点积
Quaternion
  
equals(b:Quaternion):Boolean
Quaternion
  
分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转
Quaternion
  
identity():void
置四元数为单位算数
Quaternion
  
invert(out:Quaternion):void
求四元数的逆
Quaternion
  
invert(value:Quaternion, out:Quaternion):void
[static] 计算四元数的逆四元数。
Quaternion
  
length():Number
计算四元数的长度
Quaternion
  
lengthSquared():Number
计算长度的平方。
Quaternion
  
lerp(left:Quaternion, right:Quaternion, t:Number, out:Quaternion):void
[static] 计算两个四元数的线性插值
Quaternion
  
lookAt(eye:Vector3, target:Vector3, up:Vector3, out:Quaternion):void
[static] 计算观察四元数
Quaternion
  
multiply(left:Quaternion, right:Quaternion, out:Quaternion):void
[static] 计算两个四元数相乘
Quaternion
  
归一化四元数
Quaternion
  
rotateX(rad:Number, out:Quaternion):void
根据绕X轴的角度旋转四元数
Quaternion
  
rotateY(rad:Number, out:Quaternion):void
根据绕Y轴的制定角度旋转四元数
Quaternion
  
rotateZ(rad:Number, out:Quaternion):void
根据绕Z轴的制定角度旋转四元数
Quaternion
  
rotationLookAt(forward:Vector3, up:Vector3, out:Quaternion):void
[static] 计算旋转观察四元数
Quaternion
  
rotationMatrix(matrix3x3:Matrix3x3, out:Quaternion):void
[static] 通过一个3x3矩阵创建一个四元数
Quaternion
  
scaling(scaling:Number, out:Quaternion):void
根据缩放值缩放四元数
Quaternion
  
slerp(left:Quaternion, right:Quaternion, t:Number, out:Quaternion):Float32Array
[static] 球面插值
Quaternion
Public Constants
 ConstantDefined By
  DEFAULT : Quaternion
[static] 默认矩阵,禁止修改
Quaternion
Property Detail
elementsproperty
public var elements:Float32Array

四元数元素数组

wproperty 
w:Number  [read-only]

获取四元数的w值


Implementation
    public function get w():Number
xproperty 
x:Number  [read-only]

获取四元数的x值


Implementation
    public function get x():Number
yproperty 
y:Number  [read-only]

获取四元数的y值


Implementation
    public function get y():Number
zproperty 
z:Number  [read-only]

获取四元数的z值


Implementation
    public function get z():Number
Constructor Detail
Quaternion()Constructor
public function Quaternion(x:Number = 0, y:Number = 0, z:Number = 0, w:Number = 1)

创建一个 Quaternion 实例。

Parameters
x:Number (default = 0) — 四元数的x值
 
y:Number (default = 0) — 四元数的y值
 
z:Number (default = 0) — 四元数的z值
 
w:Number (default = 1) — 四元数的w值
Method Detail
add()method
public static function add(left:Quaternion, right:Quaternion, out:Quaternion):void

计算两个四元数的和

Parameters

left:Quaternion — left四元数
 
right:Quaternion — right 四元数
 
out:Quaternion — 输出四元数

clone()method 
public function clone():*

克隆。

Returns
* — 克隆副本。
cloneTo()method 
public function cloneTo(destObject:*):void

克隆。

Parameters

destObject:* — 克隆源。

createFromAxisAngle()method 
public static function createFromAxisAngle(axis:Vector3, rad:Number, out:Quaternion):void

从指定的轴和角度计算四元数

Parameters

axis:Vector3 — 轴
 
rad:Number — 角度
 
out:Quaternion — 输出四元数

createFromMatrix3x3()method 
public static function createFromMatrix3x3(sou:Matrix3x3, out:Quaternion):void

根据3x3矩阵计算四元数

Parameters

sou:Matrix3x3 — 源矩阵
 
out:Quaternion — 输出四元数

createFromMatrix4x4()method 
public static function createFromMatrix4x4(mat:Matrix4x4, out:Quaternion):void

从旋转矩阵计算四元数

Parameters

mat:Matrix4x4 — 旋转矩阵
 
out:Quaternion — 输出四元数

createFromYawPitchRoll()method 
public static function createFromYawPitchRoll(yaw:Number, pitch:Number, roll:Number, out:Quaternion):void

从欧拉角基元四元数(顺序为Yaw、Pitch、Roll)

Parameters

yaw:Number — yaw值
 
pitch:Number — pitch值
 
roll:Number — roll值
 
out:Quaternion — 输出四元数

dot()method 
public static function dot(left:Quaternion, right:Quaternion):Number

计算两个四元数的点积

Parameters

left:Quaternion — left四元数
 
right:Quaternion — right四元数

Returns
Number — 点积
equals()method 
public function equals(b:Quaternion):Boolean

Parameters

b:Quaternion

Returns
Boolean
getYawPitchRoll()method 
public function getYawPitchRoll(out:Vector3):void

分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转

Parameters

out:Vector3 — 源四元数

identity()method 
public function identity():void

置四元数为单位算数

invert()method 
public function invert(out:Quaternion):void

求四元数的逆

Parameters

out:Quaternion — 输出四元数

invert()method 
public static function invert(value:Quaternion, out:Quaternion):void

计算四元数的逆四元数。

Parameters

value:Quaternion — 四元数。
 
out:Quaternion — 逆四元数。

length()method 
public function length():Number

计算四元数的长度

Returns
Number — 长度
lengthSquared()method 
public function lengthSquared():Number

计算长度的平方。

Returns
Number — 长度的平方。
lerp()method 
public static function lerp(left:Quaternion, right:Quaternion, t:Number, out:Quaternion):void

计算两个四元数的线性插值

Parameters

left:Quaternion — left四元数
 
right:Quaternion — right四元数b
 
t:Number — 插值比例
 
out:Quaternion — 输出四元数

lookAt()method 
public static function lookAt(eye:Vector3, target:Vector3, up:Vector3, out:Quaternion):void

计算观察四元数

Parameters

eye:Vector3 — 观察者位置
 
target:Vector3 — 目标位置
 
up:Vector3 — 上向量
 
out:Quaternion — 输出四元数

multiply()method 
public static function multiply(left:Quaternion, right:Quaternion, out:Quaternion):void

计算两个四元数相乘

Parameters

left:Quaternion — left四元数
 
right:Quaternion — right四元数
 
out:Quaternion — 输出四元数

normalize()method 
public function normalize(out:Quaternion):void

归一化四元数

Parameters

out:Quaternion — 输出四元数

rotateX()method 
public function rotateX(rad:Number, out:Quaternion):void

根据绕X轴的角度旋转四元数

Parameters

rad:Number — 角度
 
out:Quaternion — 输出四元数

rotateY()method 
public function rotateY(rad:Number, out:Quaternion):void

根据绕Y轴的制定角度旋转四元数

Parameters

rad:Number — 角度
 
out:Quaternion — 输出四元数

rotateZ()method 
public function rotateZ(rad:Number, out:Quaternion):void

根据绕Z轴的制定角度旋转四元数

Parameters

rad:Number — 角度
 
out:Quaternion — 输出四元数

rotationLookAt()method 
public static function rotationLookAt(forward:Vector3, up:Vector3, out:Quaternion):void

计算旋转观察四元数

Parameters

forward:Vector3 — 方向
 
up:Vector3 — 上向量
 
out:Quaternion — 输出四元数

rotationMatrix()method 
public static function rotationMatrix(matrix3x3:Matrix3x3, out:Quaternion):void

通过一个3x3矩阵创建一个四元数

Parameters

matrix3x3:Matrix3x3 — 3x3矩阵
 
out:Quaternion — 四元数

scaling()method 
public function scaling(scaling:Number, out:Quaternion):void

根据缩放值缩放四元数

Parameters

scaling:Number — 缩放值
 
out:Quaternion — 输出四元数

slerp()method 
public static function slerp(left:Quaternion, right:Quaternion, t:Number, out:Quaternion):Float32Array

球面插值

Parameters

left:Quaternion — left四元数
 
right:Quaternion — right四元数
 
t:Number — 插值比例
 
out:Quaternion — 输出四元数

Returns
Float32Array — 输出Float32Array
Constant Detail
DEFAULTConstant
public static const DEFAULT:Quaternion

默认矩阵,禁止修改