41

エッジのランク属性には、「same」、「min」、「source」、「max」、「sink」の5つの値があります。「同じ」を除いて、他の値をいつ使用するかわかりません。

min
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=min;A;B}
  B->D
  A->B;
\end{dotpic}

max
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=max;A;B}
  B->D
  A->B;
\end{dotpic}

source
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=source;A;B}
  B->D
  A->B;
\end{dotpic}

sink
\begin{dotpic}
  rankdir=LR;
  size="7,5";
  node[shape=circle];
  C->A;
  {rank=sink;A;B}
  B->D
  A->B;
\end{dotpic}

私のvim環境でテストすると、これらの値の間にいくつかの違いがあることがわかります。しかし、それらが何のためにあるのか正確にはわかりません。

4

1 に答える 1

51

ランクを空のままにするか、rank=sameを使用することがはるかに頻繁に使用されます。これらの他の4つは通常、特別な状況でのみ使用されます。

単独で使用する場合、minとsourceは同じ機能を持ちます。つまり、これらすべてのノードを最小ランク(TBグラフの一番上の行)に配置します。それらの違いは、minが最小ランクの他のサブグラフを許可することです。ソースはしません。ソースは、最小またはソースの他のサブグラフを最小ランクにすることのみを許可します。

次のグラフスニペットについて考えてみます。

{ rank=source; a -> b; }
{ rank=same;   c -> d; }

最終的に2行になります。a->bはc->dより上になります。

ソース


sourceをminに変更すると、1行しか取得できません。a->bはc->dの左側にあり、すべて最小ランクになります。

{ rank=min;    a -> b; }
{ rank=same;   c -> d; }

最小

Maxとsinkは、グラフの下部に相当します。

于 2011-05-27T17:34:06.250 に答える