में ब्रेकपॉइंट अभिसरण मैं वोरोनोई आरेखों की गणना के लिए फॉर्च्यून की स्वीपलाइन एल्गोरिदम लागू कर रहा हूं। मेरा प्राथमिक संदर्भ "कम्प्यूटेशनल जियोमेट्री: एल्गोरिदम एंड एप्लिकेशंस" डी बर्ग एट अल द्वारा है, और जब विषय का कवरेज बहुत स्पष्ट है, तो वे कई छोटे लेकिन महत्वपूर्ण विवरणों को पार करते हैं जिन्हें मुझे खुद को काम करने में परेशानी हो रही है। मैंने मदद के लिए वेब की खोज की है, लेकिन अन्य वेबसाइटें या तो पाठ्यपुस्तक की तुलना में एक उच्च अवलोकन प्रदान करती हैं, या पुस्तक द्वारा प्रदान की गई वही छद्म कोड प्रदान करती हैं।फॉर्च्यून के एल्गोरिदम
मैं निर्धारित करने के लिए समुद्र तट रेखा पर आर्क्स की एक ट्रिपल द्वारा निर्धारित breakpoints की एक जोड़ी अभिमुख या diverges, ताकि आगामी चक्र की घटनाओं का पता लगाने के लिए कि क्या कोई तरीका होना चाहिए। ऐसा लगता है कि निर्णय लेने के लिए मुझे वोरोनोई सेल किनारों के आकार के बारे में ज्ञान की आवश्यकता होगी कि फॉर्च्यून के एल्गोरिदम प्रगति के रूप में ब्रेकपॉइंट्स का पता लगाया गया है। उदाहरण के लिए, यदि मुझे ब्रेकपॉइंट द्वारा पता लगाए गए किनारे की ढलान मिल सकती है तो मैं गणना कर सकता हूं कि ब्रेकपॉइंट्स और उनकी संबंधित ढलानों द्वारा बनाई गई दो रेखाएं किस प्रकार गठित होती हैं, और यह तय करती हैं कि वे उस परिणाम के आधार पर अभिसरण करते हैं या नहीं। हालांकि, मुझे नहीं पता कि ढलानों पर जानकारी कैसे प्राप्त करें, केवल ब्रेकपॉइंट्स की वर्तमान स्थिति।
केवल जानकारी मैं के साथ काम करने के लिए है एक्स, तीन साइटों के y स्थान और है वर्तमान sweepline (मैं एक क्षैतिज sweepline उपयोग कर रहा हूँ) की y- निर्देशांक।
असल में, मेरे पास अभिसरण निर्धारित करने का एक विचार है। दो साइटों को देखते हुए, वे समुद्र तट के दो वर्गों के बीच ब्रेकपॉइंट को परिभाषित करते हैं, केवल स्वीप लाइन की वर्तमान स्थिति से ही नियंत्रित होता है। मैंने दो ब्रेकपॉइंट्स की स्थिति रिकॉर्ड करने के बारे में सोचा, अस्थायी रूप से स्वीप लाइन को थोड़ी सी मात्रा में आगे बढ़ाना, और अपनी नई स्थिति रिकॉर्ड करना। चूंकि एक सामान्य वोरोनोई आरेख में किनारों की वक्र नहीं होती है, यदि ब्रेकपॉइंट्स की नई जोड़ी के बीच की दूरी पुरानी जोड़ी के बीच की दूरी से कम है, तो ब्रेकपॉइंट्स अभिसरण होते हैं; अन्यथा, वे अलग हो जाते हैं। लेकिन यह खतरनाक दोनों लगता है (मुझे नहीं पता कि यह हमेशा काम करता है) और बदसूरत। निश्चित रूप से एक बेहतर तरीका होना चाहिए।
कोई भी विचार की सराहना की है, और स्यूडोकोड (एक सी # तरह वाक्य रचना में संभव हो तो) विशेष रूप से इसलिए। इसके अलावा मुझे पता है कि कम्प्यूटेशनल ज्यामिति पुस्तकालय हैं जिन्हें मैं वोरोनोई आरेख प्राप्त करने के लिए उपयोग कर सकता हूं, लेकिन यह एक व्यक्तिगत शिक्षण अभ्यास है, इसलिए मैं एल्गोरिदम के सभी हिस्सों को स्वयं लागू करना चाहता हूं।
आप delauny ट्राईऐन्ग्युलेशंस का समाधान हो गया:
यहाँ कंप्यूटिंग अंक circumcenter के घ एक, ख, ग के लिए सी # कोड का एक टुकड़ा है? – Bytemain
नहीं, यह कम्प्यूटेशनल ज्यामिति में मेरा पहला प्रयास है। मुझे पता है कि वे एक-दूसरे के दोहरे हैं, लेकिन मैं पहले फॉर्च्यून के एल्गोरिदम को सरल बनाना चाहता हूं। – Drake