با تشکر از رتبه و بازخورد شما!
شما قبلاً رتبه بندی کرده اید.
این برنامه از AR Core برای اندازهگیری فاصله، مساحت و حجم استفاده میکند.
۱. اندازهگیری فاصله
فاصله اساسیترین اندازهگیری AR است. این اندازهگیری به صورت فاصله اقلیدسی بین دو مختصات سهبعدی (لنگرها) قرار گرفته در صحنه AR محاسبه میشود.
۲. اندازهگیری مساحت
برای اندازهگیری مساحت، کاربر باید حداقل سه لنگر قرار دهد تا یک چندضلعی تشکیل شود. اکثر اندازهگیریهای مساحت AR فرض میکنند که سطح یک صفحه مسطح (سطح دوبعدی در فضای سهبعدی) است.
الگوریتم:
رایجترین روش، فرمول بند کفش (فرمول نقشهبردار) است. از آنجایی که نقاط سهبعدی هستند، ابتدا باید آنها را روی یک صفحه دوبعدی (با استفاده از خط عمود صفحه) تصویر کنید یا مطمئن شوید که همه نقاط روی یک صفحه اصلی AR شناسایی شده قرار دارند.
۳. اندازهگیری حجم
حجم به طور قابل توجهی پیچیدهتر است زیرا به عمق نیاز دارد. دو روش اصلی برای این کار وجود دارد:
- روش جعبهای (اکستروژن): مساحت کف را (همانطور که در بالا توضیح داده شد) اندازهگیری کنید و سپس فاصله عمودی (ارتفاع) را اندازهگیری کنید.
فرمول: حجم = مساحت*ارتفاع
- روش جعبه محدودکننده: از دو نقطه گوشه مورب برای تعریف یک مکعب سهبعدی استفاده کنید.
- API عمق (پیشرفته): از AR Core برای ایجاد ابر نقطهای از یک شیء و محاسبه حجم از طریق یک پوسته محدب یا وکسلسازی استفاده کنید. این برای اشیاء نامنظم بسیار دقیقتر است، اما به دستگاهی با حسگر زمان پرواز یا پشتیبانی از عمق با کیفیت بالا نیاز دارد.
از آنجایی که شما در حال ورود به پیادهسازی هستید، چالش واقعی در AR Core فقط ریاضی نیست - بلکه تجربه کاربری و دقت است. اندازهگیری یک فضای سهبعدی روی صفحه نمایش دوبعدی میتواند برای کاربران دشوار باشد.
در اینجا خلاصهای از نحوه ساختاردهی منطق جاوا برای این ویژگیها آورده شده است:
1. فاصله (مبنا)
برای بدست آوردن یک اندازهگیری تمیز، باید از Session hit Test() برای قرار دادن Anchors استفاده کنید. استفاده از anchors تضمین میکند که حتی اگر دوربین منحرف شود، نقاط نسبت به مختصات دنیای فیزیکی "قفل" میمانند.
۲. مساحت (هندسه مسطح)
برای مساحت، کاربران معمولاً میخواهند یک کف یا یک دیوار را اندازهگیری کنند. شما باید نقاط خود را به یک صفحه واحد محدود کنید. اگر نقاط در یک صفحه افقی یکسان باشند (مقادیر y تقریباً یکسان باشند)، میتوانید محور y را نادیده بگیرید و آن را به عنوان یک محاسبه چندضلعی دوبعدی در نظر بگیرید.
نکته پیادهسازی: نقاط خود را در یک List ذخیره کنید. همانطور که کاربر یک نقطه جدید اضافه میکند، پیشنمایش "مساحت فعلی" را به صورت پویا بهروزرسانی کنید. فرمول Shoelace در اینجا استاندارد است زیرا برای هر چندضلعی غیر خود متقاطع (اشکال نامنظم) کار میکند.
۳. حجم (روش "جعبه")
محاسبه حجم یک جسم سهبعدی دلخواه بدون حسگر LiDAR بسیار دشوار است. برای یک برنامه استاندارد Java AR Core، قابل اعتمادترین روش روش Extruded Polygon است:
۱. تعریف پایه: کاربر برای تعریف مساحت کف (A) روی نقاط کلیک میکند.
۲. تعریف ارتفاع: کاربر روی یک نقطه روی زمین کلیک میکند و یک خط را به سمت بالا میکشد، یا روی یک نقطه روی سقف (h) کلیک میکند.
۳. محاسبه: V = A * h.
نکات حرفهای برای دقت
API عمق: اگر دستگاه از آن پشتیبانی میکند، API عمق خام را فعال کنید. این به شما امکان میدهد تستهای ضربه را روی اشیاء "غیر مسطح" (مانند مبل یا توپ) انجام دهید که ممکن است روش استاندارد پیدا کردن صفحه آنها را از دست بدهد.
هموارسازی: مختصات AR میتوانند دچار لرزش شوند. از یک فیلتر میانگین متحرک ساده روی حالت دوربین یا نتایج تست ضربه استفاده کنید تا از پرش سریع اعداد اندازهگیری جلوگیری شود.
معماری پیشنهادی
مدیر اندازهگیری: یک کلاس تکبعدی یا کمکی برای ذخیره لیست لنگرهای فعال.
رندر: رسم خطوط و برچسبهای متنی را در پوشش AR مدیریت میکند.
مبدل واحد: ابزاری برای تغییر بین واحد متریک (متر/سانتیمتر) و امپریال (فوت/اینچ).
این برنامه، علاوه بر توابع مشخص شده، توابع اضافی مانند محلی سازی: انگلیسی، اسپانیایی، فرانسوی، بلغاری و آلمانی را نیز دارد. مسافت، مساحت و حجم محاسبه شده بر حسب متر هستند که میتوانند به سانتی متر، اینچ، فوت تبدیل شوند.
برای نصب فایل های XAPK/APK در اندروید با یک کلیک!