2012-07-31 107 views
5

我有一个Skeleton skeleton它来自SkeletonFrameReady事件。我有一个函数来绘制窗户上的骷髅,Kinect操纵骨骼数据

void DrawSkeleton(Skeleton s), 

这需要骷髅作为输入,并提请骨架的2D图像到我的窗口。

现在,我想改变右手的x和y值,并使用相同的函数void DrawSkeleton(Skeleton s)在窗口上绘制它。

然而,当我尝试做这样的事情:

skeleton.Joints[JointType.HandRight].Position.X = 3; 

它不允许我这样做:

不能修改Microsoft.Kinect.Joint”的返回值。位置',因为它不是一个变量。

这可能是因为Position不是变量,属性。

问:

我怎样才能复制Skeleton对象并更改该对象上的Joint S上Position值。

回答

5

是的,你可以。

您只需制作一个新的位置对象并覆盖您喜欢的位置。

var movedPosition = new SkeletonPoint 
{ 
    X = (float)(mouseJoint.Position.X - 0.4), 
    Y = (float)(mouseJoint.Position.Y - 0.3) 
}; 

var movedJoint = new Joint 
{ 
    Position = movedPosition 
}; 

这是从实际项目的例子,我们想纠正手的位置来调整鼠标而不真正修改骨架