誰かが画面に触れているかのように、(オペレーティング システムに) 複数のタッチ イベントを送信したい Matlab のデモがあります。5 ~ 10 個のタッチ ポイントとその座標を提供できるようにしたいと考えています。タッチ入力ハードウェアがなく、タッチ ドライバがインストールされているマシンでこれを行うにはどうすればよいでしょうか。
質問する
1062 次
1 に答える
0
これは想像以上に複雑なようです。現在、Windows 7 での最適なソリューションは、MultiTouchVista と TUIO を使用しています。
1) MultiTouchVista をダウンロード
2) ペンとタッチを有効にする
3) Multitouch.Service.Console.exe を実行します。
4) Multitouch.Driver.Console.exe を実行します。
5) Multitouch.Configuration.WPF.exe を実行し、TUIO を選択します。
6) TUIO の要求に応じて OSC フレームを送信するためのoscsendをダウンロードします。
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 の Touch-Pack の例の 1 つを開くと、複数のタッチ ポイントが表示されます。FruitNinja Liteのスクリーン ショットを次に示します。
于 2012-12-16T01:04:52.037 に答える