इस नमूना ऐप का आप किस प्रकार के अभिविन्यास का उपयोग करते हैं? जो लिखा गया है, वह कोड है, समर्थित एकमात्र अभिविन्यास तालिका पर पोर्ट्रेट या फ्लैट है, यह डिवाइस पर निर्भर करता है। "अच्छा" से आपका क्या मतलब है?
यह सामान्य है कि डिवाइस को घूर्णन करते समय मान "अच्छा" नहीं होता है, डिवाइस समन्वय प्रणाली पोर्ट्रेट में काम कर रही है, या फ्लैट मुझे नहीं पता (स्क्रीन के साथ वाई अक्ष लंबवत, जेड स्क्रीन के केंद्र से आने वाली स्क्रीन से धुरी धुरी, एक्स अक्ष लंबवत वाई अक्ष के साथ स्क्रीन पर दाईं ओर जा रही है)। ऐसा करने से, डिवाइस को घूर्णन करने से डिवाइस समन्वय प्रणाली घुमाएगी, आपको इसे रीमेप करना होगा।
लेकिन अगर आप पोर्ट्रेट ओरिएंटेशन में डिवाइस के शीर्षक चाहते हैं, यहाँ कोड का एक टुकड़ा है कि मेरे लिए अच्छा काम करता है: में
@Override
public void onSensorChanged(SensorEvent event)
{
// It is good practice to check that we received the proper sensor event
if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR)
{
// Convert the rotation-vector to a 4x4 matrix.
SensorManager.getRotationMatrixFromVector(mRotationMatrix,
event.values);
SensorManager
.remapCoordinateSystem(mRotationMatrix,
SensorManager.AXIS_X, SensorManager.AXIS_Z,
mRotationMatrix);
SensorManager.getOrientation(mRotationMatrix, orientationVals);
// Optionally convert the result from radians to degrees
orientationVals[0] = (float) Math.toDegrees(orientationVals[0]);
orientationVals[1] = (float) Math.toDegrees(orientationVals[1]);
orientationVals[2] = (float) Math.toDegrees(orientationVals[2]);
tv.setText(" Yaw: " + orientationVals[0] + "\n Pitch: "
+ orientationVals[1] + "\n Roll (not used): "
+ orientationVals[2]);
}
}
आप शीर्षक (या दिगंश) प्राप्त होंगे:
orientationVals[0]
स्रोत
2013-02-11 15:49:36
ठीक है, तो क्या इस सेंसर के साथ काम करने का कोई उदाहरण है? मुझे एक्स * पाप (θ/2), वाई * पाप (θ/2) और जेड * पाप (θ/2) के लिए मान मिलते हैं। लेकिन मैं मूल्य कैसे प्राप्त करूं, मुझे अपना कंपास बनाने की जरूरत है। क्या मुझे फिर से getRotationMatrix का उपयोग करना चाहिए? आपकी सहायता के लिए धन्यवाद. –
"एक्स को वेक्टर उत्पाद वाई.जेड के रूप में परिभाषित किया गया है (यह डिवाइस के वर्तमान स्थान पर जमीन पर टेंगेंशियल है और लगभग पूर्व बिंदुओं को इंगित करता है) वाई डिवाइस के वर्तमान स्थान पर जमीन के लिए स्पर्शिक है और चुंबकीय उत्तर की ओर इंगित करता है। ज़ेड आकाश की तरफ इशारा करता है और जमीन के लिए लंबवत है। " अपनी ज्यामिति वर्ग की किताबें बंद करें, या इसे Google करें :), और आपको इसे समझने में सक्षम होना चाहिए। –