Megosztás a következőn keresztül:


Tehetetlenségi mechanika

Az inercia az objektumok mozgásának animálására szolgáló számítások elvégzésére szolgál, és lehetővé teszi az általános használhatóság támogatását a Windows Touchot tartalmazó alkalmazásokban. Ez a szakasz a tehetetlenség által engedélyezett alábbi funkciókat mutatja be.

  • A tehetetlenségi fizika rövid áttekintése.
  • Zökkenőmentes objektumanimáció a sebesség és a lassulás tulajdonságainak használatával.
  • Objektumanimáció simítása elmozdítási tulajdonság használatával.
  • Pattogó a képernyő széleitől rugalmas korlátok használatával.

A tehetetlenségi fizika áttekintése

A tehetetlenségi processzor egy egyszerű fizikai modellt használ, amely egy pozíciót, egy lassulási értéket és egy kezdeti sebességet tartalmaz. A modell dinamikus bemeneteként az idő határozza meg az elmozdult objektumok aktuális pozícióját. Az alábbi gráf és képlet az objektumpozíciók kiszámításához használt fizikai modellt vázolja fel.

ábra az objektumhelyzetek kiszámításához használt gráfot és képletet

Az aktuális pozíció (x) kiszámításához használt képletben a kezdeti sebesség (v) megszorozva van az eltelt idővel (t), és a lassulási tényezővel (d) az idő négyzetével csökken. Ez sima objektum-lassulást eredményez. Az előző ábrán a görbe kezdeti (bal szélső) részén az objektum gyorsan mozog, mert az aktuális sebessége a kezdeti sebesség. A görbe utolsó (jobb szélső) részén az objektum teljesen leállt, mert a sebessége 0. Az x-sebesség, az y-sebesség és a forgási sebesség objektumsebesség-számításai mind ezt a képletet használják számításokhoz.

A tehetetlenségi processzorhoz használt összes távolság relatív. Ha képernyőkoordinátákat szeretne használni, a képernyő koordinátáit átadja a manipulációs (vagy tehetetlenségi) feldolgozónak; ha abszolút koordinátákat szeretne használni, azokat a használt processzorba továbbítja. A használt értékektől függetlenül a manipulációs processzor ezredmásodperc órajeleket használ az idő feldolgozásához. Ezek az értékek közvetlenül a tehetetlenségi feldolgozónak továbbíthatók a ProcessTime metódussal, vagy az alapértelmezett időbélyeg használatával folyamathívásával.

Sima objektumanimáció a sebesség és a lassulás tulajdonságainak használatával

A gördülékeny animációt úgy engedélyezheti, hogy közvetlenül kommunikál a fizikai modellel a tehetetlenségi processzor felületének sebesség- és lassulási értékeinek beállításával, majd meghívja folyamat. A folyamat meghívása objektummanipulációkat vált ki, amelyek felhasználói felületi frissítéseket okozhatnak. A tehetetlenségi processzornak átadott objektumsebesség-értékeket általában a manipulációs processzortól veszik át a befejezéskor. A lassulási érték attól függ, hogy mennyi ideig szeretné animálni az objektumot, és hogy milyen egységeket használ a számításokhoz. Mivel az értékek függenek, néha skáláznia kell a bemeneti sebességet a maniplation processzortól, és tetszőleges értékeket kell használnia a lassuláshoz. Az alábbi értékek jellemzőek különböző helyzetekre, amikor centipixel értékeket ad át a TOUCHINPUT szerkezet x és y tulajdonságaiból a manipulációs processzornak.

Forgatókönyv Tulajdonságkészlet Lassulási érték Tipikus sebességbemeneti skálázás Notes
Fordítás DesiredDeceleration 0,003f Egyik sem. Az érték használata hosszabb távolságú animációkat eredményez érintéses bevitel esetén.
Fordítás DesiredDeceleration 0,001f 1/20. kezdeti sebesség érintéses bemenetekhez, egérbemenetekhez nincs Ennek az értéknek a használatával körülbelül egy másodpercig animálhatja a tipikus sebességbemeneteket.
Fordítás DesiredDeceleration 0,5f Egyik sem Ennek az értéknek a használata természetes hangulatot kölcsönöz az animációnak a nagyméretű Windows Touch-kijelzőkön.
Forgás DesiredAngularDeceleration 0.0000015f Radiánok fokmá konvertálva. Ennek az értéknek a használata hosszabb forgatási animációkat eredményez érintéses bevitel esetén.
Forgás DesiredAngularDeceleration 0.000001f Az érintéses bemenetek 1/40-es elforgatási különbözete, egérbemenetekhez nincs Ez az érték radiánban van, ezért nagyon kis lassulási és sebességértékeket kell használnia.
Forgás DesiredAngularDeceleration 0.0000005f Egyik sem Ez az érték természetes érzetet kelt a nagyméretű Windows Touch-kijelzőkön.

 

Objektumanimáció simítása a Kívánt elmozdulás tulajdonság használatával

Bizonyos esetekben nem szeretné a felhasználó bemenetét használni az objektumkiszorításhoz, de továbbra is azt szeretné, hogy egy objektum zökkenőmentesen animáljon a képernyőn. Ebben az esetben a tehetetlenségi processzorban elmozdítási tulajdonságokat használhat, hogy a processzor kiszámítsa az objektumok a képernyőn való áthelyezésének kezdeti sebességét.

Objektumhelyzet szabályozása rugalmas korlátok használatával

Miután egy objektumot áthelyezett a képernyőn, általában azt szeretné, hogy leálljon, mielőtt a felhasználó nézőpontján kívülre kerülne. A tehetetlenségi processzor a határ- és rugalmas margótulajdonságokon keresztül teszi lehetővé ezt a funkciót. Az alábbi kép egy tipikus alkalmazás különböző határ- és margótulajdonságait mutatja be.

képernyőfelvétel a határ- és rugalmas margótulajdonságokat

Beállítja a bal, a felső, a jobb és az alsó határokat, valamint a rugalmas margókat az alkalmazás számára, és a tehetetlenségi processzor kezeli a felhasználói felület elemeit a korlátokon belül. Amikor egy objektum eléri a rugalmas margót, lelassul, amíg el nem éri a határt. A tehetetlenség során soha többé nem hagyja el ezt a margót, de addig mozog, amíg az objektum merőleges tehetetlenségi összetevője 0-ra nem csökken. Az ábrán egy kör elmozdul a bal rugalmas határ felé. A folytonos nyíl a manipuláció irányát mutatja; az egyszínű kör az objektum kezdeti helyzete; a folytonos nyíl az a módosítás, amelyet azelőtt hajtottak végre, hogy a kör eléri a rugalmas margót; a szaggatott nyíl jelzi, hogy a tehetetlenségi processzor hol módosítja a kört, miután eléri a margót; és a szaggatott körök azt mutatják, hogy hol áll meg az objektum.

Jegyzet

A margó tulajdonságainak beállítása kifelé mozgatja a határokat. Ha például a felső határ 50, majd a felső rugalmas margót 10-re állítja, akkor a felső határ gyakorlatilag 40 lesz.

 

Nem felügyelt kóddal kapcsolatos tehetetlenségi

Tehetetlenségi

manipulációk