2010-05-06 19 views
6

मेरे पास .NET में एक आयताकार है जिसमें मैं एक अंडाकार खींचता हूं।एक अंडाकार परिधि पर एक बिंदु खोजना जो एक आयताकार के अंदर केंद्र बिंदु, ऊंचाई और चौड़ाई है?

मुझे उस आयत की चौड़ाई, ऊंचाई और केंद्र बिंदु पता है।

बेशक आयताकार का केंद्र बिंदु भी अंडाकार का केंद्र बिंदु है।

मुझे पता है कि सर्कल पर किसी बिंदु की गणना कैसे करें, हालांकि मुझे कोई अंडाकार के बारे में कोई जानकारी नहीं है।

मेरे पास उन पैरामीटर और कोण हैं, मुझे अंडाकार पर बिंदु चाहिए, क्या कोई फॉर्मूला पोस्ट कर सकता है?

मैंने देखा कि कहीं आपको 2 अंक की गणना करने की आवश्यकता है जिसमें 2 रेडी जायेगी, त्रिज्या का योग तय किया जाएगा और वे तदनुसार आकार में बदल जाएंगे।

मुझे नहीं पता कि यह कैसे करना है, मेरे पास केवल आयताकार ऊंचाई, चौड़ाई और केंद्र बिंदु है और निश्चित रूप से कोण मैं बिंदु ढूंढना चाहता हूं। किसी भी मदद के लिए

धन्यवाद Shlomi

+2

यह http://mathoverflow.net/ –

+2

@ गणेश आर पर है: गणित के बारे में सभी प्रश्न गणित प्रवाह पर नहीं हैं। वास्तव में, * SO * कहते हैं * लोगों के प्रश्नों के बहुत कम * मैथोवरफ्लो पर हैं वास्तव में गणित प्रवाह पर हैं। इसके अक्सर पूछे जाने वाले प्रश्न पढ़ें। – AakashM

+0

@ श्लोमी: अक्ष के समानांतर आयताकार के किनारे हैं? – AakashM

उत्तर

13

आप अपनी समस्या के लिए canonical form in polar coordinates उपयोग कर सकते हैं जहां चौड़ाई और एक आयत की ऊंचाई क्रमश: डब्ल्यू और है।

alt text

alt text

जहां टी रेडियन में एक कोण है, एकw/2 और है ज/2

तो साजिश आपका अंडाकार, आपको बस इतना करना है टी से करने के लिए 360 डिग्री (रेडियन में इतना है कि और 2pi है) और कैसे आप बाहर अंतरिक्ष टी, आप अंडाकार पर अंक मिलता है पर निर्भर करता है।

के बाद से अपने आयत मूल पर केंद्रित नहीं है, तो आप आयत के केंद्र के निर्देशांक, कहते हैं, (सी एक्स, सी y)

const double C_x = 10, C_y = 20, w = 40, h = 50; 
for(double t = 0; t <=2*pi; t+=0.01) 
{ 
    double X = C_x+(w/2)*cos(t); 
    double Y = C_y+(h/2)*sin(t); 
    // Do what you want with X & Y here 
} 
द्वारा यह भरपाई करनी होगी
+0

धन्यवाद, यह चाल है। –

+0

क्या होगा यदि मैं सिर्फ एक दिए गए एक्स को पास करना चाहता हूं और वाई को ग्रहण से संबंधित प्राप्त करना चाहता हूं? मुझे कैसे कार्य करना चाहिए? –

+0

फिर आप 't' के लिए हल कर सकते हैं और इसे 'वाई (टी)' में प्लग कर सकते हैं। जैसे यदि 'ए = 1, बी = 1' और आपके पास 'एक्स = 1' है, तो' एक्स = एक कॉस (टी)' या '1 = 1 * कॉस (टी) 'जिसका अर्थ है' टी = 0' एक समाधान है । इस प्रकार, 'वाई (टी) = 0'। – Jacob