onSensorChanged() 메서드에서 v [0], v [1], v [2] 및 해당 방위각, 피치 및 롤 값을 계산하는 데 getRotationMatrix()를 사용하고 있습니다. boolean detectAzimuth가 true가 될 때 첫 번째 v [0] (또는 해당 방위각) 값을 firstAzimuth에 저장하는 방법이 궁금합니다.onSensorChanged() 메서드에서 시작 값만 저장하는 방법은 무엇입니까?
private boolean detectAzimuth = false;
private float firstAzimuth;
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
accValues = event.values.clone();
}
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
geoValues = event.values.clone();
}
boolean success = SensorManager.getRotationMatrix(r, i, accValues,
geoValues);
if (success) {
SensorManager.getOrientation(r, v);
if (detectAzimuth) {
azimuth = v[0] * (180/Math.PI);
}
pitch = v[1] * (180/Math.PI);
roll = v[2] * (180/Math.PI);
}
}
좋은 답변 주셔서 감사합니다. 확실히 당신이 확실하지 않았기 때문에 이것이 내가 목표로했던 것이기 때문에 당신이 방위각 값을 더 얻지 않고 (저장하지 않고) 몇 가지 가능성을 던져 줄 수 있다면 정말 고맙겠습니다. – Uros
도움이 되니 기쁩니다. 괜찮아. 값을 가져 오지 만 저장하지 않으려면 (처음이 아닌 경우) 업데이트 된 코드를 참조하십시오. –
우수! 매력처럼 일하고. 너 규칙. – Uros