Condividi tramite


Meccanica dell'inerzia

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

  • Breve panoramica della fisica dell'inerzia.
  • Animazione uniforme degli oggetti usando le proprietà velocità e decelerazione.
  • Animazione dell'oggetto smooth usando una proprietà di spostamento.
  • Rimbalzo dai bordi dello schermo usando limiti elastici.

Panoramica della fisica dell'inerzia

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

illustrazione che mostra il grafico e la formula usati per calcolare le posizioni degli oggetti

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

Tutte le distanze usate per il processore di inerzia sono relative. Se vuoi usare le coordinate dello schermo, passi le coordinate dello schermo al processore di manipolazione (o inerzia); se si desidera utilizzare coordinate assolute, passare quelle nel processore in uso. Indipendentemente dai valori utilizzati, il processore di manipolazione userà tick di clock millisecondi per l'elaborazione del tempo. Questi valori possono essere passati direttamente al processore di inerzia usando il metodoProcessTimeoppure usando il timestamp predefinito tramite chiamate a Process.

Animazione smooth object usando le proprietà Velocity e Deceleration

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

Scenario Set di proprietà Valore di decelerazione Ridimensionamento tipico dell'input di velocità Note
Traduzione desiredDeceleration 0.003f Nessuno. L'uso di questo valore comporterà animazioni a distanza più lunghe quando si usa l'input tocco.
Traduzione desiredDeceleration 0.001f 1/20° velocità iniziale per gli input tocco, nessuno per gli input del mouse L'uso di questo valore verrà animato per circa un secondo dato i tipici input di velocità.
Traduzione desiredDeceleration 0,5f Nessuno L'uso di questo valore dà un aspetto naturale all'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 di 1/40° per gli input tocco, nessuno per gli input del mouse Questo valore è espresso in radianti, pertanto è necessario usare valori di decelerazione e velocità molto piccoli.
Rotazione desiredAngularDeceleration 0.000005f Nessuno Questo valore ha un aspetto naturale su schermi Windows Touch di grandi dimensioni.

 

Animazione smooth object con la proprietà Desired Displacement

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 senza problemi sullo schermo. In questo caso, è possibile usare le proprietà di spostamento nel processore di inerzia per fare in modo che il processore calcoli la velocità iniziale per lo spostamento di un oggetto sullo schermo.

Controllo della posizione dell'oggetto tramite limiti elastici

Dopo aver creato un oggetto che si sposta sullo schermo, in genere si vuole che si arresti prima di uscire dal punto di vista dell'utente. Il processore di inerzia abilita questa funzionalità attraverso i limiti e le proprietà dei margini elastici. L'immagine seguente illustra le varie proprietà limite e margine in un'applicazione tipica.

screenshot che mostra le proprietà limite e margine elastico

I limiti sinistro, superiore, destro e inferiore e i margini elastici per l'applicazione vengono impostati e il processore di inerzia gestirà la conservazione degli elementi dell'interfaccia utente all'interno dei limiti. Quando un oggetto raggiunge un margine elastico, rallenterà fino a raggiungere il limite. Non lascerà mai più questo margine durante l'inerzia, ma si sposta comunque fino a quando il componente perpendicolare dell'inerzia dell'oggetto decelerate su 0. Nell'illustrazione, un cerchio viene spostato verso il limite elastico sinistro. La freccia continua mostra la direzione della manipolazione; il cerchio a tinta unita è la posizione iniziale dell'oggetto; la freccia continua è la modifica apportata prima che il cerchio colpisca il margine elastico; la freccia tratteggiata mostra dove l'inerzia del processore manipola 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'inerzia nel codice non gestito

'inerzia

manipolazioni