Как визуализировать мой график с помощью QuickGraph C#
Я новичок в QuickGraph. Я следовал примерам на странице документации, чтобы добавить вершины и ребра в мой график. Теперь я хочу отобразить мой график в форме окна. Я использую Graphviz для этой цели, который генерирует файл.DOT в качестве вывода. Я следую приведенному ниже примеру кода для рендеринга:
IVertexAndEdgeListGraph<TVertex,TEdge> g= ...;
var graphviz = new GraphvizAlgorithm<TVertex,TEdge>(g);
string output = graphviz.Generate(new FileDotEngine(), "graph");
Но мой компилятор не обнаруживает FileDotEngine()
, Более того, я не знаю, что делать после создания файла.DOT.
2 ответа
Вы должны предоставить FileDotEngine
сам; посмотрите, например, этот пример на Github. Просто FileDotEngine
который генерирует JPG может быть:
public sealed class FileDotEngine : IDotEngine
{
public string Run(GraphvizImageType imageType, string dot, string outputFileName)
{
string output = outputFileName;
File.WriteAllText(output, dot);
// assumes dot.exe is on the path:
var args = string.Format(@"{0} -Tjpg -O", output);
System.Diagnostics.Process.Start("dot.exe", args);
return output;
}
}
Затем вы можете отобразить сгенерированное изображение в графическом окне или аналогичном.
Другой подход - разместить элемент управления WPF в приложении winforms, а затем использовать Graph# для отображения графика. Я не пробовал это сам, однако.