मेरे पास एक प्रणाली है जहां आप एक दृश्य में एक नोड रखने के लिए एक बार क्लिक कर सकते हैं। जब आप 3 नोड्स रखते हैं, तो यह एक त्रिकोण बनाता है। जब आप भविष्य के किसी भी नोड को रखते हैं, तो यह उस नोड को 2 निकटतम मौजूदा नोड्स में शामिल करके एक नया त्रिकोण बनाता है।
यह ज्यादातर समय ठीक काम करता है लेकिन बहुत तीव्र कोणों के साथ त्रिकोण के पास उपयोग किए जाने पर त्रुटिपूर्ण है, क्योंकि 2 निकटतम नोड्स में से एक अक्सर ऐसा नहीं होता है जिसका उपयोग किया जाना चाहिए।
उदाहरण के लिए, नीचे दी गई छवि देखें। मेजेंटा त्रिकोण पहले रखा गया है। यदि मैं तब X की स्थिति पर क्लिक करता हूं, तो मुझे जो मिलेगा वह एक नया त्रिकोण है जहां नीला ओवरले है। मैं जो चाहता हूं वह एक नया त्रिकोण है जहां ग्रीन ओवरले है। (अर्थात, इस उदाहरण में मैजेन्टा एक के लिए सममित। स्पष्टता: हरे और मैजेंटा त्रिकोण ओवरलैप नहीं करते हैं - हरा एक नीले रंग के नीचे बाईं ओर सबसे अधिक फैलता है)
नए त्रिभुज बनाते समय मैं यह कैसे निर्धारित कर सकता हूं कि कौन से 2 मौजूदा वर्तन का उपयोग करना है ताकि त्रिकोण इस तरह से तैयार न हो?
संपादित करें : निकटतम किनारे की खोज बेहतर परिणाम देती है , लेकिन पूर्ण नहीं। इस स्थिति पर विचार करें:
'निकटतम किनारा' परीक्षण अस्पष्ट है, और एबी या एसी (दोनों के लिए एक्स के निकटतम बिंदु के रूप में ए पर है) वापस कर सकते हैं। वांछित परिणाम एसी होगा, एसीएक्स त्रिकोण बनाने के लिए जिसमें कोई किनारा ओवरलैपिंग नहीं होगा। मैं यह कैसे सुनिश्चित कर सकता हूं? (यदि मुझे संभव नहीं है कि टाई-ब्रेकर के रूप में व्यक्तिगत बढ़त ओवरलैप परीक्षण करना है, तो संभव है कि मैं चिंतित हूं कि निकटतम किनारे परीक्षण जरूरी नहीं होगा कि 2 बिल्कुल समान हैं, फ्लोटिंग पॉइंट सटीक मुद्दों को देखते हुए।)