Giriş
Şu satırı dahil ederiz.
Şu satırı dahil ederiz.
#include <boost/graph/graphviz.hpp>
write_grapviz_dp metodu ile kardeştir.
write_graphviz metodu - stream + graph
Örnek
Elimizde bir graph olsun.
write_graphviz metodu - stream + graph
Örnek
Elimizde bir graph olsun.
typedef boost::adjacency_list<
boost::vecS, //OutEdgeList
boost::vecS, //VertexList
boost::undirectedS //Directed
> Graph;
Şöyle yaparız.write_graphviz (cout, g);
std::ofstream f("d:\\g.dot");
boost::write_graphviz(f, g);
dot dosyasını svg dosyasına çevirmek için şöyle yaparız.
std::system(
std::string("dot -Tsvg -Grankdir=LR -Nfontsize=24 d:\\g.dot > d:\\g.svg")
.c_str()
);
ÖrnekŞöyle yaparız
typedef boost::adjacency_list<boost::setS, boost::vecS, boost::undirectedS>
GraphType;
std::ofstream subgraph_iso_output("large1.dot");
GraphType graph;
...
boost::write_graphviz(file, graph);
write_graphviz metodu - stream + graph + label_writerÖrnek
Elimizde şöyle bir graph olsun.
/// vertex properties
struct VertexData {
std::string label;
int num;
};
/// edges properties
struct EdgeData {
std::string edge_name;
double edge_confidence;
};
/// define the boost-graph
typedef boost::adjacency_list<boost::vecS, boost::vecS,
boost::bidirectionalS,
VertexData,
boost::property<boost::edge_weight_t, double, EdgeData> > Graph;
Bu graph'ı dolduralım. Edge'leri bağlamıyoruz ancak bir önemi yok örnek için.
boost::add_vertex(VertexData{..., ...}, g);
Bu graph'ı yazdıralım.
boost::write_graphviz(cout, g,
boost::make_label_writer(boost::get(&VertexData::label, g)));
Çıktı olarak şunu alırız.
digraph G {
2[label=buster];
5[label=Enoch];
10[label=lire];
14[label=Rodger];
18[label=tiling];
}
Hiç yorum yok:
Yorum Gönder