【问题标题】:Controlling bitmap rendering控制位图渲染
【发布时间】:2011-04-29 18:40:09
【问题描述】:

我正在尝试

  • 通过 Graphviz 生成要在网站中显示的图表。
  • 让每个节点都可以通过 imagemap(或其他一些工具)点击。

为此,我必须渲染图表

  • 我应该设置什么属性来获得渲染图的最大宽度/高度?我查看了http://www.graphviz.org/doc/info/attrs.html 页面并尝试操作size 等属性,但它似乎对我不起作用。
  • 我应该如何解释节点和边的pos 属性?

【问题讨论】:

    标签: graphviz


    【解决方案1】:

    控制大小

    正如您正确假设的那样,这可以通过修改 size 来完成。

    这里有一些例子:

    digraph {1->2;}
    

    图片尺寸:83*155px。这是默认设置下图表的大小。

    digraph {size=1; 1->2;}
    

    图片尺寸:51*96px。图像被缩小以适应 1 英寸正方形 (96 dpi)。这是预期的行为,因为文档指出:

    如果已定义且图纸较大 比给定的尺寸,图纸是 统一按比例缩小,使其适合 在给定的大小范围内。

    digraph {size=2; 1->2;}
    

    图片尺寸:83*155px。同样是预期的行为,图表已经小于 2 英寸,不需要按比例缩小。

    digraph {size="2!"; 1->2;}
    

    图片尺寸:103*192px。该图被放大直到其中一个尺寸等于 2 英寸。预期的行为,因为文档说明:

    如果大小以感叹号结尾 (!),那么它被认为是 所需的大小。在这种情况下,如果两者 图纸尺寸较小 比尺寸,图纸按比例放大 均匀地直到至少一维 大小等于它的维度。

    解释节点和边的pos属性

    我假设您的意思是 xdot 格式的 pos 值。

    图形的 xdot

    digraph {1->2;}
    

    下面是

    digraph {
        node [label="\N"];
        graph [bb="0,0,54,108",
            _draw_="c 9 -#ffffffff C 9 -#ffffffff P 4 0 -1 0 108 55 108 55 -1 ",
            xdotversion="1.2"];
        1 [pos="27,90", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 27 90 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 27 84 0 7 1 -1 "];
        2 [pos="27,18", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 27 18 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 27 12 0 7 1 -2 "];
        1 -> 2 [pos="e,27,36.413 27,71.831 27,64.131 27,54.974 27,46.417", _draw_="c 9 -#000000ff B 4 27 72 27 64 27 55 27 46 ", _hdraw_="S 5 -solid c 9 -#000000ff C 9 -#000000ff P 3 31 46 27 36 24 46 "];
    }
    

    节点的pos值指定节点位置的中心。由于图形的边界框为“0,0,54,108”,因此节点位置“27,18”和“27,90”完全水平居中。

    对于边缘,我猜pos 包含边缘段的点,而_draw_ 包含 B 样条控制点(但我不太确定)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多