सिंपल स्टूपिड फ़नल एलगोरिदम कैसे काम करता है?


14

डिगिंग डक पर दिखाए गए फ़नलिंग एल्गोरिथ्म के साथ काम करना मुझे यकीन नहीं है कि फ़नल का पता कैसे काम करता है।

क्या कोई मुझे स्पष्ट रूप से विधि की व्याख्या कर सकता है या फ़नल का पता लगाने का एक वैकल्पिक तरीका सुझा सकता है और यदि फ़नल ओवरलैप करते हैं?

जवाबों:


18

एल्गोरिथ्म आपके द्वारा पहले प्राप्त पथ से शुरू होता है, इस मामले में त्रिकोण की सूची:

पथ

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

इस पोर्टल की सूची को उनके चित्रों में पीले डॉटेड रेखा खंडों के रूप में दिखाया गया है।

पोर्टल

एल्गोरिथ्म एक विस्तृत फ़नल के साथ शुरू होता है और पोर्टल साइड पॉइंट्स (लाइन सेगमेंट के अंतिम बिंदु) के साथ फ़नल को आगे बढ़ाते हुए फ़नल को आगे बढ़ाता है जब तक यह फ़नल (AD) को कसता है।

कलन विधि

इसका मतलब है कि प्रत्येक कदम को फ़नल किनारों को अंदर की ओर ले जाना चाहिए, यह पुराने पक्ष और संभावित नए पक्ष का प्रतिनिधित्व करने वाले वैक्टर के क्रॉस उत्पाद के साथ जांचा जा सकता है ( नीचे की छवि में P × Q ; triarea2मिकोको कोड में भी देखें )। यदि एक पक्ष के लिए आगे बढ़ने से फ़नल को तंग नहीं किया जाएगा, तो हम पोर्टल्स (ई) के वर्तमान पुनरावृत्ति के लिए उस पक्ष को अपडेट नहीं करते हैं।

आवक बढ़ रही है

दूसरे मामले को संभालने की जरूरत है जब फ़नल एक खंड खंड में पतित हो जाता है। इसके लिए एल्गोरिथ्म को ध्यान में रखते हुए कि अगर क्रॉस साइड उत्पाद का उपयोग करके "गलत" पक्ष में से कोई एक फिर से है, तो फ़नल एपेक्स द्वारा बनाए गए वैक्टर के इस समय और क्रमशः दाएं और बाएं पक्ष के अंत बिंदु ( आर × एस ) नीचे की छवि)।

पतित कीप

यदि यह मामला है, फ़नल एपेक्स से वेक्टर और सही साइड एंड पॉइंट को स्मूद पथ में जोड़ा जाता है () ऊपर की छवि में आर) में और एल्गोरिथ्म को इसके अंतिम बिंदु के साथ नए एपेक्स (FG) के रूप में पुनः आरंभ किया गया है, जब तक, बेशक, अगर यह लक्ष्य बिंदु है।


2
@ रॉल्फकोर जवाब स्पष्ट है? यदि नहीं, तो किन भागों में सुधार की आवश्यकता है?
एरिक

मुझे लगता है कि वह सिर्फ जवाब को स्वीकार करना भूल गया, यह एक बहुत अच्छा है और इसे क्रमबद्ध तरीके से ^ ^ किया जाना चाहिए।
GameDeveloper

हो सकता है, टन गोचरा, यह है कि चाल एफ में आप यह नहीं बताते हैं कि हम फिर से खरोंच से शुरू नहीं करते हैं, क्योंकि मौका मौजूद है एक तंग कोने दक्षिण की ओर इशारा करते हुए संभवत: एक तंग फ़नल बनायेगा, इसलिए हमें प्रतीक्षा करना होगा कि वास्तव में बॉट पक्ष विफल हो जाए परीक्षण और केवल एक ही नहीं। तो हम एफ के बजाय जी में करते हैं .. वैसे भी अच्छी
व्याख्या
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.