सबसे आसान तरीका है एक सममितीय परिवर्तन करने के लिए एक affine परिवर्तन कन्वर्ट करने के लिए क्या है (यानी केवल एक रोटेशन और अनुवाद से मिलकर) Eigen लाइब्रेरी का उपयोग करने के लिए एक Eigen affine परिवर्तन कन्वर्ट?एक Eigen isometry परिवर्तन
दोनों परिवर्तन 3 डी हैं। एफ़िन मैट्रिक्स में शीर्ष बाएं चतुर्भुज के लिए एक सामान्य 3x3 मैट्रिक्स (यानी रोटेशन, स्केलिंग और कतरनी) होता है, जबकि आइसोमेट्री में एक ही चतुर्भुज के लिए 3x3 रोटेशन मैट्रिक्स होता है, इसलिए एक प्रक्षेपण आवश्यक होता है।
error C2338: YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
जबकि
Eigen::AffineCompact3f a;
Eigen::Isometry3f b(a.rotation(), a.translation());
देता
(line 2) error C2661: 'Eigen::Transform<_Scalar,_Dim,_Mode>::Transform' : no overloaded function takes 2 arguments
और
:Eigen::AffineCompact3f a;
Eigen::Isometry3f b(a);
संकलन त्रुटि देता है
Eigen::AffineCompact3f a;
Eigen::Isometry3f b;
b.translation() = a.translation();
b.rotation() = a.rotation();
(line 4) error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const Eigen::Matrix<_Scalar,_Rows,_Cols>' (or there is no acceptable conversion)
देता रोटेशन() और अनुवाद को देखते हुए() काम करता है, प्रश्न के रूप में rephrased जा सकता है "मैं सबसे अच्छा बदलने एक सममितीय के रोटेशन और अनुवाद घटकों निर्धारित करूं?"
आपको निर्दिष्ट करना चाहिए कि आप कौन सी लाइब्रेरी या टूलकिट का उपयोग कर रहे हैं, क्योंकि वे मानक C++ प्रकार या नाम नहीं हैं। – abelenky
मैं ईजिन (एक प्रसिद्ध सी ++ गणित पुस्तकालय) का उपयोग कर रहा हूं, जैसा कि मैंने शीर्षक और पाठ में कहा था। मैं इसे स्पष्ट बनाने के लिए एक लिंक जोड़ दूंगा। – user664303