2011-09-05 13 views
33

मैं एक .NET कार्यान्वयन की तलाश में हूं जो बिंदुओं के सेट से डेलाउने त्रिकोण बनाता है।कुशल Delaunay त्रिकोण

मैंने पहले से ही कुछ कार्यान्वयन का परीक्षण किया है, लेकिन वे सभी केवल थोड़ी सी मात्रा (20,000 तक) के लिए काम करते हैं।

मुझे कुछ ऐसा चाहिए जो उचित समय में 500,000 अंक संभाल सके।

+0

यह अजीब है कि यह केवल 20000 अंक संभाल सकता है; इसमें केवल ओ (एन * लॉग (एन)) चल रहा समय – Simone

+7

क्या आपने http://www.s-hull.org/ पर सी # कार्यान्वयन का प्रयास किया था? इसका उपयोग करने वाले एल्गोरिदम को तेज़ माना जाता है। – CodesInChaos

+0

मैंने s-hull.org algo का उपयोग किया है। कोड में चल रहे पुनरावर्तन की असाधारण संख्या के कारण, 100,000 या उच्चतर अंक प्राप्त होने के बाद प्रदर्शन महत्वपूर्ण रूप से घट जाता है। यह सुनिश्चित नहीं है कि इसे कैसे हराया जाए। मैंने सुना है कि वहाँ एक और अलगाव था जो कोड की पुनरावृत्ति को कम करता है, यह सुनिश्चित नहीं करता कि इसे क्या कहा जाता था (शायद डी वॉल या कुछ हो सकता है)। – code4life

उत्तर

1
+0

यह जेटीएस के लिए एक रैपर है - जो स्पष्ट रूप से 3 डी का समर्थन नहीं करता है - http://tsusiatsoftware.net/jts/jts-faq/jts-faq.html – JumpingJezza

11

मैं एक ही बात के लिए देख रहा था और मैं एक सी # 4.0 पुस्तकालय पाया MIConvexHull कहा जाता है:।।

"एक उत्तल पतवार एल्गोरिथ्म और 2 डी, 3 डी, और उच्च आयामों के लिए पुस्तकालय कोड भी डेलॉनाय triangulations गणना करने के लिए इस्तेमाल किया जा सकता और Voronoi इनपुट डेटा के meshes मानक संकेत मिलता है कि उत्तल पतवार कोड और 4 और उच्च आयामी त्रिभुज कोड सी ++ लाइब्रेरी CGAL द्वारा प्रदान किए गए समाधान के बराबर या बेहतर है। "

http://miconvexhull.codeplex.com/

अद्यतन Sep/2016:

इस पुस्तकालय Github के लिए ले जाया गया है और ऐसा लगता है कि यह अब MIT लाइसेंस (उदाहरण के कुछ जीपीएल कर रहे हैं) के तहत जारी किया गया है। आप नवीनतम संस्करण यहाँ पा सकते हैं:

https://github.com/DesignEngrLab/MIConvexHull

प्रलेखन स्रोत कोड में वास्तव में है और यह प्रयोग आसान है। यहाँ डेलॉनाय ट्राईऐन्ग्युलेशंस के लिए प्रासंगिक स्रोत फ़ाइल है:

https://github.com/DesignEngrLab/MIConvexHull/blob/master/MIConvexHull/Triangulation.cs

आप 2012 से मूल संस्करण देखने के लिए यहां एक नजर डालें चाहते हैं:

http://miconvexhull.codeplex.com/SourceControl/changeset/view/e1b26677eb1a#MIConvexHull/Triangulation/Triangulation.cs

+0

अभी भी चाल है। यह सेकंड के मामले में 500 के अंक आरेख सेट करता है। – OzrenTkalcecKrznaric

+0

कोई डाउनलोड नहीं, कोई दस्तावेज़ नहीं। पेज डाउनलोड गर्व से कहता है कि आप इसे डाउनलोड नहीं कर सकते हैं, और इसके बजाय आपको मालिकाना प्रोजेक्ट प्रारूप की व्याख्या करने की आवश्यकता है, आपको कुछ स्रोत उदाहरण मिलते हैं, और निर्देशों को रिवर्स-इंजीनियर करते हैं। और यह जीपीएलवी 3 है, जो बहुत सारे उपयोगों का उल्लंघन करता है। एक महान पुस्तकालय नहीं है! – Adam

+0

यदि आप गिथब रेपो को देखते हैं तो आपको पता चलेगा कि स्रोत कोड दस्तावेज है और इसे एमआईटी के तहत लाइसेंस प्राप्त है। – Pablo

1

वहाँ एक समाधान G# कहा जाता है ।

इसमें डेलाउन त्रिकोण (ब्रेकलाइन के साथ भी) है। अपनी वेबसाइट पर प्रदर्शन ग्राफ से आप लगभग 30 के दशक में 500k अंक त्रिकोण करने में सक्षम होना चाहिए।

+0

खराब ढांचे और मुफ्त –

15

आप 2 डी डेलॉनाय ट्राईऐन्ग्युलेशंस का निर्माण करना चाहते हैं, Triangle.Net का उपयोग करें। यह शेवचुक के प्रसिद्ध Triangle कार्यक्रम का सीधा सी # पोर्ट है।

+0

आप भयानक हैं :)। मैं ठीक उसी लिए देख रहा था: डी – Flamy

+2

ऐसा लगता है कि Triangle.Net MIT लाइसेंस के तहत लाइसेंस प्राप्त है, लेकिन जाहिरा तौर पर यह सी # करने के लिए त्रिभुज के एक सीधे बंदरगाह है, और त्रिभुज एमआईटी के तहत लाइसेंस प्राप्त नहीं कर रहा था। मुझे संदेह है कि यह वैधता है। –

+0

मैं खुद Triangle.NET का उपयोग कर समाप्त हुआ। यूनिटी 5 के लिए इसका उपयोग करना, एकता के साथ काम करने के लिए नेट 4.5 प्राप्त करने के लिए केवल दो छोटी चीजों को ठीक करना पड़ा। –

संबंधित मुद्दे