0
最高のピッチとロールの値を取得したい。 私はすでにazimut値を取得するためにそのコードを使用しています。安定したピッチとロールの値を得る
ピッチとロールの値が良くないようです。
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ROTATION_VECTOR:
// calculate th rotation matrix
SensorManager.getRotationMatrixFromVector(rMat, event.values);
float[] data = SensorManager.getOrientation(rMat, orientation);
Log.i(TAG, "NEW pitch?="+data[1]+" roll="+data[2]);
// do something with data
break;
}
私は、携帯電話の位置に応じて、3Dオブジェクトを移動するには(Jmonkeyエンジン付き)拡張現実環境でそのコードを使用しています:
public void updateRotationFused(float pitch, float roll) {
//pitch: cams x axis roll: cams y axisheading: cams z axis
mRotXYZQ.fromAngles(pitch + FastMath.HALF_PI , roll - FastMath.HALF_PI, 0);
mCurrentCamRotationFused = mInitialCamRotation.mult(mRotXYZQ);
}
は、私が逃した何かですか?既にアプリで使用されている
EDIT
コードは、それは動作しますが、私はSensor.TYPE_ROTATION_VECTOR
は良い方法だと思います。このlink
からです。
どのように値が「うまくいかないのですか?彼らは騒々しいですか? – reden
はい、彼らは騒々しいです。 –