2010-10-15 8 views
6

में विश्व फ्रेम में डिवाइस अभिविन्यास को ट्रांसफॉर्म करें, मैं बॉडी फ्रेम से दुनिया के फ्रेम, यानी अजीमुथ, पिच और रोल में आईफोन के यॉ, पिच और रोल को बदलना चाहता हूं। http://blog.mysticlakesoftware.com/2009/07/sensor-accelerometer-magnetics.htmlउद्देश्य सी

समान तरीकों iPhone के लिए उपलब्ध है या कोई सही दिशा कैसे इस बदलाव करने के लिए मुझे बात कर सकते हैं: के रूप में यहाँ विस्तृत एंड्रॉयड पर यह आसानी से SensorManager.remapCoordinateSystem(), SensorManager.getOrientation तरीकों के साथ किया जाता है?

धन्यवाद

उत्तर

0

accelerometer (UIAccelerometer) आप डिवाइस के एक्सीलरोमीटर चिप से एक वेक्टर सीधे नीचे दे देंगे। यदि आप मान सकते हैं कि डिवाइस काफी स्थिर (i.e. है, कि आप वास्तविक आंदोलन से त्वरण नहीं पढ़ रहे हैं), तो आप डिवाइस के अभिविन्यास को निर्धारित करने के लिए सरल ट्रिग (acos(), asin()) का उपयोग कर सकते हैं।

यदि आप चिंतित हैं कि डिवाइस चल रहा है, तो आप एक पंक्ति में कई एक्सेलेरोमीटर रीडिंग की प्रतीक्षा कर सकते हैं जो लगभग समान हैं। आप 1.0

से किसी भी वेक्टर को उस लंबाई के साथ फ़िल्टर भी कर सकते हैं जो अधिक सामान्य शब्दों में, डिवाइस को "गुरुत्वाकर्षण महसूस करने" के अलावा, इसके अभिविन्यास को जानने का कोई तरीका नहीं है, जो कि है एक्सेलेरोमीटर के माध्यम से किया। चुनौतियां आप इस तथ्य के आस-पास केंद्र में रहेंगी कि एक्सेलेरोमीटर सभी त्वरण को महसूस करता है, जिसमें से गुरुत्वाकर्षण केवल एक संभावित स्रोत है।

1

एक्सीलरोमीटर डिवाइस समन्वय प्रणाली में गुरुत्वाकर्षण दिशा वेक्टर प्राप्त करने के लिए पर्याप्त है। यह तब होता है जब डिवाइस शांत हो जाता है।

पूर्ण डिवाइस अभिविन्यास के लिए अगला चरण CLLocationManager का उपयोग करना है और डिवाइस समन्वय प्रणाली में सही उत्तर वेक्टर प्राप्त करना है। सामान्यीकृत वास्तविक उत्तर वेक्टर और गुरुत्वाकर्षण वेक्टर के साथ आप डॉट और क्रॉस वेक्टर उत्पाद का उपयोग करके आसानी से अन्य सभी दिशाएं प्राप्त कर सकते हैं।

0

यदि आप एक जीरोस्कोप (आईफोन 4 लिखने के समय) के साथ डिवाइस को लक्षित कर रहे हैं, तो कोरमोशन फ्रेमवर्क CMMotionManager आपको CMDeviceMotion अद्यतनों की आपूर्ति कर सकता है। ढांचा कच्चे सेंसर डेटा को संसाधित करने और आपके लिए gravity और userAcceleration को अलग करने का अच्छा काम करता है। आप गुरुत्वाकर्षण वेक्टर में रुचि रखते हैं, जो पिच और रोल को थोड़ा ट्रिगर के साथ परिभाषित कर सकते हैं। Yaw जोड़ने के लिए, (गुरुत्वाकर्षण वेक्टर के चारों ओर डिवाइस रोटेशन) आपको कंपास शीर्षक अद्यतन प्राप्त करने के लिए कोरलोकेशन फ्रेमवर्क के CLLocationManager का उपयोग करने की भी आवश्यकता होगी।