मैं एक्सेलोरोमीटर और चुंबकीय क्षेत्र सेंसर का उपयोग करके एंड्रॉइड के साथ एक कंपास प्रोग्राम करने की कोशिश कर रहा हूं, अब मैं सोच रहा हूं कि मेरे कंपास के लिए सही कोण कैसे प्राप्त करें।एंड्रॉइड में कम्पास
मैं एक्सेलेरोमीटर के मूल्यों और क्रमशः "एसील" और "मैग्ने" में चुंबकीय क्षेत्र सेंसर के मूल्यों में पढ़ता हूं।
float R[] = new float[9];
float I[] = new float[9];
boolean success = SensorManager.getRotationMatrix(R, I, accele, magne);
if(success) {
float orientation[] = new float[3];
SensorManager.getOrientation(R, orientation);
azimuth = orientation[0]; // contains azimuth, pitch, roll
....
बाद में
, मैं एक रोटेशन मैट्रिक्स का उपयोग अपने सुई डाल करने के लिए: कोण पाने के लिए, मैं निम्नलिखित प्रदर्शन
rotation.setRotate(azimuth, compass.getWidth()/2, compass.getHeight()/2);
canvas.drawBitmap(needle, rotation, null);
अब, getOrientation के प्रलेखन का कहना है, कि उन्मुखीकरण [0] जेड-अक्ष के चारों ओर घूर्णन होना चाहिए। TYPE_ORIENTATION के लिए प्रलेखन बताता है कि "अजीमुथ, चुंबकीय उत्तर दिशा और वाई-अक्ष के बीच कोण, ज़ेड-अक्ष (0 से 35 9) के आसपास कोण। 0 = उत्तर, 9 0 = पूर्व, 180 = दक्षिण, 270 = पश्चिम"।
मेरा अजिमथ 0 और 35 9 के बीच नहीं है, बल्कि लगभग 2 से 2 के बीच नहीं है। GetOrientation से azimuth वास्तव में क्या है और मैं इसे कोण में कैसे परिवर्तित कर सकता हूं?
धन्यवाद :) आखिरी अगर कथन के लिए वास्तव में क्या है? – user1809923
Math.toDegrees() आपको -180 और 180 के बीच एक -पीआई और + पीआई रेडियंस कोण से कोण देगा। यह सब कुछ सकारात्मक दिशा में डाल दिया। – rgrocha
यह सही जवाब है। –