我想让一个箭头指向另一个箭头。如何粗略地制作一个围绕箭头的节点?
\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}