Mit getRotationMatrix und getOrientation in Android 2.1

Habe ich Probleme mit diesem viel zu lange. Dieser code sollte die Ausgabe dx,dy,dz für den Beschleunigungssensor und eine laufende Summe von der dx. Es sollte auch die Ausgabe von Azimut, pitch und roll.

Ich habe die Informationen, die hier gegeben werden, aber ohne Erfolg.

Dieser code ist nicht korrekt-Ausgang, pitch -, Azimut -, oder roll. Es Ausgänge 0.0, -0.0, -0.0 für die letzten drei textviews, beziehungsweise.

switch (event.sensor.getType()) {
    case Sensor.TYPE_ACCELEROMETER:
        accelerometerValues = event.values.clone();
    case Sensor.TYPE_MAGNETIC_FIELD:
        geomagneticMatrix = event.values.clone();
        sensorReady = true;
        break;
    default:
        break;
}   

if (geomagneticMatrix != null && accelerometerValues != null && sensorReady) {
    sensorReady = false;

    float[] R = new float[16];
    float[] I = new float[16];

    SensorManager.getRotationMatrix(R, I, accelerometerValues, geomagneticMatrix);

    float[] actual_orientation = new float[3];
    SensorManager.getOrientation(R, actual_orientation);

    tvXCoordinate.setText(accelerometerValues[0] + "");
    tvYCoordinate.setText(accelerometerValues[1] + "");
    tvZCoordinate.setText(accelerometerValues[2] + "");

    floatXTotal += accelerometerValues[0];
    tvXTotal.setText(floatXTotal + "");

    tvAzimuth.setText(actual_orientation[0] + "");
    tvPitch.setText(actual_orientation[1] + "");
    tvRoll.setText(actual_orientation[2] + "");
}
InformationsquelleAutor aaronmar | 2010-06-03
Schreibe einen Kommentar