2011-07-13 27 views
-2

これは剛体の場合sampleclient.exeを実行したときに表示されるデータをストリームするコードですか? 他の計算にxy z qx qy qz qw点を使用する場合はどうすればよいですか?彼らは配列に格納されている私はリアルタイムで計算を行うためにアクセスすることができますか?私はあなたがループプリントの異なる値毎時間という意味では想定しデータをC++でストリーミング

printf("Rigid Bodies [Count=%d]\n", data->nRigidBodies); 

for(i=0; i < data->nRigidBodies; i++) 
{ 
    printf("Rigid Body [ID=%d Error=%3.2f]\n", data->RigidBodies[i].ID, 
    data->RigidBodies[i].MeanError); 

    printf("\tx\ty\tz\tqx\tqy\tqz\tqw\n"); 

    printf("\t%3.2f\t%3.2f\t%3.2f\t%3.2f\t%3.2f\t%3.2f\t%3.2f\n", 
     data->RigidBodies[i].x, 
     data->RigidBodies[i].y, 
     data->RigidBodies[i].z, 
     data->RigidBodies[i].qx, 
     data->RigidBodies[i].qy, 
     data->RigidBodies[i].qz, 
     data->RigidBodies[i].qw); 

} 
+0

あなたは正確に何が問題になっているのか分かりません。どのラインが問題を引き起こしていますか? –

+0

私は 'RigidBodies'が何であるか分かりませんが、コンテキストから' data'は配列である 'RigidBodies'メンバーを持つ構造体へのポインタです。 'data-> RigidBodies '配列を配列インデックス' i'で反復すると、異なる値が出力されます(ループの繰り返しごとに1つずつ)。 – Chad

+0

私の現在のプロジェクトは、Optitrackと呼ばれるモーションキャプチャシステムからデータをストリーミングするアプリケーションを作成することです。このシステムには、NatNetというSDKが付属しています。SDKには、サンプルのクライアントコードが付属しています。リジッドボディは、私が追跡しているボディを指します。データは、(x、y、z)および(qx、qy、qz)回転の値を指します。私は将来の使用のために配列にそれらの値を格納する方法を理解する必要があります。今すぐデータを印刷します。 – ash

答えて

1

...、これをちょっと新しいのだ配列RigidBodies[i]はありませんが、それは値が異なる値を指し続けます。これは、ラインである:

for(i=0; i < data->nRigidBodies; i++) 

ループiがアレイdata->RigidBodiesが異なるインデックスでアクセスされるように1だけインクリメントされ実行されるたび。

私たちも、以下のようにループを「拡張」できます

i=0; 
printf("Rigid Body [ID=%d Error=%3.2f]\n", data->RigidBodies[i].ID, 
data->RigidBodies[i].MeanError); 
.. 
i=i+1; 
printf("Rigid Body [ID=%d Error=%3.2f]\n", data->RigidBodies[i].ID, 
data->RigidBodies[i].MeanError); 
.. 

あなたは毎回同じ配列を使用しているときは、あなたがそれの内部で異なる要素にアクセスしています。 インデックスは、配列内のどのアイテムが必要かを示します。

関連する問題