在 tikz 中对齐路径

在 tikz 中对齐路径

我制作了以下转换图 在此处输入图片描述

我想做几件事,在节点 1、2、3 上,我希望内部箭头没有重叠,这看起来很傻,而且如果节点 1 和 5 可以对齐,那么 5 向下移动或 1 向上移动都无所谓。我对 tikz 还很陌生,但希望你们中有人能帮忙。代码如下。

谢谢!

斯特芬

\documentclass[a4paper,oneside,article]{memoir}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,,>=stealth',shorten >=1pt,node distance=2cm,
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]

\node[main node] (1) {1};
\node[main node] (2) [below left of=1] {2};
\node[main node] (3) [below right of=1] {3};
\node[main node] (4) [right of=3] {4};
\node[main node] (5) [above of=4] {5};
\node[main node] (6) [right of=4] {6};

\path[every node/.style={font=\sffamily\small}]
(1) edge [bend right] node {} (2)
    edge [bend right] node {} (3)
    edge [loop above] node {} (1)
(2) edge [bend right] node {} (1)
    edge [bend left] node {} (3)
    edge [loop below] node {} (2)
(3) edge [bend right] node {} (1)
    edge [bend left] node {} (2)
    edge [loop below] node {} (3)
(4) edge [bend right] node {} (5)
    edge node {} (3)
    edge node {} (6)
    edge [loop below] node {} (4)
(5) edge [bend right] node {} (4)
    edge [loop above] node {} (5)
(6) edge [loop right] node {} (6)   
;
\end{tikzpicture}
\end{document}

答案1

使用arrows.meta而不是arrows显然已被弃用)隐身尖端的定义变为>={stealth}

为了避免箭头重叠,请编辑bend选项,添加要影响的单个箭头的度数。例如,bend right/left=15在这种情况下有效。

最后,如果你想对齐X轴,类型\node (n) at (<node> -| <node>) {};,因此在您的情况下它变成\node[main node] (5) at (1 -| 4) {5};

输出

图1

代码

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}

\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[
    ->,
    >={Stealth[round]},
    shorten >=1pt,
    node distance=2cm,
    thick,
    main node/.style={circle,draw,font=\sffamily\Large\bfseries}]

\node[main node] (1) {1};
\node[main node] (2) [below left of=1] {2};
\node[main node] (3) [below right of=1] {3};
\node[main node] (4) [right of=3] {4};
\node[main node] (5) at (1 -| 4) {5};
\node[main node] (6) [right of=4] {6};

\path[every node/.style={font=\sffamily\small}]
(1) edge [bend right] node {} (2)
    edge [bend right=15] node {} (3)
    edge [loop above] node {} (1)
(2) edge [bend right=15] node {} (1)
    edge [bend left=15] node {} (3)
    edge [loop below] node {} (2)
(3) edge [bend right] node {} (1)
    edge [bend left] node {} (2)
    edge [loop below] node {} (3)
(4) edge [bend right] node {} (5)
    edge node {} (3)
    edge node {} (6)
    edge [loop below] node {} (4)
(5) edge [bend right] node {} (4)
    edge [loop above] node {} (5)
(6) edge [loop right] node {} (6);
\end{tikzpicture}
\end{document}

相关内容