Obrigado pela sua classificação e feedback!
Você já classificou.
Medição de distância, área e volume (DAV) sem AR Core
Método usando trigonometria e sensores (geometria)
Esta é a maneira mais comum de medir distância sem RA. Ela usa a altura em que o usuário segura o telefone (h) e o ângulo de inclinação (θ) detectado pelo acelerômetro.
Como funciona:
Se o usuário apontar a câmera para a base de um objeto, a distância é calculada usando a fórmula:
d = h⋅tan(90 − θ)
Etapas principais no aplicativo:
O SensorManager é usado para acessar Sensor.TYPE_ACCELEROMETER e Sensor.TYPE_MAGNETIC_FIELD. A inclinação (θ) do dispositivo é calculada. Antes disso, o usuário seleciona a altura em que está segurando o telefone.
Esta é a maneira mais fácil de realizar um cálculo de software sem processamento 3D complexo, mas exige que o usuário siga uma sequência específica. O problema com este método:
Se o usuário não estiver se movendo e simplesmente marcar dois pontos à sua frente, o aplicativo não terá como saber o ângulo entre eles com base apenas na distância. Para ser matematicamente preciso, também precisamos usar o azimute da bússola.
O código "Java" mais preciso para Área (com ângulo):
Se você quiser que o usuário marque 2 pontos a partir do mesmo local, você precisa calcular o ângulo em que o telefone foi girado entre as duas medições.
// Em onSensorChanged, também registramos o azimute (orientation[0])
float currentAzimuth;
// Quando um ponto é capturado, registramos a distância E o ângulo
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// Fórmula para a área de um triângulo dados dois lados e o ângulo entre eles
// (Assumindo que estamos medindo a área de um triângulo da nossa localização até os dois pontos)
double area = 0.5 * d1 * d2 * Math.sin(Math.toRadians(angleBetween));
Para Volume (3 pontos):
Com os dois pontos, temos a base (Área). O terceiro ponto geralmente é usado para a Altura.
O usuário aponta para a base da parede (registra a distância).
O usuário levanta o telefone em direção ao teto.
Calculamos a diferença na inclinação para encontrar a altura vertical H.
Volume = Área × H.
O aplicativo, além de outros recursos específicos, possui funções adicionais como rastreamento de localização; distâncias, áreas e volumes calculados podem ser medidos em metros, centímetros, polegadas e pés, e você pode selecionar a altura na qual a câmera do dispositivo fará a medição.
Um clique para instalar arquivos XAPK/APK no Android!