相关疑难解决方法(0)

.NET中有向图或无向图的布局有哪些选项?

通过这里的图表我的意思是类似这些图像的东西:

理想的解决方案是:

  • 仅使用托管代码
  • 允许输出到位图图像
  • 允许输出到WPF元素
  • 包括某种交互式表面,用于显示支持节点缩放,平移和重组的图形

我也有兴趣了解可能被用作此类工作起点的项目.如果需要一些开发来实现我想要的东西,那么我已经准备好解决它了.这个目标中最复杂的部分似乎是在合理的时间范围内获得图形布局.

.net rendering graph-theory directed-graph graph-layout

31
推荐指数
3
解决办法
8691
查看次数

在C#中从.dot文件创建图像

我正在构建一个.dot文件来表示有向无环图.

我需要从这个graph.dot文件生成一个图像(使用C#),这样我就可以在我的应用程序的图片框中显示图像.我应该使用什么库?

在命令提示符中使用GraphViz的命令:

dot -Tpng graph.dot -o graph.png 
Run Code Online (Sandbox Code Playgroud)

我能够生成图像,所以我知道我的.dot文件的格式是正确的.

谢谢.

c# graphviz

5
推荐指数
1
解决办法
9928
查看次数

之前没有访问的访问冲突

我是P/如图所示调用Graphviz .当我写这篇博客文章时,代码运行得很好.现在,我把在一起的HttpModule呈现使用代码Graphviz的图形,但我得到了AccessViolationExceptionagmemread.

// Native signature
Agraph_t agmemread(char *);

// P/Invoke Signature
[DllImport(LIB_GRAPH)]
private static extern IntPtr agmemread(string data);

// Usage
IntPtr g = agmemread(data);
Run Code Online (Sandbox Code Playgroud)

就像我说的,这之前完美无缺.但现在,我无法让我的代码适用于任何事情.即使我基于相同代码的旧Graphviz应用程序也不再起作用.

我可能有什么改变会导致这种情况?我甚至没有下载新版本的Graphviz或任何东西,所以DLL都是一样的.

编辑:我尝试string改为StringBuilder,但产生了相同的结果.然后,我添加了一个MarshalAs属性:

static extern IntPtr agmemread([MarshalAs(UnmanagedType.LPWStr)] string data);
Run Code Online (Sandbox Code Playgroud)

有了它,我不再得到一个AccessViolationException,但Graphviz无法正确读取字符串并返回空指针.

.net c# pinvoke graphviz access-violation

3
推荐指数
1
解决办法
1481
查看次数