Je veux déplacer des objets sur l'écran de l'iPhone (rectangle, encercler et ainsi de suite) en déplaçant l'iphone. Par exemple, je déplace l'iPhone le long de l'axe X et l'objet se déplace le long de l'axe des x. La même chose pour y, z-axe. p>
Comment puis-je faire cela? Puis-je obtenir un algorithme? P>
merci. p>
P.s: J'ai cherché un moment et on dirait que cela est possible avec accéléromètre. p>
3 Réponses :
Pas facile à faire avec précision. Un accéléromètre ne rapporte que accélération em>, pas de mouvement. Vous pouvez essayer (numériquement) Intégrer l'accélération au fil du temps, mais vous êtes susceptible de vous retrouver avec des erreurs cumulatives, ce qui conduit à un mouvement inattendu. pseudocode, évidemment non testée: p> init:
loc = {0, 0, 0} ; location of object on screen
vel = {0, 0, 0} ; velocity of object on screen
t = 0 ; last time measured
step:
t0 = time ; get amount of time since last measurement
dt = t0 - t
accel = readAccelerometer()
vel += accel * dt ; update velocity
loc += vel * dt ; update position
displayObjectAt(loc)
Donc, vous dites que ce n'est pas une chose pratique à faire sur iPhone?
Correct. Les liens dans la réponse de Ali montrent que cela ne fonctionnera probablement pas utilement.
Vous obtenez la position en intégrant l'accélération linéaire deux fois mais Voici une explication Pourquoi (Google Tech Talk) à 23:20. Je recommande vivement cette vidéo. P>
Cependant, la souris gyro Questions similaires: P>
Suivre les petits mouvements d'iPhone sans GPS
Quelle est la précision du monde réel des accéléromètres du téléphone lorsqu'il est utilisé pour le positionnement?
Comment calculer le mouvement du téléphone dans la direction verticale du repos?
iOS: précision du mouvement dans l'espace 3D
Comment utiliser l'accéléromètre pour mesurer la distance de développement d'applications Android
Comment puis-je trouver la distance parcourue avec un gyroscope et un accéléromètre?
p>
Pourquoi n'utilisez-vous pas l'accélération elle-même à la place de la distance déplacée? Par exemple; Si votre accélération est de 1,4 g à l'est, votre objet doit passer à l'est de 14pixels par seconde jusqu'à ce que votre accélération change. p>
Pour que le mouvement de l'objet soit similaire à une force relative et que je pense que c'est plus réaliste. Dispositif de déplacement plus rapide, force plus grande pour effectuer un objet. P>
Aussi regarder: p>
http://www.freescale.com/files/sensors /doc/app_note/an3397.pdf P>
et p>
Lorsque vous ferez un mouvement, par exemple à gauche, vous obtiendrez une sortie comme celle-ci: -1g 0g 0g 0g 1g car lorsque vous arrêtez le mouvement, vous obtiendrez une force qui sera négative à la force initiale qui a créé un mouvement. Vous devez en quelque sorte filtrer et ce n'est pas facile.