graphviz中没有交集的多边形

时间:2018-07-17 09:46:20

标签: polygon graphviz

我正在通过括号结构对多边形进行三角剖分。我也有一个生成的.dot文件,但是大多数图形看起来都不像多边形。

graph {
    nodesep=0.6
    layout="circo";
    node [shape = circle];
    1--2[color="red"];
    2--3;
    3--4;
    4--5;
    5--6;
    1--6;
    1--4;
    4--6;
    2--4;
}

呈现如下:

Which is rendered as follows

因此,如果将6--1--2放在一起,就不会有任何交叉点。

2 个答案:

答案 0 :(得分:0)

看起来不符合自己的规范。来自https://manpages.debian.org/jessie/graphviz/circo.1.en.html

  

circo 使用圆形布局绘制图形(请参见Six and Tollis,GD '99和ALENEX '99,以及Kaufmann和Wiese,GD '02。)该工具标识双向连接的组件并绘制节点。组件在一个圆上的位置。然后,使用递归径向算法对块切割点树进行布局。通过在圆的周界上放置尽可能多的边缘,可以最大程度地减少圆内的边缘交叉。特别是,如果组件是外部平面的,则组件将具有平面布局。

     

如果节点属于多个非平凡的双向连接组件,则布局会将节点放入其中之一。默认情况下,这是从根组件中搜索到的第一个重要组件。

据我所知,图形 outerplanar,因此布局 应该是planar,即以这样的方式绘制:边缘彼此交叉。

对我来说像个虫子。

另请参阅Graphviz: how to arrange nodes with circo layout

答案 1 :(得分:0)

如果您使用 1.18973e+4932 16 而不是sfdp,则会为您的用例生成更好的图形。

circo

我运行了以下内容:

graph {
    splines = false;
    nodesep=0.6
    node [shape = circle];
    1--2[color="red"];
    2--3;
    3--4;
    4--5;
    5--6;
    1--6;
    1--4;
    4--6;
    2--4;
}

哪个制作的:

enter image description here