2009-09-18 24 views
19

मैं कुछ (2 डी) डेलाउने त्रिकोण के साथ खेलना चाहता हूं, और साथ काम करने के लिए एक उचित छोटी पुस्तकालय की तलाश में हूं। मुझे सीजीएएल के बारे में पता है, लेकिन मैं सोच रहा था कि वहां कुछ सरल और सीधा था।लाइटवेट डेल्यूने त्रिभुज पुस्तकालय (सी ++ के लिए)

चीजें मैं चाहूँगा करने के लिए:

  • अंक की एक मनमाना सेट के एक ट्राईऐन्ग्युलेशंस बनाने
  • खोज त्रिकोण एक मनमाना बिंदु में है, और कोने लाने
  • ट्राईऐन्ग्युलेशंस की एक छवि बनाने (वैकल्पिक)

सुझाव?

+0

जो आयाम में? – Camille

+0

क्या आपको पुस्तकालय होने की आवश्यकता है, या एक स्टैंडअलोन प्रोग्राम ठीक हो सकता है? – Camille

+0

एक स्टैंडअलोन प्रोग्राम शायद ठीक नहीं होगा। मैं इसे एक बड़े सॉफ्टवेयर उपकरण में एकीकृत करने के लिए देख रहा हूँ। –

उत्तर

11

आपको शायद अपने लक्ष्यों को थोड़ा सा विस्तारित करना चाहिए, ताकि अधिक प्रासंगिक उत्तर प्रदान किए जा सकें, लेकिन मुझे पहले Triangle का उल्लेख करें, एक 2 डी डेल्यूने पीढ़ी उपकरण, जो सी में लिखा गया है, और दोनों को एक स्टैंडअलोन प्रोग्राम के रूप में उपयोग किया जा सकता है , या अपने कोड से बुलाया।

फिर, CGAL के बारे में, यहाँ एक ठेठ छोटा सा उदाहरण है, मामले में आप अभी भी इसे पर विचार करें:

#include <vector> 
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h> 
#include <CGAL/Delaunay_triangulation_2.h> 

typedef CGAL::Exact_predicates_inexact_constructions_kernel K; 
typedef CGAL::Delaunay_triangulation_2<K>     Delaunay;  
typedef K::Point_2           Point; 

void load_points(std::vector<Point>& points) 
{ 
    points.push_back(Point(1., 1.)); 
    points.push_back(Point(2., 1.)); 
    points.push_back(Point(2., 2.)); 
    points.push_back(Point(1., 2.));  
} 

int main() 
{ 
    std::vector<Point> points; 
    load_points(points); 
    Delaunay dt; 
    dt.insert(points.begin(), points.end()); 
    std::cout << dt.number_of_vertices() << std::endl; 
    return 0; 
} 
+1

मुझे त्रिकोण के लिए इंगित करने के लिए धन्यवाद। यह एक बहुत ही सरल और उपयोग करने में आसान है। –

+0

क्या इनमें से कोई भी दृष्टिकोण देशी आईपैड ऐप में इस्तेमाल किया जा सकता है? – Andre

+0

@AndrewProck आपने इसे lib के रूप में उपयोग किया था? क्योंकि मुझे इस त्रिभुज lib – jokoon

0

मैं 2 डी डेलॉनाय ट्राईऐन्ग्युलेशंस के लिए Gnu Triangulated Surface library का उपयोग किया है और यह अच्छी तरह से काम किया। कॉल करने के लिए थोड़ा अजीब क्योंकि यह उस ओओपी-इन-सी जीएलआईबी शैली का उपयोग करता है, लेकिन यह आसानी से wrapped up हो सकता है।

3

भी देखें poly2tri, यह अच्छा लग रहा है: https://github.com/greenm01/poly2tri

+0

यह बाध्यकारी delaunay के लिए है, मुझे यकीन नहीं है कि यह काम करेगा यदि आप अंक के यादृच्छिक सेट का उपयोग करते हैं। – jokoon