Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Kinect骨架缩放和定位_C#_Xna_Kinect - Fatal编程技术网

C# Kinect骨架缩放和定位

C# Kinect骨架缩放和定位,c#,xna,kinect,C#,Xna,Kinect,使用颜色和深度流,我已经获得了我的图像,我已经设法缩放和改变它的位置。然而,我不能对骨架数据做同样的事情。我想做的是缩放骨骼并将其定位到我的图像上,这样我就可以将我的Gus面罩放在我的头上,并将排球放在我的手上,使其大小合适。我怎样才能对骨骼做同样的事情 这是我缩放和定位图像的线条: spriteBatch.Draw(activeSkeletons[p.Key].image, position1, activeSkeletons[p.Key].image.Bounds, Color.White,

使用颜色和深度流,我已经获得了我的图像,我已经设法缩放和改变它的位置。然而,我不能对骨架数据做同样的事情。我想做的是缩放骨骼并将其定位到我的图像上,这样我就可以将我的Gus面罩放在我的头上,并将排球放在我的手上,使其大小合适。我怎样才能对骨骼做同样的事情

这是我缩放和定位图像的线条:

spriteBatch.Draw(activeSkeletons[p.Key].image, position1, activeSkeletons[p.Key].image.Bounds, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
绘图功能:

private void DrawSkeleton(SpriteBatch spriteBatch, Vector2 resolution, Texture2D img)
{

    foreach (KeyValuePair<int, Player> p in activeSkeletons)
    {
        if (activeSkeletons[p.Key].image != null)
        {
            if (p.Key == indexes[0])
            {
                //Drawing the image - first player
                spriteBatch.Draw(activeSkeletons[p.Key].image, position1, activeSkeletons[p.Key].image.Bounds, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
            }
            else {
                //Drawing the image - second player
                spriteBatch.Draw(activeSkeletons[p.Key].image, position2, activeSkeletons[p.Key].image.Bounds, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
            }
        }

        foreach (Joint joint in p.Value.skeleton.Joints)
        {
            if (joint.TrackingState == JointTrackingState.Tracked)
            {
                //Drawing the skeleton
                var colorPoint = kinect.CoordinateMapper.MapSkeletonPointToColorPoint(joint.Position, kinect.ColorStream.Format);
                spriteBatch.Draw(img, new Rectangle(Convert.ToInt32(colorPoint.X), Convert.ToInt32(colorPoint.Y), 10, 10), Color.White);
                if (joint.JointType == JointType.HandRight && joint.TrackingState == JointTrackingState.Tracked)
                {
                    //Volleyball
                    dopKonum = new Vector2(colorPoint.X - dop.Width / 2, colorPoint.Y - dop.Height / 2);
                    spriteBatch.Draw(dop, dopKonum, Color.White);
                }
                else if (joint.JointType == JointType.Head && joint.TrackingState != JointTrackingState.NotTracked)
                {
                    //Gus Fring
                    gusKonum = new Vector2(colorPoint.X - gus.Width / 2, colorPoint.Y - gus.Height / 2);
                    spriteBatch.Draw(gus, gusKonum, Color.White);
                }
            }
        }
    }
}
这就是它的样子:


希望我能解释清楚

也许给我们看看全部代码?至少处理所有绘图和获取位置数据的部分我已经添加了功能,请检查一下好吗?我读了几遍这个问题,但我仍然不确定你在问什么。。。头部和排球似乎定位正确,是您想要更改的这些精灵的比例还是骨骼标记的精灵?我的意思是在左下角的人体图片上定位面具、排球和粉色关节点。还要适当地调整它们的规模