Meccanica inertia

L'inerzia viene usata per eseguire calcoli per animare lo spostamento degli oggetti e per abilitare il supporto per l'usabilità generica nelle applicazioni che incorporano Windows Touch. Questa sezione illustra le funzionalità seguenti abilitate dall'inerzia.

  • Breve panoramica della fisica inertia.
  • Animazione di oggetti uniforme usando le proprietà di velocità e decelerazione.
  • Animazione di oggetti smooth usando una proprietà di spostamento.
  • Rimbalzare dai bordi dello schermo usando limiti elastici.

Panoramica della fisica inertia

Il processore inertia usa un modello di fisica semplice che incorpora una posizione, un valore di decelerazione e una velocità iniziale. Il tempo viene usato come input dinamico per il modello per determinare la posizione corrente di un oggetto spostato. Il grafico e la formula seguenti descrivono il modello di fisica usato per calcolare le posizioni degli oggetti.

figura che mostra il grafico e la formula usata per calcolare le posizioni degli oggetti

Nella formula utilizzata per calcolare la posizione corrente (x), la velocità iniziale (v) viene moltiplicata per il tempo trascorso (t) ed è ridotta dal fattore di decelerazione (d) volte quadratite. Ciò comporta una decelerazione dell'oggetto uniforme. Nella figura precedente nella parte iniziale (più a sinistra) della curva l'oggetto viene spostato rapidamente perché la velocità corrente è la velocità iniziale. Nella parte finale (più a destra) della curva, l'oggetto è completamente arrestato perché la velocità è 0. I calcoli di velocità dell'oggetto per velocità x, velocità y e velocità rotazionale usano tutte questa formula per i calcoli.

Tutte le distanze usate per il processore inertia sono relative. Se si desidera usare le coordinate dello schermo, passare le coordinate dello schermo al processore di manipolazione (o inertia); se si desidera usare coordinate assolute, passare tali coordinate al processore in uso. Indipendentemente dai valori usati, il processore di manipolazione userà i tick dell'orologio millisecondi per l'elaborazione del tempo. Questi valori possono essere passati direttamente al processore inertia usando il metodo ProcessTime o usando il timestamp predefinito tramite chiamate a Process.

Animazione di oggetti smooth usando le proprietà velocità e decelerazione

È possibile abilitare l'animazione uniforme interagire direttamente con il modello di fisica impostando i valori di velocità e decelerazione nell'interfaccia del processore inertia e quindi chiamando Process. Il processo di chiamata attiverà le manipolazioni degli oggetti che a sua volta dovrebbero causare aggiornamenti dell'interfaccia utente. I valori di velocità dell'oggetto passati al processore inertia vengono in genere presi dal processore di manipolazione al completamento. Il valore di decelerazione dipenderà dalla durata dell'animazione dell'oggetto e dalle unità che si usano per i calcoli. Poiché i valori sono dipendenti, a volte è necessario ridimensionare la velocità di input dal processore di maniplation e usare valori arbitrari per la decelerazione. I valori seguenti sono tipici di vari scenari in cui si passano i valori centipixel dalle proprietà x e y della struttura TOUCHINPUT al processore di manipolazione.

Scenario Insieme di proprietà Valore di decelerazione Scalabilità tipica dell'input di velocità Note
Traduzione Desireddeceleration 0.003f Nessuno. L'uso di questo valore comporta animazioni a distanza più lunghe quando si usa l'input tocco.
Traduzione Desireddeceleration 0.001f Velocità iniziale 1/20° per gli input tocco, nessuno per gli input del mouse L'uso di questo valore anima per circa un secondo dato input di velocità tipica.
Traduzione Desireddeceleration 0,5f Nessuno L'uso di questo valore offre un aspetto naturale per l'animazione su schermi Windows Touch di grandi dimensioni.
Rotazione DesiredAngularDeceleration 0.000015f Radianti convertiti in gradi. L'uso di questo valore comporta animazioni rotazionali più lunghe quando si usa l'input tocco.
Rotazione DesiredAngularDeceleration 0.00001f Delta di rotazione 1/40° per gli input tocco, nessuno per gli input del mouse Questo valore è in radianti, quindi è necessario usare valori di decelerazione e velocità molto piccoli.
Rotazione DesiredAngularDeceleration 0.000005f Nessuno Questo valore ha un aspetto naturale nei display Windows Touch di grandi dimensioni.

 

Animazione di oggetti smooth usando la proprietà spostamento desiderata

In alcuni casi, non si vuole usare l'input dell'utente per lo spostamento degli oggetti, ma si vuole comunque che un oggetto si anima in modo uniforme sullo schermo. In questo caso, è possibile usare le proprietà di spostamento nel processore inertia per avere il processore calcolare la velocità iniziale per lo spostamento di un oggetto sullo schermo.

Controllo della posizione dell'oggetto tramite limiti elastici

Dopo avere un oggetto che si sposta sullo schermo, si vuole in genere arrestarlo prima di uscire dal punto di vista dell'utente. Il processore inertia consente questa funzionalità attraverso le proprietà limite e margine elastico. L'immagine seguente illustra le varie proprietà di limite e margine in un'applicazione tipica.

schermata che mostra le proprietà limite e margine elastico

È stato impostato il limite sinistro, superiore, destro e margini elastici per l'applicazione e il processore inertia gestirà il mantenimento degli elementi dell'interfaccia utente entro i limiti. Quando un oggetto raggiunge un margine elastico, rallenta fino a raggiungere il limite. Non lascerà mai più quel margine durante l'inerzia, ma continuerà a spostarsi fino a quando il componente perpendicolare dell'oggetto decelerate su 0. Nella figura viene spostato un cerchio verso il limite elastico sinistro. La freccia unita mostra la direzione della manipolazione; il cerchio solido è la posizione iniziale dell'oggetto; la freccia unita è la modifica apportata prima che il cerchio colpisca il margine elastico; la freccia tratteggiata mostra dove il processore inertia modifica il cerchio dopo che raggiunge il margine; e i cerchi tratteggiati mostrano dove si arresta l'oggetto.

Nota

Se si impostano le proprietà del margine, i limiti verranno spostati verso l'esterno. Ad esempio, se il limite superiore è impostato su 50 e quindi si imposta il margine elastico superiore su 10, il limite superiore diventerà effettivamente 40.

 

Gestione dell'inertia nel codice non gestito

Inerzia

Modifiche