2012-01-02 50 views
1

我正在創建一個簡單的應用程序,用於測量用戶在拿着設備時在空中衝擊時施加的力。我知道的唯一方法是使用內置的加速度計。現在,我是能夠得到使用UIAccelerometerDelegate協議測量iphone上的衝擊力

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration. 

的問題是,我不知道如何處理這些值,現在我得到的x,y和z之加速度值。是否有任何公式或任何我可以使用的方法,以便爲用戶提供更準確的結果?

回答

2

這聽起來像一個物理問題,而不是一個編程問題。首先,需要對從矢量獲得的加速度的大小的API返回:

一個=平方根(X^2 + Y^2 + Z^2)

然後,可以用牛頓的公式來獲得力量。

F = MA

既然你加速,所有你需要做的就是乘上手機的質量,你就大功告成了。 (儘管您可能想將結果轉換爲特定的度量單位。)

請注意,壓力可能會比力更有意義。例如,我可能希望手機用磅/平方英寸來描述我的拳擊強度。但是如果不知道用戶拳頭的表面區域,你就無法得到它。

+0

謝謝彼得!雖然我已經有了加速度值,但我不確定我得到的是用戶打出的實際值。我做的是我設置了一個條件,如果值大於kNumber(在我的情況1),如果條件得到滿足,那是我唯一記錄價值的時間。總之,結果始終是大於1的第一個值。 – BLACK 2012-01-02 05:57:18

+0

我試過使用計時器,用戶必須用他所有的力量打一段時間讓我們說5秒..然後在那之後n秒,達到的最高值將被記錄下來。我認爲這樣更準確,但是我想要的是一旦它檢測到衝頭運動就立即記錄下這個力。有一個更好的方法嗎? – BLACK 2012-01-02 06:13:38