Mécanique de l’inertie
L’inertie est utilisée pour effectuer des calculs pour animer le mouvement d’objet et permettre la prise en charge de la facilité d’utilisation générique dans les applications intégrant Windows Touch. Cette section illustre les fonctionnalités suivantes activées par l’inertie.
- Une brève vue d’ensemble de la physique de l’inertie.
- Animation d’objet lisse à l’aide des propriétés de vélocité et de décélération.
- Animation d’objet lisse à l’aide d’une propriété de déplacement.
- Rebond à partir des bords de l’écran à l’aide de limites élastiques.
Vue d’ensemble de la physique de l’inertie
Le processeur d’inertie utilise un modèle physique simple qui incorpore une position, une valeur de décélération et une vitesse initiale. Le temps est utilisé comme entrée dynamique du modèle pour déterminer la position actuelle d’un objet déplacé. Le graphique et la formule suivants décrivent le modèle physique utilisé pour calculer les positions d’objet.
illustration
Dans la formule utilisée pour calculer la position actuelle (x), la vitesse initiale (v) est multipliée par le temps écoulé (t) et est réduite par le facteur de décélération (d) fois le carré de temps. Cela entraîne une décélération d’objet lisse. Dans l’illustration précédente à la partie initiale (la plus à gauche) de la courbe, l’objet se déplace rapidement, car sa vitesse actuelle est la vitesse initiale. À la partie finale (la plus à droite) de la courbe, l’objet s’est complètement arrêté, car sa vitesse est de 0. Les calculs de vélocité d’objet pour la vitesse x, la vitesse y et la vitesse de rotation utilisent toutes cette formule pour les calculs.
Toutes les distances utilisées pour le processeur d’inertie sont relatives. Si vous souhaitez utiliser des coordonnées d’écran, vous passez les coordonnées de l’écran au processeur de manipulation (ou d’inertie) ; si vous souhaitez utiliser des coordonnées absolues, vous passez ces coordonnées dans le processeur que vous utilisez. Quelles que soient les valeurs que vous utilisez, le processeur de manipulation utilise des cycles d’horloge en millisecondes pour le traitement de l’heure. Ces valeurs peuvent être transmises directement au processeur d’inertie à l’aide de la méthodeProcessTimeou à l’aide de l’horodatage par défaut via les appels à Processus.
Animation d’objet lisse à l’aide des propriétés de vitesse et de décélération
Vous pouvez activer l’animation lisse en interagissant directement avec le modèle physique en définissant les valeurs de vitesse et de décélération dans l’interface du processeur d’inertie, puis en appelant Processus. L’appel Processus déclenche des manipulations d’objets qui, à leur tour, doivent entraîner des mises à jour de l’interface utilisateur. Les valeurs de vitesse d’objet transmises au processeur d’inertie sont généralement extraites du processeur de manipulation à l’achèvement. Votre valeur de décélération dépend de la durée pendant laquelle votre objet doit être animé et les unités que vous utilisez pour vos calculs. Étant donné que les valeurs dépendent, vous devez parfois mettre à l’échelle la vitesse d’entrée à partir du processeur de maniplation et utiliser des valeurs arbitraires pour la décélération. Les valeurs suivantes sont typiques pour différents scénarios où vous transmettez des valeurs centipixel à partir des propriétés x et y de la structure TOUCHINPUT au processeur de manipulation.
Scénario | Jeu de propriétés | Valeur de décélération | Mise à l’échelle d’entrée de vitesse classique | Notes |
---|---|---|---|---|
Traduction | DesiredDeceleration | 0.003f | Aucun. | L’utilisation de cette valeur entraîne des animations de distance plus longues lors de l’utilisation d’une entrée tactile. |
Traduction | DesiredDeceleration | 0.001f | Vitesse initiale 1/20 pour les entrées tactiles, aucune pour les entrées de souris | L’utilisation de cette valeur s’animera autour d’une seconde en fonction des entrées de vélocité classiques. |
Traduction | DesiredDeceleration | 0,5f | Aucun | L’utilisation de cette valeur donne une sensation naturelle à l’animation sur les grands écrans tactiles Windows. |
Rotation | DesiredAngularDeceleration | 0.000015f | Radians convertis en degrés. | L’utilisation de cette valeur entraîne des animations de rotation plus longues lors de l’utilisation d’une entrée tactile. |
Rotation | DesiredAngularDeceleration | 0.00001f | Delta de rotation 1/40e pour les entrées tactiles, aucun pour les entrées de souris | Cette valeur est en radians. Vous devez donc utiliser des valeurs de décélération et de vélocité très petites. |
Rotation | DesiredAngularDeceleration | 0.000005f | Aucun | Cette valeur a une sensation naturelle sur les grands écrans tactiles Windows. |
Animation d’objet lisse à l’aide de la propriété Deired Displacement
Dans certains cas, vous ne souhaitez pas utiliser l’entrée de l’utilisateur pour le déplacement d’objet, mais vous souhaitez toujours qu’un objet s’anime en douceur sur l’écran. Dans ce cas, vous pouvez utiliser des propriétés de déplacement dans le processeur d’inertie pour que le processeur calcule la vitesse initiale pour déplacer un objet sur l’écran.
Contrôle de la position d’objet à l’aide de limites élastiques
Une fois que vous avez un objet qui se déplace sur l’écran, vous souhaiterez généralement qu’il s’arrête avant qu’il ne sorte du point de vue de l’utilisateur. Le processeur d’inertie permet cette fonctionnalité par le biais des propriétés de limite et de marge élastique. L’image suivante illustre les différentes propriétés de limite et de marge dans une application classique.
capture d’écran
Vous définissez les limites gauche, supérieure, droite et inférieure et les marges élastiques pour votre application, et le processeur d’inertie gère la conservation des éléments d’interface utilisateur dans les limites. Lorsqu’un objet atteint une marge élastique, il ralentit jusqu’à ce qu’il atteigne la limite. Il ne laissera jamais cette marge à nouveau pendant l’inertie, mais se déplacera toujours jusqu’à ce que le composant d’inertie perpendiculaire de l’objet décélére à 0. Dans l’illustration, un cercle est déplacé vers la limite élastique gauche. La flèche solide montre la direction de la manipulation ; le cercle solide est la position initiale de l’objet ; la flèche solide est les modifications apportées avant que le cercle atteigne la marge élastique ; la flèche pointillée montre où le processeur d’inertie manipule le cercle après qu’il a atteint la marge ; et les cercles pointillés indiquent où l’objet s’arrête.
Note
La définition des propriétés de marge déplace les limites vers l’extérieur. Par exemple, si votre limite supérieure est définie sur 50, puis que vous définissez la marge élastique supérieure sur 10, votre limite supérieure devient effectivement 40.
Rubriques connexes