Tablets MultiTouch con MS Windows 7: Inertia (II)

Windows Técnico

Sindicación

Proximos HOLs

Loading...

Dando continuidad a esta serie de artículos en torno a la programación para Tablets Multitouch con MS Windows 7, abordábamos en la entrada anterior Tablets MultiTouch con MS Windows 7: Inertia  (I) el control de la propiedad Inertia disponible para este entorno.

Como ya se reflejaba en el mencionado post, era necesario importar a .Net algunos de los elementos de la librería disponibles de forma nativa en C++ para Windows 7 y relacionados con el control de dispositivos. Siguiendo en esta línea, en la entrada que ahora se inicia se abordará la importación del código de la librería “ManipulationInertiaProcessor.cs”.

image

Libreria ManipulationInertiaProcessor

Esta librería se va encargar de gestionar la velocidad de lanzamiento de un objeto, de gestionar un marco con las paredes elásticas y conseguir efectos de rebote, determinar los ángulos tanto de choque con las paredes como el ángulo de salida al lanzar el objeto, y sobre todo indicar cuándo se inicia el movimiento y facilitar todos los minúsculos cambios de posición que realiza el objeto en movimiento.

Para poder capturar todas las acciones anteriores, esta librería se encuentra basada en  otra denominada “ManipulationProcessor.cs”  y que se comentará con mayor detalle en el próximo artículo de la serie. Las llamadas desde una librería a la otra es posible verlas en la misma inicialización, tal y como queda reflejado en las siguientes líneas de código:

   internal InertiaProcessor(ManipulationInertiaProcessor processor)

        {

            _comInertiaProcessor = new ManipulationInterop.InertiaProcessor();

            _manipulationProcessor = processor;

            _comManipulationEvents = new ManipulationEvents(_comInertiaProcessor, processor as IManipulationEvents);

            MaxInertiaSteps = 200;

            InertiaTimerInterval = 15;

        }

 

La librería “ManipulationInertiaProcessor.cs”, una vez inicializada, nos ofrece el control de los desplazamientos de los objetos por medio de  las funciones  InitialVelocitypara conocer la velocidad de salida del objeto,  e InitialAngularVelocity” que ofrece el ángulo de salida del mismo.

Con estos parámetros es posible determinar cómo se va desplazar el objeto y en función de ello  representarlo en la pantalla de la aplicación que se esté generando, además de dotarle del movimiento necesario de forma autónoma.

 

Pero cuando se lanza un objeto no sólo interesa controlar su velocidad de salida, sino también la desaceleración que va a presentar éste hasta detenerse. Para realizar este cálculo se hará uso de la propiedadDesiredDecelerationpermitiendo a través de la misma el control de desaceleración.

 

Con la llamada a estas funciones es posible controlar y simular el lanzamiento de un objeto en nuestra aplicación usando las manos y el dispositivo Tablet con MS Windows 7 para ello.

 

La última característica que aporta esta librería es la generación de rectángulos con la propiedad adicional de que estos sean elásticos. Esta va a permitir el rebote de los objetos dentro de un marco, y una mayor interactuación del objeto móvil con el entorno donde se encuentra dicho objeto.  La propiedad encargada de realizar estas operaciones es ElasticMargin . Se incluyen a continuación líneas de código que ilustran esta propiedad:

 

public RectangleF ElasticMargin

        {

            get

            {

                return new RectangleF(

                    _comInertiaProcessor.ElasticMarginLeft,

                    _comInertiaProcessor.ElasticMarginTop,

                    _comInertiaProcessor.ElasticMarginRight - _comInertiaProcessor.ElasticMarginLeft,

                    _comInertiaProcessor.ElasticMarginBottom - _comInertiaProcessor.ElasticMarginTop);

            }

            set

            {

                _comInertiaProcessor.ElasticMarginLeft = value.Left;

                _comInertiaProcessor.ElasticMarginRight = value.Right;

                _comInertiaProcessor.ElasticMarginTop = value.Top;

                _comInertiaProcessor.ElasticMarginBottom = value.Bottom;

            }

        }

El principal detalle  de esta propiedad, es el objeto devuelto por ella, un RectangleF” que permite  pintar un rectángulo a través del objeto devuelto. Los objetos que se sitúen dentro de este marco, es posible hacer que reboten con las paredes del rectángulo retornado, dándole mayor dinamismo a nuestras aplicaciones.

Con la entrada de hoy hemos visto las posibilidades de interactuar con la API de Inertia, en la siguiente entrada profundizaremos en como Ms Windows 7 controla los movimientos de inercia haciendo uso de la librería “ManipulationProcessor.cs”.

 

Para acabar, recuerda que si quieres aprender mucho más sobre los secretos de los sistemas Microsoft Windows, te recomendamos leer el libro de Sergio de los Santos "Máxima Seguridad en Windows: Secretos Técnicos" , o siempre puedes suscribirte al Canal RSS de Windows Técnico para estar al día de las novedades e información técnica de interés.

 

image

 


Enviado may 03 2011, 07:31 por Ignacio Briones

Comentarios

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (III)
en 05-09-2011 11:42

Continuando con la serie de últimos artículos publicados en Windows Técnico   dentro de la categoría

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (V)
en 05-20-2011 17:49

En este artículo, y tras la publicación de las entradas anteriores de la serie “Inertia”, se iniciará

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (V)
en 05-20-2011 18:26

En este artículo, y tras la publicación de las entradas anteriores de la serie “Inertia”, se iniciará

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (VI)
en 06-04-2011 13:13

Tras haber presentado   una serie de entradas dedicadas a valorar las aplicaciones ejemplo disponibles

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (VII)
en 06-10-2011 18:13

Con esta nueva entrada se da continuidad a la ya dilatada serie de artículos dedicados al desarrollo

Windows Técnico escrito Tablets MultiTouch con MS Windows 7: Inertia (VII)
en 06-10-2011 18:17

Con esta nueva entrada se da continuidad a la ya dilatada serie de artículos dedicados al desarrollo

Añadir un comentario

(requerido)  
(opcional)
(requerido)  
Recordarme
If you can't read this number refresh your screen
Enter the numbers above: