2011-07-13 4 views
-2

C'est le code qui diffuse les données que je vois lorsque je lance sampleclient.exe pour un corps rigide? Et si je voulais utiliser le point x y z qx qy qz qw pour d'autres calculs? sont-ils stockés dans un tableau que je peux accéder à faire des calculs en temps réel? Je suis un peu de nouveau à cela, n'est pas RigidBodies[i] un tableau, mais sa valeur en montrant une motive valeur différente ...Diffusion de données en 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

Je ne comprends pas quels problèmes vous avez exactement. Quelle ligne vous cause des problèmes? –

+0

Je ne sais pas ce qu'est un 'RigidBodies', mais à partir du contexte,' data' est un pointeur vers une structure qui a un membre 'RigidBodies' qui est un tableau. Itérer le tableau 'data-> RigidBodies 'avec l'index de tableau' i' est ce qui provoque l'impression des différentes valeurs (une pour chaque itération de la boucle). – Chad

+0

MON projet actuel consiste à créer une application qui diffuse les données à partir d'un système de capture de mouvement appelé Optitrack. Ce système est livré avec un SDK appelé NatNet, fourni avec un exemple de code client. Les Rigidbodies fait référence au corps que je suis en train de suivre. Les données pointent vers la valeur des rotations (x, y, z) et (qx, qy, qz). Je dois trouver un moyen de stocker ces valeurs dans un tableau pour une utilisation future. En ce moment, il suffit d'imprimer les données. – ash

Répondre

1

Je suppose que vous voulez dire que la boucle for imprime différentes valeurs à chaque fois. Ceci est dû à la ligne:

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

Chaque fois que la boucle fonctionne i est incrémenté d'une telle manière que la matrice data->RigidBodies est accessible à un indice différent.

On pourrait même « expand » la boucle être les suivants:

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

Pendant que vous utilisez le même tableau à chaque fois, vous accédez à un élément différent à l'intérieur de celui-ci. L'index nous dit quel élément dans le tableau que nous voulons.

Questions connexes