Android 용 단순 증강 현실 도구를 구현하려고합니다. 내 위치와 장치 방향 및 다른 장치의 위치를 입력하고 적절한 크기로 적절한 위치에 중첩 된 아이콘이있는 카메라보기를 제공하면됩니다.Android에서 마커리스 증강 현실 구현
나는 두 곳에 붙어 :
나는 장치의 현재 방위각, 피치, 롤에 대한 업데이트를하는 코드를 썼다. 나는이 값을 읽을 로깅 사용하십시오private final SensorEventListener goodListener = new SensorEventListener() {
private float[] magneticValues;
private float[] accelerometerValues;
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_MAGNETIC_FIELD:
magneticValues = event.values.clone();
break;
case Sensor.TYPE_ACCELEROMETER:
accelerometerValues = event.values.clone();
break;
}
if (magneticValues != null && accelerometerValues != null) {
float[] outR = new float[9];
float[] orientationValues = new float[3];
SensorManager.getRotationMatrix(outR, null,
accelerometerValues, magneticValues);
SensorManager.getOrientation(outR, orientationValues);
double azimuth = Math.toDegrees(orientationValues[0]);
double pitch = Math.toDegrees(orientationValues[1]);
double roll = Math.toDegrees(orientationValues[2]);
}
}
, 그들은 상대적으로 안정적 보이지만, 그들은 축의 자연 세트 주위에 각도에 해당하지 않는 것, 내가 알아낼 수 없습니다 : 코드는 다음과 같습니다 숫자가 나타내는 것. 이 숫자를 어떻게 해석해야합니까?
http://www.devx.com/wireless/Article/42482/0/page/3의 자습서는 훨씬 간단한 방법을 취하지 만 제대로 작동하지 않습니다.
내 장치의 방위각, 피치 및 롤, 위도와 경도, 다른 장치의 방위각이 있으면 아이콘을 화면에 배치 할 위치를 어떻게 결정할 수 있습니까? 이것은 카메라의 시야를 무한 원뿔이라고 상상하고 지구의 표면에 투영하고 다른 위치가 투영 된 영역 안에 있는지 확인해야하는 복잡한 기하학 문제 인 것 같습니다. 그러나 이것은 매우 복잡한 것처럼 보입니다. 내가 바라 보는 더 좋은 방법이 있습니까?