2012-03-26 14 views
7

पर आधारित एक समन्वय प्रणाली में किसी बिंदु के निर्देशांक कैसे प्राप्त करें समन्वय प्रणाली में किसी बिंदु के निर्देशांक कैसे प्राप्त करें जब मेरे पास मूल निर्देशांक (x, y) और मूल से कोण है बिंदु और उत्पत्ति से बिंदु तक दूरी?कोण और दूरी

+0

एक कंप्यूटिंग प्रश्न की तुलना में गणित (बीजगणित विशेष रूप से) प्रश्न की तरह लगता है। क्या आप नए बिंदु की गणना करने के लिए आवश्यक सूत्रों को जानते हैं? –

+4

http://mathworld.wolfram.com/PolarCoordinates.html या http://en.wikipedia.org/wiki/Polar_coordinate_system –

+0

समन्वय प्रणाली के प्रकार पर निर्भर करता है, लेकिन अधिकांश समय सरल त्रिकोणमितीय कार्यों का उपयोग करके पाप कहा जाता है(), कॉस()। – hovanessyan

उत्तर

22

आप Math.cos, Math.sin इस तरह का उपयोग करें। यदि आपके पास डिग्री में कोण है, तो उदाहरण के लिए आप Math.cos(Math.toRadians(angle)) का उपयोग करेंगे।

+2

+1: चूंकि यह वास्तव में जावा-फ़ंक्शंस का उपयोग करता है, जो मेरा उत्तर नहीं था :) –

+0

+1 एक पूर्ण उत्तर के लिए ... यही अनुभव है !!! – aProgrammer

+0

इसे 3 डी सिस्टम के लिए कैसे संशोधित किया जा सकता है? – helion3

2
px = x + r * cos(phi) 
py = y + r * sin(phi) 

जहां [px py] बिंदु आप खोज रहे हैं है, [x y] "मूल" है, r दूरी पर है और phi मूल से लक्षित करने के लिए कोण है।

संपादित करें: http://en.wikipedia.org/wiki/Polar_coordinate_system यह लिंक जो बार्ट कियर्स द्वारा मददगार रूप से पोस्ट किया गया था, कुछ पृष्ठभूमि जानकारी प्राप्त कर सकता है।

pointX = x + distance * Math.cos(angle) 
pointY = y + distance * Math.sin(angle) 

ध्यान दें कि Math.cos और Math.sin तर्क रेडियंस में दी गई है मान लिया गया है:

3

तो घ दूरी पर है और एक कोण है से बिंदु के coordnates हो जाएगा

(x + d * क्योंकि (ए), y + d * पाप (ए))

+0

यह गलत है क्योंकि यह ध्यान में नहीं आता है कि बिंदु कुछ अन्य मनमाना बिंदु (x, y) ऑफसेट है। –

+0

@ किगुराई; इसे इंगित करने के लिए धन्यवाद। कोड संपादित किया गया। यह टाइप करते समय मेरे दिमाग में था, मुझे नहीं पता कि मैं इसे कैसे चूक गया ... वैसे भी एक बार फिर धन्यवाद ... – aProgrammer

3

r तो x- अक्ष और बिंदु के बीच मूल से दूरी है और a कोण है (रेडियन में) आप आसानी से ध्रुवीय निर्देशांक से एक रूपांतरण के साथ निर्देशांक की गणना कर सकते हैं:

x = r*cos(a) 
y = r*sin(a) 

(यह मान लिया गया है उस उत्पत्ति को (0,0) पर रखा गया है, अन्यथा आपको अंतिम परिणाम में विस्थापन जोड़ना चाहिए)।

विपरीत परिणाम वेक्टर के मॉड्यूल की गणना करके किया जाता है (एक दूरी + कोण एक वेक्टर बनाते हैं) और आर्कटैंजेंट, जिसे atan2 funcion का उपयोग करके गणना की जा सकती है।

r = sqrt(x*2+y*2) 
a = atan2(y,x) 
संबंधित मुद्दे