代码

代码

我想让一个箭头指向另一个箭头。如何粗略地制作一个围绕箭头的节点?

\documentclass{memoir}

\usepackage{pgfcore}
\usepackage{pgfplots}
\usetikzlibrary{arrows}

\begin{document}

\begin{tikzpicture}
  \path (0, 0) edge [-stealth'] (1, 0);
  \path (1, 1) edge [-stealth'] (0.94, 0.1);
\end{tikzpicture}
\end{document}

答案1

理想情况下,可以将节点放置在 处(1,0)-(.5\pgfarrowsleftextend,0),即箭头的端点减去stealth'箭头总宽度的一半。但我不知道如何访问 中存储的长度\pgfarrowleftextend,因此以下解决方案需要一些手动操作。

  • 用于inner sep=<dim>控制圆的半径
  • 用于($(1,0)-(<dim>,0)$)调整圆心

代码

\documentclass{memoir}

% \usepackage{pgfcore}
\usepackage{pgfplots}
\usetikzlibrary{arrows,calc}

\begin{document}

\begin{tikzpicture}
  \path (0, 0) edge [-stealth'] (1,0);
  \node(n)[draw,circle,inner sep=3pt]at($(1,0)-(2pt,0)$){};
  \path (1, 1) edge [-stealth'] (n);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述


更新

上述方法可以推广到曲线,其中节点定位选项pos=<frac>有效(例如,直线到和曲线到操作)。想法是类似的:将节点放置在靠近路径末端的位置,长度大约等于箭头尖端宽度的一半。不幸的是,需要对进行一些手动调整pos=<frac><frac>这里的数字通常略小于1)。

代码

\documentclass{memoir}
\usepackage{pgfplots}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}
  \draw[-stealth'](0,0)..controls(.5,1)..(1,0) node(n)[pos=.98,draw,circle,inner sep=3pt]{};
  \draw[-stealth'](1,1)--(n);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容