2012-06-01 10 views
6

मैं कोर मोशन क्लास CMAttitude पर देख रहा हूं, यह डिवाइस के अभिविन्यास को 3x3 घूर्णन मैट्रिक्स के रूप में व्यक्त कर सकता है। उसी समय मैंने CATransform3D पर एक नज़र डाली है, जो दृश्य के दृष्टिकोण को स्कैन करता है, साथ ही साथ स्केलिंग भी करता है। CATransform3D एक 4x4 मैट्रिक्स है।घूर्णन matrices से संबंधित CMAttitude और CATransform3D हैं?

मैंने देखा है कि ओपनजीएल घूर्णन मैट्रिक्स 4x4 है और यह चौथी पंक्ति और कॉलम में 0001 पैड किया गया है।

मैं भटक रहा हूं अगर सीएमएटीटीयूटी के घूर्णन मैट्रिक्स कैट्रांसफॉर्म के मैट्रिक्स से संबंधित है?

क्या मैं CATransform3D का उपयोग करके UIView को बदलने के लिए घूर्णनशील मैट्रिक्स के माध्यम से प्राप्त स्थान में डिवाइस के घूर्णन का उपयोग कर सकता हूं? मेरा इरादा है कि उपयोगकर्ता फोन को स्थानांतरित करे और स्क्रीन पर यूआईवी व्यू में उसी ट्रांसफॉर्म को लागू करे।

बोनस प्रश्न: यदि वे संबंधित हैं, तो मैं सीएएमटीटीयूटी के घूर्णनशील मैट्रिक्स को कैटरन्सफॉर्म 3 डी में कैसे बदलूं?

उत्तर

4

Gyroscope का उपयोग अंतरिक्ष में डिवाइस के अभिविन्यास को केवल निर्धारित करने के लिए किया जाता है। अभिविन्यास को स्वयं पैरामीटर करने के कई तरीके हैं (सैद्धांतिक जानकारी के लिए SO(3) समूह के बारे में जानकारी देखें) - quaternions, Euler कोण और 3x3 matrices उनमें से एक हैं।

4x4 मैट्रिक्स में 3x3 मैट्रिक्स का "एम्बेडिंग" एक जीएल-विशिष्ट चाल नहीं है। यह अनुवाद के समूह के "semi-direct product" (जो सभी 3 डी वैक्टरों के लिए आइसोमोर्फिक है) और घूर्णन समूह (उपरोक्त वर्णित एसओ (3) है)।

सीएमएटीटीयूटी से CATransform3D मैट्रिक्स प्राप्त करने के लिए आपको अपनी ऑब्जेक्ट की कुछ स्थिति माननी होगी। यदि यह शून्य है, तो आपने 0001 के साथ मैट्रिक्स को पैड करें जैसा आपने कहा है।

यह सवाल आप के लिए ब्याज की हो सकती है: Apple gyroscope sample code

+0

एक महान एक जानकारीपूर्ण जवाब के लिए धन्यवाद! –

+0

आपका स्वागत है :) मुझे आशा है कि उत्तर बहुत सैद्धांतिक नहीं है :) –

संबंधित मुद्दे