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

ساعت

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

function testxdata

fig=figure('unit','normal','color','k');

h=line([0 0],[0 .5],'color','w');

h1=line([0 0],[0 .7],'color','b');

h2=line([0 0],[0 1],'color','y');

axis square

axis off

x=linspace(0,2*pi,60*60*12);

x1=linspace(0,2*pi,60*60);

x2=linspace(0,2*pi,60);

axis([-1.5 1.5 -1.5 1.5])

hold on

k=0;

k1=0;

k2=0;

 

h_text=uicontrol('pos',[235 30 100 25],'BackgroundColor',[.4 .5 .5],'style','text',...

    'FontUnits','normal','FontSize',.9 )

while ishandle(fig)

    k1=k1+1;

    k=k+1;

    k2=k2+1;

    if k==length(x)

        k=1;

    end

    if k1==length(x1)

        k1=1;

    end

    if k2==length(x2)

        k2=1;

    end

    set(h,'ydata',[0 cos(x(k))*.5])

    set(h,'xdata',[0 sin(x(k))*.5])

 

    set(h1,'ydata',[0 cos(x1(k1))*.7])

    set(h1,'xdata',[0 sin(x1(k1))*.7])

 

    set(h2,'ydata',[0 cos(x2(k2))])

    set(h2,'xdata',[0 sin(x2(k2))])

   

    time=[num2str(floor(k/(60*60))) ':' num2str(floor(k1/(60))) ':' num2str(floor(k2))];

    set(h_text,'string',time)

    drawnow

   

End

تابع line  یك خط مستقیم رسم می كند. شكل(format)  استفاده از این تابع به مانند تابع figure است .

حتی بسیار یاز ویژگی های این دو تابع یكسان است.

line(X,Y)

line(X,Y,Z)

line(X,Y,Z,'PropertyName',PropertyValue,...)

line('PropertyName',PropertyValue,...) low-level-PN/PV pairs only

h = line(...)

 

دستور اول یك خط در مختصات 2 بعدی رسم می كند.

دستور دوم همین كار ار در مختصات 3 بعدی انجام می دهد.

با استفاده از تابع linspace می توان یك بازه دلخواه را به تعداد مشخص تقسیم كرد.

 

تابعuicontrol  برای ایجاد شی (object) استفاده می شود.

Check boxes

Editable text fields

 List boxes

 Pop-up menus

 Push buttons

 Radio buttons

 Sliders

Static text labels

 Toggle buttons

در اینجا ما از نوع static text استفاده كرده ایم.

استفاده از این تابع را بعدا بطور كامل شرح خواهم داد.

تابع ishandle برای چك كردن وجود  پنجره ای با دستگیره ی ذكر شده  بكار می رود. باز گذاشتن این شرط می توان با بستن پنجره به حاقه پایان داد.

Xdata,Ydata,Zdata در حقیقت مختصات نقاط ابتدا و انتهای خط در هر محور است.

 

دستور drawnow برای بهنگام نمودن پنجره مرد استفاده قرار می گیرد. بطور كلی در هنگام متحرك سازی

بعد از هر مرحله رسم باید cpu را آزاد كرد .

x=1:1000;

y=x^2+3;

for i=1:1000

     plot(x(i),y(i));

end

 

%%%%%%%%%%%%%%

x=1:1000;

y=x^2+3;

for i=1:1000

     plot(x(i),y(i));

pause(.01)

end

 

 

 

 

 

 

 



نوع مطلب : line 

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

نویسنده :امین باشی
تاریخ:دوشنبه 3 مرداد 1384-12: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 



  • تعداد صفحات :2
  • 1  
  • 2  


All right reserved©2005 Amin Bashi