如何将 TikZ 节点放置在“到路径”指定的边缘?

如何将 TikZ 节点放置在“到路径”指定的边缘?

我想edge使用构造指定的两个 TikZ 节点之间绘制一个to path,并沿边缘放置一个节点(标签)。放置node[options] {text}在后面edge似乎不起作用。

梅威瑟:

\documentclass{minimal}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \node[draw, circle, radius=1] (q0) at (0,0) {};
  \node[draw, circle, radius=1] (q1) at (2,0) {};
  \draw (q0) edge[to path={.. controls (1,1) .. (\tikztotarget)}, ->] node[above] {x} (q1)
             edge[->, bend right=15] node[below] {y} (q1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

第二条边被标记为“y”,我可以使用pos节点选项控制其位置。第一条边根本没有标签。

我怎样才能以与第二条边类似的方式标记第一条边?特别是,我想避免添加新的\draw\path\node类似的,因为我正在从一些数据表中以编程方式构建我的图表。

答案1

问题是,路径选项的设置方式比节点命令(被忽略)具有“更高的优先级”...发生这种情况是因为节点命令之前的(\tikztoterget)(稍后被替换)

你可以尝试这个方法:

\documentclass{minimal}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \node[draw, circle, radius=1] (q0) at (0,0) {};
  \node[draw, circle, radius=1] (q1) at (2,0) {};
  \draw (q0) edge[to path={.. controls (1,1) ..node[above] {x} (\tikztotarget)}, ->]  (q1)
             edge[->, bend right=15] node[below] {y} (q1);
\end{tikzpicture}
\end{document}

得出:

在此处输入图片描述

相关内容