2012-07-31 2 views
5

SkeletonFrameReady 이벤트에서 가져온 Skeleton skeleton이 있습니다. 그리고 내가 입력으로 해골을 받아 내 창으로 해골의 2D 이미지를 그리는 창에 해골을 그릴 수있는 기능,Kinect 스켈레톤 데이터 조작

void DrawSkeleton(Skeleton s), 

있습니다.

이제 오른손의 x와 y 값을 변경하고 동일한 기능을 사용하여 창에 그려 넣으려고합니다. void DrawSkeleton(Skeleton s). 그러나

, 내가 좋아하는 뭔가를 시도 :

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

그것은 나를 그렇게 할 수 없습니다 :

이 Microsoft.Kinect.Joint '의 반환 값을 수정할 수 없습니다. 위치 '변수가 아니기 때문입니다.

이것은 아마도 Position이 변수가 아니기 때문에 가능한 속성입니다.

질문 : Skeleton 개체를 복제하여 그 객체에 Joint의의 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 
}; 

는 우리가 실제로 골격

을 수정하지 않고 마우스를 조정하려면 손의 위치를 ​​수정하고 싶었다 실제 프로젝트의 예입니다