2009-06-25 56 views
18

सी में atan2 समारोह निम्नलिखित हस्ताक्षर हैं:एक्स, वाई के बजाए एटान 2 वाई, एक्स के तर्क क्यों हैं?

double atan2(double y, double x); 

अन्य भाषाओं के साथ-साथ यह करते हैं। यह एकमात्र ऐसा कार्य है जिसे मैं जानता हूं, एक्स, वाई ऑर्डर के बजाए वाई, एक्स ऑर्डर में इसके तर्क लेता है, और यह मुझे नियमित रूप से खराब करता है क्योंकि जब मुझे निर्देशांक लगता है, तो मुझे लगता है (एक्स, वाई)।

क्या किसी को पता है कि atan2 के तर्क आदेश सम्मेलन इस तरह क्यों है?

+0

यह भाषा-अज्ञेयवादी के रूप में क्यों टैग किया गया है? –

+0

@mgroves यह कई भाषाओं में होता है –

+0

क्योंकि एक ही प्रारूप बहुत सी भाषाओं में दिखाई देता है। एटान 2 विकी प्रविष्टि से: "यह कम से कम फ़ॉरट्रान प्रोग्रामिंग भाषा तक वापस आता है और वर्तमान में सी प्रोग्रामिंग भाषा के गणित में पाया जाता है। मानक लाइब्रेरी, जावा मैथ लाइब्रेरी, सी # स्टेटिक मैथ क्लास, और अन्यत्र। कई स्क्रिप्टिंग पर्ल जैसे भाषाओं में सी-स्टाइल एटान 2 फ़ंक्शन शामिल है। [1] " – CookieOfFortune

उत्तर

23

क्योंकि मुझे विश्वास है कि यह आर्कटान (वाई/एक्स) से संबंधित है, इसलिए वाई शीर्ष पर दिखाई देता है।

यहाँ एक अच्छा इसके बारे में एक सा बात कर कड़ी है: Angles and Directions

+0

समय के मिस्ट में कुछ प्रोग्रामर ने फैसला किया कि यह इस तरह से समझ में आया है। (और यह 'atan2' क्यों है? क्यों नहीं 'angle_for'? मुझे लगता था कि यह आर्कटैंजेंट-स्क्वायर था ...) –

+0

मुझे लगता है कि यह बहुत समझ में आता है ... – CookieOfFortune

+2

हाँ, आर्कटान (वाई/एक्स) होता है इतनी बार कि अगर आर्कटान 2 ने एक्स लिया, तो यह मुझे हर समय खराब कर देगा।स्लैश को अल्पविराम में बदलना अच्छा लगता है। – Nosredna

11

मेरे धारणा हमेशा किया गया है कि इस ट्रिग परिभाषा की वजह से है, यानी कि

tan(theta) = opposite/adjacent 

जब से विहित कोण के साथ काम मूल, विपरीत हमेशा Y है और आसन्न हमेशा एक्स है, इसलिए:

atan2(opposite, adjacent) = theta 

Ie, इसे उस तरह से किया गया था तो वहाँ फिर से साथ कोई आदेश देने की भ्रम की स्थिति गणितीय परिभाषा के लिए दृश्य।

+2

रन पर वृद्धि .... – jlarson

+0

सोह काह तोआ मेरा निमंत्रण है :) –

+0

good'ol 7 वीं कक्षा ज्यामिति, मैं अभी भी कभी-कभी इसका उपयोग करता हूं। – CookieOfFortune

1

मान लीजिए कि एक त्रिकोण इसके विपरीत दिशा में वाई कहा जाता है, आसन्न भुजा के साथ आयत कहा जाता एक्स:

तन (कोण) = y/एक्स

arctan (तन (कोण)) = arctan (y/एक्स)

0

यह क्योंकि स्कूल में, ढाल की गणना के लिए स्मरक
रन से अधिक वृद्धि है, या दूसरे शब्दों वि/dx, या अधिक संक्षेप में y/एक्स में है।

और यह आदेश आर्कटैंजेंट कार्यों के तर्कों में फंस गया है।

तो यह एक ऐतिहासिक कलाकृति है। मेरे लिए यह
पर विचार करता है जब मैं atan2 का उपयोग करता हूं। अगर मैं अंतर के बारे में सोच रहा हूं, तो मुझे यह सही लगता है
और यदि मैं समन्वय जोड़ों के बारे में सोच रहा हूं, तो मुझे यह गलत लगता है।

+0

मुझे आश्चर्य है कि अगर चर को डीएक्स और डीई लेबल किया गया तो यह अधिक स्पष्ट होगा? – CookieOfFortune

संबंधित मुद्दे