Haskell 图 Graphviz Gtk 显示对齐和缩放

Haskell Diagrams Graphviz Gtk Display alignment and scaling

我想在 Gtk window 中显示由 graphviz(通过 Data.GraphViz)布局的图形。我的代码不会自动将图表居中或调整图表大小。我已经设置了一个带有示例的 github 回购协议(参见 https://github.com/avras/diagrams-gtk-graphviz-example 处的 src/Main.hs。我得到以下输出。

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

如何让图表居中 window 并自动计算正确的宽度?

我不得不尝试 mkWidth 的参数来获得这张照片。同样没有设置 lw 0.005 结果如下。线宽好像很大

编辑 这是 Joachim Breitner 建议的修复后的结果。

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

我猜如果你删除那行

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

Main.hs 中它会起作用。