我有Skeleton skeleton
来自SkeletonFrameReady
事件。我有一个在窗户上绘制骷髅的功能,
void DrawSkeleton(Skeleton s),
以Skeleton作为输入,并将骨架的2D图像绘制到我的窗口。
现在,我想改变右手的x和y值,并使用相同的函数void DrawSkeleton(Skeleton s)
在窗口上绘制它。
然而,当我尝试做类似的事情时:
skeleton.Joints[JointType.HandRight].Position.X = 3;
它不允许我这样做:
无法修改'Microsoft.Kinect.Joint.Position'的返回值,因为它不是变量。
这可能是因为Position
不是变量,属于属性。
问题:
如何复制Skeleton
对象并更改该对象上Position
的{{1}}值。
答案 0 :(得分:5)
是的,你可以。
您只需创建一个新的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
};
这是一个实际项目中的示例,我们想要更正手的位置以调整鼠标而不实际修改骨架