2012-06-28 23 views
5

के अंत निर्देशांक का अनुवाद करने के लिए फ़ंक्शन मेरे पास एक पंक्ति के अंत में दो बिंदु हैं।
मुझे इस लाइन के अनुवाद के अंत निर्देशांक प्राप्त करने की आवश्यकता है।
अनुवाद एक समांतर रेखा होगी जो मूल रेखा से दूरी डी है।
यहाँ मैं क्या जरूरत है की एक छवि है:लाइन

enter image description here

तो मैं एक समारोह है कि मैं इन दो अंक और दूरी से गुजरती हैं और रिटर्न में दो नए निर्देशांक प्राप्त कर सकते हैं की जरूरत है।
मैं थोड़ी देर के लिए इस समस्या पर फंस गया हूं। किसी भी तरह की सहायता को आभार समझेंगे!
धन्यवाद!

+0

'दूरी' सकारात्मक होने पर लाइन को किस दिशा में पेश किया जाएगा? नकारात्मक? – justderb

+0

यह अनुवाद किसी अन्य दिशा के बिना संदिग्ध है। लाइनों की एक अनंत संख्या है जो दूरी से दूर और डी के समानांतर हैं। – cheeken

+2

मैं चाहता हूं कि यह एक ही लंबाई और मूल के समानांतर का एक रेखा खंड बन जाए। और यदि आप पुराने और नए बिंदुओं के बीच एक रेखा खींचना चाहते थे, तो इसे मूल रेखा के साथ एक लंबवत रेखा बनाना चाहिए। मुझे यकीन नहीं है कि यह स्पष्ट है या नहीं। मैं हालांकि छवि में देखा लाइन चाहता हूँ। –

उत्तर

3

नई समन्वय की

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

संपादित करें:

लाइन के दो अंक देखते हुए, आप वेक्टर इन बिंदुओं को जोड़ने के सामान्य गणना करने के लिए की आवश्यकता होगी। Information on that is here..

मानक के अनुसार इस सदिश, गुणा , प्रत्येक बिंदु में जोड़ें।

+0

थोड़ा सा इसके साथ खेलने के बाद मैंने इसे समझ लिया! बहुत बहुत धन्यवाद। –

2

वेक्टर (x2-x1, y2-y1) की गणना करें। यह आपकी रेखा की दिशा में एक वेक्टर है। एक सामान्य वेक्टर तो इसके आकार के द्वारा

(-(y2-y1),-(x2-x1)) = (y1-y2,x1-x2). 

फूट डालो इस सदिश दिया जाता है आप

A = (y1-y2,x1-x2)/|(y1-y2,x1-x2)| 

चाहते अब दी अपनी दूरी d अपने अनुवादित बिंदु

द्वारा दिया जाएगा दिशा में इकाई वेक्टर प्राप्त करने के लिए
NewPoint = OldPoint + d * A