2

我想在 Gtk 窗口中显示由graphviz(via ) 布置的图形。Data.GraphViz我拥有的代码不会自动使图表居中或调整图表大小。src/Main.hs我已经设置了一个带有示例的github 存储库(请参阅https://github.com/avras/diagrams-gtk-graphviz-example。我得到以下输出。

在此处输入图像描述

如果我尝试显示一个半径为 1 的圆,我会得到以下输出(这是预期的)。此示例的代码src/Circle.hs位于同一 github 存储库中。Main.hs并且Circle.hs仅在呈现的图表上有所不同(afact)。

在此处输入图像描述

如何使图形在窗口中居中并自动计算出正确的宽度?

mkWidth为了得到这张照片,我不得不玩弄这个论点。同样没有设置lw 0.005结果如下。线宽似乎很大。

在此处输入图像描述

编辑这是 Joachim Breitner 建议的修复后的结果。 在此处输入图像描述

4

1 回答 1

1

这是一个猜测,但我假设圆以原点为中心(0,0),并且图表放在单位正方形中(在(0,0)和之间(1,1))。

我猜如果你删除这条线

GRC.translate (w/2) (h/2)

它会Main.hs起作用。

于 2018-06-22T14:24:52.550 回答