2012-07-31 165 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 
}; 

這是從實際項目的例子,我們想糾正手的位置來調整鼠標而不真正修改骨架