7

Tôi đã thực hiện trình lắng nghe cho cả Vector Xoay và Định hướng Vector mặc dù tôi biết nó đã bị mất giá trị tôi muốn kiểm tra cả hai.TYPE_ROTATION_VECTOR, TYPE_ORIENTATION cũng cho kết quả khác nhau với độ lệch

Tôi biết Rotation Vector là một tổng hợp cảm biến & khuyến cáo nhưng theo nó NORTH (giá trị [0] trả về bởi getOrientation (rotationMatrix, giá trị) geaving mang 0) không phù hợp với NORTH từ cảm biến định hướng. Tôi cũng đã kiểm tra từ các ứng dụng khác nhau từ playstore, các giá trị cảm biến định hướng dường như gần gũi hơn với chúng.

Hơn nữa nhiều lần giá trị góc phương vị của tôi [0] từ Rotation_Vector sau đó getOrientation chỉ bắn lên và giữ dao động giữa -180 đến 180

PS "getRotationMatrix (float [] R, float [] Tôi, float [ ] lực hấp dẫn, float [] geomagnetic) "cũng cho kết quả tương tự như xoay Vector.

public final void onSensorChanged(SensorEvent event) 
{ 
    float rotationMatrix[];  
    switch(event.sensor.getType()) 
    { 
    . 
     . 
     .  
    case Sensor.TYPE_ROTATION_VECTOR: 
     rotationMatrix=new float[16]; 
     mSensorManager.getRotationMatrixFromVector(rotationMatrix,event.values); 
     determineOrientation(rotationMatrix); 
     break; 

    case Sensor.TYPE_ORIENTATION: 
     sensorZValue.setText(""+event.values[0]); //rotation about geographical z axis 
     sensorXValue.setText(""+event.values[1]); //rotation about geographical x axis 
     sensorYValue.setText(""+event.values[2]); //rotation about geographical y axis 

}//switch case ends 
} 


private void determineOrientation(float[] rotationMatrix) 
    { 
    float[] orientationValues = new float[3]; 
    SensorManager.getOrientation(rotationMatrix, orientationValues); 
    double azimuth = Math.toDegrees(orientationValues[0]); 
    double pitch = Math.toDegrees(orientationValues[1]); 
    double roll = Math.toDegrees(orientationValues[2]); 

    sensorZValue.setText(String.valueOf(azimuth)); //rotation about geographical z axis 
    sensorXValue.setText(String.valueOf(pitch)); //rotation about geographical x axis 
    sensorYValue.setText(String.valueOf(roll)); //rotation about geographical y axis 


    } 

Tôi muốn xác định góc giữa trục Y của điện thoại và Vector chỉ Bắc đến nỗi thực hiện ban đầu của tôi. Vui lòng đề xuất.

+0

Theo các giá trị tài liệu android [1] trỏ tới hướng Bắc. Vì vậy, - pitch điểm đến Bắc, không góc phương vị :-) –

Trả lời

Các vấn đề liên quan