Comment lisser l'accéléromètre de l'iPhone/iPod Touch?Smooth UIAccelerometer
4
A
Répondre
9
Vous pouvez lisser les données de l'accéléromètre en appliquant un filtre aux données entrantes avant de l'utiliser. La première chose que vous voulez faire est de mettre en place une constante pour votre filtre.
#define kFilteringFactor 0.1
Dans la méthode didAccelerate, vous devrez ajouter le code de filtrage suivant
- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
{
sx = acceleration.x * kFilteringFactor + sx * (1.0 - kFilteringFactor);
sy = acceleration.y * kFilteringFactor + sy * (1.0 - kFilteringFactor);
sz = acceleration.z * kFilteringFactor + sz * (1.0 - kFilteringFactor);
}
Le code ci-dessus devrait lisser les données pour vous. Les valeurs sx, sy et sz sont de type UIAccelerationValue.
Il existe de nombreuses informations connexes dans la documentation d'Apple que vous pourriez trouver utiles à cet égard.
Questions connexes
- 1. UIAccelerometer Stop Problème
- 2. smooth scrolling .net forms
- 3. Visual Studio 2008 Stop Debug Smooth Exit
- 4. cudaMemcpyToSymbol ne pas copier les données
- 5. Comment libérer une instance d'accélérateur partagée sur l'iPhone?
- 6. Ajout de Slide-to-Anchor à l'effet Hide
- 7. Ajax popup provoque le chargement de l'écran en utilisant ASP.NET
- 8. chargement du contenu après un clic yensdesign menu à onglets
- 9. Comment concevoir le stockage de paramètres d'objet complexes dans un xml
- 10. cubique/courbe lisse en C Interpolation #
- 11. Faire défiler des DataTemplates dans ListBox sur une minuterie
- 12. Multitouch question
- 13. Détecter l'orientation de l'écran de l'iPhone
- 14. Flash: Utilisation des événements de la roulette de la souris en mode plein écran (Windows et Mac)
- 15. C#, Lokad.Shared: Comment écrire des règles personnalisées à utiliser avec Enforce
- 16. Silverlight 3 - ListBox: comment atteindre Scroll lisse et attraper les événements MouseDown/MouseUp
- 17. Pourquoi mes accéléromètres réagissent-ils si lentement?
- 18. Pourquoi mon application de traitement ne fonctionne-t-elle pas?
- 19. jQuery: Problème avec les contrôles fenêtrés dans IE6
- 20. stocker et lire des fichiers xml iPhone
- 21. « mouseDragged » mais NSOpenGlView pas rafraîchi jusqu'à ce que « MouseUp »
Bonne réponse! La seule chose à ajouter est que les variables sx, sy et sz doivent être déclarées dans le fichier d'en-tête afin que la valeur puisse être utilisée dans le calcul suivant. A travaillé super pour moi. – Structurer