2012-07-31 16 views
5

मेरे पास Skeleton skeleton है जो SkeletonFrameReady ईवेंट से आता है। और मैं खिड़कियों पर कंकाल आकर्षित करने के लिए एक समारोह,किनेक्ट मैनिपुलेट कंकाल डेटा

void DrawSkeleton(Skeleton s), 

जो इनपुट के रूप में कंकाल लेता है और अपनी खिड़की के कंकाल की 2 डी छवि खींचता है।

अब, मैं बदलना चाहता हूं, उदाहरण के लिए, दाहिने हाथ का एक्स और वाई मान और उसी फ़ंक्शन, 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 
}; 

यह जहां हम हाथ की स्थिति को दूर करने के लिए वास्तव में कंकाल

को संशोधित किए बिना माउस को समायोजित करना चाहता था एक वास्तविक परियोजना से एक उदाहरण है
संबंधित मुद्दे