Compartir a través de


Mecánica de inercia

La inercia se usa para realizar cálculos para animar el movimiento de objetos y para permitir la compatibilidad con la facilidad de uso genérica en aplicaciones que incorporan Windows Touch. En esta sección se muestran las siguientes características habilitadas por la inercia.

  • Una breve introducción a la física de la inercia.
  • Animación de objeto suave mediante las propiedades de velocidad y deceleración.
  • Animación de objeto suave mediante una propiedad de desplazamiento.
  • Rebotar desde los bordes de la pantalla mediante límites elásticos.

Introducción a la física de la inercia

El procesador de inercia usa un modelo de física simple que incorpora una posición, un valor de desaceleración y una velocidad inicial. El tiempo se usa como entrada dinámica para el modelo para determinar la posición actual de un objeto que se desplaza. En el gráfico y la fórmula siguientes se describe el modelo de física que se usa para calcular las posiciones de los objetos.

ilustración que muestra el gráfico y la fórmula que se usan para calcular posiciones de objeto

En la fórmula utilizada para calcular la posición actual (x), la velocidad inicial (v) se multiplica por el tiempo transcurrido (t) y se reduce mediante el factor de desaceleración (d) veces al cuadrado. Esto da como resultado una ralentización de objetos suaves. En la ilustración anterior en la parte inicial (más izquierda) de la curva, el objeto se mueve rápidamente porque su velocidad actual es la velocidad inicial. En la parte final (más a la derecha) de la curva, el objeto se ha detenido completamente porque su velocidad es 0. Los cálculos de velocidad de objetos para la velocidad x, la velocidad y la velocidad de rotación usan esta fórmula para los cálculos.

Toda la distancia utilizada para el procesador de inercia es relativa. Si desea usar coordenadas de pantalla, pase coordenadas de pantalla al procesador de manipulación (o inercia); Si desea usar coordenadas absolutas, pase las que se encuentran en el procesador que está usando. Independientemente de los valores que use, el procesador de manipulación usará tics de reloj milisegundos para procesar el tiempo. Estos valores se pueden pasar directamente al procesador de inercia mediante el método ProcessTime o mediante la marca de tiempo predeterminada mediante llamadas a Process.

Animación de objetos suaves mediante las propiedades de velocidad y deceleración

Puede habilitar la animación suave interactuando directamente con el modelo de física estableciendo los valores de velocidad y deceleración en la interfaz del procesador de inercia y llamando a Process. Al llamar a Process se desencadenarán manipulaciones de objetos que, a su vez, deben provocar actualizaciones de la interfaz de usuario. Los valores de velocidad de objeto pasados al procesador de inercia normalmente se toman del procesador de manipulación tras la finalización. El valor de deceleración dependerá del tiempo durante el que quiera que se anime el objeto y de las unidades que use para los cálculos. Dado que los valores dependen, a veces debe escalar la velocidad de entrada del procesador de manipulación y usar valores arbitrarios para ralentizar. Los siguientes valores son típicos para varios escenarios en los que se pasan valores centipixel de las propiedades x e y de la estructuraTOUCHINPUT delal procesador de manipulación.

Escenario Conjunto de propiedades Valor de deceleración Escalado típico de entrada de velocidad Notas
Traducción DesiredDeceleration 0.003f Ninguno. El uso de este valor dará lugar a animaciones de distancia más largas al usar la entrada táctil.
Traducción DesiredDeceleration 0.001f Velocidad inicial 1/20 para entradas táctiles, ninguna para las entradas del mouse El uso de este valor animará aproximadamente una segunda entrada de velocidad típica.
Traducción DesiredDeceleration 0.5f Ninguno El uso de este valor ofrece una sensación natural de animación en pantallas táctiles grandes de Windows.
Rotación DesiredAngularDeceleration 0.000015f Radianes convertidos en grados. El uso de este valor da como resultado animaciones de rotación más largas al usar la entrada táctil.
Rotación DesiredAngularDeceleration 0.00001f Delta de rotación 1/40 para entradas táctiles, ninguno para las entradas del mouse Este valor está en radianes, por lo que debe usar valores de velocidad y deceleración muy pequeños.
Rotación DesiredAngularDeceleration 0.000005f Ninguno Este valor tiene una sensación natural en pantallas táctiles de Windows grandes.

 

Animación de objeto suave mediante la propiedad De desplazamiento deseado

En algunos casos, no desea usar la entrada del usuario para el desplazamiento de objetos, pero desea que un objeto se anime sin problemas a través de la pantalla. En este caso, puede usar propiedades de desplazamiento en el procesador de inercia para que el procesador calcule la velocidad inicial para mover un objeto a través de la pantalla.

Controlar la posición del objeto mediante límites elásticos

Después de tener un objeto que se mueva a través de la pantalla, normalmente querrá que se detenga antes de que salga del punto de vista del usuario. El procesador de inercia permite esta funcionalidad a través de las propiedades de límite y margen elástico. En la imagen siguiente se muestran las distintas propiedades de límite y margen en una aplicación típica.

captura de pantalla de que muestra las propiedades de límite y margen elástico

Establezca los límites izquierdo, superior, derecho e inferior y los márgenes elásticos de la aplicación, y el procesador de inercia controlará el mantenimiento de los elementos de la interfaz de usuario dentro de los límites. Cuando un objeto alcanza un margen elástico, se ralentizará hasta que alcance el límite. Nunca dejará ese margen de nuevo durante la inercia, pero se moverá hasta que el componente de inercia perpendicular del objeto se descelere a 0. En la ilustración, un círculo se desplaza hacia el límite elástico izquierdo. La flecha sólida muestra la dirección de la manipulación; el círculo sólido es la posición inicial del objeto; la flecha sólida es los cambios realizados antes de que el círculo alcance el margen elástico; la flecha discontinua muestra dónde el procesador de inercia manipula el círculo después de que alcance el margen; y los círculos discontinuos muestran dónde se detiene el objeto.

Nota

Al establecer las propiedades de margen, los límites se moverán hacia fuera. Por ejemplo, si el límite superior se establece en 50 y, a continuación, establece el margen elástico superior en 10, el límite superior se convertirá en 40 de forma eficaz.

 

controlar la inercia en de código no administrado

de inercia de

manipulaciones de