بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
کاربرد B-Spline کسری در نرم افزارهای گرافیکی برداری
چکیده
گرافیک کامپیوتری طی سالهای گذشته، پیشرفت بسیاری داشته است. در این مقاله به بررسی نوع خاصی از گرافیک کامپیوتری که گرافیک برداری نام دارد می پردازیم و به پیش زمینه های ریاضی آن با استفاده از منحنیها و سطوح NURBS اشاره می کنیم که اغلب ناشناخته اند و کمتر به آن پرداخته شده است. سپس کاربرد فرمولهای ریاضی ارائه شده را در نرم افزارهای گرافیکی برداری بررسی می کنیم.
کلمات کلیدی: درونیابی B-Spline کسری، منحنیها و سطوح NURBS، طراحی به کمک کامپیوتر (گرافیک
کامپیوتری).
مقدمه
گرافیک کامپیوتری عبارت است از تولید، کنترل و نمایش تصویر بر روی ابزارهای خروجی مانند مانیتور و یا پرینتر. تصاویر نمایش داده شده در کامپیوتر به طور کلی به دوگونه هستند: تصاویر Raster و تصاویر .Vector یک تصویر Raster در دنیای رایانهای تصویری است که اجزای تشکیل دهنده آن یا در واقع جزء ساختاری آن پیکسل1 میباشد. پیکسل کوچکترین عنصر تشکیل دهنده تصویر در مانیتور یا پروژکتورهای نوری است. وقتی پیکسلها در کنار هم قرار میگیرند یک تصویر شکل میگیرد. تعداد و تنوع رنگ این پیکسلها تعیین کننده کیفیت تصویر می باشد. در این نوع از تصاویر با زوم کردن روی عکس میتوان پیکسلها را مشاهده نمود.
این نوع عکسها برای تصاویر واقعی و عکاسان ایده آل هستند. اما نوع دوم تصاویر که موضوع مورد بحث ما در این مقاله هستند تصاویر Vector یا برداری هستند. در این نوع تصاویر برای تولید و نمایش اشکال -2) بعدی یا -3 بعدی) از معادلات ساده تا پیچیده ریاضی استفاده می شود. میدانیم که یک خط راست در دستگاه مختصات یک معادله دارد، همچنین برای دایره و مربع و نیز برای تصاویر پیچیده تر مثل یک لوگو، یک متن یا طرح بدن یک انسان، همه از معادلات ریاضی بهره میبرند. البته کاربر یک نرم افزار گرافیکی برداری از این ماهیت ریاضی بی خبر است، اما آگاهی از این پیش زمینه برای توسعه و گسترش کاربرد این نرم افزارها ضروری است. به دلیل ماهیت ریاضی این نوع اشکال، فایلهای مربوط به آنها بسیار کمحجم هستند. (مگر اینکه با یک یا چند تصویر Raster ترکیب شده باشند) مثلا برای رسم یک دایره فقط کافی است مرکز و شعاع آن را بدانیم. همین خصوصیت باعث میشود که هرچه روی این تصاویر زوم شود یا در اندازههای بزرگ چاپ شوند کوچکترین خللی در کیفیت آنها ایجاد نشود. در حال حاضر اکثر نرم افزارهای برداری بر اساس همین تکنیک کار می کنند که می توان از Adobe Illustrator و 3Ds Max نام برد. تمامی نرمافزارهای واژهپردازی مانند Word نیز ذاتاً برداری هستند .[1]
در ادامه به منظور معرفی جنبه های ریاضی یک نرم افزار گرافیکی برداری ابتدا در بخشهای 2، 3، 4 و5 به ترتیب به معرفی منحنیهای Bezier، منحنیها و سطوح B-Spline و منحنیها و سطوح NURBS می پردازیم.
سپس در بخش 6 کاربرد روابط ارائه شده در نرم افزارهای گرافیکی برداری را بررسی می کنیم و در نهایت در بخش 7 مزایای تصاویر Vector را در مقایسه با تصاویر Raster ارائه می کنیم.
منحنیهای Bezier
در دهه 1960 میلادی مهندسی فرانسوی که در شرکت رنو کار میکرد، پیـشنهادی بـرای شـکل جدیـدی از معادله منحنیها و سطوح ارائه کرد که در طراحی بدنه اتومبیلها مورد استفاده قرار گرفت.[2] این فرد که پیر بزیـر2 نام داشت منحنیها را بگونهای معرفی کرد که بر خـلاف تکنیکهـای رایـج درونیـابی کـه از نقـاط داده شـده عبـور میکردند، این منحنیها از نقاط داده شده عبور نمیکردند و نقاط تنها برای کنترل شکل منحنی اسـتفاده مـیشـدند (شکل .(1 در طراحیهای مهندسی معمولا این روش بر درونیابی این نقاط ترجیح داده میشود و این بخاطر ایجاد انعطاف پذیری و ادراک حسی بیشتری است که در این حالت وجود دارد.
فرض کنیم n 1 نقطه در اختیار داریم که آنها را Pi ، 0 ≤ i ≤ n ، نامیده و نقاط کنترل خوانده می شوند.
منحنی بزیر این نقاط بصورت زیر تعریف میشود:
که در آن چندجملهای درجه n ام برنشتاین3 نامیده میشود و عبارت است از :[3]
منحنیهای B-Spline
در منحنیهای بزیر درجه منحنی ایجاد شده همواره ثابت بوده و برابر یکی کمتر از تعداد نقاط می باشد، که در بعضی موارد ممکن است منحنیهای با درجات بسیار بالا ایجاد شود. همچنین تغییر یک نقطه باعث تغییر در کل منحنی میشود و طراح نمیتواند به طور دلخواه قسمتی از منحنی را تغییر دهد. برای حل این مشکلات منحنیهای 4B-Spline ارائه شدند که از سری جدیدی توابع پایهای استفاده میکنند .[4] این توابع پایهای با n (تعداد نقاط)
مرتبط نیستند و لذا درجه منحنی نیز مستقل از تعداد نقاط کنترل است. همچنین منحنیهای B-Spline اصطلاحاً
"قطعهای چندجملهای" یا "قطعهای کسری" هستند. لذا تغییر در یکی از نقاط، منحنی را فقط در محدوده خاصی تغییر میدهد و کل منحنی تغییر نمیکند .[3] روشهای مختلفی برای تعریف توابع پایهای وجود دارد، همچون روش تفاضلات منقسم، توابع توانی و یا فرمولهای بازگشتی منسوب به دبور.5 ما در اینجا از فرمولهای بازگشتی استفاده میکنیم، زیرا برای پیادهسازی در کامپیوتر آسانتر هستند. فرض کنید U {u0 ,K,um } دنبالهای از اعداد صعودی حقیقی باشد. ui ها اصطلاحاً گره نامیده میشوند و U بردار گره نام دارد. i امین تابع پایهای B-Spline از درجه p به این صورت تعریف میشود:
که در آن:
در این تعاریف همیشه فرض میکنیم
طرز انتخاب اعضای U، شکل توابع پایهای و در نتیجه شکل منحنی B-Spline را تعیین میکند .[5] اگر در انتخاب اعضای بردار گره، فقط شرط صعودی بودن لحاظ گردد و اولین و آخرین گره p +1 بار تکرار شوند، به آن بردار گره Non-Uniform گویند:
در این حالت اگر تعداد نقاط گرهای m 1 باشد، n 1 تابع پایهای خواهیم داشت که در آن
در نهایت یک منحنی B-Spline درجه p -ام به این صورت تعریف میشود:
سطوح B-Spline
سطوح B-Spline با در اختیار داشتن شبکهای از نقاط کنترل در صفحه مختصات ساخته مـیشـوند. در ایـن سطوح به دو بردار گرهای و دو تابع پایهای B-Spline نیازمندیم.[3] این سطوح به این صورت تعریف میشوند:
که در آن Pi, j ها نقاط کنترل هستند. بردارهای گرهای عبارتند از:
بردار U دارای r +1 گره و بردار V دارای s +1 گره میباشد و روابط قبلی بین تعداد گرههـا، تعـداد نقـاط و درجه p بصورت زیر تغییر میکند
که در آن n 1 و m 1 تعداد نقاط در دو جهت مختلف صفحه مختصات هستند (شکل .(2
شکل :2 نمونه ای از یک سطح B-Spline با دو بردار گره ای در امتداد u و v
منحنیها و سطوح B-Spline کسری غیر یکنواخت
منحنیهای Non-Uniform Rational B-Spline که به اختصار NURBS نامیده میشوند، بـا اختـصاص وزن به نقاط کنترل تولید می شوند. در حالت عادی وزن هر یک از نقاط عدد یک در نظر گرفته می شـود. امـا بـا اختصاص وزن wi به نقاط کنترل Pi نوع جدیدی از منحنیها به وجود می آید:
توجه داریم که wi 0 و با افزایش وزن یک نقطه، منحنی به سمت آن نقطه کشیده می شود (شکل .(3
به طور مشابه سطوح NURBS تعریف می شوند. یک سطح NURBS در دو جهت u با درجـه p و v بـا درجه q به صورت زیر تعریف میشود:[5]
که در آن Pi, j ها نقاط کنترل هستند و شبکه ای از نقاط را تشکیل میدهند. wi, j ها نیز وزن هر یک از این نقاط هستند.