Freigeben über


Schwungmechanik

Die Trägheit wird verwendet, um Berechnungen zum Animieren von Objektverschiebungen durchzuführen und die Unterstützung der generischen Benutzerfreundlichkeit in Anwendungen zu ermöglichen, die Windows Touch enthalten. In diesem Abschnitt werden die folgenden Features veranschaulicht, die durch DieTrägheit aktiviert werden.

  • Ein kurzer Überblick über die Inerträgheitsphysik.
  • Animation eines reibungslosen Objekts mithilfe der Eigenschaften "Geschwindigkeit" und "Verzögerung".
  • Animation des smooth-Objekts mithilfe einer Verschiebungseigenschaft.
  • Springen von den Bildschirmrändern mit elastischen Grenzen.

Übersicht über die Inertia Physics

Der Trägheitsprozessor verwendet ein einfaches Physikmodell, das eine Position, einen Verzögerungswert und eine Anfangsgeschwindigkeit enthält. Die Zeit wird als dynamische Eingabe für das Modell verwendet, um die aktuelle Position eines verdrängten Objekts zu bestimmen. Das folgende Diagramm und die folgende Formel beschreiben das Physikmodell, das zum Berechnen von Objektpositionen verwendet wird.

Abbildung des Diagramms und der Formel, die zum Berechnen von Objektpositionen verwendet werden

In der Formel zur Berechnung der aktuellen Position (x) wird die Anfangsgeschwindigkeit (v) mit der verstrichenen Zeit (t) multipliziert und um den Verzögerungsfaktor (d) mal zeit im Quadrat reduziert. Dies führt zu einer reibungslosen Objektverlangsamung. In der vorherigen Abbildung am ersten (linken) Teil der Kurve bewegt sich das Objekt schnell, da es sich bei seiner aktuellen Geschwindigkeit um die Anfangsgeschwindigkeit handelt. Am letzten (rechtssten) Teil der Kurve wurde das Objekt vollständig beendet, da seine Geschwindigkeit 0 ist. Objektgeschwindigkeitsberechnungen für X-Geschwindigkeit, y-Geschwindigkeit und Rotationsgeschwindigkeit verwenden diese Formel für Berechnungen.

Der gesamte Abstand, der für den Inertia-Prozessor verwendet wird, ist relativ. Wenn Sie Bildschirmkoordinaten verwenden möchten, übergeben Sie Bildschirmkoordinaten an den Bearbeitungsprozessor (oder Trägheitsprozessor). wenn Sie absolute Koordinaten verwenden möchten, übergeben Sie diese an den verwendeten Prozessor. Unabhängig von den von Ihnen verwendeten Werten verwendet der Bearbeitungsprozessor Millisekundentakte für die Verarbeitung der Zeit. Diese Werte können entweder direkt mit der ProcessTime-Methode oder mithilfe des Standardzeitstempels durch Aufrufe von Process an den Trägheitsprozessor übergeben werden.

Smooth Object Animation mit den Eigenschaften "Geschwindigkeit" und "Verzögerung"

Sie können eine reibungslose Animation aktivieren, indem Sie direkt mit dem Physikmodell interagieren, indem Sie die Geschwindigkeits- und Verzögerungswerte in der Trägheitsprozessorschnittstelle festlegen und dann Process aufrufen. Beim Aufrufen von Process werden Objektmanipulationen ausgelöst, die wiederum Benutzeroberflächenupdates verursachen sollten. Objektgeschwindigkeitswerte, die an den Inertia-Prozessor übergeben werden, werden in der Regel nach Abschluss vom Bearbeitungsprozessor übernommen. Ihr Verzögerungswert hängt davon ab, wie lange Ihr Objekt animiert werden soll, und von den Einheiten, die Sie für Ihre Berechnungen verwenden. Da die Werte abhängig sind, müssen Sie manchmal die Eingabegeschwindigkeit des Maniplationsprozessors skalieren und beliebige Werte für die Verzögerung verwenden. Die folgenden Werte sind typisch für verschiedene Szenarien, in denen Sie Centipixel-Werte von den x- und y-Eigenschaften der TOUCHINPUT-Struktur an den Bearbeitungsprozessor übergeben.

Szenario Eigenschaftensatz Verzögerungswert Typische Geschwindigkeitseingabeskalierung Notizen
Sprachübersetzung DesiredDeceleration 0.003f Keine Die Verwendung dieses Werts führt zu Animationen mit größerer Entfernung, wenn die Toucheingabe verwendet wird.
Sprachübersetzung DesiredDeceleration 0.001f 1/20. Anfangsgeschwindigkeit für Toucheingaben, keine für Mauseingaben Die Verwendung dieses Werts wird bei typischen Geschwindigkeitseingaben etwa eine Sekunde lang animiert.
Sprachübersetzung DesiredDeceleration 0,5f Keine Die Verwendung dieses Werts verleiht der Animation auf großen Windows Touch-Displays ein natürliches Gefühl.
Drehung DesiredAngularDeceleration 0.000015f Bogenmaße in Grad konvertiert. Die Verwendung dieses Werts führt zu längeren Drehanimationen bei Verwendung von Toucheingaben.
Drehung DesiredAngularDeceleration 0.00001f 1/40. Rotationsdelta für Toucheingaben, keine für Mauseingaben Dieser Wert befindet sich in Bogenmaßen, sodass Sie sehr kleine Verzögerungs- und Geschwindigkeitswerte verwenden müssen.
Drehung DesiredAngularDeceleration 0,0000005f Keine Dieser Wert hat eine natürliche Haptik auf großen Windows Touch-Displays.

 

Animation des Smooth-Objekts mithilfe der Eigenschaft "Gewünschte Verschiebung"

In einigen Fällen möchten Sie die Eingabe des Benutzers nicht für die Objektverschiebung verwenden, aber Sie möchten trotzdem, dass ein Objekt reibungslos über den Bildschirm animiert wird. In diesem Fall können Sie Verschiebungseigenschaften im Inertia-Prozessor verwenden, damit der Prozessor die anfängliche Geschwindigkeit für das Verschieben eines Objekts über den Bildschirm berechnet.

Steuern der Objektposition mithilfe elastischer Grenzen

Nachdem Sie über ein Objekt verfügen, das sich über den Bildschirm bewegt, sollten Sie es in der Regel beenden, bevor es außerhalb des Blickwinkels des Benutzers liegt. Der Inertia-Prozessor ermöglicht diese Funktionalität über die Eigenschaften "Begrenzung" und "Elastischer Rand". Die folgende Abbildung veranschaulicht die verschiedenen Begrenzungs- und Randeigenschaften in einer typischen Anwendung.

Screenshot: Begrenzungs- und Elastische Randeigenschaften

Sie legen die linken, oberen, rechten und unteren Grenzen und elastischen Ränder für Ihre Anwendung fest, und der Inertia-Prozessor übernimmt es, UI-Elemente innerhalb der Grenzen zu halten. Wenn ein Objekt einen elastischen Rand erreicht, verlangsamt es sich, bis es die Grenze erreicht. Er verlässt diesen Rand während der Trägheit nie wieder, bewegt sich aber trotzdem, bis sich die senkrechte Trägheitskomponente des Objekts auf 0 verlangsamt. In der Abbildung wird ein Kreis zur linken elastischen Grenze verschoben. Der Volltonpfeil zeigt die Richtung der Bearbeitung an. der einfarbige Kreis ist die Anfangsposition des Objekts. der vollfarbige Pfeil ist die Änderungen, die vorgenommen werden, bevor der Kreis auf den elastischen Rand trifft. der gestrichelte Pfeil zeigt an, wo der Trägheitsprozessor den Kreis bearbeitet, nachdem er den Rand erreicht hat; und die gestrichelten Kreise zeigen an, wo das Objekt anhält.

Hinweis

Durch Festlegen der Randeigenschaften werden die Grenzen nach außen verschoben. Wenn Ihre obere Grenze beispielsweise auf 50 festgelegt ist und Sie dann den oberen elastischen Rand auf 10 festlegen, wird Ihre obere Grenze effektiv zu 40.

 

Behandeln von Unträgheit in nicht verwaltetem Code

Trägheit

Manipulationen