Cảm ơn bạn đã xếp hạng và phản hồi của bạn!
Bạn đã đánh giá.
Đo khoảng cách, diện tích và thể tích (DAV) mà không cần AR Core
Phương pháp sử dụng lượng giác và cảm biến (hình học)
Đây là cách phổ biến nhất để đo khoảng cách mà không cần AR. Phương pháp này sử dụng chiều cao mà người dùng cầm điện thoại (h) và góc nghiêng (θ) được phát hiện bởi gia tốc kế.
Cách hoạt động:
Nếu người dùng hướng camera vào chân của một vật thể, khoảng cách được tính bằng công thức:
d = h⋅tan(90 − θ )
Các bước chính trong ứng dụng:
Sử dụng SensorManager để truy cập Sensor.TYPE_ACCELEROMETER và Sensor.TYPE_MAGNETIC_FIELD. Góc nghiêng của thiết bị (θ) được tính toán. Trước đó, người dùng chọn chiều cao mà họ đang cầm điện thoại.
Đây là cách dễ nhất để thực hiện tính toán bằng phần mềm mà không cần xử lý 3D phức tạp, nhưng nó yêu cầu người dùng phải tuân theo một trình tự cụ thể.
Vấn đề với phương pháp này:
Nếu người dùng không di chuyển và chỉ đánh dấu hai điểm phía trước, ứng dụng không có cách nào biết được góc giữa chúng chỉ dựa trên khoảng cách. Để chính xác về mặt toán học, chúng ta cũng phải sử dụng góc phương vị từ la bàn.
Mã "Java" chính xác hơn cho Diện tích (có góc):
Nếu bạn muốn người dùng đánh dấu 2 điểm từ cùng một vị trí, bạn cần tính toán góc mà điện thoại đã xoay giữa hai lần đo.
// Trong onSensorChanged, chúng ta cũng ghi lại góc phương vị (orientation[0])
float currentAzimuth;
// Khi một điểm được ghi lại, chúng ta ghi lại khoảng cách VÀ góc
double d1 = capturedDistances.get(0);
double d2 = capturedDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// Công thức tính diện tích tam giác khi biết hai cạnh và góc giữa chúng
// (Giả sử chúng ta đang đo diện tích tam giác từ vị trí hiện tại đến hai điểm)
diện tích = 0.5 * d1 * d2 * Math.sin(Math.toRadians(angleBetween));
Tính thể tích (3 điểm):
Với hai điểm, ta có đáy (Diện tích). Điểm thứ ba thường được dùng để tính chiều cao.
Người dùng chỉ vào chân tường (ghi lại khoảng cách).
Người dùng giơ điện thoại lên trần nhà.
Chúng ta tính toán sự khác biệt về độ dốc để tìm chiều cao thẳng đứng H.
Thể tích = Diện tích × H.
Ứng dụng, cùng với các tính năng cụ thể khác, còn có các chức năng bổ sung như theo dõi vị trí; khoảng cách, diện tích và thể tích được tính toán có thể được đo bằng mét, centimet, inch và feet, và bạn có thể chọn chiều cao mà camera của thiết bị sẽ đo.
Một cú nhấp chuột để cài đặt các tệp XAPK/APK trên Android!