7

私が抱えている問題、どこを見ればよいかなどについての指示が必要なだけです。私のプロジェクトの 1 つで、各指と手のひらの X、Y、Z 値を返すモーション トラッキング グローブを使用しています。

私がやりたいことは、最初にこれらの座標に基づいて各指の動きの表現を作成し、次にそれぞれを手のひらの動きにアタッチして、手の表現を作成することです。この 2 番目のステップは、最初のステップができれば簡単ですが、うまくいきません。

私はそれをJavaで実装しようとしています(より良い分析の可能性)が、同時にすべてのポイントで3Dグラフを作成することしかできません。そして、各曲線には約 45,000 個ありますので... ある時点 t で XYZ 座標に点を表示するなど、よりアニメーションのようにする方法について何か考えはありますか?

もう 1 つの質問は、matlab が実際にこれに最適なオプションであるかということです。このアニメーションを Java で機能させる方法はわかりますが、データ管理に Java を使用したことはありません。また、Java が本当に優れているとは思えません。データ管理とアニメーション化に適した別のソフトウェア/言語はありますか? それとも、Java を使用してアニメーションを作成し、Matlab を使用して分析を行うべきですか?

ありがとう!

4

1 に答える 1

2

次のことができます。posを、N個の時間インスタンスのポイントのx、y、zデータを含むNx3行列とします。varsなどを設定するメインスクリプトを作成し、プロット関数「doPlot」を呼び出すループタイマーt1を作成します。主なスクリプトは、

clear all
clc

pos=rand(100,3)*10;  %position matrix of random x,y,z coordinates. 100 time instances here

ax=axes;
set(ax,'NextPlot','replacechildren');
axis([0 10 0 10 0 10]); %set axis limits- fit to your needs

Dt=0.1; %sampling period in secs

k=1;
hp=plot3(pos(k,1),pos(k,2),pos(k,3),'o'); %get handle to dot object

t1=timer('TimerFcn','k=doPlot(hp,pos,t1,k)','Period', Dt,'ExecutionMode','fixedRate');
start(t1);

次に、プロット関数doPlotを作成します。

function k=doPlot(hp,pos,t1,k)

k=k+1;
if k<length(pos)
   set(hp,'XData',pos(k,1),'YData',pos(k,2),'ZData',pos(k,3));
   axis([0 10 0 10 0 10]);
else
    stop(t1)
end

空間内をランダムに移動する3Dのポイント(円)が表示されます。アニメーションの周期はDt秒(この場合は0.1秒)です。あなたはそれをあなたのニーズに適合させなければなりません。これはMatlabの基本的なアニメーションです。あなたはもっと多くのことをすることができます。それはあなたのニーズに依存します。

于 2012-01-05T19:36:00.483 に答える