0% found this document useful (0 votes)
445 views

Use Timer Matlab To Control Typing Animation in Matlab

This document discusses using the timer function in MATLAB to control typing animations in GUI text controls. The timer allows animations to run smoothly even when other loops are running, avoiding interruptions. The timer object is created with t = timer and its period, execution mode, and timer callback function properties can be set. An example animation function sequentially displays more of a string each time the timer callback runs until all of the string is shown. Storing handles to GUI components in appdata allows accessing them from any function to avoid global variables.

Uploaded by

Jans Hendry
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
445 views

Use Timer Matlab To Control Typing Animation in Matlab

This document discusses using the timer function in MATLAB to control typing animations in GUI text controls. The timer allows animations to run smoothly even when other loops are running, avoiding interruptions. The timer object is created with t = timer and its period, execution mode, and timer callback function properties can be set. An example animation function sequentially displays more of a string each time the timer callback runs until all of the string is shown. Storing handles to GUI components in appdata allows accessing them from any function to avoid global variables.

Uploaded by

Jans Hendry
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 3

[all about matlab]

February 21, 2013

USE TIMER MATLAB TO CONTROL TYPING ANIMATION in MATLAB

Pada artikel kali ini akan dibahas mengenai penggunaan dari TIMER Matlab untuk membantu dalam menghasilkan animate typing pada ui kontrol teks GUI. Pada artikel sebelumnya dibahas mengenai alternatif penggunaan looping while untuk menangani kasus tersebut, tapi kelemahannya adalah aktifitas looping bisa diinterupsi oleh looping yang lain sehingga akan menghambat satu sama lain. Tapi dengan menggunakan fungsi Timer Matlab diharapkan hal tersebut bisa dihindari sehingga animasi tetap bisa berjalan dengan semestinya walaupun ada aktifitas looping yang sedang terjadi. Object Timer bisa dipanggil dengan bentuk t = timer; Banyak properti dari Timer yang bisa kita set untuk mendapatkan fungsi yang optimal dari object ini. Tapi dalam artikel ini akan kita bahas hanya 3 properti saja yakni Period dan ExecutionMode serta TimerFcn. Perhatikan syntax di bawah untuk mendapatkan Timer yang akan eksekusi selama 1 detik (period) pada rate yang sama (fixedRated) secara berulang-ulang hingga ditemukan stoping condition (syarat berhenti). Untuk memanggil fungsi di luar dari Timer, maka bisa digunakan properti TimerFcn.
t = timer('Period', 2); set(t, 'TimerFcn', @animate, 'ExecutionMode', 'fixedRate');

Dengan menggunakan properti properti di atas maka salah satu contoh animasi yang saya berikan adalah sebagai berikut:
function main setappdata(0, 'k', 1); string = 'jans hendry'; t = timer('Period', 2); set(t, 'TimerFcn', @animate, 'ExecutionMode', 'fixedRate'); set(t, 'UserData', string); start(t); end

[[email protected]]

Page 1

[all about matlab]

February 21, 2013

Fungsi di atas akan memanggil subfungsi ANIMATE yang akan dieksekusi secara kontinyu oleh timer hingga ditemukan kondisi berhenti yakni saat panjang data string yang akan ditampilkan sudah sama dengan panjang sebenarnya. Berikut ini adalah subfungsi tersebut
function animate(obj, event) string = get(obj, 'UserData'); k = getappdata(0, 'k'); if k <= length(string) temp = string(1 : k); k = k + 1; setappdata(0, 'k', k); disp(temp); else stop(obj); end end

Perlu diingat saat memanggil subfungsi oleh object timer sejauh yang saya tau harus dituliskan dalam format
function animate(obj, event)

yang saya cetak tebal berarti harus dituliskan. Penggunaan timer dalam GUI saya berikan pada contoh di bawah
function pushbutton1_Callback(hObject, eventdata, handles) main; function main hMainGui = getappdata(0, 'hMainGui'); handles_teks = getappdata(hMainGui, 'handles_teks'); handles_teks2 = getappdata(hMainGui, 'handles_teks2'); string = get(handles_teks, 'String'); set(handles_teks2, 'UserData', 1); t = timer('Period', 0.5); set(t, 'TimerFcn', @animate, 'ExecutionMode', 'fixedRate'); set(t, 'UserData', string); start(t);

function animate(obj, event) hMainGui = getappdata(0, 'hMainGui'); handles_teks2 = getappdata(hMainGui, 'handles_teks2'); k = get(handles_teks2, 'UserData');

[[email protected]]

Page 2

[all about matlab]

February 21, 2013

string = get(obj, 'UserData'); if k <= length(string) temp = string(1 : k); set(handles_teks2, 'String', temp); k = k + 1; set(handles_teks2, 'UserData', k); else stop(obj); end

sementara dalam OpeningFcn nya harus anda tuliskan


function AnimatebyTimer_OpeningFcn(hObject, eventdata, handles, varargin) clc; handles.output = hObject; % Update handles structure guidata(hObject, handles); setappdata(0, 'hMainGui', gcf); setappdata(gcf, 'handles_teks', handles.edit2); setappdata(gcf, 'handles_teks2', handles.edit3);

Tujuannya agar program anda tidak perlu menggunakan variabel GLOBAL yang menyita banyak memori dan memberatkan matlab GUI. Dengan menggunakan setappdata anda bisa memanggil variabel ini dari mana saja karena telah tersimpan di penyimpanan data root GUI. Ini adalah salah satu cara pemrograman yang advance. Selain itu anda bisa juga menggunakan struct data. Hasil eksekusi dari program di atas adalah

semoga bisa membantu.. @thankssss

[[email protected]]

Page 3

You might also like