Ich möchte die besten Pitch-and-Roll-Werte erhalten. Ich verwende diesen Code bereits, um den Azimutwert zu erhalten.Erhalten Sie stabilisierte Pitch- und Roll-Werte
Pitch-and-Roll-Werte scheinen nicht gut zu sein.
@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;
}
ich diesen Code in Augmented-Reality-Umgebung (mit Jmonkeyengine) 3D-Objekte je nach Telefon Position zu bewegen:
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);
}
ist etwas, was ich verpasst?
EDIT
-Code bereits in App ist von diesem link
Es funktioniert, aber ich denke, Sensor.TYPE_ROTATION_VECTOR
einen besseren Weg.
Wie sind die Werte "nicht gut"? Sind sie laut? – reden
Ja, sie sind laut. –