包 | flash.geom |
类 | public final class Orientation3D |
继承 | Orientation3D Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
decompose
和 recompose
方法采用其中的某一个枚举类型来标识矩阵的旋转组件。
另请参见
常量 | 定义方 | ||
---|---|---|---|
AXIS_ANGLE : String = "axisAngle" [静态] 轴角方向结合使用轴和角度来确定方向。 | Orientation3D | ||
EULER_ANGLES : String = "eulerAngles" [静态] 欧拉角(decompose() 和 recompose() 方法的默认方向)通过三个不同的对应于每个轴的旋转角来定义方向。 | Orientation3D | ||
QUATERNION : String = "quaternion" [静态] 四元数方向使用复数。 | Orientation3D |
AXIS_ANGLE | 常量 |
public static const AXIS_ANGLE:String = "axisAngle"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
轴角方向结合使用轴和角度来确定方向。例如,从三维球体中心到表面的直线或矢量就是一个轴。对象绕其旋转的轴是一个单位矢量,它表示三维空间中任何可能的方向。角表示有关矢量的旋转幅度。方向确定显示对象面对的方向,而横摇角确定哪个方向是向上。可以使用 Vector3D 和 Matrix3D 对象来确定各种矩阵转换,并确定重要的三维编程值,例如与两个对象的相交部分的距离(可用于检测三维对象之间的简单冲突)。
Matrix3D.appendRotation()
和 Matrix3D.prependRotation()
方法均使用轴角方向。
另请参见
EULER_ANGLES | 常量 |
public static const EULER_ANGLES:String = "eulerAngles"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
欧拉角(decompose()
和 recompose()
方法的默认方向)通过三个不同的对应于每个轴的旋转角来定义方向。通常,先进行绕 x 轴的旋转,然后进行绕 y 轴的旋转,最后进行绕 z 轴的旋转。
由于存在一些问题(如绕 x 轴旋转时出现的奇异性问题或万向节锁定情况),欧拉角有时会导致动画错误。例如,由于使用欧拉角的每个轴均被单独处理,因此在绕两个或更多轴旋转的过程中,会发生万向节锁定情况。这些轴可能会对齐,从而导致意外结果。
显示对象的轴旋转属性会执行欧拉角旋转。
另请参见
QUATERNION | 常量 |
public static const QUATERNION:String = "quaternion"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
四元数方向使用复数。四元数中的方向由三个旋转轴(x、y、z)和一个旋转角 (w) 确定。四元数可以确保旋转的路径最短且最有效。它还生成平滑的、无万向节锁定的旋转。在绕两个或更多轴旋转的过程中若出现轴对齐,则会发生万向节锁定,从而导致意外结果。
Matrix3D.interpolate()
方法使用四元数。
另请参见