Merci pour votre note et vos commentaires!
Vous avez déjà évalué.
Mesure de distance, de surface et de volume (DAV) sans AR Core
Méthode utilisant la trigonométrie et les capteurs (géométrie)
Il s'agit de la méthode la plus courante pour mesurer une distance sans réalité augmentée. Elle utilise la hauteur à laquelle l'utilisateur tient le téléphone (h) et l'angle d'inclinaison (θ) détecté par l'accéléromètre.
Fonctionnement :
Si l'utilisateur pointe la caméra vers la base d'un objet, la distance est calculée à l'aide de la formule :
d = h ⋅ tan(90 − θ)
Étapes clés dans l'application :
Le gestionnaire de capteurs est utilisé pour accéder aux capteurs de type accéléromètre (Sensor.TYPE_ACCELEROMETER) et champ magnétique (Sensor.TYPE_MAGNETIC_FIELD). L'inclinaison de l'appareil (θ) est calculée. Auparavant, l'utilisateur sélectionne la hauteur à laquelle il tient le téléphone.
C'est la méthode la plus simple pour effectuer un calcul logiciel sans traitement 3D complexe, mais elle exige que l'utilisateur suive une séquence précise. Le problème de cette méthode :
Si l’utilisateur est immobile et se contente de marquer deux points devant lui, l’application ne peut pas déterminer l’angle entre ces points à partir de la seule distance. Pour une précision mathématique, il est nécessaire d’utiliser également l’azimut fourni par la boussole.
Code Java plus précis pour le calcul de la surface (avec angle) :
Si vous souhaitez que l’utilisateur marque deux points depuis le même emplacement, vous devez calculer l’angle de rotation du téléphone entre les deux mesures.
// Dans onSensorChanged, nous enregistrons également l’azimut (orientation[0])
float currentAzimuth;
// Lorsqu’un point est capturé, nous enregistrons la distance ET l’angle
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// Formule pour l'aire d'un triangle connaissant deux côtés et l'angle entre eux
// (En supposant que l'on mesure l'aire d'un triangle entre notre position et les deux points)
aire double = 0,5 * d1 * d2 * Math.sin(Math.toRadians(angleBetween));
Pour le volume (3 points) :
Avec les deux points, on obtient la base (aire). Le troisième point sert généralement à mesurer la hauteur.
L'utilisateur pointe le pied du mur (et enregistre la distance).
L'utilisateur lève son téléphone vers le plafond.
On calcule la différence de pente pour trouver la hauteur verticale H.
Volume = Aire × H.
L'application, en plus de ses fonctionnalités spécifiques, propose des fonctions supplémentaires telles que le suivi de la position ; les distances, aires et volumes calculés peuvent être mesurés en mètres, centimètres, pouces et pieds, et vous pouvez sélectionner la hauteur à laquelle la caméra de l'appareil effectuera la mesure.
Un clic pour installer les fichiers XAPK/APK sur Android!