Trägheitsmechanismen
Trägheit wird verwendet, um Berechnungen zum Animieren von Objektbewegungen durchzuführen und die Unterstützung der generischen Nutzbarkeit in Anwendungen zu ermöglichen, die Windows Touch integrieren. In diesem Abschnitt werden die folgenden Funktionen veranschaulicht, die durch Trägheit aktiviert werden.
- Eine kurze Übersicht über die Trägheitsmechanik.
- Smooth-Objektanimation mithilfe der Geschwindigkeits- und Verlangsamungseigenschaften.
- Smooth-Objektanimation mithilfe einer Verschiebungseigenschaft.
- Springen von den Bildschirmrändern mit elastischen Begrenzungen.
Übersicht über die Trägheitsmechanik
Der Trägheitsprozessor verwendet ein einfaches physikalisches Modell, das eine Position, einen Verlangsamungswert und eine Anfangsgeschwindigkeit enthält. Die Zeit wird als dynamische Eingabe für das Modell verwendet, um die aktuelle Position eines Objekts zu bestimmen, das gerade ausgedöhnt wird. Das folgende Diagramm und die Formel beschreiben das physikalische Modell, das zum Berechnen von Objektpositionen verwendet wird.

In der Formel, die zum Berechnen der aktuellen Position (x) verwendet wird, wird die anfängliche Geschwindigkeit (v) mit der verstrichenen Zeit (t) multipliziert und mit dem Verzögerungsfaktor (d) zeitquadiert reduziert. Dies führt zu einer reibungslosen Objektverschleunigung. In der vorherigen Abbildung am anfang (ganz links) Teil der Kurve bewegt sich das Objekt schnell, da seine aktuelle Geschwindigkeit die Anfangsgeschwindigkeit ist. Am letzten (ganz rechts) Teil der Kurve wurde das Objekt vollständig beendet, da seine Geschwindigkeit 0 ist. Objektgeschwindigkeitsberechnungen für x-Geschwindigkeit, Y-Geschwindigkeit und Drehgeschwindigkeit verwenden diese Formel für Berechnungen.
Der gesamte Abstand, der für den Trägheitsprozessor verwendet wird, ist relativ. Wenn Sie Bildschirmkoordinaten verwenden möchten, übergeben Sie Bildschirmkoordinaten an den Bearbeitungsprozessor (oder trägheit). 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 Takte in Millisekunden für die Verarbeitung der Zeit. Diese Werte können entweder mithilfe der ProcessTime-Methode direkt an den Trägheitsprozessprozessor übergeben werden oder mithilfe des Standardzeitstempels durch Aufrufe von Verarbeiten.
Smooth Object Animation using the Velocity and Deceleration Properties
Sie können eine reibungslose Animation aktivieren, indem Sie direkt mit dem Physikalischen Modell interagieren, indem Sie die Geschwindigkeits- und Verlangsamungswerte in der Trägheitsprozessschnittstelle festlegen und anschließend Processaufrufen. Der aufrufende Prozess löst Objektmanipulationen aus, die wiederum Benutzeroberflächenupdates verursachen sollten. Objektgeschwindigkeitswerte, die an den Trägheitsprozessor übergeben werden, werden in der Regel nach Abschluss des Verarbeitungsprozessors vom Bearbeitungsprozessor übernommen. Der Wert für die Verlangsamung hängt davon ab, wie lange das 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 Maniplationprozessors skalieren und beliebige Werte zur Verlangsamung verwenden. Die folgenden Werte sind typisch für verschiedene Szenarien, in denen Sie Centipixelwerte von den x- und y-Eigenschaften der TOUCHINPUT-Struktur an den Manipulationsprozessor übergeben.
| Szenario | Eigenschaftensatz | Deceleration Value | Typische Skalierung von Geschwindigkeitseingaben | Notizen |
|---|---|---|---|---|
| Sprachübersetzung | DesiredDeceleration | 0,003f | Keine. | Die Verwendung dieses Werts führt bei Verwendung der Toucheingabe zu Animationen mit längerer Entfernung. |
| Sprachübersetzung | DesiredDeceleration | 0.001f | 1/20. Anfängliche Geschwindigkeit für Toucheingaben, keine für Mauseingaben | Die Verwendung dieses Werts animiert bei typischen Geschwindigkeitseingaben etwa eine Sekunde lang. |
| Sprachübersetzung | DesiredDeceleration | 0,5f | Keine | Die Verwendung dieses Werts bietet ein natürliches Gefühl für Animationen auf großen Windows Touch-Displays. |
| Drehung | DesiredAngularDeceleration | 0.000015f | In Grad konvertierter Bogenmaß. | Die Verwendung dieses Werts führt bei Verwendung der Toucheingabe zu längeren Drehungsanimationen. |
| Drehung | DesiredAngularDeceleration | 0.00001f | 1/40. Drehungsdelta für Toucheingaben, keine für Mauseingaben | Dieser Wert befindet sich im Bogenmaß, daher müssen Sie sehr kleine Verlangsamungs- und Geschwindigkeitswerte verwenden. |
| Drehung | DesiredAngularDeceleration | 0.000005f | Keine | Dieser Wert hat ein natürliches Gefühl auf großen Windows Touch-Displays. |
Smooth Object Animation using the Desired Versatzeigenschaft
In einigen Fällen möchten Sie die Eingabe des Benutzers nicht für objektverschiebte Objekte verwenden, aber dennoch möchten Sie, dass ein Objekt reibungslos über den Bildschirm animiert wird. In diesem Fall können Sie Verschiebungseigenschaften im Trägheitsprozessor verwenden, damit der Prozessor die Anfängliche Geschwindigkeit für das Verschieben eines Objekts über den Bildschirm berechnet.
Steuern der Objektposition mit elastischen Begrenzungen
Nachdem Sie über ein Objekt verfügen, das sich über den Bildschirm bewegt, sollte es in der Regel beendet werden, bevor es außerhalb des Blickpunkts des Benutzers geht. Der Trägheitsprozessor ermöglicht diese Funktionalität über die Begrenzungs- und elastischen Randeigenschaften. Die folgende Abbildung veranschaulicht die verschiedenen Begrenzungs- und Randeigenschaften in einer typischen Anwendung.

Sie legen die linken, oberen, rechten und unteren Grenzen und elastischen Ränder für Ihre Anwendung fest, und der Trägheitsprozessor übernimmt die Beibehaltung von Benutzeroberflächenelementen innerhalb der Grenzen. Wenn ein Objekt einen elastischen Rand erreicht, wird es verlangsamt, bis es die Grenze erreicht. Dieser Rand bleibt während der Trägheit nie wieder erhalten, sondern wird immer noch verschoben, bis die träge Trägheitskomponente des Objekts auf 0 (0) verlangsamt wird. In der Abbildung wird ein Kreis auf die linke elastische Grenze ausgerichtet. Der Durchdrungspfeil zeigt die Richtung der Bearbeitung an. der durchgezogene Kreis ist die Anfangsposition des Objekts. Der Durchdringpfeil ist die Änderung, die vor dem Treffen des Kreises auf den elastischen Rand vorgenommen wurde. 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
Wenn Sie die Randeigenschaften festlegen, werden die Begrenzungen 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.