Сглаживание фильтра нижних частот акселерометра

Я использую акселерометр устройства и пытаюсь сгладить данные акселерометра CMAcceleration.

Я делаю это с помощью этого кода:

-(void)proccessAccelerometerData:(CMAcceleration)accelData {
    currentAccelX = (kUpdateInterval * accelData.x) + ((1.0 - kUpdateInterval) * currentAccelX);
    currentAccelY = (kUpdateInterval * accelData.y) + ((1.0 - kUpdateInterval) * currentAccelY);
}

Какие currentAccelX и currentAccelY являются последними данными акселерометра x и y.

Теперь у меня есть сглаженные значения x и y. Какое у меня значение x или y для определения идентификатора, по которому пользователь перемещает устройство влево / вправо / вверх / вниз?

Чтобы прояснить ситуацию, например, предположим, что у меня есть 4 кнопки, по одной для каждого направления влево / вправо / вверх / вниз, и я хочу определить, в каком направлении пользователь проводит пальцем по устройству? (не смахивающий жест). Заранее спасибо!


person gran33    schedule 31.08.2014    source источник
comment
влево / вправо / вверх / вниз зависит от того, как держится устройство. Скользящая средняя не отражает направление, в котором в настоящее время движется устройство. Ex перемещает: u1, u2, d1, u2, u1, d2. Среднее u5, текущее d2. Вопрос требует дополнительных разъяснений, и то, что вы пытаетесь сделать, может помочь.   -  person zaph    schedule 31.08.2014
comment
@Zaph Я редактирую свой вопрос для u m8   -  person gran33    schedule 01.09.2014


Ответы (1)


Предполагая, что вы держите устройство в портретной ориентации, ось X указывает движение влево и вправо (положительный x - вправо, а отрицательный - влево).
Ось Y указывает движение устройства вверх и вниз (положительный y - вверх, отрицательный y - вниз).
Ось z указывает движение устройства вперед и назад (положительное значение z направлено к пользователю, а отрицательное - от пользователя).
Информационное изображение от Apple: developer.apple .com

person smudis    schedule 31.08.2014
comment
Можете прояснить вопрос? - person zaph; 31.08.2014
comment
Итак, вы хотите знать, как определить направление движения устройства относительно пользователя, независимо от того, находится ли устройство в вертикальном положении, вверх ногами или под любым другим углом? - person smudis; 31.08.2014