我一直在尝试重新创建下图所示的箭头的类似版本。
这是我目前所取得的成果:
我是这方面的新手TikZ
,在多次尝试失败后,我不得不求助于绘制一个阴影矩形,然后使用right=of rectangle
来附加一个三角形。但是,显然,这种方法很糟糕。“箭头”和线之间也有间隙。最初,我尝试使用等triangle 90
,triangle 45
但我发现箭头的高度似乎取决于线的长度(我不喜欢),而且我不知道如何在线内添加文本。这是我所拥有的:
平均能量损失
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,shapes}
\begin{document}
\begin{tikzpicture}[font=\large]
\tikzset{
node distance=0cm,
buffer/.style={
shape border rotate=270,
regular polygon,
regular polygon sides=3,
minimum height=2cm,
fill=blue!50,
}
}
\node (therectangle) at (0,0) [shade,shading=axis,left color=white,right color=blue!50,minimum width=2.5cm,minimum height=1cm,] {Codes for};
\node [buffer,right=of therectangle] {};
\end{tikzpicture}%
\end{document}
我想要的是如图所示的箭头,它能让我做到:
- 添加其中的文本。
- 使其有阴影。
- 能够使用
below=of <whatever>
等等。 - 保留使用能力
shorten <= <whatever>
等。 - (可选)从箭头开始阴影。
有人可以帮忙吗?
答案1
因为它是一个节点,所以你不能使用shorten
,但single arrow
我认为它的形状可以满足你的大部分要求。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,shapes}
\begin{document}
\begin{tikzpicture}[font=\large]
\node (therectangle) at (0,0) [single arrow,
text width=3cm,
align=center,
shade,shading=axis,
left color=white,right color=blue!50,
minimum width=2.5cm,minimum height=1cm,] {Codes for};
\end{tikzpicture}%
\end{document}
关于您的原始代码,将outer sep
两个节点的设置为零可以消除间隙,即
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,shapes}
\begin{document}
\begin{tikzpicture}[font=\large]
\tikzset{
node distance=0cm,
buffer/.style={
shape border rotate=270,
regular polygon,
regular polygon sides=3,
minimum height=2cm,
fill=blue!50,
}
}
\node (therectangle) at (0,0) [shade,shading=axis,left color=white,right color=blue!50,minimum width=2.5cm,minimum height=1cm,outer sep=0pt] {Codes for};
\node [buffer,outer sep=0pt,right=of therectangle] {};
\end{tikzpicture}%
\end{document}