Biar lebih paham, silakan copy-paste source berikut ke komputer anda, dan langsung dijalankan. Kebetulan pada komennya sudah diberikan penjelasannya.
function runGUI % dibuat oleh Mohammad Fajar pada malam selasa (29/1/2013) clc; init(); % dalam GUI matlab, container kedua tertinggi adalah figure... % yang pertama tertinggi adalah root yang merupakan monitor fig = ... figure('name', 'Test Sin', ... 'numbertitle', 'off', ... 'position' , [200, 100, 500,500], ...% relatif terhadap 'menubar' , 'none' ... % monitor ); % panel yang digunakan untuk memanajemen control-control panel_control = uipanel( ... 'title', 'Control Panel', ... 'units', 'pix', ... 'fontsize', 12, ... 'backgroundcolor', 'white', ... 'position',[10 10 480 100] ... % relatif terhadap 'fig' ); buttonStart = uicontrol('units','pix',... 'style','pushbutton',... 'parent', panel_control, ... 'position',[10 10 90 25],... % relatif terhadap 'panel_control' 'fontweight','bold',... 'fontsize',12,... 'string','draw',... 'HorizontalAlignment' , 'right', ... 'callback',@start ... % memanggil fungsi 'start' ); % untuk button ini kita akan gunakan unit centimeter... % sementara pada button sebelumnya (button start) yang digunakan adalah % unit pixels (atau disingkat 'pix' ==> dalam matlab terdapat kemudahan % dengan menggunakan singkatan) % cuma saya bingung yang mana bisa disingkat, yang mana tidak... % demi amannya mending g usa disingkat..... buttonPause = uicontrol('units', 'centimeters', ... 'style', 'pushbutton',... 'parent' , panel_control , ... 'position', [ .24 1.0 2.5 .7], ... % rel. terhadap 'panel_control' 'fontsize', 12, ... 'fontweight', 'bold', ... 'string', 'delete', ... 'HorizontalAlignment', 'left', ... 'callback', @pause ); % memanggil fungsi 'pause' % ingat parameter-parameter pada MATLAB selain bisa disingkat juga tidak % mengenal case-sensitiv ... alias tidak peduli huruf besar atau huruf % kecil .... jadi 'Position' atau 'posiTion' hasilnya sama saja... % sepanjang hurufnya tidak kurang atau lebih.... % selanjutnya akan dibuat panel untuk memanajemen daerah plotting panel_plot = uipanel('title', 'plot area', ... 'units', 'pix', ... 'positioN', [10 120 480 370] , ... 'backgrounDcolor', 'cyan', ... 'fontsize', 12); % sekarang tambahkan plot area % saya ga' tau kenapa, yang jelas untuk object "axis" tidak dibolehkan % untuk menggunakan units selain 'inch' global g; g =axes('position',[.1 .1 .86 .87], ... 'xlim', [0 (2*pi)], ... 'parent', panel_plot); % mesh(peaks(20)); end function init() global x; x = linspace(0,2*pi , 400 ); end function [] = start(varargin) global x; global hline; hline = plot(x,sin(x)); end function [] = pause(varargin) % gunanya untuk menghapus plotting cc = get(gcf, 'CurrentAxes'); aa = get(cc, 'Children'); delete(aa); end
No comments:
Post a Comment