2012-01-02 2 views
1

Я создаю простое приложение, которое измеряет силу, оказываемую пользователем при пробивании в воздухе, удерживая устройство. Единственный способ, которым я знаю, - использовать встроенный акселерометр. Теперь я был в состоянии получить значение ускорения с использованием протокола UIAccelerometerDelegateИзмерительная сила пунша на iphone

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

Проблема заключается в том, я не знаю, что делать с этими значениями, сейчас я получаю сумму х, у, г. Есть ли какая-либо формула или что бы я ни использовал, чтобы я мог предоставить пользователям более точный результат?

ответ

2

Это скорее вопрос физики, чем вопрос программирования. Во-первых, вам необходимо получить величину ускорения от вектора API возвращает:

а = квадратный корень (х^2 + у^2 + г^2)

Затем может использовать формулу Ньютона, чтобы получить силу.

F = та

Поскольку у вас есть ускорение, все, что вам нужно сделать, это умножить на массу телефона, и вы сделали. (Хотя вы можете конвертировать результат в определенную единицу измерения.)

Помните, что давление, вероятно, было бы более значимым, чем сила. Например, мне может потребоваться, чтобы телефон описал силу моего удара в фунтах на квадратный дюйм. Но вы не можете получить это, не зная площадь поверхности кулака пользователя.

+0

Спасибо, Питер! хотя у меня уже есть значения ускорения, я не уверен, что то, что я получаю, является фактическими значениями при перфорации пользователя. Что я сделал, я установил условие, если значение больше, чем kNumber (в моем случае 1), если условие выполнено, это единственный раз, когда я записываю значение. Короче говоря, результат всегда будет первым значением, которое больше 1. – BLACK

+0

Я пробовал использовать таймер, пользователь должен пробивать все свои силы в течение определенного периода времени, скажем, 5 секунд .. затем после этого n секунд , будет записано наибольшее значение. Я думаю, что это более точно, но я хочу записать силу сразу, как только она обнаружит движение пунша. Есть лучший способ сделать это? – BLACK

Смежные вопросы