答案1
这是使用 绘制箭头的一种方法pic
。我认为它并不完美,但它可能会起到作用。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows,calc,fit}
\tikzset{
dashedarrow/.pic={
\node [transform shape,single arrow,draw,single arrow tip angle=50] (x) {\phantom{abc}};
\draw ($(x.after tail)+(-2pt,0)$) rectangle ($(x.before tail)+(-12pt,0)$);
\draw ($(x.after tail)+(-14pt,0)$) rectangle ($(x.before tail)+(-21pt,0)$);
\draw ($(x.after tail)+(-23pt,0)$) rectangle ($(x.before tail)+(-27pt,0)$);
\draw ($(x.after tail)+(-29pt,0)$) rectangle ($(x.before tail)+(-31pt,0)$) coordinate (ll);
\node [transform shape,fit=(ll)(x.before tip)(x.after tip)(x.tip),inner sep=0pt] (-border) {};
}
}
\begin{document}
\begin{tikzpicture}
\pic [blue] {dashedarrow};
\pic (a) at (0,2) {dashedarrow};
\node [above] at (a-border.north) {Stuff};
\pic [rotate=160] (b) at (2,0) {dashedarrow};
\path (b-border.south west) -- node[sloped,above] {Other stuff} (b-border.south east);
\pic [rotate=30,scale=0.5] (c) at (2,2) {dashedarrow};
\path (c-border.north west) -- node[sloped,above] {Foo} (c-border.north east);
\end{tikzpicture}
\end{document}