نسبت های تصویر (Aspect ratio)

خرید بک لینک

اندازه طول و عرض عناصری که در رابط گرافیکی کاربر نمایش داده میشوند معمولا توسط درصد یا مستقیما با تعیین مقدار پیکسل تنظیم میشوند.

و اگر بخواهیم از سیستم های قدیمی با رزولوشن پایین تر و یا از رزولوشن های متنوع پشتیبانی کنیم به مشکل میخوریم.

در روش اول اگر به صورت درصد عدد 10 را به عنوان طول مثلا یک تصویر تعیین کنیم در رزولوشن پایه (من از 1152*2048 به عنوان روزلوشن پایه استفاده میکنم) این مقدار 204.8 پیکسل خواهد بود. و در پایین ترین رزولوشن (1024*1280) طول تصویر 128 پیکسل خواهد بود. این به تنهایی مشکلی ایجاد نمیکند ولی وقتی مقدار عرض را هم وارد و در چند رزولوشن دیگر هم تست کنیم مشکل نمایان میشود

فکر میکردم وقتی با درصد چیزی تعیین شده حتما باید درست کار کند اما این طور نبود، حتی اگر مستقیما مقدارش رو تعیین میکردم خروجی جالبی نداشت چون چیزی که در یک رزولوشن خاص بی نقص به نظر میرسه در یک رزولوشن دیگه ممکنه کشیده یا فشرده دیده شود .....

قرار نیست همه ی کاربرا رو راضی نگه داریم، البته کسی که هنوز از یک سیستم با رزولوشن 800×600 استفاده میکنه احتمالا منابع سخت افزاری لازم برای اجرای بازی ما رو ندارد ، برای من این نسبت ها مهم هستند [16:9] [8:5] [5:4] و این یک نظر شخصی است.

و این روزلوشن ها :

"2048:1152", // 16:9 [0]"1920:1080", // 16:9 [1]"1600:900", // 16:9  [2]"1280:720",// 16:9   [3]"1680:1050", // 8:5  [4]"1440:900", // 8:5   [5]"1280:800", // 8:5   [6]"1280:1024" // 5:4   [7]

روش محاسبه ی Aspect ratio:


با تقسیم طول و عرض صفحه ی نمایش بر بزرگترین مقسوم علیه مشترکشون Aspect ratio بدست میاد.

/**     * greatest common divisor .....     *     * @param a     * @param b     * @retu     */    private static int GCD(int a, int b) {        if (b == 0) {            retu a;        }        retu GCD(b, a % b);    }

و در jme از طریق یک نمونه از AppSettings میتونیم به طول و عرض صفحه نمایش دسترسی پیدا کنیم:

public static String getAR(AppSettings setting) {        int w = setting.getWidth() / GCD(setting.getWidth(), setting.getHeight());        int h = setting.getHeight() / GCD(setting.getWidth(), setting.getHeight());        retu w + ":" + h;    }

و در نهایت لازم است در سازنده (constructor) کلاس کنترلر رابط کاربری و پیش از لود کردن gui ، با توجه به رزولوشن مقادیر صحیحی برای طول و عرض تعیین شود.

حذف فایل ها از یک مخزن در github...

ما را در سایت حذف فایل ها از یک مخزن در github دنبال می‌کنید

برچسب: نویسنده: بازدید: 30 تاريخ: پنجشنبه 21 ارديبهشت 1396 ساعت: 14:00

صفحه بندی