Grazie per la tua valutazione e feedback!
Hai già valutato.
Misurazione di distanza, area e volume (DAV) senza AR Core
Metodo che utilizza la trigonometria e i sensori (geometria)
Questo è il metodo più comune per misurare la distanza senza realtà aumentata (AR). Utilizza l'altezza a cui l'utente tiene il telefono (h) e l'angolo di inclinazione (θ) rilevato dall'accelerometro.
Come funziona:
Se l'utente punta la fotocamera verso la base di un oggetto, la distanza viene calcolata utilizzando la formula:
d = h⋅tan(90 − θ )
Passaggi chiave nell'app:
Si utilizza SensorManager per accedere a Sensor.TYPE_ACCELEROMETER e Sensor.TYPE_MAGNETIC_FIELD. Viene calcolato il beccheggio (θ) del dispositivo. Prima di ciò, l'utente seleziona l'altezza a cui tiene il telefono.
Questo è il modo più semplice per eseguire un calcolo software senza complesse elaborazioni 3D, ma richiede all'utente di seguire una sequenza specifica.
Il problema di questo metodo:
Se l'utente non si muove e si limita a contrassegnare due punti davanti a sé, l'app non ha modo di conoscere l'angolo tra di essi basandosi solo sulla distanza. Per essere matematicamente precisi, dobbiamo utilizzare anche l'azimut della bussola.
Il codice "Java" più preciso per il calcolo dell'area (con angolo):
Se si desidera che l'utente contrassegni 2 punti dalla stessa posizione, è necessario calcolare l'angolo di rotazione del telefono tra le due misurazioni.
// In onSensorChanged, registriamo anche l'azimut (orientation[0])
float currentAzimuth;
// Quando un punto viene acquisito, registriamo la distanza E l'angolo
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// Formula per l'area di un triangolo dati due lati e l'angolo tra di essi
// (Supponendo di misurare l'area di un triangolo dalla nostra posizione ai due punti)
double area = 0.5 * d1 * d2 * Math.sin(Math.toRadians(angoloTra));
Per il volume (3 punti):
Con i due punti, abbiamo la base (Area). Il terzo punto viene solitamente utilizzato per l'altezza.
L'utente punta alla base del muro (registra la distanza).
L'utente alza il telefono verso il soffitto.
Calcoliamo la differenza di pendenza per trovare l'altezza verticale H.
Volume = Area × H.
L'app, oltre ad altre funzionalità specifiche, offre funzioni aggiuntive come il tracciamento della posizione; distanze, aree e volumi calcolati possono essere misurati in metri, centimetri, pollici e piedi, ed è possibile selezionare l'altezza alla quale la fotocamera del dispositivo effettuerà la misurazione.
Basta un clic per installare i file XAPK/APK su Android!