डिवाइस ओरिएंटेशन और मोशन

डिवाइस के मोशन और ओरिएंटेशन इवेंट से, ऐप्लिकेशन में पहले से मौजूद सुविधाओं का ऐक्सेस मिलता है मोबाइल डिवाइस में एक्सलरोमीटर, जाइरोस्कोप, और कंपास.

इन इवेंट का इस्तेमाल कई कामों के लिए किया जा सकता है; उदाहरण के लिए, गेमिंग के दौरान किसी किरदार के निर्देश या कार्रवाई. भौगोलिक स्थान के साथ इस्तेमाल किए जाने पर, वे ये काम कर सकते हैं: ज़्यादा सटीक मोड़-दर-मोड़ नेविगेशन बनाने में मदद कर सकते हैं या किसी ख़ास जगह को चुनें.

खास जानकारी

  • पता करें कि डिवाइस का कौनसा हिस्सा चालू है और वह कैसे घूम रहा है.
  • जानें कि मोशन और स्क्रीन की दिशा वाले इवेंट का जवाब कब और कैसे देना है.

कौनसा समापन खत्म हो रहा है?

डिवाइस ओरिएंटेशन और मोशन इवेंट से मिले डेटा का इस्तेमाल करने के लिए, इसमें दी गई वैल्यू को समझना ज़रूरी है.

अर्थ कोऑर्डिनेट फ़्रेम

X, Y, और Z वैल्यू से बताया गया Earth कोऑर्डिनेट फ़्रेम अलाइन है गुरुत्वाकर्षण और मानक चुंबकीय अभिविन्यास पर आधारित.

कोऑर्डिनेट सिस्टम
X पूर्व-पश्चिम दिशा को दिखाता है (जहां पूर्व धनात्मक होता है).
Y यह उत्तर-दक्षिण दिशा को दिखाता है (जहां उत्तर धनात्मक होता है).
Z यह ज़मीन के लंबवत रूप से ऊपर-नीचे की दिशा दिखाता है (जहां अप पॉज़िटिव हो).

डिवाइस कोऑर्डिनेट फ़्रेम

डिवाइस कोऑर्डिनेट फ़्रेम का इलस्ट्रेशन
डिवाइस कोऑर्डिनेट फ़्रेम का इलस्ट्रेशन

डिवाइस कोऑर्डिनेट फ़्रेम, x, y, और z वैल्यू से बताया गया है. यह अलाइन की गई है तय करें.

कोऑर्डिनेट सिस्टम
X स्क्रीन के तल में, दाईं ओर पॉज़िटिव.
Y स्क्रीन के तल में, ऊपर की ओर पॉज़िटिव.
Z स्क्रीन या कीबोर्ड के लंबवत, सकारात्मक विस्तार दूर.

फ़ोन या टैबलेट पर, डिवाइस का ओरिएंटेशन स्क्रीन का ओरिएंटेशन. फ़ोन और टैबलेट के लिए, यह डिवाइस के हिसाब से काम करता है पोर्ट्रेट मोड में रखा जा रहा है. डेस्कटॉप या लैपटॉप कंप्यूटर के लिए, स्क्रीन की दिशा कीबोर्ड के संबंध में विचार किया जा सकता है.

रोटेशन डेटा

रोटेशन डेटा को ऑयलर ऐंगल में दिखाया जाता है, डिवाइस निर्देशांक के बीच अंतर की डिग्री की संख्या दिखाता है फ़्रेम और अर्थ कोऑर्डिनेट फ़्रेम में नेविगेट कर सकते हैं.

ऐल्फ़ा

डिवाइस कोऑर्डिनेट फ़्रेम में ऐल्फ़ा का इलस्ट्रेशन
डिवाइस कोऑर्डिनेट फ़्रेम में ऐल्फ़ा का इलस्ट्रेशन

z ऐक्सिस के आस-पास घुमाना. 'alpha' के सबसे ऊपर होने पर, वैल्यू 0° होती है डिवाइस सीधे उत्तर की ओर हो. डिवाइस को घड़ी की उलटी दिशा में घुमाने पर, alpha की वैल्यू बढ़ती है.

बीटा

डिवाइस कोऑर्डिनेट फ़्रेम की इमेज
डिवाइस कोऑर्डिनेट फ़्रेम में बीटा वर्शन की इमेज

x ऐक्सिस के आस-पास घुमाना. beta वैल्यू 0° होती है, जब ऊपर और डिवाइस के निचले हिस्से, पृथ्वी की सतह से समान दूरी पर हैं. वैल्यू जैसे-जैसे डिवाइस का ऊपरी हिस्सा पृथ्वी की सतह पर मुड़ा होता है, वैसे-वैसे बढ़ता है.

गामा

डिवाइस कोऑर्डिनेट फ़्रेम की इमेज
डिवाइस कोऑर्डिनेट फ़्रेम में गामा की इमेज

y ऐक्सिस के आस-पास का रोटेशन. gamma मान 0° होता है जब बाईं ओर और डिवाइस के दाएं किनारे, पृथ्वी की सतह से समान दूरी पर हों. वैल्यू बढ़ता है, क्योंकि दाईं ओर का हिस्सा पृथ्वी की सतह की तरफ़ होता है.

डिवाइस की स्क्रीन की दिशा

डिवाइस ओरिएंटेशन इवेंट, रोटेशन डेटा दिखाता है, जिसमें यह जानकारी होती है कि डिवाइस के आगे-पीछे, दोनों तरफ़ की तरफ़ झुका हुआ हो, और अगर फ़ोन या लैपटॉप इसमें कंपास लगा है. यह डिवाइस डिवाइस की दिशा में है.

कम से कम इस्तेमाल करें. सहायता के लिए टेस्ट करें. हर ओरिएंटेशन इवेंट के लिए यूज़र इंटरफ़ेस (यूआई) अपडेट न करें; इसके बजाय, requestAnimationFrame से सिंक करें.

डिवाइस ओरिएंटेशन इवेंट का इस्तेमाल कब करना चाहिए

डिवाइस ओरिएंटेशन इवेंट को कई तरीकों से इस्तेमाल किया जा सकता है. उदाहरणों में ये शामिल हैं:

  • उपयोगकर्ता के जगह बदलने पर मैप को अपडेट करें.
  • यूज़र इंटरफ़ेस (यूआई) में छोटे-मोटे बदलाव करना. उदाहरण के लिए, पैरालैक्स इफ़ेक्ट जोड़ना.
  • भौगोलिक स्थान के साथ, मोड़-दर-मोड़ नेविगेशन के लिए इस्तेमाल किया जा सकता है.

सहायता टीम से संपर्क करना और इवेंट के बारे में जानना

DeviceOrientationEvent को सुनने के लिए, सबसे पहले यह देख लें कि ब्राउज़र पर इवेंट काम करते हैं या नहीं. इसके बाद, deviceorientation इवेंट को सुनने वाले window ऑब्जेक्ट में, इवेंट लिसनर को अटैच करें.

if (window.DeviceOrientationEvent) {
  window.addEventListener('deviceorientation', deviceOrientationHandler, false);
  document.getElementById('doeSupported').innerText = 'Supported!';
}

डिवाइस की स्क्रीन की दिशा से जुड़े इवेंट मैनेज करना

डिवाइस की जगह बदलने या उसमें बदलाव करने पर, डिवाइस की स्क्रीन की दिशा वाला इवेंट ट्रिगर होता है स्क्रीन की दिशा. यह कार्रवाई मोड में, डिवाइस के बीच के अंतर के बारे में डेटा दिखाता है मौजूदा स्थिति के संबंध में, पृथ्वी कोऑर्डिनेट फ़्रेम.

आम तौर पर, इवेंट तीन प्रॉपर्टी दिखाता है: alpha, beta और gamma. मोबाइल Safari पर, एक अतिरिक्त पैरामीटर webkitCompassHeading कंपास हेडिंग के साथ दिखाया जाता है.

डिवाइस का मोशन

डिवाइस ओरिएंटेशन इवेंट, रोटेशन डेटा दिखाता है, जिसमें यह जानकारी होती है कि डिवाइस के आगे-पीछे, दोनों तरफ़ की तरफ़ झुका हुआ हो, और अगर फ़ोन या लैपटॉप इसमें कंपास लगा है. यह डिवाइस डिवाइस की दिशा में है.

डिवाइस की मौजूदा गति की ज़रूरत होने पर डिवाइस की गति का इस्तेमाल करें. rotationRate, °/सेकंड में दिया जाता है. acceleration और accelerationWithGravity मी॰/से॰2 में दिए जाते हैं. ब्राउज़र लागू करने के तरीके के बीच के अंतर का ध्यान रखें.

डिवाइस के मोशन इवेंट का इस्तेमाल कब करना चाहिए

डिवाइस के मोशन इवेंट को कई तरीकों से इस्तेमाल किया जा सकता है. उदाहरणों में ये शामिल हैं:

  • डेटा रीफ़्रेश करने के लिए हाथ का जेस्चर हिलाएं.
  • गेम में, किरदारों को कूदने या हिलने-डुलने के लिए प्रेरित करना.
  • सेहत और फ़िटनेस वाले ऐप्लिकेशन के लिए.

सहायता टीम से संपर्क करना और इवेंट के बारे में जानना

DeviceMotionEvent को सुनने के लिए, पहले यह देख लें कि इवेंट जो ब्राउज़र में काम करता है. इसके बाद, window में इवेंट लिसनर अटैच करें devicemotion इवेंट को सुन रहा है.

if (window.DeviceMotionEvent) {
  window.addEventListener('devicemotion', deviceMotionHandler);
  setTimeout(stopJump, 3 * 1000);
}

डिवाइस के मोशन इवेंट मैनेज करना

डिवाइस मोशन इवेंट नियमित अंतराल पर सक्रिय होता है और घुमाव (°/सेकंड में) और एक्सेलरेटर (मि॰/सेकंड में2) डिवाइस की स्क्रीन पर दिख रही होगी. कुछ डिवाइसों में हार्डवेयर नहीं है गुरुत्वाकर्षण के असर को बाहर करने के लिए.

इवेंट चार प्रॉपर्टी दिखाता है, accelerationIncludingGravity acceleration, जिसमें कुछ चीज़ों के असर शामिल नहीं होते हैं ग्रैविटी, rotationRate, और interval.

उदाहरण के लिए, आइए एक सपाट टेबल पर लेटे हुए फ़ोन पर नज़र डालते हैं. स्क्रीन ऊपर की ओर.

स्थिति रोटेशन एक्सेलरेशन (मी/से2) गुरुत्वाकर्षण के साथ त्वरण (m/s2)
कोई हलचल नहीं है [0, 0, 0] [0, 0, 0] [0, 0, 9.8] के बराबर
आसमान की ओर जा रहा है [0, 0, 0] [0, 0, 5] [0, 0, 14.81] के बराबर
केवल दाईं ओर जा रहा है [0, 0, 0] [3, 0, 0] [3, 0, 9.81] के बराबर
ऊपर और दाईं ओर जा रहा है [0, 0, 0] [5, 0, 5] [5, 0, 14.81] के बराबर

इसके उलट, अगर फ़ोन को इस तरह पकड़ा गया था कि स्क्रीन और यह सीधे तौर पर दर्शकों को दिखता था:

स्थिति रोटेशन एक्सेलरेशन (मी/से2) गुरुत्वाकर्षण के साथ त्वरण (m/s2)
कोई हलचल नहीं है [0, 0, 0] [0, 0, 0] [0, 9.81, 0] के बराबर
आसमान की ओर जा रहा है [0, 0, 0] [0, 5, 0] [0, 14.81, 0] के बराबर
केवल दाईं ओर जा रहा है [0, 0, 0] [3, 0, 0] [3, 9.81, 0]
ऊपर और दाईं ओर जा रहा है [0, 0, 0] [5, 5, 0] [5, 14.81, 0]

नमूना: किसी ऑब्जेक्ट के अधिकतम त्वरण की गणना करना

डिवाइस के मोशन इवेंट का इस्तेमाल करने का एक तरीका यह भी है कि रफ़्तार की सबसे ज़्यादा रफ़्तार का पता लगाया जाए एक ऑब्जेक्ट है. उदाहरण के लिए, किसी व्यक्ति की रफ़्तार ज़्यादा से ज़्यादा कितनी हो कूद रहे हैं?

if (evt.acceleration.x > jumpMax.x) {
  jumpMax.x = evt.acceleration.x;
}
if (evt.acceleration.y > jumpMax.y) {
  jumpMax.y = evt.acceleration.y;
}
if (evt.acceleration.z > jumpMax.z) {
  jumpMax.z = evt.acceleration.z;
}

'जाएं!' पर टैप करने के बाद बटन, उपयोगकर्ता को सीधे जाने को कहा जाता है. इस दौरान, पेज में तेज़ी की ज़्यादा से ज़्यादा (और कम से कम) वैल्यू सेव की जाती है. साथ ही, जंप, उपयोगकर्ता को उसकी सबसे ज़्यादा रफ़्तार बताता है.

सुझाव/राय दें या शिकायत करें