如何用 tikz 排列我的 3 个花式箭头

如何用 tikz 排列我的 3 个花式箭头

我有 3 个漂亮的箭头用于说明。一个是带有As the block size increase刻字的弯曲箭头,第二个指向上方并带有VARIANCE刻字的箭头,第三个也带有BIAS刻字的箭头。

我只能在articleclass它不能按照beamerclass我想要的方式运行时才这样做。

我从以下地址获取了文本代码使用 tikz 在弯曲箭头内绘制弯曲文本(多行)使用 TikZ 制作精美的箭头尽管我修改了它们。

这是我的 MWE

\documentclass[svgnames]{article}
\usepackage{tikz}
\usetikzlibrary{fadings,shapes.arrows,shadows}
\usetikzlibrary{decorations.text}
\usepackage{xparse}


\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95]
\tikzset{arrowfill/.style={#1,general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}}}
\tikzset{arrowstyle/.style n args={3}{draw=#2,arrowfill={#3}, single arrow,minimum height=#1, single arrow,
    single arrow head extend=.3cm,}}

\NewDocumentCommand{\tikzfancyarrow}{O{2cm} O{FireBrick} O{top color=OrangeRed!20, bottom color=Red} m}{
\tikz[baseline=-0.5ex]\node [arrowstyle={#1}{#2}{#3}] {#4};
}



\begin{document}


\begin{tikzpicture}[mypostaction/.style 2 args={
decoration={
    text align={
        left indent=#1},
    text along path, 
    text={#2}
},
decorate
}
]
\coordinate (specRoot) at (-10,0);
\coordinate (testTreeRoot) at (0,0);
\draw[-latex, blue!20!white, line width=5ex]  (specRoot) to[in=135,out=45] (testTreeRoot);


\path [postaction={mypostaction={1cm}{As block length increases}},postaction={mypostaction={1cm}
    /pgf/decoration/raise=-3mm}] (specRoot) to [in=135,out=45] (testTreeRoot);  
\end{tikzpicture}

\begin{tikzpicture}
\tikzfancyarrow[1.5cm][DarkBlue][top color= PaleTurquoise,bottom color=DeepSkyBlue,shape border rotate=90]{VARIANCE}
\tikzfancyarrow[1.5cm][DarkBlue][top color= DeepSkyBlue,bottom color=PaleTurquoise,shape border rotate=270]{BIAS}
\end{tikzpicture}
\end{document}

这就是我想要的

我希望弯曲的花式箭头与 2 个短箭头并排放置(位于其余 2 个箭头的左侧),并以增加的方式指向(而不是像我的文本代码中那样向下)。

我希望带有刻字的箭头VARIANCE直接位于带有BIAS刻字的箭头的上方,并且无论文本长度如何,两个短箭头(具有适中的垂直空间)都具有相同的大小。

我希望箭头beamerclass排列\usetheme{Madrid}

在此处输入图片描述

答案1

嵌套 s 通常不是一个好主意tikzpicture。此外,在当前设置中,您需要添加fragileframe选项中,因为样式有参数。我基本上必须完全重写代码才能获得

\documentclass[svgnames]{beamer}
\usetheme{Madrid}

\usepackage{tikz}
\usetikzlibrary{shapes.arrows,shadows.blur,positioning,arrows.meta,
bending,decorations.text,decorations.pathreplacing}
\usepackage{eqparbox}

\newbox\eqnodebox
\tikzset{equal size/.style={execute at begin
    node={\setbox\eqnodebox=\hbox\bgroup},
    execute at end node={\egroup\eqmakebox[#1][c]{\copy\eqnodebox}}},
    equal size/.default=A,}

\begin{document}
\begin{frame}[t,fragile]
\frametitle{Some arrows}
\begin{tikzpicture}[mypostaction/.style n args=3{
   decoration={
       text align={
           left indent=#1},
       text along path, 
       text={#2},#3
   },
   decorate
   },my arrow/.style={draw=DarkBlue,single arrow,single arrow head extend=.3cm,top color=PaleTurquoise,bottom
   color=DeepSkyBlue,shape border rotate=90,blur shadow,minimum height=2cm}
   ]
 \begin{scope}[local bounding box=Meow]
  \node[my arrow,equal size=A](VAR){VARIANCE};
  \node[my arrow,equal size=A,below=1ex of VAR,shape border rotate=-180]{BIAS};
 \end{scope}
 \draw[thick,decoration=brace,decorate] (Meow.south west) -- (Meow.north west)
  coordinate[midway,xshift=-1em] (aux);
 \draw[-{Latex[bend,length=5em]}, blue!20!white, line width=5ex,
 postaction={mypostaction={1em}{As block length increases}{raise=-0.7ex}}] 
  (aux)++ (-5,-1)  to[bend right]  (aux);

\end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

许多发生改变的事物。

相关内容