등급과 피드백에 감사드립니다!
당신은 이미 평가했습니다.
AR Core 없이 거리, 면적 및 부피 측정(DAV)
삼각법과 센서(기하학)를 이용한 방법
AR 없이 거리를 측정하는 가장 일반적인 방법입니다. 사용자가 스마트폰을 들고 있는 높이(h)와 가속도계가 감지한 기울기 각도(θ)를 사용합니다.
작동 방식:
사용자가 카메라를 물체의 밑면으로 향하게 하면 다음 공식을 사용하여 거리를 계산합니다.
d = h⋅tan(90 − θ )
앱의 주요 단계:
SensorManager를 사용하여 Sensor.TYPE_ACCELEROMETER 및 Sensor.TYPE_MAGNETIC_FIELD에 접근합니다. 기기의 기울기(θ)를 계산합니다. 그 전에 사용자는 스마트폰을 들고 있는 높이를 선택합니다.
이 방법은 복잡한 3D 처리 없이 소프트웨어로 계산하는 가장 쉬운 방법이지만, 사용자가 특정 순서를 따라야 합니다.
이 방법의 문제점:
사용자가 움직이지 않고 단순히 앞에 두 지점을 표시하는 경우, 앱은 거리만으로는 두 지점 사이의 각도를 알 수 없습니다. 수학적으로 정확하게 하려면 나침반의 방위각도 사용해야 합니다.
각도를 포함한 면적 계산을 위한 보다 정확한 "Java" 코드는 다음과 같습니다.
사용자가 동일한 위치에서 두 지점을 표시하도록 하려면 두 측정 사이에 휴대폰이 회전한 각도를 계산해야 합니다.
// onSensorChanged에서 방위각(orientation[0])도 기록합니다.
float currentAzimuth;
// 지점이 캡처되면 거리와 각도를 모두 기록합니다.
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// 두 변의 길이와 그 사이의 각도가 주어졌을 때 삼각형의 면적을 구하는 공식
// (현재 위치에서 두 점까지의 거리를 측정한다고 가정합니다.)
double area = 0.5 * d1 * d2 * Math.sin(Math.toRadians(angleBetween));
부피 계산 (세 점):
두 점을 이용하면 밑변(면적)을 구할 수 있습니다. 세 번째 점은 일반적으로 높이를 측정하는 데 사용됩니다.
사용자가 벽의 밑면을 가리키고 거리를 기록합니다.
사용자가 휴대폰을 천장 쪽으로 들어 올립니다.
기울기 차이를 계산하여 수직 높이 H를 구합니다.
부피 = 면적 × 높이
이 앱은 위치 추적, 거리, 면적, 부피 측정(미터, 센티미터, 인치, 피트 단위), 카메라 측정 높이 선택 등의 추가 기능을 제공합니다.