सबसे आसान समाधान, और मुझे लगता है कि जिसकी आपको सबसे अधिक संभावना है, वह अक्ष-संरेखित बाध्यकारी बॉक्स की गणना करना है, जो कि न्यूनतम/अधिकतम x & y मानों को ढूंढने का मामला है, फिर उनसे एक बॉक्स का निर्माण।
मैं तुम्हें, उस के लिए छद्म कोड देंगे, यह देखते हुए कि आप प्रकार है कि अपने ज्यामिति में ...
type point { float x; float y; }
type box { point topleft; point topright; point bottomleft; point
function bounding_box(points)
{
xmin = min(points.x)
xmax = max(points.x)
ymin = min(points.y)
ymax = max(points.y)
return new box{
topleft = { x = xmin, y = ymax },
topright = { x = xmax, y = ymax },
bottomleft = { x = xmin, y = ymin },
bottomright = { x = xmax, y = ymin }
};
}
व्यक्त किया जाता है तो इन दी पोस्ट नहीं किया है:
point[] points = [[x = -2, y = 0], [x = 1, y = 2], [x = 1, y = 1], [x = -1, y = -2]];
box bounds = bounding_box(points);
निम्न में से सब सच हो जाएगा:
bounds.topleft == [x = -2, y = 2];
bounds.topright == [x = 1, y = 2];
bounds.bottomleft == [x = -2, y = -2];
bounds.bottomright == [x = -1, y = -2];
बेशक
, अगर समन्वय प्रणाली टी में सबसे कम निर्देशांक सेशन (उदा। एक ठेठ प्रदर्शन की तरह) - तो आपको गणना को उलटा करना होगा; या ऑब्जेक्ट-स्पेस में परिणाम की गणना करें और फिर बाद में लॉजिकल स्पेस में अनुवाद करें।
नोटिस मैं भविष्य में एक मनमाने ढंग से गठबंधन बॉक्स में अपडेट करने के लिए भविष्य में निर्णय लेने के मामले में सभी चार कोनों को व्यक्त करने वाले बॉक्स के लिए एक प्रकार के लिए गया हूं (हालांकि उसी टोकन से आप केवल एक बिंदु का उपयोग कर सकते हैं उस के लिए + 2 वैक्टर)।
दुर्भाग्य से मुझे नहीं पता कि इस समस्या से कहां से शुरुआत करें। मैं उस चरण में हूं जहां मेरे पास टाइप स्ट्रिंग की सूची में मेरे निर्देशांक हैं और मैं यहां से कैसे आगे बढ़ना चाहता हूं, इस बारे में अनिश्चित हूं। – CSharpened
@Well आपके पास दो प्रकार हैं: अक्ष-संरेखित बाध्यकारी बॉक्स; जो केवल न्यूनतम x/y और अधिकतम x/y ढूंढकर पाया जाता है। या आपके पास मनमाने ढंग से उन्मुख बाध्यकारी बॉक्स है जो अधिक जटिल है (http://en.wikipedia.org/wiki/Minimum_bounding_box_algorithms)। यदि आपको पृथ्वी के वक्रता को ध्यान में रखना आवश्यक है (जो मुझे आशा है कि आप नहीं करते हैं), हालांकि तकनीकी रूप से आप अभी भी एक बॉक्स बना रहे हैं, लेकिन यह वास्तव में इसके बजाय एक क्षेत्र की सतह का एक भाग है (आपको जो चाहिए वह शायद बहुत अधिक है) –
मैं देखता हूं। मुझे एक ऐसा फ़ंक्शन चाहिए जो बॉक्स के लिए 4 निर्देशांक प्रदान करेगा। तो दो एक्स मान और दो वाई मान। क्या आप सुझाव देंगे कि ऐसा करने का सबसे अच्छा तरीका मेरे निर्देशांक को विभाजित करना होगा और फिर सबसे कम एक्स मान और न्यूनतम वाई मान खोजने के लिए उन सभी की तुलना करें? अगर मैं ऐसा करना चाहता था तो मुझे लगता है कि मुझे केवल एक मिनीएक्स वैल्यू और अधिकतम मूल्य मिलेगा?उन दो आंकड़ों से दूसरे एक्स और वाई मानों की गणना करना संभव है? क्षमा करें अगर मैं थोड़ा खो गया लगता है। स्थानिक मेरा क्षेत्र बिल्कुल नहीं है। – CSharpened