Mechanika nečinnosti
Inertia se používá k provádění výpočtů pro animaci pohybu objektů a k zajištění podpory obecné použitelnosti v aplikacích, které zahrnují Windows Touch. Tato část ukazuje následující funkce, které jsou povoleny nečinností.
- Stručný přehled fyziky nečinnosti.
- Animace hladkého objektu pomocí vlastností rychlosti a zpomalení
- Animace hladkého objektu pomocí vlastnosti posunutí
- Odraz z okrajů obrazovky pomocí elastických hranic.
Přehled fyziky nečinnosti
Procesor inertia používá jednoduchý fyzikální model, který zahrnuje pozici, hodnotu zpomalení a počáteční rychlost. Čas se používá jako dynamický vstup modelu k určení aktuální pozice objektu, který se vytěsňuje. Následující graf a vzorec popisují fyzikální model použitý k výpočtu pozic objektů.
obrázek
Ve vzorci použitém pro výpočet aktuální pozice (x) se počáteční rychlost (v) vynásobí časem uplynulým časem (t) a sníží se faktorem decelerace (d) krát násobením času umocněním. Výsledkem je hladké zpomalení objektu. Na předchozím obrázku v počáteční (úplně levé) části křivky se objekt rychle pohybuje, protože jeho aktuální rychlost je počáteční rychlost. V poslední (úplně pravé) části křivky se objekt zcela zastavil, protože jeho rychlost je 0. Výpočty rychlosti objektů pro rychlost x, rychlost y a rotační rychlost používají tento vzorec pro výpočty.
Veškerá vzdálenost použitá pro procesor inertia je relativní. Pokud chcete použít souřadnice obrazovky, předáte souřadnice obrazovky do procesoru manipulace (nebo inertia). Pokud chcete použít absolutní souřadnice, předáte je do procesoru, který používáte. Bez ohledu na hodnoty, které používáte, bude procesor pro zpracování času používat milisekundové časy. Tyto hodnoty lze předat buď přímo procesoru inertia pomocí metody ProcessTime nebo pomocí výchozího časového razítka prostřednictvím volání Process.
Animace hladkého objektu pomocí vlastností rychlost a decelerace
Plynulou animaci můžete povolit přímo interakcí s fyzikálním modelem nastavením hodnot rychlosti a zpomalení v rozhraní procesoru inertia a následným voláním Process. Volání Process aktivuje manipulaci s objekty, které by pak měly způsobit aktualizace uživatelského rozhraní. Hodnoty rychlosti objektů předávané procesoru inertia se obvykle po dokončení přebíjí z manipulátoru. Hodnota zpomalení bude záviset na tom, jak dlouho má být objekt animovaný, a jednotek, které používáte pro výpočty. Vzhledem k tomu, že hodnoty jsou závislé, je někdy nutné škálovat rychlost vstupu z procesoru maniplace a použít libovolné hodnoty pro zpomalení. Následující hodnoty jsou typické pro různé scénáře, kdy předáváte hodnoty centipixel z vlastností x a y TOUCHINPUT struktury manipulace procesoru.
Animace hladkého objektu pomocí požadované vlastnosti posunutí
V některých případech nechcete pro posunutí objektu použít vstup uživatele, ale přesto chcete, aby se objekt hladce animuje přes obrazovku. V tomto případě můžete použít vlastnosti posunutí v procesoru inertia, aby procesor vypočítal počáteční rychlost pro pohyb objektu po obrazovce.
Řízení pozice objektu pomocí elastických hranic
Jakmile budete mít objekt, který se pohybuje přes obrazovku, budete ho obvykle chtít zastavit, než přejde mimo bod zobrazení uživatele. Procesor inertia umožňuje tuto funkci prostřednictvím vlastností hranic a elastických okrajů. Následující obrázek znázorňuje různé vlastnosti hranic a okrajů v typické aplikaci.
snímek obrazovky
Nastavíte levé, horní, pravé a dolní hranice a elastické okraje pro vaši aplikaci a procesor inertia bude zpracovávat zachování prvků uživatelského rozhraní v mezích. Když objekt dosáhne elastického okraje, zpomalí se, dokud nedosáhne hranice. Během nečinnosti nikdy neopustí tento okraj, ale bude se stále pohybovat, dokud se kolmá komponenta objektu zmenší na 0. Na obrázku je kruh posunut směrem k levé elastické hranici. Plná šipka ukazuje směr manipulace; plný kruh je počáteční pozice objektu; plná šipka je změny provedené před tím, než kruh dosáhne elastického okraje; přerušovaná šipka ukazuje, kde procesor inertia manipuluje s kruhem po dosažení okraje; a přerušované kruhy ukazují, kde se objekt zastaví.
Poznámka
Nastavení vlastností okrajů přesune hranice směrem ven. Pokud je například horní hranice nastavená na 50 a pak nastavíte horní elastický okraj na 10, bude horní hranice efektivně 40.
Související témata