QuaternionKeyFrameAnimation 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
面向具有一个或多个关键帧的 Orientation 属性的基于时间的动画。
QuaternionKeyFrameAnimation 类是受支持的 KeyFrameAnimation类型之一,用于对视觉对象上的 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 并指定属性名称和动画,动画与对象的 属性相关联。 有关可进行动画处理的属性的列表,请参阅 CompositionObject.StartAnimation 的备注部分。
四元数由两个可区分部分组成:向量和标量分量。 与关键帧动画一起使用时,可以通过 4 个浮点数的 System.Numerics 或 Vector3 和标量来定义四元数。 System.Numerics 为这两种表示法之一提供构造函数。
将旋转转换为四元数时,可以利用 System.Numerics Quaternion 帮助程序函数,这些函数允许从轴/角度组合、旋转矩阵或偏航/俯仰/滚动中创建四元数。 在上面的示例中,可以从以下帮助程序构造相同的四元数:
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 时如何设置属性值。 (继承自 KeyFrameAnimation) |
Target |
动画的目标。 (继承自 CompositionAnimation) |