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変数ではないため、プロパティです。

質問:

オブジェクトを複製して、そのオブジェクトのsの値をSkeleton変更するにはどうすればよいですか。PositionJoint

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 に答える