شكرًا لتقييمك وتعليقاتك!
لقد أكملت التقييم سابقًا
قياس المسافة والمساحة والحجم (DAV) بدون AR Core
طريقة باستخدام حساب المثلثات والمستشعرات (الهندسة)
هذه هي الطريقة الأكثر شيوعًا لقياس المسافة بدون استخدام الواقع المعزز. تعتمد هذه الطريقة على ارتفاع مسكة الهاتف (h) وزاوية الميل (θ) التي يرصدها مقياس التسارع.
كيفية العمل:
إذا وجّه المستخدم الكاميرا نحو قاعدة جسم ما، تُحسب المسافة باستخدام الصيغة التالية:
d = h⋅tan(90 − θ)
الخطوات الرئيسية في التطبيق:
يُستخدم SensorManager للوصول إلى Sensor.TYPE_ACCELEROMETER و Sensor.TYPE_MAGNETIC_FIELD. ثم تُحسب زاوية ميل الجهاز (θ). قبل ذلك، يُحدد المستخدم ارتفاع مسكة الهاتف.
هذه هي أسهل طريقة لإجراء حسابات برمجية دون معالجة ثلاثية الأبعاد معقدة، ولكنها تتطلب من المستخدم اتباع تسلسل محدد.
مشكلة هذه الطريقة:
إذا لم يتحرك المستخدم وقام ببساطة بتحديد نقطتين أمامه، فلن يتمكن التطبيق من حساب الزاوية بينهما بالاعتماد على المسافة فقط. وللحصول على دقة رياضية، يجب علينا أيضًا استخدام السمت من البوصلة.
كود "جافا" الأكثر دقة لحساب المساحة (مع الزاوية):
إذا أردتَ من المستخدم تحديد نقطتين من نفس الموقع، فستحتاج إلى حساب الزاوية التي دار بها الهاتف بين القياسين.
/ في دالة onSensorChanged، نسجل أيضًا السمت (orientation[0])
float currentAzimuth;
/ عند التقاط نقطة، نسجل المسافة والزاوية
double d1 = capturedDistances.get(0);
double d2 = captureDistances.get(1);
double angleBetween = Math.abs(azimuth2 - azimuth1);
// صيغة حساب مساحة المثلث بمعلومية ضلعين والزاوية المحصورة بينهما
// (بافتراض أننا نقيس مساحة المثلث من موقعنا إلى النقطتين)
مساحة المثلث = 0.5 * d1 * d2 * Math.sin(Math.toRadians(angleBetween));
حساب الحجم (3 نقاط):
باستخدام النقطتين، نحصل على القاعدة (المساحة). تُستخدم النقطة الثالثة عادةً لحساب الارتفاع.
يشير المستخدم إلى قاعدة الجدار (يسجل المسافة).
يرفع المستخدم الهاتف باتجاه السقف.
نحسب فرق الميل لإيجاد الارتفاع الرأسي H.
الحجم = المساحة × الارتفاع H.
يحتوي التطبيق، بالإضافة إلى ميزات أخرى محددة، على وظائف إضافية مثل تتبع الموقع؛ ويمكن قياس المسافات والمساحات والأحجام المحسوبة بالمتر والسنتيمتر والبوصة والقدم، كما يمكنك تحديد الارتفاع الذي ستقيسه كاميرا الجهاز.
قم بتثبيت ملفات XAPK/APK بنقرة واحدة على أندرويد!