QuaternionKeyFrameAnimation 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
基于时间的动画,面向具有一个或多个关键帧的 Orientation 属性。
QuaternionKeyFrameAnimation 类是受支持的 KeyFrameAnimation类型之一,用于对 Visual上的 Orientation 属性进行动画处理。 四元数是一种有用的有时更简单的旋转方式 - 四元数采用角度之间的最短路径,并避免像 Gimbal Lock 这样的问题,即旋转角度/轴和旋转矩阵。 四元数由两个组成部分组成:标量和矢量部分。
public ref class QuaternionKeyFrameAnimation sealed : KeyFrameAnimation
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class QuaternionKeyFrameAnimation final : KeyFrameAnimation
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class QuaternionKeyFrameAnimation final : KeyFrameAnimation
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class QuaternionKeyFrameAnimation : KeyFrameAnimation
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class QuaternionKeyFrameAnimation : KeyFrameAnimation
Public NotInheritable Class QuaternionKeyFrameAnimation
Inherits KeyFrameAnimation
- 继承
-
Object Platform::Object IInspectable CompositionObject CompositionAnimation KeyFrameAnimation QuaternionKeyFrameAnimation
- 属性
示例
void QuaternionAnimation(SpriteVisual visual)
{
// Create the QuaternionKeyFrameAnimation
var quaternionKFA = _compositor.CreateQuaternionKeyFrameAnimation();
// Create a Quaternion that represents a 45 degree rotation around X Axis
Quaternion quaternion = new Quaternion(0.380f, 0f, 0.0f, 0.92f);
// Insert the Quaternion into the KeyFrame
quaternionKFA.InsertKeyFrame(1.0f, quaternion);
quaternionKFA.Duration = TimeSpan.FromSeconds(1);
// Attach to the Orientation property of Visual
visual.StartAnimation("Orientation", quaternionKFA);
}
注解
通过调用 compositionObject.StartAnimation 并指定属性名称和动画
四元数由两个可分辨部分组成:矢量和标量组件。 与关键帧动画一起使用时,四元数可以通过 4 个浮点数或 Vector3 和标量的 System.Numerics 表示法定义。 System.Numerics 为其中任一表示法提供构造函数。
将旋转转换为四元数时,可以利用 System.Numerics Quaternion 帮助程序函数,以便从轴/角度组合、旋转矩阵或 Yaw/Pitch/Roll 创建四元数。 在上面的示例中,可以从以下帮助程序构造相同的四元数:
Quaternion quaternion = Quaternion.CreateFromAxisAngle(new Vector3(1.0f, 0.0f, 0.0f), 0.78f);
属性
Comment |
要与 CompositionObject 关联的字符串。 (继承自 CompositionObject) |
Compositor |
用于创建此 CompositionObject的 Compositor。 (继承自 CompositionObject) |
DelayBehavior |
关键帧动画的延迟行为。 (继承自 KeyFrameAnimation) |
DelayTime |
调用 CompositionObject.StartAnimation 之后动画开始前的延迟。 (继承自 KeyFrameAnimation) |
Direction |
动画正在播放的方向。 Direction 属性允许在动画具有 IterationCount 大于 1 的情况下,从头到尾驱动动画从头到尾或从头开始或交替。 这为自定义动画定义提供了一种简单的方法。 (继承自 KeyFrameAnimation) |
DispatcherQueue |
获取 CompositionObject 的 DispatcherQueue。 (继承自 CompositionObject) |
Duration |
动画的持续时间。 (继承自 KeyFrameAnimation) |
ImplicitAnimations |
附加到此对象的隐式动画的集合。 (继承自 CompositionObject) |
InitialValueExpressions |
获取动画的初始值。 (继承自 CompositionAnimation) |
IterationBehavior |
关键帧动画的迭代行为。 (继承自 KeyFrameAnimation) |
IterationCount |
重复关键帧动画的次数。 (继承自 KeyFrameAnimation) |
KeyFrameCount |
KeyFrameAnimation中的关键帧数。 (继承自 KeyFrameAnimation) |
Properties |
与 CompositionObject关联的属性的集合。 (继承自 CompositionObject) |
StopBehavior |
指定调用 StopAnimation |
Target |
动画的目标。 (继承自 CompositionAnimation) |