2009-03-30 13 views
2

Est-il possible de déterminer la vitesse à laquelle quelqu'un secoue son iPhone? Ce serait le moment où ils commencent à se déplacer vers le point de fin où ils retournent maintenant à l'origine. Fondamentalement, c'est un coup que je voudrais mesurer la vitesse de. Cette discussion commente la vitesse initiale: http://discussions.apple.com/message.jspa?messageID=8297689#8297689. Il semble que l'élément important de la distance manque dans l'iPhone pour obtenir une bonne mesure de la vitesse.Détermination de la vitesse de vibration

+2

Il est probablement juste moi, mais la première chose que je pensais à la lecture de cette question est son applicabilité à l'industrie p0rn :-) Toutes mes excuses à l'avance si cela offense personne. – paxdiablo

Répondre

3

Bien sûr, il semble que tout ce que vous devez faire serait d'intégrer numériquement l'accélération deux fois pour obtenir la distance parcourue. Par exemple, regardez Calculate the position of an accelerating body after a certain time

Notez que vous devrez soustraire la gravité de l'accélération mesurée pour obtenir l'accélération cinétique, ce que vous devez intégrer. En ce qui concerne la façon de faire cela, re: commentaire de GoatRider: Je pourrais essayer de stocker la dernière accélération mesurée dont la magnitude était égale à la gravité (je pense que c'est 1 dans les unités iPhone?). Ensuite, pour chaque mesure d'accélération dont la valeur est supérieure à 1, soustrayez la dernière accélération connue de la gravité - cela devra être une soustraction vectorielle - et utilisez-la comme accélération cinétique. Bien sûr, cela suppose que l'utilisateur garde le téléphone dans la même orientation tout au long du balayage, ce qui serait à peu près vrai. Malheureusement, il n'y a aucune technique que vous pouvez utiliser pour faire la distinction entre l'accélération gravitationnelle et l'accélération cinétique en général - c'est-à-dire, un utilisateur déterminé pourrait toujours trouver un moyen de tromper n'importe quel algorithme que vous pourriez trouver. (Trivia: c'est ce qu'on appelle le principe d'équivalence, et c'est le fondement de la théorie de la relativité générale d'Einstein)

+0

Comment distingueriez-vous le tremblement de l'inclinaison/gravité? – GoatRider

+0

N'est-ce pas ce qu'il a expliqué à partir de la dernière phrase du 2ème paragraphe? – 4thSpace

+0

Comment pouvez-vous vérifier que vos calculs de vitesse sont dans le bon état? – 4thSpace

2

Vous devrez faire les calculs vous-même. Chaque événement d'accélération que vous recevez vous indiquera les forces G relatives à l'enregistrement sur l'accéléromètre et l'heure à laquelle l'événement a été enregistré. Vous devrez échantillonner plusieurs événements et interpoler. Voici plus d'informations sur l'événement d'accélération elle-même:

UIAcceleration Class Reference

+0

On dirait que j'ai besoin d'un pistolet radar. – 4thSpace

Questions connexes