1. main.m
이걸 실행시키면 된다. 화면에 figure를 띄우고, keyboard를 입력과 close handler와 timer를 실행한다.
%% 1. Figure를 띄우고, KeyPressFcn과 CloseRequestFcn을 설정한다.
fig = figure('Position', [500 100 900 800]);
set(fig,'KeyPressFcn', @keyDownListener ...
, 'CloseRequestFcn',@figCloseHandler );
%% 2. PLOT을 위한 타이머를 설정한다.
global timer_draw;
global timer_obj;
timer_obj.tick = 1;
timer_draw = timer('StartDelay', 1 ...
, 'TimerFcn', @timerDraw ...
, 'Period', 1E-1 ...
, 'ExecutionMode', 'fixedRate'...
);
%% 3. 타이머를 킨다.
start(timer_draw);
2. keyDownListener.m
키보드 입력을 받아서 처리하는 함수
function keyDownListener(~, event)
switch event.Key
case 'uparrow'
key_pressed = 'up';
case 'downarrow'
key_pressed = 'down';
case 'leftarrow'
key_pressed = 'left';
case 'rightarrow'
key_pressed = 'right';
case 'a'
key_pressed = 'a';
end
disp(key_pressed);
3. figCloseHandler.m
Figure가 닫칠 떄 자동으로 불리는 함수
function figCloseHandler(src, event)
global timer_draw;
%% Timer를 닫는다.
fprintf('Stop timer \n');
if exist('timer_draw')
stop(timer_draw);
end
%% Figure를 닫는다.
fprintf('Close figure \n');
delete(gcf);
4. timerDraw.m
타이머 함수이다.
function timerDraw(obj, event)
%% 1. 타이머 틱을 올린다.
timer_obj.tick = timer_obj.tick + 1;
%% 2. 그림을 그리자. (자연스럽게 띄어져 있는 fig에 써진다.)
clf;
plot(randn(1, 10), randn(1, 10), 'g');
'Enginius > Matlab' 카테고리의 다른 글
Control Pioneer 3dx with MATLAB (0) | 2013.08.21 |
---|---|
Automatic Color Distribution for Multiple Plot + Use Tex Equation in Plot (0) | 2013.08.09 |
Use Microsoft Kinect in Matlab (2013~) (6) | 2013.07.24 |
Get CLICK point in an Image (0) | 2013.07.03 |
Make a VIDEO with Matlab (writeVideo) (0) | 2013.07.02 |