3

I need a tikz diagram like this: enter image description here

But I don't know how to merge a thick arrow. This is what I have done so far:

\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}

enter image description here

2
  • Do you really need open arrows or solid ones would be sufficient?
    – Daniel N
    Feb 18, 2021 at 17:36
  • @DanielN I think this kind of arrow looks better.
    – fairytale
    Feb 18, 2021 at 17:47

1 Answer 1

4

enter image description here

This might be a possibility. The idea is in the question: use the merging point to create the special arrow.

  • The arrows are created using two strokes: a black one first and a white smaller one second.
  • For the special arrow, a second passage is needed to obtain the correct merging result (the style detail in the code).

The code

\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}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.