MATLAB 程式設計入門篇 握把式圖形與 GUI 設計

Slides:



Advertisements
Similar presentations
第一章 餐饮服务程序 学习目的: 掌握餐饮服务四个基本环节的内容 正确表述和运用各种餐饮形式的服务程序 熟悉并利用所学知识灵活机动地为不同需求的 客人提供服务.
Advertisements

E-portfolio 個人履歷網站教學
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
中五級中史科及通識科跨科研習 研習大澳的「宗教文化」─ 廟宇的研習 指導老師:周婉儀老師 組員: 陳偉欽 5a (15)
石家庄迅步网络科技有限公司 联系人:张会耀 电话:
您買美元了嗎? 退休規劃 全球外幣保單.
1-1 MATLAB 小傳(1) 由MathWorks公司於1984年推出的 數學軟體。 名稱是由「矩陣實驗室﹙MATrix
运用Matlab GUI辅助大学物理实验 蒋志洁 中山大学 物理学院
國語文好點子趴辣客教學食譜 甜點:〈焦糖鳥布蕾〉
PowerPoint圖形總合.
MATLAB 程式設計入門篇 方煒 台大生機系
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
9/28號專題報告 Web網頁遊戲 曾建瑋.
JDK 安裝教學 (for Win7) Soochow University
資料庫操作.
MATLAB 程式設計入門篇 GUIDE.
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
類別(class) 類別class與物件object.
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
音訊 延伸學習 Audio Signal Processing and Recognition (音訊處理與辨識) 張智星
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
R教學 安裝RStudio 羅琪老師.
高等視窗程式設計 GUI的使用(Dialog Base) 游子宜.
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
第八讲 MATLAB图形用 户界面设计.
安裝JDK 安裝Eclipse Eclipse 中文化
自由軟體介紹(一) 把flash通通帶回家 報告人:陳俊銘.
Merge Partners’ programs by Matlab
Visual Basic 物件導向程式設計簡介.
張智星 清大資工系 多媒體檢索實驗室 MATLAB小傳與外觀 張智星 清大資工系 多媒體檢索實驗室.
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
Ch20. 計算器 (Mac 版本).
PowerBuilder初探 張森.
網路程式設計期末project B 張芸菱.
古今地圖比對 國立彰化高中102年高瞻計畫空間資訊專題課程.
MATLAB 程式設計入門篇 動畫製作.
共有六個運算性質 包括它的證明以及相關題型
MATLAB 程式設計入門篇 二維平面繪圖 (part2)
PowerPoint 2019/4/9.
第11章 MATLAB图形用户界面设计 11.1 菜单设计 11.2 对话框设计 11.3 图形用户界面设计工具
複製硬碟映像檔 & 在 VirtualBox 加入硬碟檔
EPSON 點矩陣印表機LQ-300+ 發票紙張格式設定.
張智星 清大資工系 多媒體檢索實驗室 Tree Net Construction 張智星 清大資工系.
CH1 我的第一個App與變數宣告.
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
GUI Title and GUI Status
一用就上手3D列印設計 AUTODESK 123D Tinkercad 3D 設計網站
本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修
GridView.
GridView操作 (II).
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
Flash 8:開口中 從Y:\ 複製『開口中.fla』到 D:\ 更改名稱為:s3x99 (你的班號) 雙按開啟檔案 2019年5月7日
張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室
MiRanda Java Interface v1.0的使用方法
函數應用(二)與自定函數.
Dreamweaver 進階網頁製作 B 許天彰.
5. 令圖畫動起來 Tween 功能介紹 移動效果 顏色漸變效果 形狀漸變效果 離開.
Brief Guide of FrontPage
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
GUI Title and GUI Status
智慧財產權管理講次36 積體電路電路布局保護法(1) 主講:吳銘圳
安裝JDK 配置windows win7 環境變數
電子郵件簡報.
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
多國語系 建國科技大學 資管系 饒瑞佶.
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
MATLAB 程式設計入門篇 程式除錯 張智星 (Roger Jang)
Presentation transcript:

MATLAB 程式設計入門篇 握把式圖形與 GUI 設計 張智星 (Roger Jang) jang@mirlab.org http://mirlab.org/jang 清大資工系 多媒體檢索實驗室

握把式圖形 (Handle Graphics) MATLAB 程式設計入門篇 握把式圖形 (Handle Graphics) 基本概念 每一個構成圖形的基本單位都可視為一個物件 (Object),例如: 曲線、曲面、圖軸、文字… 每個物件都有一個獨一無二的握把 (Handle),就像每一個人都有一個獨一無二的身份證字號 根據物件的握把,就可以存取圖形物件的所有性質

MATLAB 程式設計入門篇 圖形物件的階層結構 圖形物件階層結構(Hierarchy)

MATLAB 程式設計入門篇 階層結構的一個例子

MATLAB 程式設計入門篇 圖形物件的性質存取 可以分兩種方法: 以 MATLAB 所提供的圖形使用者介面(GUI,Graphical User Interface)進行圖形物件的性質存取 以 MATLAB 命令列進行圖形物件的性質存取

MATLAB 的性質編輯器 先畫完圖,再使用 propedit 開啟性質編輯器,例如 >>peaks; % 畫出 peaks 3D 圖 >>propedit; % 開啟性質編輯器 若不在命令列下達 propedit,也可以點選工具列上面的 圖示來開啟圖形編輯功能。

進行圖形編輯 啟動圖形編輯功能後,直接以滑鼠左鍵點選圖形物件(例如圖軸),然後點選右鍵選取所需要修改的性質,就可以達到修改圖形的效果。 MATLAB 程式設計入門篇 進行圖形編輯 啟動圖形編輯功能後,直接以滑鼠左鍵點選圖形物件(例如圖軸),然後點選右鍵選取所需要修改的性質,就可以達到修改圖形的效果。

圖形物件的性質存取 以命令列進行圖形物件的性質存取 set:設定某個性質的值 get:取得某個性質的值 MATLAB 程式設計入門篇 圖形物件的性質存取 以命令列進行圖形物件的性質存取 set:設定某個性質的值 get:取得某個性質的值 findobj:在握把式圖形的階層式結構中,找出您要的物件

set 範例 t = 0:0.1:4*pi; y = exp(-t/5).*sin(t); MATLAB 程式設計入門篇 set 範例 set範例: t = 0:0.1:4*pi; y = exp(-t/5).*sin(t); h = plot(t, y); % h 為曲線的握把 set(h, 'Linewidth', 3); % 將曲線寬度改為 3 set(h, 'Marker', 'o');%將曲線的線標改成小圓圈 set(h, 'MarkerSize',20);% 將線標的大小改成 20

set 範例 單獨使用 set(h),可以列出 h 的所有性質,以及這些性質的可能值和預設值,例如: >> h=plot(humps); >> set(h, ‘linestyle’)

get 範例 >>get(h, 'LindWidth') % 取得曲線寬度 ans =3; MATLAB 程式設計入門篇 get 範例 get範例: >>get(h, 'LindWidth') % 取得曲線寬度 ans =3; >> get(h, 'Color') % 取得曲線顏色 ans = 0 0 1 >> get(h) %列出 h 的所有性質的值 …

Findobj 範例 >> plot(rand(10,2)); % 畫出兩條曲線 MATLAB 程式設計入門篇 Findobj 範例 findobj範例: >> plot(rand(10,2)); % 畫出兩條曲線 >> h=findobj(0, 'type', 'line') % 找出曲線的握把 h = 1.0051 74.0016 >> set(h, 'LineWidth',3); % 經由握把將曲線寬度改為 3

MATLAB 程式設計入門篇 MATLAB GUI 程式設計 MATLAB GUI 程式設計的兩種方式 M 檔案 GUIDE 發展環境

M檔案 範例 M 檔案的GUI 設計 Uicontrol Mouse Events MATLAB 程式設計入門篇 M檔案 M 檔案的GUI 設計 Uicontrol Mouse Events 範例 xpsound、travel、truss、lorenz 等

uicontrol範例1 h = uicontrol; % 產生按鈕 set(h,'String','請按我!'); MATLAB 程式設計入門篇 uicontrol範例1 範例7-3:uicontrol01.m h = uicontrol; % 產生按鈕 set(h,'String','請按我!'); % 在按鈕表面加入文字「請按我!」 cmd ='fprintf(''有人按我一下喔!\n'');'; % 定義按鈕被按後的反應指令 set(h,'Callback',cmd); % 設定按鈕的反應指令

MATLAB 程式設計入門篇 uicontrol範例1

UI 控制物件 Uicontrol產生UI (User Interface) 控制物件 按鈕(Push Button) MATLAB 程式設計入門篇 UI 控制物件 Uicontrol產生UI (User Interface) 控制物件 按鈕(Push Button) 滑動棒(Sliding Bar) 圓形按鈕(Radio Button) 框架(Frame) 核計方塊(Check Box) 文字欄位(Edit Box) 列表式選單(List Menu) 下拉式選單(Popup Menu)

uicontrol範例2: uicontrol02.m close all % 關閉所有圖形視窗 MATLAB 程式設計入門篇 uicontrol範例2: uicontrol02.m close all % 關閉所有圖形視窗 uicontrol('style','push','position',[200 20 80 30]); uicontrol('style','slide','position',[200 70 80 30]); uicontrol('style','radio','position',[200 120 80 30]); uicontrol('style','frame','position',[200 170 80 30]); uicontrol('style','check','position',[200 220 80 30]); uicontrol('style','edit','position',[200 270 80 30]); uicontrol('style','list','position',[200 320 80 30],'string', '1|2|3|4'); uicontrol('style','popup','position',[200 370 80 30],'string','one|two|three');

MATLAB 程式設計入門篇 uicontrol範例2

MATLAB 程式設計入門篇 uicontrol的完整範例之一 另一個uicontrol的完整範例是 ui01.m

uicontrol的完整範例之二 ui01.m的潛在問題 解決方案:使用Switchyard Programming的程式設計概念 MATLAB 程式設計入門篇 uicontrol的完整範例之二 ui01.m的潛在問題 需要使用三個檔案,管理不方便。 使用的變數都在 MATLAB 基本工作空間中,容易造成變數的相衝及覆蓋。 解決方案:使用Switchyard Programming的程式設計概念 範例:ui02.m

滑鼠事件 (Mouse Events) 主要滑鼠事件 WindowButtonDownFcn:滑鼠按鈕按下時反應指令 MATLAB 程式設計入門篇 滑鼠事件 (Mouse Events) 主要滑鼠事件 WindowButtonDownFcn:滑鼠按鈕按下時反應指令 WindowButtonMotionFcn:滑鼠移動時的反應指令 WindowButtonUpFcn:滑鼠按鈕釋放時的反應指令

滑鼠事件的使用 我們希望滑鼠先被按下,然後再移動滑鼠時,才會觸發移動時的反應指令。欲達到此效果,我們必須做下列事項: 在滑鼠按鈕被按下時,設定 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值。 在滑鼠按鈕被釋放時,清除 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值。 因此,只有在滑鼠按鈕被按下,且滑鼠在移動時,對應於 WindowButtonMotionFcn 的反應指令才會被呼叫。

MATLAB 程式設計入門篇 滑鼠事件的例子 一個滑鼠事件 (Mouse Events)的例子