2011-07-13 65 views
-2

這是代碼,當我運行sampleclient.exe剛體時,我看到的數據流? 如果我想將x y z qx qy qz qw點用於其他計算,該怎麼辦?他們存儲在一個數組我可以訪問做實時計算?我有點新的這個,是不是RigidBodies[i]一個數組,但它的值保持指向不同的值...在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

我不明白你到底有什麼問題。什麼線路導致你的問題? – 2011-07-13 14:54:13

+0

我不知道'RigidBodies'是什麼,但是從上下文來看,'data'是一個指向具有一個數組「RigidBodies」成員的結構的指針。迭代數組索引「i」的'data-> RigidBodies'數組會導致打印不同的值(循環的每次迭代都有一個值)。 – Chad

+0

我目前的項目是創建一個應用程序,它可以從一個名爲Optitrack的動作捕捉系統中傳輸數據。該系統附帶一個稱爲NatNet的SDK,它附帶示例客戶端代碼。剛體是指我正在追蹤的身體。數據指向(x,y,z)和(qx,qy,qz)旋轉值。我需要找出一種方法將這些值存儲在數組中以供將來使用。現在它只是打印出數據。 – ash

回答

1

我假定你的意思是,每次循環打印不同的值。這是因爲線的:

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

的循環運行i每次由一個使得陣列data->RigidBodies在不同的索引訪問遞增。

我們甚至可以「擴大」的循環,如下所示:

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); 
.. 

當您使用同一陣列中的每個時刻,您要訪問的這裏面不同的元素。 索引告訴我們我們想要的數組中的項目。