2010-08-24 22 views
8

से 2 डी त्रिभुज बनाएं मुझे किसी शर्त के साथ 2 डी बिंदुओं की सूची से 2 डी त्रिकोण बनाना होगा: किसी भी किनारे की लंबाई पूर्वनिर्धारित स्थिर से अधिक नहीं हो सकती है।2 डी अंक

कुछ इस तरह: alt text

आप किसी भी एल्गोरिथ्म है कि यह कर सकते हैं पता है? या कोई सलाह?

धन्यवाद!

उत्तर

7

Delaunay triangulation आज़माएं, फिर किसी भी किनारों को हटा दें जो बहुत लंबे समय तक हैं।

उपरोक्त आलेख से, आप CGAL's 2D triangulation page पर एक लिंक देखते हैं।

+0

+1 Delaunay त्रिकोण के लिए +1। यह स्वाभाविक रूप से अच्छी तरह से "संतुलित" त्रिकोण बनाता है। इसे किनारों के किनारों की संभावना को कम करने का उचित काम करना चाहिए, लेकिन यह विशिष्ट किनारे की लंबाई के बारे में कोई गारंटी नहीं देता है। मुझे नहीं लगता कि आप केवल किनारों को हटा सकते हैं, लेकिन यदि कोई समस्या है, तो ऐसा लगता है कि यह असंभव है (हालांकि असंभव नहीं है?) कि एक वैकल्पिक त्रिकोण है जो काम करता है। परेशानी है, भले ही यह संभव हो (यकीन नहीं - मेरी गणना ज्यामिति जंगली है) शायद यह खोजना मुश्किल होगा। यह एक कोशिश-सब-संभव-त्रिभुज की तरह हो सकता है। – Steve314

2

सबसे पहले, सभी संभावित किनारों को उत्पन्न करें (यानी निरंतर की तुलना में निकटतम अक्षरों को जोड़ना)। फिर जब उनमें से दो छेड़छाड़ करते हैं, तो उनमें से एक को हटा दें। इस चरण को तब तक दोहराएं जब तक कि कोई चौराहे न हो।

यह समाधान काफी प्राचीन है, यह संभवतः तेज़ी से करना संभव है।

1

मैं svick का जवाब चाहते -

लागू करते समय मुझे क्या निम्नलिखित

  1. अंक की प्रत्येक जोड़ी के
  2. क्रमबद्ध लंबाई से सूची के बीच लाइनों की गणना
  3. सभी लाइनों से अधिक समय निकालें हैं आपका थ्रेसहोल्ड
  4. सूची को जारी रखें (सबसे छोटी से सबसे छोटी) यदि यह किसी अन्य पंक्ति को पार करता है तो उसे हटा दें।