版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第9章MATLABAppDesigner在中學(xué)教學(xué)中的應(yīng)用舉例本章要點(diǎn)本章主要內(nèi)容為基于MATLABAppDesigner的中學(xué)教學(xué)應(yīng)用舉例的界面設(shè)計(jì)與實(shí)現(xiàn),共分為中學(xué)數(shù)學(xué)實(shí)驗(yàn)室和中學(xué)物理實(shí)驗(yàn)室兩個(gè)模塊,共包含6個(gè)應(yīng)用舉例。本章要點(diǎn):⑴中學(xué)教學(xué)系統(tǒng)總界面設(shè)計(jì)。⑵中學(xué)數(shù)學(xué)實(shí)驗(yàn)室。⑶中學(xué)物理實(shí)驗(yàn)室。學(xué)習(xí)目標(biāo):⑴了解中學(xué)教學(xué)系統(tǒng)總界面設(shè)計(jì)。⑵掌握中學(xué)數(shù)學(xué)實(shí)驗(yàn)室界面設(shè)計(jì)方法。⑶掌握中學(xué)物理實(shí)驗(yàn)室界面設(shè)計(jì)方法。9.1中學(xué)教學(xué)系統(tǒng)總界面設(shè)計(jì)中學(xué)教學(xué)系統(tǒng)總界面分兩部分組成,分別為中學(xué)數(shù)學(xué)實(shí)驗(yàn)室和中學(xué)物理實(shí)驗(yàn)室,每個(gè)實(shí)驗(yàn)室下各包含三個(gè)實(shí)驗(yàn)示例。中學(xué)教學(xué)系統(tǒng)總界面主要功能是可以跳轉(zhuǎn)到任意模塊,界面布局設(shè)計(jì)如圖9-1所示,菜單欄設(shè)置如圖9-2所示。圖9-1
中學(xué)教學(xué)系統(tǒng)界面布局
圖9-2
菜單欄設(shè)置
通過對(duì)菜單項(xiàng)和圖像組件添加回調(diào)函數(shù)的方式,實(shí)現(xiàn)界面的跳轉(zhuǎn)。例如打開函數(shù)MATLABAppDesigner界面的程序命令如下:
rune9_1%打開命名為e9_1.mlapp的界面
其余4個(gè)圖像組件添加回調(diào)函數(shù)方法同理。同時(shí)在各個(gè)子界面設(shè)置菜單項(xiàng),實(shí)現(xiàn)從子界面跳轉(zhuǎn)到主界面的功能也是同理。
關(guān)閉當(dāng)前界面的程序命令如下:
close(app.UIFigure);%關(guān)閉當(dāng)前界面9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)
【例9-1】實(shí)現(xiàn)下列函數(shù)類型曲線繪制,包括一次函數(shù)、二次函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)和冪函數(shù)。
第一步:設(shè)置布局及屬性。添加2個(gè)標(biāo)簽、5個(gè)下拉框、1個(gè)按鈕、1個(gè)坐標(biāo)區(qū)、1個(gè)單選按鈕組、2個(gè)面板和1個(gè)圖像。
第二步:添加回調(diào)函數(shù)。⑴右擊e9_1文件,選擇【回調(diào)】,選擇【添加startupFcn回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下: app.Panel.Enable='off';
%禁止對(duì)數(shù)函數(shù)選項(xiàng)面板組件⑵右擊函數(shù)類型下拉框,選擇【回調(diào)】,選擇【添加DropDownValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)
globalHvalue=app.DropDown.Value;switchvaluecase'一次函數(shù)'app.Image.ImageSource='一次函數(shù).png';p=inputdlg({'a','b'},'設(shè)置參數(shù)',1,{'2','5'});%創(chuàng)建輸入信息對(duì)話框a=str2double(p{1});b=str2double(p{2});%將用戶所填參數(shù)由字符串轉(zhuǎn)換為雙精度值x=0:0.1:100;y=a*x+b;H=plot(app.UIAxes,x,y);title(app.UIAxes,'一次函數(shù)');case'二次函數(shù)'app.Image.ImageSource='二次函數(shù).png';p=inputdlg({'a','b','c'},'設(shè)置參數(shù)',1,{'2','2','5'});a=str2double(p{1});b=str2double(p{2});c=str2double(p{3});x=0:0.1:100;y=a.*x.*x+b.*x+c;H=plot(app.UIAxes,x,y);title(app.UIAxes,'二次函數(shù)');
9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)case'指數(shù)函數(shù)'app.Image.ImageSource='指數(shù)函數(shù).png';p=inputdlg({'a'},'設(shè)置參數(shù)',1,{'3'});a=str2double(p{1});x=0:0.1:100;y=a.^x;H=plot(app.UIAxes,x,y);title(app.UIAxes,'指數(shù)函數(shù)');case'對(duì)數(shù)函數(shù)'app.Image.ImageSource='對(duì)數(shù)函數(shù).png';app.Panel.Enable='on';%啟用對(duì)數(shù)函數(shù)選項(xiàng)面板組件case'冪函數(shù)'app.Image.ImageSource='冪函數(shù).png';p=inputdlg({'a'},'設(shè)置參數(shù)',1,{'3'});a=str2double(p{1});x=0:0.1:100;y=x.^a;H=plot(app.UIAxes,x,y);title(app.UIAxes,'冪函數(shù)');end9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)⑶右擊【確定】按鈕,選擇【回調(diào)】,選擇【添加Button_3Pushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:globalHselectedButton=app.ButtonGroup.SelectedObject;x=0:0.1:100;switchselectedButton.Textcase'以2為底'y=log2(x);case'以10為底'y=log10(x);case'以e為底'y=log(x);endH=plot(app.UIAxes,x,y);title(app.UIAxes,strcat('對(duì)數(shù)函數(shù)(',selectedButton.Text,')'));app.Panel.Enable='off';9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)⑷右擊顏色下拉框,選擇【回調(diào)】,選擇【添加DropDown_2ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionDropDown_2ValueChanged(app,event)value=app.DropDown_2.Value;globalHswitchvaluecase'紅色'set(H,'Color','r');case'黃色'set(H,'Color','y');case'藍(lán)色'set(H,'Color','b');case'粉色'set(H,'Color','m');case'綠色'set(H,'Color','g');endend9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)⑸選擇線型下拉框,選擇【回調(diào)】,選擇【添加DropDown_3ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionDropDown_3ValueChanged(app,event)value=app.DropDown_3.Value;globalHswitchvaluecase'點(diǎn)線'set(H,'LineStyle',':');case'點(diǎn)橫線'set(H,'LineStyle','-.');case'實(shí)線'set(H,'LineStyle','-');case'虛線'set(H,'LineStyle','--');endend9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)⑹選擇線寬下拉框,選擇【回調(diào)】,選擇【添加DropDown_4ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionDropDown_4ValueChanged(app,event)value=app.DropDown_4.Value;globalHswitchvaluecase'粗'set(H,'LineWidth',2);case'中'set(H,'LineWidth',1);case'細(xì)'set(H,'LineWidth',0.5);endend9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)⑺右擊柵格下拉框,選擇【回調(diào)】,選擇【添加DropDown_5ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionDropDown_5ValueChanged(app,event)value=app.DropDown_5.Value;switchvaluecase'有'app.UIAxes.XGrid='on';app.UIAxes.YGrid='on';case'無'app.UIAxes.XGrid='off';app.UIAxes.YGrid='off';endend9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)
運(yùn)行程序,選擇【二次函數(shù)】選項(xiàng),彈出如圖9-3所示對(duì)話框,單擊【確定】按鈕,在圖形設(shè)置欄選擇相關(guān)設(shè)置,運(yùn)行結(jié)果如圖9-4所示。圖9-3參數(shù)設(shè)置對(duì)話框
圖9-4
二次函數(shù)曲線運(yùn)行界面9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.1一次函數(shù)、二次函數(shù)和基本初等函數(shù)選擇【對(duì)數(shù)函數(shù)】選項(xiàng),選擇【以10為底】選項(xiàng),單擊【確定】按鈕,運(yùn)行結(jié)果如圖9-5所示。
圖9-5
對(duì)數(shù)函數(shù)運(yùn)行界面9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖【例9-2】實(shí)現(xiàn)基本空間幾何體圖形(長方體、正方體、圓柱體、圓臺(tái)、圓錐、棱柱、棱錐和棱臺(tái))和組合空間幾何體圖形的三視圖。第一步:設(shè)置布局及屬性。添加1個(gè)標(biāo)簽、2個(gè)下拉框、1個(gè)按鈕和1個(gè)坐標(biāo)區(qū)。第二步:添加回調(diào)函數(shù)。⑴右擊空間幾何體下拉框,選擇【回調(diào)】,選擇【添加DropDownValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionDropDownValueChanged(app,event)value=app.DropDown.Value;switchvaluecase'長方體'delete(allchild(app.axes_box));vertex_matrix=[000;100;120;020;003;103;123;023];face_matrix=[1265;2376;3487;4158;1234;5678];%patch函數(shù)利用矩陣參數(shù)繪制三維立體patch(app.axes_box,'Vertices',vertex_matrix,'Faces',...face_matrix,'FaceVertexCData',hsv(8),'FaceColor','interp');view(app.axes_box,3);%設(shè)立視角9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖case'正方體'delete(allchild(app.axes_box));vertex_matrix=[000;100;110;010;001;101;111;011];face_matrix=[1265;2376;3487;4158;1234;5678];patch(app.axes_box,'Vertices',vertex_matrix,'Faces',...face_matrix,'FaceVertexCData',hsv(8),'FaceColor','interp');view(app.axes_box,3);case'圓柱體'cla(app.axes_box);cylinder(app.axes_box,[22],90);colormap(app.axes_box,[1,1,0;0.5,0,0;1,0,0]);case'圓錐'cla(app.axes_box);cylinder(app.axes_box,[20],90);colormap(app.axes_box,[1,1,0;0.5,0,0;1,0,0]);
9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖case'圓臺(tái)'cylinder(app.axes_box,[42],90);colormap(app.axes_box,[1,1,0;0.5,0,0;1,0,0]);case'棱柱'cla(app.axes_box);%彈出輸入框獲取數(shù)據(jù)N=inputdlg({'輸入幾棱柱(請(qǐng)?zhí)顚憯?shù)字,至少等于3):'},'',1,{'3'});cylinder(app.axes_box,[3,3],str2double(N));colormap(app.axes_box,[1,1,0;0.5,0,0;1,0,0]);case'棱錐'cla(app.axes_box);cs=inputdlg({'輸入幾棱錐(請(qǐng)?zhí)顚憯?shù)字,至少等于3):'},'Input',1,{'3'});N=str2double(cs{1});cylinder(app.axes_box,[5,0],N);colormap(app.axes_box,[1,1,0;0.5,0,0;1,0,0]);9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖case'棱臺(tái)'cla(app.axes_box);cs=inputdlg({'輸入幾棱臺(tái)(請(qǐng)?zhí)顚憯?shù)字,至少等于3):'},'Input',1,{'3'});N=str2double(cs{1});cylinder(app.axes_box,[5,2],N);colormap(app.axes_box,[1,1,0;0.5,0,0;1,0,0]);case'組合體1'cla(app.axes_box);m=30;z=1.2*(0:m)/m;r=ones(size(z));theta=(0:m)/m*2*pi;x1=r'*cos(theta);y1=r'*sin(theta);z1=z'*ones(1,m+1);x=(-m:2:m)/m;x2=x'*ones(1,m+1);y2=r'*cos(theta);z2=r'*sin(theta);surf(app.axes_box,x1,y1,z1);9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖hold(app.axes_box,'on');surf(app.axes_box,x2,y2,z2);colormap(app.axes_box,'default');case'組合體2'cla(app.axes_box);t=0:pi/20:2*pi;[x,y,z]=cylinder(2+sin(t),60);surf(app.axes_box,x,y,z);colormap(app.axes_box,'default');endaxis(app.axes_box,'square');axis(app.axes_box,'off');end9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖⑵右擊三視圖下拉框,選擇【回調(diào)】,選擇【添加DropDown_2ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionDropDown_2ValueChanged(app,event)value=app.DropDown_2.Value;switchvaluecase'俯視圖'app.axes_box.View=[0,90];case'側(cè)視圖'app.axes_box.View=[90,0];case'正視圖'app.axes_box.View=[0,0];case'直視圖'app.axes_box.View=[-37.5,30];endend9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖⑶右擊【動(dòng)畫】按鈕,選擇【回調(diào)】,選擇【添加ButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionButtonPushed(app,event)fori=1:360camorbit(app.axes_box,1,0,'data',[111])drawnowendend9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖運(yùn)行程序,單擊【空間幾何體】下拉框,如圖9-6所示,選擇【圓臺(tái)】,運(yùn)行結(jié)果如圖9-7所示。圖9-6
空間幾何體下拉框
圖9-7
圓臺(tái)控件幾何體9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖
當(dāng)選擇【棱柱】選項(xiàng),彈出如圖9-8所示對(duì)話框,輸入數(shù)字6,并選擇【俯視圖】,運(yùn)行結(jié)果如圖9-9所示。圖9-8
輸入信息對(duì)話框
圖9-9
棱柱俯視圖9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.2空間幾何體圖形三視圖當(dāng)選擇【組合體1】選項(xiàng),選擇【側(cè)視圖】,運(yùn)行結(jié)果如圖9-10所示,單擊【動(dòng)畫】按鈕,三維圖形旋轉(zhuǎn)360度,如圖9-11所示。圖9-10側(cè)視圖效果
圖9-11動(dòng)畫效果9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.3二分法求方程近似解【例9-3】利用二分法求方程近似解,并繪圖。第一步:設(shè)置布局及屬性。添加3個(gè)標(biāo)簽、1個(gè)坐標(biāo)區(qū)、4個(gè)下拉框、3個(gè)編輯字段(數(shù)值)1個(gè)編輯字段(文本)、2個(gè)按鈕和2個(gè)面板。第二步:添加回調(diào)函數(shù)。⑴右擊【繪圖】按鈕,選擇【回調(diào)】,選擇【添加ButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:globalHf=eval(app.EditField_hanshu.Value);%獲取初始區(qū)間和精度a=app.EditField_zuoqujian.Value;b=app.EditField_youqujian.Value;tolerance=app.EditField_wucha.Value;%進(jìn)行二分法迭代求解while(b-a)/2>tolerancec=(a+b)/2;9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.3二分法求方程近似解iff(c)==0%如果達(dá)到精確解,則結(jié)束break;elseifsign(f(c))==sign(f(a))a=c;elseb=c;endendapp.Label_jinsijie.Text=num2str(c,'%.6f');%標(biāo)簽組件顯示最終結(jié)果x1=app.EditField_zuoqujian.Value;x2=app.EditField_youqujian.Value;x=linspace(x1,x2,100);y=f(x);H=line(app.UIAxes,x,y,'Color','blue','LineStyle','-');%繪制函數(shù)圖像line(app.UIAxes,[x1,x2],[0,0],'Color','red','LineStyle','--');%繪制紅色虛線line(app.UIAxes,c,0,'Color','red','Marker','o');%繪制紅色圓點(diǎn)9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.3二分法求方程近似解⑵右擊【重置】按鈕,選擇【回調(diào)】,選擇【添加DropDown_4ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionButton_chongzhiPushed(app,event)app.EditField_hanshu.Value='@(x)x.^3-x.^2-1';app.EditField_wucha.Value=0.000001;app.EditField_zuoqujian.Value=1;app.EditField_youqujian.Value=3;delete(allchild(app.UIAxes));app.Label_jinsijie.Text='';end9.2中學(xué)數(shù)學(xué)實(shí)驗(yàn)室9.2.3二分法求方程近似解顏色、線型、線寬和柵格下拉框的回調(diào)函數(shù)的程序命令,參考例9-1程序代碼。運(yùn)行程序,單擊【確定】按鈕,調(diào)整圖形設(shè)置面板參數(shù),運(yùn)行結(jié)果如圖9-12所示。當(dāng)輸入函數(shù)為cos(x)-x時(shí),單擊【確定】按鈕,運(yùn)行結(jié)果如圖9-13所示。圖9-12
二分法求解方程近似解結(jié)果1圖9-13
二分法求解方程近似解結(jié)果29.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成
【例9-4】通過輸入兩個(gè)力的大小和兩力夾角,繪制力的合成圖形。
第一步:設(shè)置布局及屬性。添加1個(gè)坐標(biāo)區(qū)、2個(gè)面板、4個(gè)下拉框、3個(gè)編輯字段(數(shù)值)、3個(gè)滑塊、4個(gè)標(biāo)簽和1個(gè)按鈕。
第二步:添加回調(diào)函數(shù)。
⑴右擊【力F1大小】編輯字段,選擇【添加回調(diào)】,選擇【添加F1EditFieldValueChanged回調(diào)】,回調(diào)函數(shù)程序命令如下:
functionF1EditFieldValueChanged(app,event)
app.Slider.Value=app.F1EditField.Value;
end
⑵右擊【力F1大小】的滑塊,選擇【添加回調(diào)】,選擇【添加SliderValueChanged回調(diào)】,回調(diào)函數(shù)程序命令如下:
functionSliderValueChanged(app,event)
app.F1EditField.Value=app.Slider.Value;
end
力F2大小和兩力夾角的組件,其回調(diào)函數(shù)同理。
⑶右擊【確定】按鈕,選擇【回調(diào)】,選擇【添加ButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:9.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成globalT1delete(allchild(app.UIAxes));f1=app.F1EditField.Value;f2=app.F2EditField.Value;theta=app.thetaEditField.Value;th=theta*pi/180;f=sqrt(f1^2+f2^2+2*f1*f2*cos(th));%合力的大小phi=atan2(f2*sin(th),f1+f2*cos(th));%合力的方向fx=[f1,f2*cos(th),f*cos(phi)];fy=[0,f2*sin(th),f*sin(phi)];T1=quiver(app.UIAxes,[0,0,0],[0,0,0],fx,fy,0,'LineWidth',2);%畫力矢量hold(app.UIAxes,'on');plot(app.UIAxes,[f1,fx(3)],[0,fy(3)],'--','LineWidth',1);hold(app.UIAxes,'on');plot(app.UIAxes,[fx(2),fx(3)],[fy(2),fy(3)],'--','LineWidth',1);hold(app.UIAxes,'on');app.Label_heli.Text=num2str(f);app.Label_theta.Text=num2str(rad2deg(phi));9.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成⑷右擊【線寬】下拉框,選擇【回調(diào)】,選擇【添加DropDown_3ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:value=app.DropDown_3.Value;globalT1switchvaluecase'細(xì)'set(T1,'LineWidth',1);case'中'set(T1,'LineWidth',1.5);case'粗'set(T1,'LineWidth',2);end9.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成⑸右擊【顏色】下拉框,選擇【回調(diào)】,選擇【添加DropDown_4ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:value=app.DropDown_4.Value;globalT1switchvaluecase'黃色'set(T1,'Color','y');case'洋紅色'set(T1,'Color','m');case'藍(lán)綠色'set(T1,'Color','c');end9.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成⑹右擊【柵格】下拉框,選擇【回調(diào)】,選擇【添加DropDownValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:value=app.DropDown.Value;switchvaluecase'有'app.UIAxes.XGrid='on';app.UIAxes.YGrid='on';case'無'app.UIAxes.XGrid='off';app.UIAxes.YGrid='off';end9.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成⑺右擊【坐標(biāo)軸】下拉框,選擇【回調(diào)】,選擇【添加DropDown_2ValueChanged回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:value=app.DropDown_2.Value;switchvaluecase'有'app.UIAxes.Visible='on';case'無'app.UIAxes.Visible='off';end9.3中學(xué)物理實(shí)驗(yàn)室9.3.1力的合成
運(yùn)行程序,輸入力F1、力F2和兩力夾角參數(shù),單擊【確定】按鈕,并選擇圖形相關(guān)設(shè)置,運(yùn)行結(jié)果如圖9-14所示。圖9-14兩力合成運(yùn)行效果9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)
【例9-5】實(shí)現(xiàn)木塊在斜面上運(yùn)行的均變速直線運(yùn)動(dòng)分析。通過微調(diào)器輸入木塊質(zhì)量、水平斜面的力、斜面傾斜角和運(yùn)動(dòng)時(shí)間,計(jì)算加速度、末速度和路程,并能繪制加速度與時(shí)間和路程與時(shí)間的曲線。
第一步:設(shè)置布局及屬性。添加1個(gè)標(biāo)簽、2個(gè)面板、4個(gè)微調(diào)器、3個(gè)編輯字段(數(shù)值)、3個(gè)按鈕、1個(gè)坐標(biāo)區(qū)和1個(gè)圖像。其中加速度標(biāo)簽文本設(shè)置如圖9-15所示。圖9-15標(biāo)簽文本設(shè)置9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)
第二步:添加回調(diào)函數(shù)。⑴右擊e9_5文件,選擇【回調(diào)】,選擇【添加startupFcn回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:functionstartupFcn(app)app.UIAxes.Visible='off';end9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)
⑵右擊【計(jì)算】按鈕,選擇【回調(diào)】,選擇【添加jisuanButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:globalmthetafapp.Image.Visible='on';o=app.oSpinner.Value;m=app.mkgSpinner.Value;t=app.tsSpinner.Value;f=app.FNSpinner.Value;g=9.8;iff<=0msgbox('請(qǐng)選擇力F的大小(大于等于0的值)','溫馨提示');elseifm<=0msgbox('請(qǐng)選擇質(zhì)量m的大小(大于等于0的值)','溫馨提示');elseifo<=0msgbox('請(qǐng)選擇斜坡傾角θ的大小(大于等于0的值)','溫馨提示');elseift<=0msgbox('請(qǐng)選擇運(yùn)動(dòng)時(shí)間t的大小(大于等于0的值)','溫馨提示');9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)elseif(f-m*g)<0msgbox('木塊受到沿斜面向下的力,木塊會(huì)下滑,請(qǐng)重新輸入初始值','溫馨提示');elsetheta=(o/180)*pi;a=(f-m*g*sin(theta))/m;v=a*t;x=0.5*a*t.^2;app.aEditField.Value=a;app.vEditField.Value=v;app.xEditField.Value=x;end9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)⑶右擊【運(yùn)動(dòng)曲線】按鈕,選擇【回調(diào)】,選擇【添加quxianButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:globalmthetafapp.UIAxes.Visible='on';app.Image.Visible='off';t=0:0.1:10;v=((f-m*9.8*sin(theta))/m)*t;x=0.5*((f-m*9.8*sin(theta))/m)*t.^2;plot(app.UIAxes,t,v,'Color','blue','LineStyle','-');hold(app.UIAxes,'on');plot(app.UIAxes,t,x,'Color','red','LineStyle','--');legend(app.UIAxes,'v—t函數(shù)','x—t函數(shù)');end9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)⑷右擊【重置】按鈕,選擇【回調(diào)】,選擇【添加resetButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:app.FNSpinner.Value=20;app.mkgSpinner.Value=2;app.tsSpinner.Value=10;app.oSpinner.Value=30;app.aEditField.Value=0;app.vEditField.Value=0;app.xEditField.Value=0;delete(allchild(app.UIAxes));app.UIAxes.Visible='off';app.Image.Visible='on';9.3中學(xué)物理實(shí)驗(yàn)室9.3.2勻變速直線運(yùn)動(dòng)
運(yùn)行程序,調(diào)節(jié)木塊質(zhì)量、水平斜面的力、斜面傾斜角和運(yùn)動(dòng)時(shí)間的值,單擊【計(jì)算】按鈕,運(yùn)行結(jié)果,如圖9-16所示。單擊【運(yùn)動(dòng)曲線】按鈕,運(yùn)行結(jié)果,如圖9-17所示。單擊【重置】按鈕,即可清空坐標(biāo)區(qū)內(nèi)容,并重置編輯字段內(nèi)容。圖9-16
木塊在斜面運(yùn)動(dòng)計(jì)算結(jié)果
圖9-17
木塊在斜面運(yùn)動(dòng)的運(yùn)動(dòng)曲線9.3中學(xué)物理實(shí)驗(yàn)室9.3.3拋體運(yùn)動(dòng)
拋體運(yùn)動(dòng)分為平拋運(yùn)動(dòng)、斜拋運(yùn)動(dòng)和豎直上拋運(yùn)動(dòng)。
【例9-6】基于MATLABAppDesigner實(shí)現(xiàn)拋體運(yùn)動(dòng)界面,共分為平拋運(yùn)動(dòng)、斜拋運(yùn)動(dòng)和豎直上拋運(yùn)動(dòng),并繪制拋體運(yùn)動(dòng)的運(yùn)動(dòng)規(guī)律曲線。
添加選項(xiàng)卡組件,設(shè)置平拋運(yùn)動(dòng)、斜拋運(yùn)動(dòng)和豎直上拋運(yùn)動(dòng)3個(gè)選項(xiàng)卡,具體設(shè)計(jì)方法如下:
1.平拋運(yùn)動(dòng)
第一步:設(shè)置布局及屬性。添加2個(gè)坐標(biāo)區(qū)、2個(gè)面板、2個(gè)按鈕和4個(gè)編輯字段(數(shù)值)。
第二步:添加回調(diào)函數(shù)。
⑴右擊【開始】按鈕,選擇【回調(diào)】,選擇【添加start_ButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:H=app.H_EditField.Value;v0=app.v0_EditField.Value;ifH<=0warndlg('拋出高度(m)為大于等于零的值。','溫馨提示');elseifv0<=0warndlg('拋出水平速度(m/s)為大于等于零的值。','溫馨提示');elseg=9.8;
9.3中學(xué)物理實(shí)驗(yàn)室9.3.3拋體運(yùn)動(dòng)T=sqrt(2*H/g);%落地時(shí)間Tt=0:0.01:T;xt=v0.*t;%水平位移h=H-1/2.*g*t.^2;%垂直位移title(app.UIAxes_guiji,'小球運(yùn)行軌跡');xlabel(app.UIAxes_guiji,'水平位移(m)');ylabel(app.UIAxes_guiji,'高度(m)');comet(app.UIAxes_guiji,xt,h);vx=v0;vy=g.*t;v=sqrt(vx.^2+vy.^2);plot(app.UIAxes_v_t,t,v);title(app.UIAxes_v_t,'小球速度和時(shí)間');xlabel(app.UIAxes_v_t,'時(shí)間(s)');ylabel(app.UIAxes_v_t,'速度(m/s)');app.luodis_EditField.Value=T;X=v0*T;app.s_EditField.Value=X;end9.3中學(xué)物理實(shí)驗(yàn)室9.3.3拋體運(yùn)動(dòng)⑵右擊【重置】按鈕,選擇【回調(diào)】,選擇【添加start_ButtonPushed回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:app.H_EditField.Value=0;app.v0_EditField.Value=0;app.luodis_EditField.Value=0;app.H_EditField_xiepao.Value=0;delete(allchild(app.UIAxes_guiji));delete(allchild(app.UIAxes_v_t));9.3中學(xué)物理實(shí)驗(yàn)室9.3.3拋體運(yùn)動(dòng)
運(yùn)行程序,當(dāng)輸入拋出高度或拋出水平初速度數(shù)值小于等于0時(shí),則彈出提示對(duì)話框,如圖9-18所示。當(dāng)輸入拋出高度為10m,拋出水平初速度為1m/s時(shí),運(yùn)行結(jié)果如圖9-19所示。圖9-18
信息提示對(duì)話框
圖9-19
平拋運(yùn)動(dòng)運(yùn)行結(jié)果9.3中學(xué)物理實(shí)驗(yàn)室9.3.3拋體運(yùn)動(dòng)
2.斜拋運(yùn)動(dòng)
第一步:設(shè)置布局及屬性。添加2個(gè)坐標(biāo)區(qū)、2個(gè)面板、2個(gè)按鈕和5個(gè)編輯字段(數(shù)值)。
第二步:添加回調(diào)函數(shù)。
右擊【開始】按鈕,選擇【回調(diào)】,選擇【添加start_ButtonPushed_xiepao回調(diào)】,界面自動(dòng)跳轉(zhuǎn)到代碼視圖,在光標(biāo)定位處,輸入程序命令如下:v0=app.v0_EditField_xiepao.Value;theta=app.theta_EditField.Value;ifv0<=0warndlg('初速度(m/s)為大于等于零的值。','溫馨提示');elseif(theta>=90)||(theta<=0)warndlg('斜拋角度為0—90度之間。','溫馨提示');elseg=9.8;T=2*v0*sind(theta)/g;t=0:0.01:T;x=cosd(theta)*v0.*t;y=sind(theta)*v0.*t-1/2*g*t.^2;9.3中學(xué)物理實(shí)驗(yàn)室9.3.3拋體運(yùn)動(dòng)title(app.UIAxes_guiji_2,'小球運(yùn)行軌跡')
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度安保人員職業(yè)健康管理與勞動(dòng)合同2篇
- 二零二五版二手房購房合同定金及家具家電安裝服務(wù)協(xié)議書3篇
- 二零二五版企業(yè)研發(fā)項(xiàng)目定金及借款合同3篇
- 二零二五版水上娛樂設(shè)施安全生產(chǎn)管理合同3篇
- 二零二五年度茶園承包經(jīng)營與茶葉市場調(diào)研合同3篇
- 展會(huì)現(xiàn)場廣告投放與媒體合作合同(二零二五年度)2篇
- 二零二五版國際貿(mào)易保險(xiǎn)合同主體欺詐識(shí)別與應(yīng)對(duì)措施合同3篇
- 右岸景苑S5幢0、30號(hào)商鋪2025年度租賃合同24篇
- 二零二五年度預(yù)制構(gòu)件鋼筋加工定制合同3篇
- 展會(huì)品牌推廣合同(2篇)
- 2023年保安公司副總經(jīng)理年終總結(jié) 保安公司分公司經(jīng)理年終總結(jié)(5篇)
- 中國華能集團(tuán)公司風(fēng)力發(fā)電場運(yùn)行導(dǎo)則(馬晉輝20231.1.13)
- 中考語文非連續(xù)性文本閱讀10篇專項(xiàng)練習(xí)及答案
- 2022-2023學(xué)年度六年級(jí)數(shù)學(xué)(上冊(cè))寒假作業(yè)【每日一練】
- 法人不承擔(dān)責(zé)任協(xié)議書(3篇)
- 電工工具報(bào)價(jià)單
- 反歧視程序文件
- 油氣藏類型、典型的相圖特征和識(shí)別實(shí)例
- 流體靜力學(xué)課件
- 顧客忠誠度論文
- 實(shí)驗(yàn)室安全檢查自查表
評(píng)論
0/150
提交評(píng)論