5

我有一个Skeleton skeleton来自该SkeletonFrameReady事件的内容。我有一个在窗户上画骷髅的功能,

void DrawSkeleton(Skeleton s),

它将骨架作为输入并将骨架的 2D 图像绘制到我的窗口。

现在,我想更改例如右手的 x 和 y 值,并使用相同的函数将其绘制在窗口上,void DrawSkeleton(Skeleton s).

但是,当我尝试执行以下操作时:

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

它不允许我这样做:

无法修改“Microsoft.Kinect.Joint.Position”的返回值,因为它不是变量。

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

问题:

如何复制Skeleton对象并更改该对象上 s的Position值。Joint

4

1 回答 1

5

是的你可以。

您只需创建一个新的 Position 对象并覆盖您喜欢的 Position。

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

var movedJoint = new Joint
{
    Position = movedPosition
};

这是一个实际项目中的示例,我们希望在不实际修改骨架的情况下纠正手的位置以调整鼠标

于 2012-07-31T12:58:19.587 回答