如何在节点之间获得两条彼此有路径的线而不是双端线?

如何在节点之间获得两条彼此有路径的线而不是双端线?

可能重复:
TIKZ 中的双箭头?

\begin{tikzpicture}
  [->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,semithick,font=\tiny]
  \tikzstyle{every state}=
     [fill=none,draw=black,text=black, text centered, text width=0.5cm]


  \node[state] (A) {G};
  \node[state] (B) [right of=A] {B};

  \path (A) edge node {} (B);
  \path (B) edge  node {} (A);

\end{tikzpicture}

这是我当前的代码,但 A 和 B 之间出现一个双箭头,有什么想法可以将其变成两个不同的箭头吗?

答案1

您可以使用[yshift=<distance>]来偏移箭头。这仅在您指定节点锚点时才有效(例如([yshift=1ex]A.center))。

这是带有移位箭头的示例。请注意,我删除了您用 创建的空节点node {},它们对于绘制箭头来说不是必需的:

\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata,arrows}

\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,semithick,font=\tiny]
  \tikzstyle{every state}=[fill=none,draw=black,text=black, text centered, text width=0.5cm]


  \node[state] (A) {G};
  \node[state] (B) [right of=A] {B};

  \path ([yshift=1ex]A.east) edge ([yshift=1ex]B.west);
  \path ([yshift=-1ex]B.west) edge ([yshift=-1ex]A.east);

\end{tikzpicture}

\end{document}

如果希望箭头从边缘开始,可以使用锚点A.<angle>,锚点指定节点边缘上的点,即A.0右侧边缘、A.90顶部边缘等等。\draw (...) -- (...);在这种情况下,我还会使用绘制箭头的语法,因为它更紧凑,而且这里不需要边缘符号。

\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata,arrows}

\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,semithick,font=\tiny]
  \tikzstyle{every state}=[fill=none,draw=black,text=black, text centered, text width=0.5cm]


  \node[state] (A) {G};
  \node[state] (B) [right of=A] {B};

  \draw (A.-25) -- (B.205);
  \draw (B.-205) -- (A.25);

\end{tikzpicture}

\end{document}

答案2

在这种情况下,如果圆形节点大小相等,<node name>.<angle>我想您也可以使用语法。这或多或少消除了 wh1t3 在其评论中提到的问题。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{automata,arrows}

\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.5cm,semithick,font=\tiny]
  \tikzstyle{every state}=[fill=none,draw=black,text=black, text centered, text width=0.5cm]


  \node[state] (A) {G};
  \node[state] (B) [right of=A] {B};

  \path (A.10) edge  (B.170);
  \path (B.190) edge  (A.-10);
\end{tikzpicture}

在此处输入图片描述

相关内容