Я на самом деле кодирую приложение на Android, и мне нужно указать определенное направление, объяснение, у меня есть фиксированная позиция и позиция моего смартфона (две в широте долготы) и Я хочу указать стрелку на направление между ними. Поэтому я искал, как ад, у меня есть компас, который отлично работает, и я попытался изменить направление указателя, изменив направление на север, получая материал getRotationMatrix, но хорошо после того, как потерял мой мозг, пытаясь не знать, что делать xD Итак, мне нужно некоторые идеи и подсказки.Ориентация на Android с двумя местоположениями
Вот мой код на всякий случай (я просто мимо onSensorChanged FUNC остальное является лишь основные инициализацый)
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor == mAccelerometer) {
System.arraycopy(event.values, 0, mLastAccelerometer, 0, event.values.length);
mLastAccelerometerSet = true;
} else if (event.sensor == mMagnetometer) {
System.arraycopy(event.values, 0, mLastMagnetometer, 0, event.values.length);
mLastMagnetometerSet = true;
}
if (mLastAccelerometerSet && mLastMagnetometerSet) {
SensorManager.getRotationMatrix(mR, null, mLastAccelerometer, mLastMagnetometer);
SensorManager.getOrientation(mR, mOrientation);
float azimuthInRadians = mOrientation[0];
float azimuthInDegress = (float)(Math.toDegrees(azimuthInRadians)+360)%360;
RotateAnimation ra = new RotateAnimation(
mCurrentDegree,
-azimuthInDegress,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);
ra.setDuration(250);
ra.setFillAfter(true);
mPointer.startAnimation(ra);
mCurrentDegree = -azimuthInDegress;
}
}