我经常想添加所谓的“标注箭头”来吸引人们对技术图形某些部分的注意,例如下面带有箭头的两条弯曲路径:
虽然我只使用过 TikZ 几次,但我的问题是不是 “有人能帮我做这件事吗?”反而,“您能向我概述一下您的哲学或方法吗?”在技术图形中添加带有箭头的曲线路径,该路径可以放置在各种位置和/或根据手头的特定任务采用各种长度。
现在,我正在尝试使用in
和out
命令,并通过在特定坐标上放置路径并手动调整角度来实现这一点,但缺点是似乎我想要的每个新标注都是一个全新的问题。所以我主要想知道其他人会使用什么方法来解决这个问题。
答案1
编辑:我的第一个答案适用于最新的TikZ 的 CVS 版本。我下面提供了一个降级版本(兼容 TikZ 2.10)。
第一版(TikZ 的最新 CVS 版本)
以下是我试图回答你这个非常模糊的问题:
代码(poi
=兴趣点):
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{
zigzag/.style={
to path={
coordinate (m) at ($(\tikztostart)!.5!(\tikztotarget)$)
coordinate (m1) at ($(m)!1mm!90:(\tikztostart)$)
coordinate (m2) at ($(m)!1mm!90:(\tikztotarget)$)
plot[smooth] coordinates{ (\tikztostart) (m1) (m2) (\tikztotarget)}
}
},
}
\begin{document}
\begin{tikzpicture}
\node[draw,circle,fill=gray] (poi) {POI};
\node[blue] (c1) at (0,2) {$y = f(x)$};
\draw[blue,-latex] (c1.south) to[zigzag] (poi.north);
\node[red] (c2) at (2,0) {$y = g(x)$};
\draw[red,-latex] (c2.west) to[zigzag] (poi.east);
\end{tikzpicture}
\end{document}
第二版本(与 TikZ 2.10 兼容)
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{
zigzag/.style={
to path={
coordinate (m) at ($(\tikztostart)!.5!(\tikztotarget)$)
coordinate (m1) at ($(m)!1mm!110:(\tikztostart)$)
coordinate (m2) at ($(m)!1mm!110:(\tikztotarget)$)
plot[rounded corners=1mm] coordinates{ (\tikztostart) (m1) (m2) (\tikztotarget)}
}
},
}
\begin{document}
\begin{tikzpicture}
\node[draw,circle,fill=gray] (poi) {POI};
\node[blue] (c1) at (0,2) {$y = f(x)$};
\draw[blue,-latex] (c1.south) to[zigzag] (poi.north);
\node[red] (c2) at (2,0) {$y = g(x)$};
\draw[red,-latex] (c2.west) to[zigzag] (poi.east);
\end{tikzpicture}
\end{document}