2013-04-09 21 views
5

Tôi biết có một vài phiên bản của Graphviz như một thư viện. Nhưng tôi là một chút bối rối như là một trong những được coi là hiện + khuyến khích. Tôi muốn tạo và hiển thị một vài đồ thị từ ứng dụng GUI của Linux.API thư viện graphviz nào được đề xuất cho dự án C++ cần tạo một số biểu đồ?

Theo http://www.graphviz.org/doc/libgraph/Agraph.pdf trên trang 22, Libgraph được thay thế bằng Cgraph. Nhưng tài liệu này được gọi là Agraph, mà tôi thấy lạ.

Trên trang 23, nó cũng cho biết Lgraph là người kế thừa C++ cho Cgraph, và vì tôi đang sử dụng C++, tôi rất muốn biết nhiều hơn, nhưng dường như tôi không thể tìm thấy Lgraph ở bất cứ đâu.

Có lẽ liên quan, tôi thấy có thư viện Boost có tên BGL hỗ trợ nhập và xuất các tệp graphviz. Tìm kiếm ý kiến ​​về việc nên sử dụng BGL trên Graphviz trực tiếp hay Lgraph.

Dường như trên Ubuntu nếu tôi sudo apt-get install libgraphviz-dev Tôi nhận được đồ thị. Trong trường hợp này, câu hỏi này là để xác nhận Cgraph là thư viện được đề nghị và hỏi xem liệu Lgraph hoặc BGL có đáng xem xét hay không.

+0

C api của cgraph (http://www.graphviz.org/doc/libguide/libguide.pdf) trông không quá tệ, nó khá nhiều về mặt đối tượng theo kiểu cổ điển ngoại trừ được viết bằng C. –

+0

Câu hỏi tục tĩu. "Tạo ra một số đồ thị" - điều này có nghĩa là gì? Graphviz đưa ra các đồ thị để có thể được hiển thị rõ ràng. BGL là một khuôn khổ để xử lý đồ thị để trả lời các câu hỏi như đường đi ngắn nhất là gì. Nhưng bạn muốn tạo đồ thị ... từ cái gì? – ravenspoint

+0

@ravenspoint: Tôi có dữ liệu nội bộ mà tôi có thể xuất dưới dạng tệp .gv chẳng hạn. Tôi có thể tự tạo một nhóm các tệp .gv và sau đó thực hiện các cuộc gọi hệ thống() để hỏi dấu chấm để chuyển đổi chúng thành biểu đồ. Nhưng tôi đã hy vọng để làm điều đó tất cả với một API Graphviz hơn là phải gọi Graphviz bên ngoài. –

Trả lời

2

BGL không cung cấp giao diện tương tác cho Graphviz; nếu bạn cần điều đó, bạn sẽ cần phải sử dụng một trong các thư viện gốc của Graphviz như cgraph. BGL có thể đọc và xuất các tệp định dạng Graphviz, nhưng điều đó dường như không giống như những gì bạn đang tìm kiếm; nó cũng có một số thuật toán bố cục của riêng nó, nhưng chúng không phức tạp như trong Graphviz.

+0

Liệu mệnh đề "nhưng chúng không phức tạp như trong Graphviz" vẫn giữ cho Boost 1.59 (http://www.boost.org/doc/libs/1_59_0/libs/graph/doc/topology.html)? – AlwaysLearning

Các vấn đề liên quan