Подтвердить что ты не робот

Атрибут Rank меня сбивает с толку

Атрибут Rank на краю имеет пять значений: "тот же", "мин", "источник", "макс", "сток". За исключением "того же", я понятия не имею, когда использовать другие значения.

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, я могу понять, что есть некоторые различия между этими значениями. Но не знаю точно, для чего они предназначены.

4b9b3361

Ответ 1

Оставляя ранг пустым или используя rank = same, используются гораздо чаще. Эти четыре других, как правило, используются только в особых обстоятельствах.

При использовании в одиночку, min и source имеют одинаковую функцию: поместить все эти узлы в минимальный ранг (верхняя строка диаграммы TB). Разница между ними заключается в том, что min позволит другим подграфам в минимальном ранге. Источник не будет. Источник только позволяет другим подграфам мин или источника находиться на минимальном ранге.

Рассмотрим следующий фрагмент графика:

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

В итоге вы получите 2 строки. a → b будет выше c → d.

Если вы измените источник на min, вы получите только одну строку. a → b будет слева от c → d, все в минимальном ранге.

Макс. и приемник являются эквивалентами нижней части графика.