2012-07-31 10 views
5

私はSkeletonFrameReadyイベントから来るSkeleton skeletonを持っています。そして、私は、入力としてスケルトンを取り、私の窓にスケルトンの2D画像を描画するKinectスケルトンデータを操作する

void DrawSkeleton(Skeleton s), 

、Windows上でのスケルトンを描画する機能を持っています。

ここで、右手のxとyの値を変更して、同じ関数、void DrawSkeleton(Skeleton s)を使用してウィンドウに描画します。しかし

、私のような何かをしよう:

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

それは私はそれを行うことはできません:

がMicrosoft.Kinect.Joint」の戻り値を変更することはできません。それは変数ではないからです。

おそらくPositionは変数ではないため、これはプロパティです。

質問:私はSkeletonオブジェクトを複製し、そのオブジェクトにJoint秒のPosition値を変更するにはどうすればよい

答えて

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 
}; 

これは、我々が実際に骨格

を変更せずにマウスを調整するために手の位置を修正したかった実際のプロジェクトの例であります
関連する問題