¡Gracias por tu valoración y comentarios!
YYa has valorado.
Medición de distancia, área y volumen (DAV) sin núcleo AR
Método mediante trigonometría y sensores (geometría)
Esta es la forma más común de medir distancias sin realidad aumentada (RA). Utiliza la altura a la que el usuario sostiene el teléfono (h) y el ángulo de inclinación (θ) detectado por el acelerómetro.
Cómo funciona:
Si el usuario apunta la cámara a la base de un objeto, la distancia se calcula mediante la fórmula:
d = h⋅tan(90 − θ)
Pasos clave en la aplicación:
Se utiliza SensorManager para acceder a Sensor.TYPE_ACCELEROMETER y Sensor.TYPE_MAGNETIC_FIELD. Se calcula la inclinación (θ) del dispositivo. Previamente, el usuario selecciona la altura a la que sostiene el teléfono.
Esta es la forma más sencilla de realizar un cálculo por software sin un procesamiento 3D complejo, pero requiere que el usuario siga una secuencia específica.
El problema con este método:
Si el usuario no se mueve y simplemente marca dos puntos frente a él, la aplicación no puede determinar el ángulo entre ellos basándose únicamente en la distancia. Para obtener precisión matemática, también debemos usar el acimut de la brújula.
El código Java más preciso para calcular el área (con ángulo) es el siguiente:
Si desea que el usuario marque dos puntos desde la misma ubicación, debe calcular el ángulo de rotación del teléfono entre las dos mediciones.
// En `onSensorChanged`, también registramos el acimut (orientation[0]).
`float currentAzimuth`;
// Cuando se captura un punto, registramos la distancia Y el ángulo.
`double d1 = capturedDistances.get(0);`
`double d2 = capturedDistances.get(1);`
`double angleBetween = Math.abs(azimuth2 - azimuth1);`
// Fórmula para el área de un triángulo dados dos lados y el ángulo entre ellos
// (Suponiendo que medimos el área de un triángulo desde nuestra ubicación hasta los dos puntos)
área doble = 0.5 * d1 * d2 * Math.sin(Math.toRadians(ánguloEntre));
Para el volumen (3 puntos):
Con los dos puntos, tenemos la base (área). El tercer punto se usa generalmente para la altura.
El usuario apunta a la base de la pared (registra la distancia).
El usuario levanta el teléfono hacia el techo.
Calculamos la diferencia de pendiente para hallar la altura vertical H.
Volumen = Área × H.
La aplicación, además de otras funciones específicas, incluye funciones adicionales como el seguimiento de ubicación; las distancias, áreas y volúmenes calculados se pueden medir en metros, centímetros, pulgadas y pies, y se puede seleccionar la altura a la que medirá la cámara del dispositivo.
¡Un clic para instalar archivos XAPK/APK en Android!