J'ai écrit un programme pour enregistrer les valeurs communes du squelette. . fondamentalement RightHand.joint pour obtenir les coordonnées X, Y, Z du capteur, maintenant je veux utiliser ces valeurs pour animer mon modèle 3D .. en quelque sorte, j'ai obtenu la formule pour convertir les valeurs x, y à la projection du monde réel, mais ne comprennent pas comment faire avec la coordonnée Z .. aussi je ne comprends pas pourquoi nous devons faire ce qui suitmappage x, y, z Coordonnées dans les coordonnées d'écran ou les coordonnées de projection dans Kinect à XNA
int x = (int) Math.Floor(((float.Parse(temp[0]) * 0.5f) + 0.5f) * maxWidth);
int y = (int) Math.Floor(((float.Parse(temp[1]) * -0.5f) + 0.5f) * maxHeight);
Isnt il suffit de multiplier juste les valeurs x et y par la largeur de l'écran & hauteur au lieu de faire * 0.5f (+ 0.5f). . Si quelqu'un pouvait expliquer cela serait très utile et aussi comment obtenir les coordonnées Z?
Voici le code:
protected override void Update(GameTime gameTime)
{
//// TODO: Add your update logic here
using (StreamReader r = new StreamReader(f))
{
string line;
Viewport view = graphics.GraphicsDevice.Viewport;
int maxWidth = view.Width;
int maxHeight = view.Height;
while ((line = r.ReadLine()) != null)
{
string[] temp = line.Split(',');
int x = (int)Math.Floor(((float.Parse(temp[0]) * 0.5f) + 0.5f) * maxWidth);
int y = (int)Math.Floor(((float.Parse(temp[1]) * -0.5f) + 0.5f) * maxHeight);
//Wrong Z - value Cal (Testing)
int z = (int)Math.Floor(((float.Parse(temp[2])* 0.5) + 0.5f) * maxHeight);
motion_z.Add(new Point3D(x, y, z));
}
}
ModelPosition.X = (float)(motion_z[i].X);
ModelPosition.Y = (float)(motion_z[i].Y);
ModelPosition.Z = (float)(motion_z[i].Z);
i++;
base.Update(gameTime);
}
je le fais avec un autre aproche . Dans XNA, je donne la position de la valeur x, y, z au modèle sans modifications. Et avec la matrice mondiale, je peux zoomer, déplacer, faire pivoter le modèle. (Mon "modèle" est construit avec des cylindres et des sphères) – EdgarT
Fondamentalement je veux que mon modèle ait un mouvement qui soit plus naturel. Par exemple. un poisson . . donc au lieu d'utiliser des fonctions compliquées pour faire ça je veux enregistrer un mouvement et l'animer –
Pourriez-vous quand même m'expliquer la différence entre le squelette coordonné et la profondeur –