如何绘制粗的合并箭头?

如何绘制粗的合并箭头?

我需要一个像这样的 tikz 图: 在此处输入图片描述

但我不知道如何合并粗箭头。这是我到目前为止所做的:

\begin{tikzpicture}
    \node[draw,circle] (P0) at (0, 2) {$P_0$};
    \node[draw,circle] (P1) at (0, 0) {$P_1$};
    \node[draw,circle] (Pn) at (3.5, 1) {$P_n$};
    \node[draw,single arrow,inner sep=10pt,minimum height=2.3cm,rotate=-15] at (1.6,1.6) {};
\end{tikzpicture}

在此处输入图片描述

答案1

在此处输入图片描述

这可能是一种可能性。想法就在于问题:使用合并点来创建特殊箭头。

  • 箭头用两种笔画来创建:先用黑色笔画,然后用较小的白色笔画。
  • detail对于特殊箭头,需要经过第二遍才能得到正确的合并结果(代码中的style )。

代码

\documentclass[11pt, margin=2cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, math, arrows.meta}
\begin{document}

\tikzset{
  whole/.style={%
    line width=2ex,
    arrows={-Latex[length=2.2ex, width=5ex]},
    shorten <=2ex, shorten >=2ex,
    postaction={%
      draw, white, line width=1.77ex,
      arrows={-Latex[length=1.76ex, width=4.3ex]},
      shorten <=2.15ex, shorten >=2.3ex
    }
  },
  ipart/.style={
    line width=2ex, shorten <=2ex, shorten >=0ex,
    postaction={
      draw, white, line width=1.77ex,
      shorten <=2.15ex, shorten >=-.5pt
    }
  },
  fpart/.style={
    line width=2ex,
    arrows={-Latex[length=2.2ex, width=5ex]},
    shorten <=0ex, shorten >=2ex,
    postaction={
      draw, white, line width=1.77ex,
      arrows={-Latex[length=1.76ex, width=4.3ex]},
      shorten <=-.05ex, shorten >=2.3ex
    }
  },
  detail/.style={
    white, line width=1.77ex, shorten <=2.15ex, shorten >=0ex
  }
}
\tikzmath{
  real \dy;
  \dy = -.5;
}
\begin{tikzpicture}[every node/.style={draw, thick, circle, inner sep=1ex}]
  \path
  (0, 0) node (A) {A}
  (0, -2.2) node (B) {B}
  (4, 0) node (C) {C};
  \path ($(B)!.5!(C) + (0, \dy)$) coordinate (M);

  \draw[whole] (A) -- (C);

  \draw[ipart] (A) to[out=-60, in=180] (M);  
  \draw[ipart] (B) to[out=20, in=180] (M);
  \draw[detail] (A) to[out=-60, in=180] (M);
  \draw[fpart] (M) to[out=0, in=240] (C);
\end{tikzpicture}

\end{document}

相关内容