你好我正在使用一个应用程序来计算你正在进行多少跳跃,我使用陀螺仪为这个应用程序计算你正在进行的跳跃。但我遇到的问题是,当我稍微移动设备时,它算作跳跃,而这不是我想要的。我想要它,当它达到一个高度时它会被视为一个跳跃。
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);
}
答案 0 :(得分:1)
如果陀螺仪返回的距离大于或等于该阈值,您可以引入一个计算跳跃的阈值。
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 ="";
SharedPreferences preferences=PreferenceManager.getDefaultSharedPreferences(context);
float threshold=preferences.getFloat(KEY,defaulttValue)
if(d != 0 && d>=threshold){
count++;
result = String.valueOf(d/100.0);
}
text.setText("jump counts" + " " + count);
text.invalidate();
Log.i("Gyro", result);
}
此阈值可由用户校准,存储在共享首选项中,以便以后修改。