खेल के विकास में डिग्री पर रेडियन को क्यों पसंद किया जाता है?


39

मैं रेडियन की परिभाषा देख रहा हूं और पता चला कि गणितज्ञ उन्हें पसंद करते हैं क्योंकि वे डिग्री की तरह पूरी तरह से मनमानी करने के बजाय पाई से निकले हैं।

हालांकि, मुझे खेल के विकास में उनका उपयोग करने के लिए एक सम्मोहक कारण नहीं मिला है, संभवत: संबंधित गणितीय समझ की मेरी पूरी कमी के कारण। मुझे पता है कि अधिकांश पाप / कॉस / टैन फ़ंक्शंस भाषाओं में क्या रेडियन हैं, लेकिन कोई व्यक्ति केवल लाइब्रेरी फ़ंक्शंस को डिग्री में बना सकता है (और पाई का उपयोग करते समय अंतर्निहित गोलाई त्रुटियों से बचें)।

मैं नहीं चाहता कि यह एक जनमत सर्वेक्षण हो, मैं सिर्फ उन लोगों से सुनना चाहूंगा जिन्होंने खेल विकास (और संबद्ध गणित अनुसंधान) किया है, जहां रेडियन डिग्री से बेहतर अनुभव प्रदान करते हैं, जैसा कि "हम रेडियन का उपयोग कर रहे हैं।" क्योंकि हमने हमेशा उनका उपयोग किया है, बस मेरी मदद करने के लिए (और संभवतः अन्य) यह समझने के लिए कि वे क्या अच्छे हैं।


2
एक उत्तर यह है कि वे तेज हैं। आपको पापियों जैसे कार्यों में उपयोग करने से पहले रेडियन को डिग्री को गुप्त करने की आवश्यकता नहीं है। मुझे और अधिक विशिष्ट होना चाहिए और कहना चाहिए कि कंप्यूटिंग पाप की एक विधि (एक्स) एक टेलर विस्तार का उपयोग कर रही है - और "एक्स" को विस्तार के लिए रेडियन में होने की आवश्यकता है।
user3728501

जवाबों:


49

रेडियन का उपयोग गणित में किया जाता है क्योंकि

  1. वे वृत्त पर चाप-लंबाई को मापते हैं, अर्थात त्रिज्या r के वृत्त पर कोण थीटा का एक चाप सिर्फ r * थीटा है (जैसा कि pi / 180 * r * थीटा के विपरीत है)।
  2. जब ट्रिगर कार्यों को रेडियंस के संदर्भ में परिभाषित किया जाता है, तो वे एक-दूसरे के बीच सरल संबंधों का पालन करते हैं, जैसे कि कोसाइन साइन का व्युत्पन्न होना, या पाप (x) ~ = x छोटे x के लिए। यदि डिग्री के संदर्भ में परिभाषित किया जाए, तो साइन का व्युत्पन्न pi / 180 * cosine होगा, और हमारे पास x के लिए sin (x) ~ = pi / 180 * x होगा।

ऐसा नहीं है कि गणितज्ञ सिर्फ पी की तरह हैं। रेडियन वास्तव में उपरोक्त कारणों से डिग्री की तुलना में कोण माप का अधिक प्राकृतिक विकल्प हैं। वे कोण माप हैं जिसमें पीआई / 180 जैसे कारक गायब हो जाते हैं।

तो IMO, सवाल यह नहीं है कि "रेडियन का उपयोग क्यों करें", लेकिन " रेडियन का उपयोग क्यों नहीं करें"। दूसरे शब्दों में, किसी को रेडियन का उपयोग करने के लिए एक कारण की आवश्यकता नहीं है; वे कोण माप के डिफ़ॉल्ट विकल्प हैं। डिग्री का उपयोग करने के लिए एक कारण की आवश्यकता होती है। उदाहरण के लिए, कोई ऐप के उपयोगकर्ता इंटरफ़ेस में डिग्री में कोण दिखाने के लिए चुन सकता है, क्योंकि वे कई लोगों (विशेष रूप से कलाकारों) से अधिक परिचित हैं। हालाँकि, व्यक्तिगत रूप से मुझे डिग्री के बजाय रेडियन के संदर्भ में कोणों के बारे में सोचने की काफी आदत है।

मेरे पास आपको देने के लिए कोई विशिष्ट gamedev उदाहरण नहीं हैं क्योंकि यह वास्तव में gamedev समस्या नहीं है, लेकिन एक गणितीय एक है, और गणित का उपयोग करने वाले किसी भी क्षेत्र में समान होगा।

(वैसे, डिग्री का उपयोग करते समय "pi का उपयोग करते समय" कोई और अधिक अंतर्निहित अंतर्निहित त्रुटियाँ नहीं हैं ... कोण हमेशा वास्तविक संख्या होना चाहिए, पूर्णांक नहीं, अन्यथा आप आधे डिग्री के कोण का प्रतिनिधित्व कैसे करने जा रहे हैं? :) )


4
उपरोक्त के साथ सहमत हुए। मैं यह जोड़ूंगा कि मैंने एक बार एक खेल पुस्तकालय देखा था जो एक सर्कल के 256 वें हिस्से के आधार पर अपने स्वयं के मानक का उपयोग करता था। कारण यह प्रतीत होता है कि उनके ट्रिगर कार्यों ने 256 प्रविष्टियों के साथ एक लुकअप तालिका का उपयोग किया और उनके बीच प्रक्षेप किया। यदि आप ऐसा नहीं कर रहे हैं, लेकिन उनकी श्रृंखला के विस्तार से पाप / कॉस / टैन की गणना कर रहे हैं, या एफपीयू (सबसे विशिष्ट) पर एफएसआईएन / एफसीओएस निर्देशों का उपयोग कर रहे हैं, तो वे दोनों रेडियन में एक इनपुट की उम्मीद करेंगे - इसलिए आप एक रूपांतरण को सहेज कर रखें यह पूरे रेडियन में है।
DMGregory

11
"रेडियन का उपयोग क्यों नहीं करते हैं" - मैं केवल अच्छे उत्तर को दांव पर लगाने के लिए तैयार हूं "क्योंकि 4 वीं कक्षा का होमवर्क रेडियंस के साथ एक बुरा सपना होगा" जो संभवतः केवल हम में से किसी ने भी डिग्री के बारे में सुना है। :)
सीन मिडिलडिच

5
@SeanMiddleditch 4 वीं कक्षा की कक्षाओं को ताउ की ओर पलायन करना चाहिए । ताऊ 360 का रेडियन संस्करण है। यह गणित को सुव्यवस्थित करता है और पेशेवरों को इसे अपनाना भी शुरू करना चाहिए।
वैल

2
एक सर्कल के 256 वें या एक सर्कल के 16384 वें मतलब है कि आप क्रमशः अहस्ताक्षरित बाइट्स या 16 बिट संख्या का उपयोग कर सकते हैं, और जोड़ने / घटाना के ओवरफ्लो / अंडरफ्लो सही काम करते हैं। रेडियंस के साथ, आप शायद फ़्लोटिंग पॉइंट का उपयोग करके समाप्त हो जाते हैं, जिसका अर्थ है कि आप अधिक सटीक प्राप्त करते हैं आपका कोण शून्य के करीब है, और कम के रूप में यह दूर जाता है, जो कि अधिकांश समय बेकार / मूर्खतापूर्ण है।
rjmunro 12

2
@Val: ताऊ समान समस्याओं को हल नहीं करते हैं जो डिग्री करते हैं। डिग्री अभिन्न संख्या के साथ अपेक्षाकृत छोटे कोणों को मापना आसान बनाते हैं। प्रारंभिक ज्यामिति को पढ़ाने की कोशिश करते समय यह महत्वपूर्ण है जब छात्र अभी भी हाथ से सब कुछ कर रहे हैं और अंशों के साथ बहुत सहज नहीं हैं। सामान्य "क्लॉक हैंड एंगल" समस्याओं पर विचार करें कि छात्रों को कैसे दिया जाता है और वे कैसे साफ-सुथरे तरीके से डिग्री हासिल करते हैं लेकिन पाई / ताऊ रेडियन नहीं। यह खेल में एक कारण लोकप्रिय डिग्री के समान था: डिग्री के लुकअप टेबल का उपयोग करना आसान / तेज (तब वापस) था और अपनी आवश्यकताओं के लिए "अच्छा पर्याप्त" संकल्प दिया।
सीन मिडिलिच

4

नाथन का जवाब बहुत ठोस है। मैं अधिक सामान्य दृश्य की आपूर्ति करना चाहता हूं:

अधिकांश जटिल इकाइयों में मूल रूप से लागू होने वाली सबसे जटिल गणितीय अवधारणा वास्तविक संख्या के क्षेत्र के लिए मॉडल के रूप में फ्लोटिंग पॉइंट नंबर हैं। दृश्य ज्यामितीय तीन आयामी वास्तविक वेक्टर अंतरिक्ष पर आधारित है is। निर्देशांक वास्तविक संख्याएं हैं। ज्यामितीय मात्रा लंबाई पर आधारित होती है , जो एक इकाई का एक वास्तविक गुणक है।

वास्तविक संख्या और लंबाई में इस आधार के कारण, यह वास्तविक संख्याओं द्वारा कोणों को मॉडल करना भी व्यावहारिक है। लंबाई। रेडियन दिए गए कोण के साथ एक इकाई सर्कल के चाप की लंबाई है। इस प्रकार यह वास्तविक संख्याओं के आधार पर इन सभी अन्य इकाइयों के साथ सबसे अधिक संगत कोण का मॉडल है। लंबाई। उदाहरण के लिए, x के छोटे मानों के लिए सन्निकटन पाप x ~ x उस बिंदु से x- अक्ष से चाप द्वारा इकाई चक्र पर एक बिंदु के y-निर्देशांक का एक अनुमान है।

एक भूल नहीं करनी चाहिए, कि एक कोण है नहीं लंबाई। यह दो चौराहों को सीधी रेखाओं द्वारा निर्मित विमान के 4 भागों में से एक है। यह मात्रा the और यूक्लिडियन मीट्रिक में विमानों की समरूपता से बंधी है।

यह एक प्राकृतिक है जिसे एटोपेन अंतराल [0,1) (या (0,1]) के कोण को एक सिरे से मोडना है, एक पूर्ण बिंदु के भाग के रूप में एक कोण का मान दिया जाता है। पूर्णांक मात्र 1 / हैं। पूर्ण मोड़ का 360; (BTW: सैद्धांतिक रूप से, यह वास्तविक संख्याओं के लिए प्रयुक्त दशमलव प्रणाली की तुलना में बेहतर विकल्प है)।


0

जब मैं रेडियंस का उपयोग करता हूं, तो निर्दिष्ट सभी कारणों के लिए, कम से कम एक अच्छा कारण है कि डिग्री क्यों पसंद की जाती है: परिशुद्धता और त्रुटियों का संचय। एक समय में एक पूर्ण चक्र 1 डिग्री के माध्यम से घूमना सटीक है। एक समय में पूर्ण चक्र 2PI / 360 रेडियन के माध्यम से घूमना नहीं है। पिक्सेल ग्रिड पर 4 बार 90 डिग्री परिक्रमा करने से आपको वह स्थान वापस मिल जाता है, जहां आपने शुरुआत की थी। पिक्सेल ग्रिड पर 2PI / 4 रेडियन घुमाव का प्रदर्शन 4 बार नहीं होता है।


इस आनुभविक रूप से परीक्षण करना, रेडियों में एकल परिशुद्धता फ्लोट वृद्धि के साथ चार 90 डिग्री के घुमाव के बाद, मुझे 1.75E-7 (5 मिलियन में 1 भाग से कम) की कुल त्रुटि मिलती है। पिक्सेल ग्रिड पर, घूमने वाली वस्तु / फ्रेम की त्रिज्या लाखों पिक्सेल में होनी चाहिए, इससे पहले कि आपको बाहरी किनारे पर 1 पिक्सेल त्रुटि का अनुभव होगा (जहां यह होना चाहिए वहां 0.5 से अधिक रैखिक px)। दूसरे शब्दों में, सटीक हानि व्यवहार में एक मुद्दा होने की संभावना नहीं है (विशेषकर यदि आप डबल्स का उपयोग करते हैं)।
DMGregory

एक संख्यात्मक दृष्टिकोण से आप सही हैं, लेकिन एक दृश्य परिप्रेक्ष्य से अगर एक हार्ड किनारे से एक पिक्सेल गलत मूल्य पर जाता है, तो आप खराब हो जाते हैं।
ddyer

ऊपर "लाखों पिक्सेल" नोट देखें। विशिष्ट आकारों के स्प्राइट्स के लिए (जैसे, 2048 पिक्सेल चौड़े, या छोटे के आदेश पर) त्रुटि काफी हद तक आधे पिक्सेल से कम होगी, और इसलिए पिक्सेल ग्रिड के अंतर्निहित चक्कर द्वारा मिटा दिया जाएगा। इसके अलावा, ध्यान दें कि एक बार में 360/7 डिग्री घूमना बहुत ही त्रुटियों को जमा करेगा। आप दो सिस्टम की योग्‍यता (घातांक सीमा पर कुछ सीमा के साथ) के रूप में प्रतिनिधित्व करने योग्य वेतन वृद्धि से चिपके हुए दोनों प्रणालियों के साथ राउंडिंग त्रुटियों को समाप्त कर सकते हैं, लेकिन कोड को बदलना शायद आसान है जो कई छोटे वेतन वृद्धि को जमा नहीं करता है।
DMGregory

@DMGregory का अर्थ "पी के साथ निहित गोलाई त्रुटि" था। अन्य विकल्प एकल / युगल का उपयोग नहीं करना है, लेकिन कारकों के रूप में संख्याओं का प्रतिनिधित्व करने का एक तरीका है (इसलिए 2 * pi / 360 का प्रतिनिधित्व गणना के परिणाम के रूप में नहीं बल्कि उस सूत्र के रूप में करें) और केवल आवश्यक होने पर परिणाम की गणना करें। मुझे नहीं पता कि कोई "वास्तविक" कार्यक्रम ऐसा करता है, लेकिन मैथमेटिका जैसी सामग्री हमेशा "1/3" को "0.333333 ....." के बजाय "1/3" के रूप में दर्शा सकती है। लेकिन मैं तुम्हें रहे हों तो सही लगता है कि नंबर के माध्यम से जाने के बाद, गोलाई त्रुटि है वहाँ लेकिन तुच्छ
माइकल Stum

2
1 डिग्री के कोण को रेडियन की तुलना में डिग्री में सटीक रूप से प्रतिनिधित्व करना आसान हो सकता है, किसी वस्तु को घुमाना बिल्कुल भी सही नहीं है, क्योंकि इसके लिए त्रिकोणमितीय कार्यों की आवश्यकता होती है। cos 1 ° पाई / 180 के रूप में गोलाई त्रुटियों के अधीन है ।
थॉमस डेस

-3

आइए सहमत हों, कि किसी भी विकल्प को चुनना बेहतर है और दो परिभाषाओं का उपयोग करने की तुलना में इसे छड़ी करना बहुत कम अनुमान है जो उनमें से एक वर्तमान फ़ंक्शन के लिए आवश्यक है। फिर पाप और कॉस के कार्यान्वयन के लिए चाप की लंबाई का उपयोग अधिक स्वाभाविक है जो कि इस तरह से इसे लागू करने के लिए cmath का एक कारण हो सकता है। चूंकि खेल अक्सर सी ++ या सी में लिखे जाते हैं और पहले से ही पाप और कॉस लागू होते हैं, यह उस परिभाषा से चिपके रहने के लिए समझ में आता है।

[पेंच आप विरासत opengl]


यह वास्तव में सवाल का जवाब नहीं दे रहा है। क्या आपको इसके बजाय किसी अन्य उत्तर पर टिप्पणी करने का मतलब था?
जोश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.