1
我在Matlab中有一個演示,我想從(到操作系統)發送多個觸摸事件,就好像有人在觸摸屏幕一樣。我希望能夠提供5到10個觸摸點及其座標。 如何在沒有觸摸輸入硬件但安裝了觸摸驅動程序的機器上完成...?是否可以將多點觸摸事件從Matlab發送到Windows?
我在Matlab中有一個演示,我想從(到操作系統)發送多個觸摸事件,就好像有人在觸摸屏幕一樣。我希望能夠提供5到10個觸摸點及其座標。 如何在沒有觸摸輸入硬件但安裝了觸摸驅動程序的機器上完成...?是否可以將多點觸摸事件從Matlab發送到Windows?
這似乎比人們想象的要複雜一些。 目前Windows 7上的最佳解決方案使用MultiTouchVista和TUIO。
1)下載MultiTouchVista
2)激活筆和觸摸
3)運行Multitouch.Service.Console.exe
4)運行Multitouch.Driver.Console.exe
5)運行Multitouch.Configuration.WPF.exe並選擇TUIO
6)下載oscsend用於發送OSC幀作爲請求紅色由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的一個例子就可以看到多個觸摸點什麼。繼承人從FruitNinja Lite
屏幕截圖,你可以使用'java.awt.robot'類來模擬觸摸輸入? – Jonas
我可以使用java.awt.robot發送單個鼠標位置事件,但不是多個(據我所知) – twerdster