تبلیغات
آموزش مطلب - تمرین تیر اندازی

تمرین تیر اندازی

نویسنده :امین باشی
تاریخ:دوشنبه 3 مرداد 1384-11:07 ق.ظ

بحث ویژگی های نابع figure را با یك مثال ادامه می دهم

 

clc

close all

udata=struct('color',[.2 .3 .4],'unit','normal','pos',[.5 .5 .075 .12],'menubar','none',...

    'name','fig','NumberTitle','off','resize','off','WindowStyle','modal');

hfigure=figure(udata,'UserData',udata);

rectangle('Position',[.5,.5,.5,.5],'Curvature',[1,1],'FaceColor','r')

rectangle('Position',[.55,.55,.4,.4],'Curvature',[1,1],'FaceColor','b')

rectangle('Position',[.6,.6,.3,.3],'Curvature',[1,1],'FaceColor','w')

rectangle('Position',[.65,.65,.2,.2],'Curvature',[1,1],'FaceColor',[.5 .2 .1])

rectangle('Position',[.7,.7,.1,.1],'Curvature',[1,1],'FaceColor',[.4 .9 .2])

axis('off')

p=0;

for i=1:3 

[x,y] = ginput(1);

x0=.75;

y0=.75;

erx=abs(x-x0);

ery=abs(y-y0);

er=sqrt(erx^2+ery^2);

if er <= .05

    px=10;

elseif er <= .1

    px=9;

elseif er <= .15

    px=8;

elseif er <= .2

    px=5;

elseif er <= 25

    px=3;

else

    px=0;

end

p=px+p;

end

ud=get(hfigure,'UserData');

set(gcf,'Visible','off')

ps=num2str(p);

msg0='ur piont is ';

msg=[msg0 ps];

msgbox(msg,'createMode','modal')

 

دستور clc فرمان پاك كردن command window است. با اجرای خط دوم،  تمام پنجره های باز شده(اگر وجود داشته باشند)  بسته می شوند.

دستور struct یك آرایه از همین نوع تعریف می كند. یك  structureیك آرایه شامل فیلدها و مفدایر آنهاست.در اینجا با استفاده از structure ویژگی های تابع figure  را تعین می كنیم.

Color مشخص كننده ی رنگ پنجره می باشد كه  توسط یك بردار RGB تعین می شود. مقادیر این بردار باید بین[0 1]  باشد. درایه اول رنگ قرمز دو.می سبز و سومی آبی است.

Menubar  كنترا كننده ی منو بالای صفحه می باشد.  ویژگی Menubar دارای دو مقدار none و figure می باشد. به طور پیش فرض مفدار این ویژگی برابر با figure است .

Name برای تعین اسم پنجره به كار می رود . در صورت استفاده نكردن از آن ، مطلب نامی  برای پنجره در  نظر نمی گیرد.

NumberTitle برای نمایش دادن یا ندادن شماره ی پنجره بكار می رود ودر حالت پیش فرض برابر با on  است.

Resize  مشخص كننده امكان یا عدم امكان تغیر اندازه پنجره است. در حالت پیش فرض برابر با on است.

WindowStyle حتما تا حالا پنجره هایی را دیده‌اید كه بر روی همه پنجره ها قرار می گیر و تا وقتی كه بسته نشده اند ، اجازه ی كار دیگری را نمی دهند. این ویژگی درای دو مقدار modal

(روی همه پنجره ها قرار می گیرد.) و normal  است.

 

Userdata . مطلب از این ویژگی هیچ استفاده ای نمی كند. شما هر چیزی را كه دوست داشته یاشید می توانید در این متغیر قرار دهید. ممكن است در نظر اول هیچ اسفاده ای برای این ویژگی پیدا نكنید.اما كاربرد زیادی می توانید برای آن پیدا كنید. در اكثر demo های مطلب این ویزگی كابرد زیادی  دارد.

 

تابع rectangle برای رسم مستطیل و دایره مورد استفاده قرار می گیرد.

 

تابع axis كاربرد وسیعی برای رسم محور های مخنصات دارد. بعدا به این تابع می پردازم. فقط همین رو بگم مه این دستور به این شكل جلوی نمایش محور ها را می گیرد.

 

توابع set و get  برای تعین یا بدست آوردن ویژگی ها توابع مورد استفاده قرار می گیرند.

در اینجا از تابع get   برای بدست آوردن مفدار ویژگی userdata از تابع figure استفاده كرده ایم.

از تابع set  برای تعین ویژگی Visible از تابع figure استفاده كردم. ویژگی Visible درای دو مفدار on  و off  است.

تابع gcf مقدار دسگیره پنجره جاری را بر می گرداند. در جایی كه دسگیره پنجره را نداشته باشیم از آن استفاده می كنیم.

 

تابع msgbox برای نمایش یك پیغام بكار می رود. كه در اینجا نوع پنجره باز شده را از نوع modal تعریف كرده ایم.



نوع مطلب : figure 





All right reserved©2005 Amin Bashi