मैं बहुभुज जाल में परीक्षण के अंदर एक त्रिकोण कैसे कर सकता हूं?


10

यहाँ छवि विवरण दर्ज करें मेरे पास (V1, V2, V3)नियमित रूप से त्रिकोण जाल पर 3 कोने बेतरतीब ढंग से चुने गए हैं। इन 3 छोरों के लिए, मैंने उनके बीच में जियोडेसिक दूरी और पथ (डीजकस्ट्रा का उपयोग करके) की गणना की है और उपरोक्त आकृति में त्रिकोण जैसी सतह बनाई है।

अब, मेरे पास वे कोने हैं जो प्रत्येक पथ में स्थित हैं और किसी दिए गए शीर्ष से जियोडेसिक दूरी की गणना कर सकते हैं।

मुझे जो करना है वह त्रिभुज जैसे क्षेत्र में स्थित कोने या त्रिकोण को प्राप्त करना है। मैं यह कैसे कर सकता हूँ?


2
यह मानते हुए कि बैरिएट्रिक दृष्टिकोण वह करता है जो मुझे लगता है कि यह बड़े सेटों के साथ काफी धीमा होगा। वांछित सेट में केवल 9 कोने के साथ 9 मिलियन कोने के सेट की कल्पना करें। जब v1, v2, और v3 आपको संपूर्ण जानकारी प्रदान करते हैं तो आपको इसकी आवश्यकता क्यों होती है। बाढ़ भरण उत्तर सबसे तेज लचीला समाधान होगा। हालांकि अनम्य, यदि आप मान सकते हैं कि आपके पास रेखायें हैं जैसे कि अब आप ज्यामिति में करते हैं तो स्कैनलाइन सबसे तेज़ तरीका होगा।
एंड्रयू विल्सन

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

3
एक ग्राफ के साथ बाढ़ भराव एक नोड पर शुरू होता है, हर पड़ोसी नोड पर जाएं यदि सीमा की स्थिति पूरी की जाती है और दौरा नहीं किया जाता है, तो इसे चिह्नित के रूप में चिह्नित करें, और दोहराएं (पुनरावृत्ति)। परिवर्तन: विज़िट के अनुसार पथ पर प्रत्येक नोड को चिह्नित करें और सेट के अंदर एक नोड से शुरू करें। फिर बस सीमा स्थिति के रूप में मुलाकाती जांच का उपयोग करें।
एंड्रयू विल्सन

विस्तृत विवरण के लिए धन्यवाद। मुझे बाढ़ भरना अधिक उचित लगता है, लेकिन मैं बाढ़ भरने और स्कैन लाइन दोनों को लागू करना चाहता हूं, फिर प्रदर्शनों की तुलना करें।
मकोकाबस

जवाबों:


4

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


मैं बाढ़ भराव एल्गोरिथ्म से परिचित नहीं हूं। आपका स्पष्टीकरण मुझे थोड़ा जटिल लगता है। क्या आप कृपया देखने के लिए एक सभ्य संदर्भ प्रदान कर सकते हैं? धन्यवाद।
मकोकाबस

कुछ पढ़कर मुझे इसका हल मिला। धन्यवाद।
मकोकाबस

3

मैंने पहले से ही बाढ़ भराव के उपयोग पर टिप्पणी की है और यह बेहतर है कि यह अधिक लचीला कैसे हो लेकिन एक और संभावित समाधान स्कैनलाइन है। (मैं कहता हूं कि यह संभव है क्योंकि यह आपकी ज्यामिति के बारे में बहुत सारी धारणाएं बनाता है लेकिन विशेष रूप से दिखाए गए सेट और इसी तरह के कई कामों के लिए।)

3 बिंदुओं के साथ अपने उदाहरण के लिए: खंड v1, v2 और उस v3 पर स्थित रेखा से प्रतिच्छेदन शीर्ष ज्ञात करें। (वी 2 के ऊपरी बाएँ तरफ का शीर्ष) हम इस शीर्ष v4 को कॉल करेंगे।

For every vertex pair a,b down v1,v4 and v1,v3 
    For every vertex from a to b
        Mark as in the set
For every vertex pair a,b down v3,v2 and v4,v3
    For every vertex from a to b
        Mark as in the set

यहाँ छवि विवरण दर्ज करें

इसे स्कैनलाइन कहा जाता है क्योंकि (ऊपर की छवि में) आप लाल और हरे रंग की रेखाओं को एक साथ नीचे जाते हैं और फिर लाल और नीले रंग की रेखाएँ एक साथ लाइनों को स्कैन करते हैं जैसे आप जाते हैं।

इंडेक्स पैटर्न होने पर यह समाधान बहुत तेज़ होगा, जो अक्सर होता है। अन्यथा यह निर्धारित करने के लिए एक गणना की आवश्यकता होगी कि कौन सा पड़ोसी शीर्ष रेखा पर स्थित है।

मजेदार बात है स्कैनलाइन, बैरिएट्रिक टेस्टिंग (त्रिकोण बाउंडिंग बॉक्स में), और बाढ़ भराव 3 डी रेंडरिंग में त्रिकोण ड्राइंग के सभी तरीके हैं।


2

मुझे लगता है कि आप सतह पर प्रत्येक बिंदु के लिए कुछ सतह-बाउंड बैरिकेटिक निर्देशांक की गणना कर सकते हैं, और फिर उन्हें त्रिकोण के अंदर या बाहर की जांच करने के लिए उपयोग कर सकते हैं।

मेरे पास हाथ में एक सटीक एल्गोरिथ्म नहीं है, लेकिन मुझे यह निम्नलिखित पेपर मिला जो इस तरह के निर्देशांक को बिल्कुल संभालता है।

सतहों पर बैरिएट्रिक निर्देशांक


उत्तर और संदर्भ पत्र के लिए धन्यवाद। मैं प्रस्तावित विधि को लागू करने का प्रयास करूंगा।
मकोकाबस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.