Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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#_.net_Kinect - Fatal编程技术网

C# Kinect操作骨骼数据

C# Kinect操作骨骼数据,c#,.net,kinect,C#,.net,Kinect,我有一个Skeleton骨架,它来自SkeletonFrameReady事件。我有一个在窗户上画骨架的功能 void DrawSkeleton(Skeleton s), 它将骨架作为输入,并将骨架的二维图像绘制到我的窗口 现在,我想更改,例如,右手的x和y值,并使用相同的函数,void DrawSkeleton(Skeleton s)在窗口上绘制它 但是,当我尝试做以下事情时: skeleton.Joints[JointType.HandRight].Position.X = 3; 它不允许

我有一个
Skeleton骨架
,它来自
SkeletonFrameReady
事件。我有一个在窗户上画骨架的功能

void DrawSkeleton(Skeleton s),
它将骨架作为输入,并将骨架的二维图像绘制到我的窗口

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

但是,当我尝试做以下事情时:

skeleton.Joints[JointType.HandRight].Position.X = 3;
它不允许我这样做:

无法修改“Microsoft.Kinect.Joint.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
};
这是一个来自实际项目的示例,在该项目中,我们希望在不实际修改骨架的情况下更正手的位置以调整鼠标