我偶然发现了这个页面,其中解释了如何绘制带有阴影等的奇特箭头。
但是,示例中的箭头嵌入在文本中。我想在节点之间的 tikzfigure 环境中绘制它。
\begin{tikzpicture}
\node[](a){};
\node[right of=a,node distance=10cm](b){};
\draw[ ??](a) -- (b);
\end{tikzpicture}
示例中的正确语法是什么?
答案1
如果您使用已接受答案中的代码使用 TikZ 制作精美的箭头,那么请注意,arrowstyle
样式采用确定箭头长度的参数。因此,如果你有
\node [draw] (a) {A};
\node [draw,right=5cm of a] (b) {B};
因此你知道节点之间的距离是 5 厘米,那么你就可以使用
\node [arrowstyle=5cm,right=0pt of a] {};
得到这样一个箭头,起始于a
,结束于b
。
附录:right of=
您使用的语法被视为已弃用,而您应该加载positioning
库并使用right=of
,就像我上面所做的那样。请参阅PGF/TikZ 中“right of=”和“right=of”之间的区别
如果您不知道确切的距离,或者您需要旋转它(即,如果节点b
不在的右侧a
),那么您可以加载calc
库并计算距离和角度,如下所示:
\path
let
\p1=(a2.south east), % start point
\p2=(b2.north west), % end point
\n1={veclen(\x2-\x1,\y2-\y1)}, % distance between start and end
\n2={atan2(\y2-\y1,\x2-\x1)} % angle between start and end
in
node [arrowstyle=\n1,
right=0 of a2.south east,
rotate=\n2,
fading angle=\n2 % only affects shadow
] {};
请注意,颜色渐变本身不会旋转,因此始终从上到下。还请注意,由于这是一个节点,而不是正常的线路径,因此只能使用直线,不能使用弯曲或扭结的箭头。
\documentclass[svgnames,border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{
fadings,
shapes.arrows,
shadows,
positioning
}
\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95]
\tikzset{
arrowfill/.style={
top color=OrangeRed!20,
bottom color=Red,
general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}
},
arrowstyle/.style={
draw=FireBrick,
arrowfill,
single arrow,
minimum height=#1,
single arrow head extend=.4cm
}
}
\begin{document}
\begin{tikzpicture}
\node [draw] (a) {A};
\node [draw,right=5cm of a] (b) {B};
\node [arrowstyle=5cm,right=0pt of a]{};
\node [draw,below=1cm of a] (a2) {A2};
\node [draw,below right=3cm of a2] (b2) {B2};
\node [arrowstyle=3cm,
right=0 of a2.south east,
rotate=-45,
fading angle=-45 % only affects shadow
] {};
\end{tikzpicture}
\end{document}