Home > Uncategorized > درک و استفاده از توابع Transform در برنامه متلب

درک و استفاده از توابع Transform در برنامه متلب

بهمن ۲۶م, ۱۳۸۶

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

matlab

ما در این پروژه یک مربع با ۴ رأس (Vertices) را انتخاب کرده ایم و از این شکل به عنوان یک مدل جهت بسط برنامه خود استفاده کرده ایم. پس از اجرای برنامه ما قادر هستیم که نوع تبدیل را از طریق صفحه کلید انتخاب کنیم.

در این پروژه ۵ فانکشن داریم که با توجه به نیازهامون در برنامه اصلی (Main.m) صداشون می زنیم و ازشون استفاده می کنیم.
اول از فانکشن های مورد نظرشروع می کنیم.

Translation
این تابع که از اسمش هم معلوم هست برای انتقال آبجکت در فضای مورد نظر استفاده می شه. چهار مقدار به صورت پیش فرض از ورودی دریافت می کنه که به ترتیب مقادیر x و y مربوط به شکل تعریف شده هستند و tx و ty مقادیر مورد نظر برای جا به جای نقطه x و y.
مقادیر از طریق برنامه اصلی وارد تابع می شوند و طبق ماتریسی که در m فایلی با همین نام تعریف شده است ، تغییرات بر روی مقادیر ورودی صورت می گیرد و در مقدار های xp و yp ذخیره می شوند وبه برنامه اصلی بازگرداننده می شوند.

Rotation
این تابع برای چرخاندان آبجکت مورد نظر تحت زاویه ای خاص در فضای مورد نظر استفاده می شه ، در دو حالت حول نقطه مبدا مختصات و یا نقطه خارجی. پنج مقدار به صورت پیش فرض از ورودی دریافت می کند که به ترتیب مقادیرx1 و y1 مربوط به شکل تعریف شده هستند و X و Y مقادیر مورد نظر برای جابجای نقطه x1 و y1 تحت زاویه theta.
مقادیر از طریق برنامه اصلی وارد تابع می شوند و طبق ماتریسی که در m فایلی با همین نام تعریف شده است ، تغییرات بر روی مقادیر ورودی صورت می گیرد و در مقدار های xp و yp ذخیره می شوند وبه برنامه اصلی بازگرداننده می شوند. البته مقدار theta به صورت رادیان از ورودی خوانده می شود و برای تبدیل آن به درجه از فرمول alpha = (theta*pi)/180 استفاده می کنیم.

Scaling
این تابع برای تغییر مقیاس آبجکت در فضای مورد نظر استفاده می شه ، در دو حالت حول نقطه مبدا مختصات و یا نقطه خارجی. شش مقدار به صورت پیش فرض از ورودی دریافت می کند که به ترتیب مقادیرx1 و y1 مربوط به شکل تعریف شده هستند و sx و sy مقادیر مورد نظر برای تعیین مقیاس جدید و Xs و Ys جهت تعیین نقطه ای که مقیاس جدید بر اساس آن ایجاد شود.(نقطه خارجی یا مبدا مختصات)
مقادیر از طریق برنامه اصلی وارد تابع می شوند و طبق ماتریسی که در m فایلی با همین نام تعریف شده است ، تغییرات بر روی مقادیر ورودی صورت می گیرد و در مقدار های xp و yp ذخیره می شوند وبه برنامه اصلی بازگرداننده می شوند.

Reflection
این تابع برای انعکاس آبجکت نسبت به یک خط در فضای مورد نظر استفاده می شه ، در ۴ حالت X=0 , Y=0 , Y=X Y=-X. شش مقدار به صورت پیش فرض از ورودی دریافت می کند که به ترتیب مقادیرx1 و y1 مربوط به شکل تعریف شده هستند و sx,hx,hy,sy که بر اساس دریافت پاسخ از ورودی مقادیر آنها ۱- ، ۰ ویا ۱ خواهد بود.
مقادیر از طریق برنامه اصلی وارد تابع می شوند و طبق ماتریسی که در m فایلی با همین نام تعریف شده است ، تغییرات بر روی مقادیر ورودی صورت می گیرد و در مقدار های xp و yp ذخیره می شوند وبه برنامه اصلی بازگرداننده می شوند.

Shear
این تابع برای ایجاد شکاف و یا برش آبجکت نسبت به محور xها و yها در فضای مورد نظر استفاده می شه ، چهار مقدار به صورت پیش فرض از ورودی دریافت می کنه که به ترتیب مقادیرx1 و y1 مربوط به شکل تعریف شده هستند و shx, ,shy که بر اساس دریافت پاسخ از ورودی تعیین می کنند که در چه حالتی شکل برش پیدا کند.
مقادیر از طریق برنامه اصلی وارد تابع می شوند و طبق ماتریسی که در m فایلی با همین نام تعریف شده است ، تغییرات بر روی مقادیر ورودی صورت می گیرد و در مقدار های xp و yp ذخیره می شوند وبه برنامه اصلی بازگرداننده می شوند.

برنامه اصلی Main
در برنامه اصلی ابتدا از کاربر سوال پرسیده می شود که چند بار از این توابع می خواهید استفاده کنید و مقداری توسط کاربر وارد می شود ، برای مثال عدد ۴ ، سپس مقدار گردش حلقه عدد ۴ قرار خواهد گرفت. بعد از آن دو ماتریس یک سطری و پنج ستونی تعریف می شود به نام های x و y که این دو ماتریس مربع مورد نظر ما را تعیین خواهند کرد. طبق دستوری که در برنامه مشاهده می کنید ،Grid را روشن می کنیم و برای فرم دهی بهتر به خروجی بازه محور های مختصات را بین ۱۵۰- و ۱۵۰ تعیین می کنیم. دو ماتریس x و y را با استفاده از دستور Line رسم می کنیم.
سپس حلقه برنامه شروع خواهد شد و به مقدار ورودی تکرار خواهد شد ، در این جا عدد ۴ وارد کردیم. در هر دفعه اجرای این حلقه سوالی پرسیده می شود مبنی بر استفاده از کدام یک از خاصیت های توابع تغییر شکل دهی. ، در صورت وارد کردن عدد ۶ ، از مراحل انجام عملیات خارج و انجام عملیات قطع می شود.

برای مثال ما می خواهیم از خاصیت Rotation استفاده کنیم. با وارد کردن عدد ۲ در ورودی برنامه ، برنامه به سراغ فراخوانی و انجام مقدمات استفاده از این تابع می رود سپس برنامه از شما دو مقدار را جهت چرخ حول مبدا مختصات و یا نقطه دیگر و زاویه مورد نظر جهت چرخش را طلب می کند. در حلقه دیگری که تعداد چرخش آن ۵ است ( به این دلیل که ماتریس مربع ما ۵ ستون دارد) در هر دفعه یک مقدار x و y از ماتریس مربع خوانده می شود و همراه با ۳ مقدار دیگر به تابع پاس داده می شود و بعد از انجام عملیات ، دو مقدار به برنامه اصلی برگردانده می شود و بر روی خروجی نمایش داده می شود.

توابع مورد نیاز ها خود را می توانید از این آدرس دانلود کنید.
Matlab-Transform-Functions

پویا Uncategorized ,

  1. بهزاد
    بهمن ۲۶م, ۱۳۸۶ at ۱۵:۰۴ | #1

    ممنون خیلی استفاده کردم.

  2. بهمن ۲۶م, ۱۳۸۶ at ۲۳:۲۷ | #2

    سلام برادر.