平均能量损失

平均能量损失

我一直在尝试重新创建下图所示的箭头的类似版本。

在此处输入图片描述

这是我目前所取得的成果:

在此处输入图片描述

我是这方面的新手TikZ,在多次尝试失败后,我不得不求助于绘制一个阴影矩形,然后使用right=of rectangle来附加一个三角形。但是,显然,这种方法很糟糕。“箭头”和线之间也有间隙。最初,我尝试使用等triangle 90triangle 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}

相关内容