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 並指定屬性名稱和動畫,來與對象的 屬性產生關聯。 如需可產生動畫屬性的清單,請參閱 compositionObject.StartAnimation 的備註一節。
四元數是由兩個可辨別部分所組成:向量和純量元件。 搭配 KeyFrame 動畫使用時,四元數可以透過 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 時,從頭到尾驅動動畫,或從開始到結束或結束之間替代。 這可讓您輕鬆自定義動畫定義。 (繼承來源 KeyFrameAnimation) |
DispatcherQueue |
取得 CompositionObject 的 DispatcherQueue。 (繼承來源 CompositionObject) |
Duration |
動畫的持續時間。 (繼承來源 KeyFrameAnimation) |
ImplicitAnimations |
附加至這個物件的隱含動畫集合。 (繼承來源 CompositionObject) |
InitialValueExpressions |
取得動畫的初始值。 (繼承來源 CompositionAnimation) |
IterationBehavior |
主要畫面格動畫的反覆運算行為。 (繼承來源 KeyFrameAnimation) |
IterationCount |
重複主要畫面格動畫的次數。 (繼承來源 KeyFrameAnimation) |
KeyFrameCount |
KeyFrameAnimation中的主要畫面格數目。 (繼承來源 KeyFrameAnimation) |
Properties |
與 compositionObject 相關聯的屬性集合,。 (繼承來源 CompositionObject) |
StopBehavior | (繼承來源 KeyFrameAnimation) |
Target |
動畫的目標。 (繼承來源 CompositionAnimation) |