کد لرزاندن پنجره Figure در متلب
3065 بازدید
- 1393/01/14
- دیدگاهها برای کد لرزاندن پنجره Figure در متلب بسته هستند
این بار قصد داریم یک سورس کد جالب را خدمت شما معرفی نماییم. رزاندن پنجره Figure در متلب!
یکی ار ویزگی های یاهو مسنجر، قابلیت لرزاندن پنجره چت (Buzz) می باشد. شاید به این قضیه فکر کرده باشید که چگونه می توان این کار را در متلب پیاده کرد. سورس کامل این برنامه را خدمت شما کاربران ارایه می نماییم.
Shaking Figure Window in MATLAB
% ******************************************
% EngPedia.ir
% ******************************************
function mquake(h,int,dur,op1,op2)
% mquake(h,int,dur,op1,op2) Randomly vibrates graphical objects, where:
%
% h: Handle of required object(s) (scalar or vector)
%
% int: Intensity of vibration (scalar)
%
% dur: Duration of vibration in seconds (estimate, scalar)
%
% op1: 1 -> Object returns to starting position at the end
% 0 -> Object ends up where earthquake lands it
%
% op2: 1 -> Confine object to screen limits
% 0 -> Vibrate freely
%
% Setting OP2 to 1 will confine the vibrating object to its container's
% limits. It confines a figure to the screen limits, and confines axes and
% uicontrols to the limits of the figures containing them.
%
% + Example 1:
% % Vibrate figure (Highlight and press F9 to run)
%
% t=0:.1:4;
% y=cos(t);
% plot(t,y)
% mquake(gcf,2,5,0,1)
%
%
% + Example 2:
% % Vibrate uicontrol (Highlight and press F9 to run)
%
% h=uicontrol('style','pushbutton','callback','mquake(h,.25,.5,1,1)','string','Press Me!');
%
%
% + Example 3:
% % Observe the effect of confinement (Highlight and press F9 to run)
%
% h=uicontrol('style','pushbutton','callback','mquake(h,9,5,1,1)','string','Press Me!');
%
%
% + Example 4:
% % Vibrate Line (Highlight and press F9 to run)
%
% plot(1:9,rand(1,9),1:9,rand(1,9))
% set(findobj('type','line'),'linewidth',3)
% axis([0 10 -1 2])
% mquake(findobj('color','b'),3,5,1)
%
%
% + Example 5:
% % Vibrate multiple figures (Highlight and press F9 to run)
%
% a=zeros(1,5);
% for k=1:5
% a(k)=figure('menubar','none');
% end
% mquake(a,2.5,10,0,1)
% close(a)
%
%
% + Example 6:
% % Explosion (Highlight and press F9 to run)
%
% uicontrol('style','pushbutton','callback','mquake(gca,.25,.5,1,1)','string','Press Me!');
% -------------------------------------------------------------------------------------
%
% Tested on MATLAB R2007a (7.4)
%
% Husam Aldahiyat, Jan, 2009
% numandina@gmail.com
% Version 1.6
if nargin < 3
error('MSG:ID3','Too few inputs; please Check input parameter documentation')
elseif nargin < 4
op1=0;
op2=1;
elseif nargin < 5
op2=1;
end
if length([int, dur, op1, op2]) > 4
error('MSG:ID1','Inputs for INT, DUR, OP1 and OP2 need to be scalars. Please read documentation.')
end
try
g=num2cell(get(h,'type'),2);
catch
error('MSG:ID2','Handle object does not exist. Please check your input.')
end
if strcmp(g{1},'figure') || strcmp(g{1},'uicontrol') || strcmp(g{1},'axes')
set(h,'units','normalized')
p=num2cell(get(h,'position'),2);
tic
while toc<dur
for k=1:length(g)
if op1
set(h(k),'position',p{k}+[(2*rand-1)*int/100 (2*rand-1)*int/100 0 0])
else
o=num2cell(get(h(k),'position'),2);
set(h(k),'position',o{1}+[(2*rand-1)*int/100 (2*rand-1)*int/100 0 0])
end
if op2
a=get(h(k),'position');
tot=a(1:2)+a(3:4);
if ~isempty(find(tot>1,1))
a(tot>1)=1-a(find(tot>1)+2);
set(h(k),'position',a)
end
if ~isempty(find(a<0,1))
a(a<0)=0;
set(h(k),'position',a)
end
end
end
drawnow()
end
if op1
for k=1:length(g)
set(h(k),'position',p{k})
end
end
else
if size(get(h,'xdata'),1)==1
p1{1}=get(h,'xdata');
else
p1=get(h,'xdata');
end
if size(get(h,'ydata'),1)==1
p2{1}=get(h,'ydata');
else
p2=get(h,'ydata');
end
if size(get(h,'zdata'),1)==1
p3{1}=get(h,'zdata');
else
p3=get(h,'zdata');
end
tic
while toc<dur
for k=1:length(g)
if op1
set(h(k),'xdata',p1{k}+(2*rand-1)*int/100)
set(h(k),'ydata',p2{k}+(2*rand-1)*int/100)
set(h(k),'zdata',p3{k}+(2*rand-1)*int/100)
else
set(h(k),'xdata',get(h(k),'xdata')+(2*rand-1)*int/100)
set(h(k),'ydata',get(h(k),'ydata')+(2*rand-1)*int/100)
set(h(k),'zdata',get(h(k),'zdata')+(2*rand-1)*int/100)
end
end
drawnow()
end
if op1
for k=1:length(g)
set(h(k),'xdata',p1{k})
set(h(k),'ydata',p2{k})
set(h(k),'zdata',p3{k})
end
end
endبطور مثال:
mquake(gcf,10,7,0,1)
مطالب مرتبط
برچسب ها : shaking figure window in matlab, کد لرزاندن پنجره Figure در متلب, لرزاندن پنجره, لرزاندن پنجره Figure در matlab
دیدگاهتان را بنویسید
بخش های مورد نیاز علامت گذاری شده اند
نشانی ایمیل منتشر نخواهد شد

مطالب جدید
- PEL Suite 25 تحلیل مهندسی فرآیند و ایمنی صنعتی
- FlexSim Enterprise 2026 مدیریت سناریوهای پیچیده
- GE Operations Hub 2025 پلتفرم یکپارچه IoT صنعتی
- Ansys Rocky 2026 تحلیل رفتار ذرات در صنعت
- Midas NFX 2026 R1 شبیه سازی چندفیزیکی پیشرفته
- Autodesk Vehicle Tracking 2027 طراحی شهری و برنامه ریزی ترافیک
- MUDPRO 4.7.14 بهینه سازی عملیات حفاری نفت و گاز
- ANSYS SimAI Pro 2026 R1 شبیه سازی با هوش مصنوعی
- Enterprise Dynamics 10.6.1 شبیه سازی سیستم های صنعتی
- AVEVA System Monitor 2026 نظارت بلادرنگ اتوماسیون صنعتی

مطالب پربازدید
- دانلود کتاب هیدرولیک و پنوماتیک فستو Festo فارسی
- دانلود استاندارد
- دانلود نرم افزار کلید فولاد (Key to Steel) پرتابل
- دانلود فول استاندارد ASTM بصورت رایگان
- آموزش میکروکنترلر AVR
- دانلود آنتی ویروس شورتکات (Back 2 Normal)
- دانلود جدول استاندارد DIN
- دانلود کتاب آموزش Abaqus (فارسی)
- فول استاندارد ASME (بروز)
- دانلود نرم افزار MATLAB برای آندروید(MATLAB Android)

مطالب تصادفی
- نرم افزار WinTomo 1.7 تفسیر دادههای توموگرافی
- eRCM Thermo 1.11.4 تحلیل عملکرد و ترمودینامیک کمپرسور
- Forsk Atoll 3.5.1 طراحی و بهینهسازی شبکه بیسیم
- آموزش سوکت پروگرمینگ (بخش اول)
- PNOZmulti Configurator 11.4.1 2025 پیکربندی رله پیلز
- مجموعه مقالات IEEE (سری دوم) آلتراسونیک
- دانلود کتاب تاسیسات حرارتی (فنی و حرفه ای)
- Invicti Enterprise 24.1 تامین امنیت زیرساخت سازمان ها
- دانلود نرم افزار کلید فولاد (Key to Steel) پرتابل
- نرم افزار CONVAL 11.5 طراحی و تحلیل سیستمهای صنعتی



