Bedankt voor je beoordeling en feedback!
Je hebt al beoordeeld.
Afstand, oppervlakte en volume meten (DAV) zonder AR Core
Methode met behulp van trigonometrie en sensoren (geometrie)
Dit is de meest gebruikelijke manier om afstand te meten zonder augmented reality (AR). Het maakt gebruik van de hoogte waarop de gebruiker de telefoon vasthoudt (h) en de kantelhoek (θ) die door de accelerometer wordt gedetecteerd.
Hoe het werkt:
Als de gebruiker de camera op de basis van een object richt, wordt de afstand berekend met de formule:
d = h⋅tan(90 − θ )
Belangrijkste stappen in de app:
SensorManager wordt gebruikt om toegang te krijgen tot Sensor.TYPE_ACCELEROMETER en Sensor.TYPE_MAGNETIC_FIELD. De hellingshoek (θ) van het apparaat wordt berekend. Daarvoor selecteert de gebruiker de hoogte waarop hij/zij de telefoon vasthoudt.
Dit is de eenvoudigste manier om een softwarematige berekening uit te voeren zonder complexe 3D-verwerking, maar de gebruiker moet wel een specifieke volgorde volgen.
Het probleem met deze methode:
Als de gebruiker niet beweegt en simpelweg twee punten voor zich markeert, kan de app de hoek tussen deze punten niet bepalen op basis van alleen de afstand. Om wiskundig correct te zijn, moeten we ook de azimut van het kompas gebruiken.
De nauwkeurigere "Java"-code voor Oppervlakte (met hoek):
Als je wilt dat de gebruiker twee punten vanaf dezelfde locatie markeert, moet je de hoek berekenen waaronder de telefoon tussen de twee metingen is gedraaid.
// In onSensorChanged registreren we ook de azimut (orientation[0])
float currentAzimuth;
// Wanneer een punt wordt vastgelegd, registreren we de afstand EN de hoek
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// Formule voor de oppervlakte van een driehoek gegeven twee zijden en de hoek ertussen
// (Ervan uitgaande dat we de oppervlakte van een driehoek meten vanaf onze locatie tot de twee punten)
dubbele oppervlakte = 0,5 * d1 * d2 * Math.sin(Math.toRadians(hoekTussen));
Voor volume (3 punten):
Met de twee punten hebben we de basis (oppervlakte). Het derde punt wordt meestal gebruikt voor de hoogte.
De gebruiker wijst naar de voet van de muur (registreert de afstand).
De gebruiker richt de telefoon naar het plafond.
We berekenen het verschil in helling om de verticale hoogte H te vinden.
Volume = Oppervlakte × H.
De app heeft, naast andere specifieke functies, extra mogelijkheden zoals locatiebepaling; berekende afstanden, oppervlakten en volumes kunnen worden gemeten in meters, centimeters, inches en feet, en u kunt de hoogte selecteren waarop de camera van het apparaat meet.
Eén klik om XAPK/APK-bestanden op Android te installeren!