آموزش متلب (MATLAB)
۵۴۳ آموزش
نمایش دسته بندی ها (۵۴۳ آموزش)

پاک کردن شکل در پنجره شکل فعلی با دستور clf در متلب

دستور clf در متلب، برای پاک کردن شکل در پنجره شکل فعلی، به کار می رود. شاید بپرسید که اصلا این دستور چه کاربردی می توان داشته باشد، زیرا اگر هیچ کدی نوشته نشود، همان شکل جدید به جای شکل قبل در همان پنجره نمایش داده خواهد شد و حتی برای نمایش یک شکل جدید، می توانیم پنجره شکل قبلی را با دستور close ببندیم و سپس شکل جدید در یک پنجره جدید نمایش داده می شود. بنابراین در نگاه اول، استفاده از دستور clf بدون کاربرد به نظر می آید، اما اینطور نیست و در مواردی خاص، این قابلیت ها جواب نمی دهند و به دستور clf نیاز داریم. برای کسانی که عجله ندارند، توضیحاتی را در ادامه خواهم آورد تا با کاربرد دستور clf آشنا شوند (ساخت یک انیمیشن ساده در متلب را هم یاد خواهید گرفت)، اما برای کسانی که فقط سریع می خواهند نحوه استفاده از این دستور را یاد بگیرند، باید بگویم که استفاده از آن خیلی ساده است و تنها باید دستور clf (تنها کلمه clf) را در یک خط جدید از کدها بنویسید تا شکل موجود در پنجره فعلی پاک شود، یعنی به صورت زیر :


clf

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


clear all
close all
clc

hold on
rectangle('Position',[1,1,1,1],'Curvature',[1,1],'linewidth',3)
rectangle('Position',[3,1,1,1],'Curvature',[1,1],'linewidth',3)
rectangle('Position',[1,2,3,1],'linewidth',3)

X=[1 0.5];
Y=[3 4.5];
line(X,Y,'linewidth',3)

X=[0.25 0.75];
Y=[4.5 4.5];
line(X,Y,'linewidth',5)
axis([0 10 0 6])

نتیجه :

پاک کردن شکل در پنجره شکل فعلی با دستور clf در متلب

خوب این یک حالت از گاری دستی است، اکنون کدها را به گونه ای تغییر می دهیم که حرکت گاری دستی، در طول مسیر، نمایش داده شود :


clear all
close all
clc
 
hold on
for nn=1:50
    clf
    x=0.1*nn;
    rectangle('Position',[1+x,1,1,1],'Curvature',[1,1],'linewidth',3)
    rectangle('Position',[3+x,1,1,1],'Curvature',[1,1],'linewidth',3)
    rectangle('Position',[1+x,2,3,1],'linewidth',3)
    X=[1+x 0.5+x];
    Y=[3 4.5];
    line(X,Y,'linewidth',3)
    X=[0.25+x 0.75+x];
    Y=[4.5 4.5];
    line(X,Y,'linewidth',5)
    axis([0 10 0 6])
    pause(0.2)
end

دقت شود که تغییرات اعمال شده به کدها، عبارت است از ساخت یک حلقه برای تغییر مختصات شکل های سازنده گاری دستی (به +x که در مختصات ها اضافه شده توجه کنید) و سپس نمایش آنها و همچنین استفاده از دستور pause برای ایجاد مکث های 0.2 ثانیه ای و در آخر نیز استفاده از دستور clf برای پاک کردن حالت قبلی گاری دستی (تا حالت جدید به جای آن رسم شود).

نتیجه :

حرکت گاری دستی را در جهت محور x به صورت یک انیمیشن مشاهده خواهید کرد.

اگر دستور clf را از میان کدها بردارید، آنگاه تمامی حالت ها در پنجره نمایش داده می شوند و انیمیشن حرکت گاری دستی، خراب خواهد شد.

نویسنده علیرضا گلمکانی
شماره کلید 106
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
زهرا
۱۳۹۶/۰۵/۲۱
۱۱:۱۲

توضیحات عالی بود.
ممنون از راهنماییتون

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)