Привет, я работаю с приложением, которое подсчитывает, сколько прыжков вы делаете, im используя гироскоп для этого приложения, чтобы рассчитать скачки, которые вы делаете. Но проблема в том, что, когда я перемещаю устройство немного, он считается прыжком, и это не то, как я хочу. Я хочу, чтобы когда-либо он достиг высоты, он считается прыжком.Рассчитать время перелета по вертикали
int count = 0;
public void onSensorChanged(SensorEvent event) {
double d = Math.round(Math.sqrt(Math.pow(2, event.values[0]) + Math.pow(2, event.values[1]) + Math.pow(2, event.values[2])) - 2);
String result ="";
if(d != 0){
count++;
result = String.valueOf(d/100.0);
}
text.setText("jump counts" + " " + count);
text.invalidate();
Log.i("Gyro", result);
}
1. Не используйте для этого гироскоп. Гироскопы предназначены для измерения вращения. Используйте акселерометр. 2. Если вы проверите, есть ли какие-либо изменения ('d! = 0'), он поймает любое движение, большее, чем точность датчика. – StenSoft
@StenSoft я попробовал его с помощью ускорителя и использовал только Y, и каждый раз, когда он дрожал, он будет считаться прыжком, но иногда ему потребовалось больше очков прыжка. – Gildarian
Акселерометры измеряют ускорение ('TYPE_LINEAR_ACCELERATION' linear, что вы хотите, и' TYPE_ACCELEROMETER' в целом, включая гравитацию, которую вы, возможно, захотите использовать для более старых устройств в качестве резервного). Вам также нужно время, чтобы дистанцироваться от него. И вам нужно сравнить его с порогом, чтобы исключить небольшие (без прыжка) изменения. – StenSoft