パニック速報

The next stage is paradise…

こっちに問題あるのかな?鳩のおじさん助けて

@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
// 増加量
dx = event.values[0] - oldx;
dy = event.values[1] - oldy;
dz = event.values[2] - oldz;
// ベクトル量をピタゴラスの定義から求める。
// が正確な値は必要でなく、消費電力から平方根まで求める必要はない
// vectorSize = Math.sqrt*1;
vectorSize = (double) (dx * dx + dy * dy + dz * dz);
// ベクトル計算を厳密に行うと計算量が上がるため、簡易的な方向を求める。
// 一定量のベクトル量があり向きの反転があった場合(多分走った場合)
// vecchangecountはSENSOR_DELAY_NORMALの場合、200ms精度より
// 加速度変化が検出できないための専用処理。精度を上げると不要
// さらに精度がわるいことから、連続のベクトル変化は検知しない。
long dt = new Date().getTime() - changeTime;
boolean dxx = Math.abs(dx) > thresholdMin && vecx != (dx >= 0);
boolean dxy = Math.abs(dy) > thresholdMin && vecy != (dy >= 0);
boolean dxz = Math.abs(dz) > thresholdMin && vecz != (dz >= 0);
if (vectorSize > threshold && dt > thresholdTime
&& (dxx || dxy || dxz)) {
vecchangecount++;
changeTime = new Date().getTime();
}
// ベクトル量がある状態で向きが2回(上下運動とみなす)変わった場合
// または、ベクトル量が一定値を下回った(静止とみなす)場合、カウント許可
if (vecchangecount > 1 || vectorSize < 1) {
counted = false;
vecchangecount = 0;
}
// カウント許可で、閾値を超えるベクトル量がある場合、カウント
if (!counted && vectorSize > threshold) {
counter++;
counted = true;
vecchangecount = 0;
}
// カウント自の加速度の向きを保存
vecx = dx >= 0;
vecy = dy >= 0;
vecz = dz >= 0;
// 状態更新
oldVectorSize = vectorSize;
// 加速度の保存
oldx = event.values[0];
oldy = event.values[1];
oldz = event.values[2];
}
}


あとさ、ハイパースレッドって中二病全開だよなスーパークラスとか

*1:double)(dx*dx+dy*dy+dz*dz