Slide GUI (môn CAD)

44 7 0
  • Loading ...
1/44 trang

Thông tin tài liệu

Ngày đăng: 29/11/2016, 14:18

CAD Nguyễn Ngọc Mỹ M-File Hàm GUI GUIDE Nguyễn Mỹ SV đọc phần (M-Files) giáo trình Cho biết M-File gì! M-File tập tin chứa thị MATLAB người dùng tạo M-File chứa thủ tục hàm M-File soạn thảo trình soạn thảo Tạo M-File: File/New/Blank M-File Ví dụ: Tạo file tên dt5.m chứa thủ tục sau: x=0:.1:2*pi; y=sin(x); plot(x,y); title('Do thi ham so y=sin(x)'); Thực thi M-File cách: Nhấn nút soạn thảo MATLAB Gõ tên M-File từ cửa sổ MATLAB: dt5 SV đọc phần 8.2 Cho biết: – Liên hệ Hàm M-File – Cú pháp định nghĩa hàm – Ngăn cách tham số? – Ngăn cách biến đầu ra? – Hàm có bắt buộc phải có tham số đầu vào biến đầu không? Hàm chứa M-File Tên file nên đặt giống với tên hàm chứa bên Cú pháp định nghĩa hàm: function biendaura = tenham(cacthamso) %Noi dung ham Ví dụ: định nghĩa hàm bình phương lưu vào file binhphuong.m: function x = binhphuong(a) x=a*a Để thực thi hàm, từ cửa sổ MATLAB, ta gọi hàm kèm theo tham số: n = binhphuong(4) Các tham số đầu vào: bao dấu (), cách dấu phẩy Các biến đầu ra: bao dấu [], cách dấu phẩy function [x,y]=linhtinh(a,b) %Ham tinh binh phuong cua a va bac ba cua b x=a*a; y=b*b*b; Hàm không bắt buộc phải có tham số đầu vào biến đầu ra! 10 Viết GUI cho phép người dùng nhập vào số, sau in bình phương số giao diện 30 Code: function guisquare(mode) if nargin==0 %lan dau load giao dien figure uicontrol('style','text','string','Input','position',[10 100 100 20]) uicontrol('style','edit','position',[120 100 100 20],'tag','so') uicontrol('style','pushbutton', 'string','Click here',… 'callback','guisquare(1)', 'position',[230 100 100 20]); else %tinh va hien gia tri binh phuong a=get(findobj('tag','so'),'string'); b=str2num(a); c=b.*b; c=num2str(c); kq=['Square: ', c]; %ghep chuoi uicontrol('style','text', 'string',kq, 'position',[120 70 100 20]) end 31 ĐỌC THÊM Frame: dùng để gom nhóm đối tượng khác lại dùng để trang trí 32 ĐỌC THÊM Slider: trượt dùng để chọn giá trị số nằm khoảng - Ví dụ: h=uicontrol('style','slider', 'tag','thanhtruot'); set(h,'callback','disp(get(findobj(''tag'',''thanhtruot''),''value''))'); 33 ĐỌC THÊM Đọc thêm phần 34.2 (UIControls), Basics of MATLAB and Beyonds Andrew Knight Đọc thêm (Tạo giao diện MATLAB), giáo trình Thí nghiệm CAD thầy Nguyễn Chí Ngôn 34 35 UIMenu dùng để thêm mục vào menu cửa sổ figure Cú pháp bản: uimenu('label','nhãn') Ví dụ: figure; %tao cua so figure set(gcf,'menubar','none'); %tat menu mac dinh cha=uimenu('label','File'); %them muc menu 36 Tạo mục menu trực thuộc menucha: uimenu(menucha, 'label', 'nhan') Ví dụ: figure set(gcf,'menubar','none') cha=uimenu('label','File') uimenu(cha,'label','New') uimenu(cha,'label','Open') uimenu(cha,'label','Close','callback','close') 37 Khi click chuột vào mục menu, hàm định thuộc tính callback gọi! Nguyên tắc tương tự uicontrol Tham khảo thêm uimenu phần 34.6 (UIMenus) giáo trình tiếng Anh! 38 Nguyễn Mỹ 39 Một giải pháp khác để thiết kế giao diện MATLAB sử dụng công cụ GUIDE GUIDE = GUI Development Environment Thiết kế giao diện nhanh cách kéo thả thành phần cần thiết vào figure Từ cửa sổ MATLAB, ta dùng lệnh guide để bắt đầu thao tác 40 GUIDE hỗ trợ số mẫu thiết kế có sẵn cho người sử dụng 41 Từ cửa sổ thiết kế GUIDE, người dùng cần kéo thả cần đến: 42 Một số giao diện minh họa: 43 BT3: Viết GUI cho phép người dùng nhập vào a, b, sau in nghiệm phương trình ax+b=0 giao diện Input a: Input b: -6 Solve Solutions: x=3 44 [...]... findobj('tag','tukhoa') Ví dụ: nhập 1 số, tính bình phương rồi in function guitag(mode) if nargin==0 uicontrol('style','edit','tag','so','callback','guitag(1)') else dt=findobj('tag','so'); a=get(dt,'string'); b=str2num(a); c=b.*b end 29 Viết một GUI cho phép người dùng nhập vào 1 con số, sau đó in ra bình phương của số đó ngay trên giao diện 30 Code: function guisquare(mode) if nargin==0 %lan dau load giao dien figure... Nguyễn Mỹ 16 GUI = Graphical User Interface Là một giao diện đồ họa cho phép người dùng tương tác thông qua chuột Các thành phần trong giao diện có thể là: cửa sổ, menu, nút nhấn, trục 17 Figure Menus Label Axis Buttons 18 19 Các đối tượng đồ họa trong MATLAB: Trong đó:  Figure: cửa sổ chứa  Axes: trục  Uicontrol: các thành phần điều khiển  Uimenu: menu 20 Ví dụ: f=figure('name','MATLAB GUI' , 'color',[0.9... 'string','Click here',… 'callback','guisquare(1)', 'position',[230 100 100 20]); else %tinh va hien gia tri binh phuong a=get(findobj('tag','so'),'string'); b=str2num(a); c=b.*b; c=num2str(c); kq=['Square: ', c]; %ghep chuoi uicontrol('style','text', 'string',kq, 'position',[120 70 100 20]) end 31 ĐỌC THÊM Frame: chỉ dùng để gom nhóm các đối tượng khác lại hoặc dùng để trang trí 32 ĐỌC THÊM Slider: thanh trượt dùng... trục  Uicontrol: các thành phần điều khiển  Uimenu: menu 20 Ví dụ: f=figure('name','MATLAB GUI' , 'color',[0.9 0.9 1], 'menubar','none', 'numbertitle','off') Ý nghĩa: Tạo cửa sổ f có tiêu đề ‘MATLAB GUI , nền màu xanh lợt với thanh menu được ẩn 21 Ví dụ: axes('position',[0.03 0.04 0.7 0.8], 'XTickLabel',[], 'YTickLabel',[]) Ý nghĩa: Thêm trục tọa độ vào cửa sổ hiện hành, ẩn đi nhãn 2 trục, vị trí... 20]) end 31 ĐỌC THÊM Frame: chỉ dùng để gom nhóm các đối tượng khác lại hoặc dùng để trang trí 32 ĐỌC THÊM Slider: thanh trượt dùng để chọn giá trị số nằm trong khoảng 0 - 1 Ví dụ: h=uicontrol('style','slider', 'tag','thanhtruot'); set(h,'callback','disp(get(findobj(''tag'',''thanhtruot''),''value''))'); 33 ĐỌC THÊM Đọc thêm phần 34.2 (UIControls), quyển Basics of MATLAB and Beyonds của Andrew Knight
- Xem thêm -

Xem thêm: Slide GUI (môn CAD) , Slide GUI (môn CAD) , Slide GUI (môn CAD)

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập