1

誰かが画面に触れているかのように、(オペレーティング システムに) 複数のタッチ イベントを送信したい Matlab のデモがあります。5 ~ 10 個のタッチ ポイントとその座標を提供できるようにしたいと考えています。タッチ入力ハードウェアがなく、タッチ ドライバがインストールされているマシンでこれを行うにはどうすればよいでしょうか。

4

1 に答える 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 に答える