आप वास्तव में इस एक के लिए trigs जरूरत नहीं है। बस ढलानों का उपयोग करें, या x
और y
में बदलें।
ढलान m = y/x
की एक पंक्ति को देखते हुए, कि लाइन के लिए लम्ब ढलान -1/m
, या -x/y
है।
लाल बिंदुओं के बीच ढलान मीटर -150/150
, या -1/1
है। मैंने आपके सकारात्मक y
अंक नीचे दिये।
इसलिए, सकारात्मक ढलान 1/1
है। आपके एक्स और वाई दोनों एक ही गति के साथ एक ही गति से बदलते हैं।
एक बार जब आप उसे जानते हैं, तो बाकी को समझना बहुत आसान होना चाहिए। चूंकि वे 45 डिग्री कोण पर गठबंधन हैं, 45-45-90
त्रिकोण का किनारा अनुपात 1 : 1 : sqrt(2)
है। तो यदि आपकी लंबाई 20
है, तो व्यक्तिगत एक्स और वाई परिवर्तन 20/sqrt(2)
होगा, या लगभग 14
पूर्णांक में होगा।
तो, आपके दो पीले बिंदु (36, 236)
, और (64, 264)
पर होंगे। यदि लाइनों को सुविधाजनक डिग्री से गठबंधन नहीं किया गया है, तो आपको arctan()
या कुछ समान उपयोग करना होगा, और रेखा और क्षैतिज रेखा के बीच कोण प्राप्त करना होगा, ताकि आप एक्स और वाई परिवर्तन के अनुपात को समझ सकें।
मुझे आशा है कि मेरा जवाब पालन करना बहुत कठिन नहीं था। अधिक सामान्य समाधान के लिए, ट्रॉबडॉर का जवाब देखें।
संपादित करें: के बाद से ओ पी ने कहा कि कम लाल डॉट वास्तव में ऊपरी लाल डॉट के चारों और घूमती है, हम बजाय एक अधिक लचीला समाधान की आवश्यकता होगी।
मैं इस उत्तर को ट्राउबडॉर से विस्तारित करने जा रहा हूं, क्योंकि मैं बिल्कुल वही कर रहा हूं। जैसा कि आपने मेरा पढ़ा है, कृपया उसकी पोस्ट देखें।
1. घूर्णन बात करने के लिए मूल से वेक्टर (200, 100) (50, 250) प्राप्त करें:
vector = (200 - 50, 100 - 250) = (150, -150)
2. x और y को स्वैप करके अपने वेक्टर घुमाएँ, और एक्स नकारना नए वेक्टर पाने के लिए:
vector = (150, -150) => swap => (-150, 150) => negate x => (150, 150)
3। नए वेक्टर से (लंबाई 1 से) इकाई वेक्टर प्राप्त करें:
vector = vector/length(vector)
= (150/length(vector), 150/length(vector))
~= (0.7071, 0.7071)
where
length(vector) = sqrt(150^2 + 150^2) ~= 212.2320
4. , लंबाई 20 के विस्थापन वेक्टर जाओ इकाई वेक्टर गुणा करके। करने के लिए/इस सदिश
displacement_vector = vector * 20
= (0.7071 * 20, 0.7071 * 20)
= (14.1421, 14.1421)
5. जोड़ें/घटाएँ अपने घूर्णन वेक्टर (बिंदु) से:
yellow_1 = (50, 250) + (14.1421, 14.1421) ~= (64, 254)
yellow_2 = (50, 250) - (14.1421, 14.1421) ~= (36, 236)
मुझे आशा है कि ऊपर के चरणों को अपने कोड तैयार करने में आपकी मदद। कोई फर्क नहीं पड़ता कि कोण क्या है, वही कदम।
क्या यह आपकी सभी समस्याओं के लिए सच है कि उन्हें 45 डिग्री से गठबंधन किया जाएगा? –
क्षमा करें, सुनिश्चित नहीं है कि आप क्या पूछ रहे हैं। गणित वास्तव में मेरा मजबूत सूट नहीं है। उपरोक्त आरेख में, x: 200, y: 100 एक एंकर पॉइंट के रूप में कार्य करेगा। जब आरेख घूर्णन हो रहा है, तो मैं लाल बिंदुओं के कोण के कोण के बावजूद पीले बिंदुओं के निर्देशांक प्राप्त करने के लिए सूत्र को जानना चाहता हूं। मुझे उम्मीद है कि इसका कोई अर्थ है। – TheDarkIn1978
आह, इसलिए यह उस कोण के लिए तय नहीं है। ठीक है, घुमावदार वेक्टर समाधान लिखने का समय! –