Dziękuję za ocenę i opinie!
Już oceniłeś.
Pomiar odległości, powierzchni i objętości (DAV) bez rdzenia AR
Metoda wykorzystująca trygonometrię i czujniki (geometria)
To najpopularniejszy sposób pomiaru odległości bez rozszerzonej rzeczywistości (AR). Wykorzystuje on wysokość, na której użytkownik trzyma telefon (h) oraz kąt nachylenia (θ) wykryty przez akcelerometr.
Jak to działa:
Jeśli użytkownik skieruje kamerę na podstawę obiektu, odległość jest obliczana za pomocą wzoru:
d = h⋅tan(90 − θ)
Kluczowe kroki w aplikacji:
Za pomocą SensorManager uzyskuje się dostęp do Sensor.TYPE_ACCELEROMETER i Sensor.TYPE_MAGNETIC_FIELD. Obliczane jest nachylenie urządzenia (θ). Wcześniej użytkownik wybiera wysokość, na której trzyma telefon.
To najłatwiejszy sposób wykonania obliczeń programowych bez skomplikowanego przetwarzania 3D, ale wymaga on od użytkownika wykonania określonej sekwencji.
Problem z tą metodą:
Jeśli użytkownik się nie porusza i po prostu zaznacza dwa punkty przed sobą, aplikacja nie ma możliwości określenia kąta między nimi wyłącznie na podstawie odległości. Aby zachować matematyczną dokładność, musimy również użyć azymutu z kompasu.
Dokładniejszy kod „Java” dla obszaru (z kątem):
Jeśli chcesz, aby użytkownik zaznaczył 2 punkty z tego samego miejsca, musisz obliczyć kąt, o jaki obrócono telefon między dwoma pomiarami.
// W onSensorChanged rejestrujemy również azymut (orientation[0])
float currentAzimuth;
// Po przechwyceniu punktu rejestrujemy odległość ORAZ kąt
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// Wzór na pole trójkąta o danych dwóch bokach i kącie między nimi
// (Zakładając, że mierzymy pole trójkąta od naszego położenia do dwóch punktów)
podwójne pole = 0,5 * d1 * d2 * Math.sin(Math.toRadians(angleBetween));
Dla objętości (3 punkty):
Z dwóch punktów otrzymujemy podstawę (pole). Trzeci punkt jest zazwyczaj używany do pomiaru wysokości.
Użytkownik wskazuje podstawę ściany (zapisuje odległość).
Użytkownik podnosi telefon w kierunku sufitu.
Obliczamy różnicę nachylenia, aby znaleźć wysokość pionową H.
Objętość = Pole \ razy H.
Aplikacja, oprócz innych funkcji, oferuje dodatkowe funkcje, takie jak śledzenie lokalizacji; obliczone odległości, pola powierzchni i objętości można mierzyć w metrach, centymetrach, calach i stopach, a użytkownik może wybrać wysokość, na której będzie mierzyć kamera urządzenia.
Jedno kliknięcie, aby zainstalować pliki XAPK/APK na Androidzie!