Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
A「;“花”-GraphViz中的类图_Graphviz - Fatal编程技术网

A「;“花”-GraphViz中的类图

A「;“花”-GraphViz中的类图,graphviz,Graphviz,我试图用GraphViz绘制一个有限状态传感器。我已经定义了自循环,但是当我绘制它们时,我无法在主节点周围得到一个漂亮的“花”状循环分布 digraph G { size="8,5" splines=true; nodesep=1.0; node [shape=ellipse,width=1,height=1]; 0 [peripheries=2]; 0:n -> 0:n [label=" A:A" minlen=5.0 rotate=45

我试图用GraphViz绘制一个有限状态传感器。我已经定义了自循环,但是当我绘制它们时,我无法在主节点周围得到一个漂亮的“花”状循环分布

digraph G {
    size="8,5"
    splines=true;
    nodesep=1.0;
    node [shape=ellipse,width=1,height=1];
    0 [peripheries=2];
    0:n -> 0:n [label=" A:A"  minlen=5.0 rotate=45]
    0:ne -> 0:ne [headlabel=" A:B" minlen=5.0];
    0:e -> 0:e [label=" B:A" minlen=5.0];
    0:se -> 0:se [label=" B:A" labeldistance=-8 minlen=5.0];
    0:s -> 0:s [label=" *e*:A" minlen=5.0];
    0:sw -> 0:sw [label=" *e*:B" minlen=5.0];
    0:w -> 0:w [label=" B:*e*" minlen=5.0];
    0:nw -> 0:nw [label=" A:*e*" minlen=5.0];
overlap=false
}
我的情节如下所示


是否有一种方法可以旋转起始于和终止于NW、SE、SW、NE的自环的边缘方向?我已经尝试了
定向
旋转
命令,但我无法让它们在
neato
中工作。我很确定这不是您想要的答案,但它确实回答了您的问题

如您所见,Graphviz在绘制循环时有一种“垂直”的方法,即它倾向于水平或垂直主方向。我认为你无法避免

也就是说,以下是如何将图形转换为围绕主节点的类似兰花的循环分布:


变量点=[
`
有向图G{
size=“8,5”
样条曲线=真;
nodesep=1.0;
节点[形状=椭圆,宽度=1,高度=1,方向=22.5,group=“hej”];
0[外围设备=2];
0:n->0:n[id=1 label=“A:A”minlen=0.0 rotate=45];
0:ne->0:ne[id=2 hightel=“A:B”minlen=0.0];
0:e->0:e[id=3 label=“B:A”minlen=0.0];
0:se->0:se[id=4 label=“B:A”labeldistance=-8 minlen=0.0];
0:s->0:s[id=5 label=“*e*:A”minlen=0.0];
0:sw->0:sw[id=6 label=“*e*:B”minlen=0.0];
0:w->0:w[id=7 label=“B:*e*”minlen=0.0];
0:nw->0:nw[id=8 label=“A:*e*”minlen=0.0];
重叠=错误
}
`, `
有向图G{
size=“8,5”
样条曲线=真;
nodesep=1.0;
节点[形状=椭圆,宽度=1,高度=1,方向=22.5,group=“hej”];
0[外围设备=2];
0:n->0:n[id=1 label=“A:A”minlen=0.0 rotate=45];
0:nw->0:ne[id=2海岬=0.0];
0:e->0:e[id=3 label=“B:A”minlen=0.0];
0:ne->0:se[id=4 label=“B:A”labeldistance=-8 minlen=0.0];
0:s->0:s[id=5 label=“*e*:A”minlen=0.0];
0:se->0:sw[id=6 label=“*e*:B”minlen=0.0];
0:w->0:w[id=7 label=“B:*e*”minlen=0.0];
0:sw->0:nw[id=8 label=“A:*e*”minlen=0.0];
重叠=错误
}
`
];
var指数=0;
var graphviz=d3.select(“#graph”).graphviz();
函数render(){
变量点=点[点索引%dots.length];
var transition1=d3.transition()
.延迟(1000)
.持续时间(1000+4000*dotIndex);
格拉夫维兹
.tweenShapes(假)
.引擎(“dot”)
.keyMode(“id”)
.点(点)
.过渡(过渡1)
.render();
dotIndex+=1;
转变1
.transition()
.持续时间(0)
.on('end',函数(){
if(点索引!=点长度){
render();
}
});
}
render();
仅适用于节点。仅适用于整个图形。