2012-12-12 1 views
1

Matlab에 데모가 있는데, 누군가가 화면을 터치하는 것처럼 여러 터치 이벤트를 (운영 체제로) 보내고 싶습니다. 5 ~ 10 개의 터치 포인트와 좌표를 제공 할 수 있기를 원합니다. 터치 입력 하드웨어가 없지만 터치 드라이버가 설치된 컴퓨터에서 어떻게 수행 할 수 있습니까?Matlab에서 멀티 터치 이벤트를 창으로 보낼 수 있습니까?

+0

에서 스크린 샷 당신은 터치 입력을 시뮬레이션하기 위해'java.awt.robot' 클래스를 사용할 수 있습니까? – Jonas

+0

java.awt.robot를 사용하여 하나의 마우스 위치 이벤트를 보낼 수 있지만 다중은 아닙니다 (알고있는 한) – twerdster

답변

0

이것은 다소 상상할 수있는 것보다 복잡해 보입니다. 현재 Windows 7에서 가장 좋은 솔루션은 MultiTouchVista와 TUIO를 사용합니다.

1)

3) 실행 Multitouch.Service.Console.exe

4) 실행 Multitouch.Driver.Console.exe

MultiTouchVista

2) 활성화 펜을 다운로드 터치 5) Multitouch.Configuration.WPF.exe를 실행하고 TUIO를 선택하십시오.

6) OSC 프레임을 requi로 전송하기 위해 다운로드 할 oscsend TUIO에 의해 빨간색.

다음은 루프에서 5 개의 터치 포인트를 화면에 보내는 샘플 코드입니다.

clear all 
u = udp('127.0.0.1',3333); 
fopen(u); 
fprintf('Opened\n'); 
pause(0.5); 
n = 0; 

%% 
pause(5); 
while 1 

    x = 0.5; 
    y = 0.5; 

    for t = -0.2:0.01:0.2 
     oscsend(u , '/tuio/2Dcur' , 'siiiii' , 'alive' , 5*n,5*n+1,5*n+2,5*n+3,5*n+4); 
     oscsend(u , '/tuio/2Dcur' , 'sifffff' , 'set' , 5*n, x + t, y - 0.2, 0, 0, 0); 
     oscsend(u , '/tuio/2Dcur' , 'sifffff' , 'set' , 5*n+1, x + t, y - 0.1, 0, 0, 0); 
     oscsend(u , '/tuio/2Dcur' , 'sifffff' , 'set' , 5*n+2, x + t, y  , 0, 0, 0); 
     oscsend(u , '/tuio/2Dcur' , 'sifffff' , 'set' , 5*n+3, x + t, y + 0.1, 0, 0, 0); 
     oscsend(u , '/tuio/2Dcur' , 'sifffff' , 'set' , 5*n+4, x + t, y + 0.2, 0, 0, 0);   
     oscsend(u , '/tuio/2Dcur' , 'siiiii' , 'fseq' , 5*n,5*n+1,5*n+2,5*n+3,5*n+4); 
     pause(0.01);   
    end 

    n = n + 1; 
    fprintf('Sent\n'); 
    pause(1); 
end 

%% 

fclose(u); 
fprintf('Closed\n'); 

당신은 이동 마우스하지만 운영 체제가 접촉을 수신하고 하나 Microsoft's Touch-Pack의 예를 열면 당신이 여러 개의 터치 포인트를 볼 수 있습니다을 제외하고 아무것도 표시되지 않을 수도 있습니다. Heres는 FruitNinja Lite

enter image description here