Tête de flèche qui disparaît

Dec 28 2020

J'ai une flèche courbe qui fonctionne bien si le rayon est de 0,7 ou moins. Mais si j'augmente le rayon à 0,8, la pointe de flèche disparaît. Changer les différents paramètres ne semble pas aider. J'aimerais comprendre ce qui se passe et comment je peux utiliser un rayon plus large.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows, decorations.markings}
\begin{document}

\begin{tikzpicture}

    % https://tex.stackexchange.com/a/169115/2737
    \tikzset{
    curveArrow/.style={
      thick,
      decoration={markings,mark=at position
       1 with {\arrow[scale=1.5,semithick]{open triangle 60[fill=white]}}},
      double distance=3.5pt, shorten >= 8pt,
      preaction = {decorate},
      postaction = {draw,line width=1.4pt, white,shorten >= 8.5pt}
      }
    }
    % changing radius from 0.7 to 0.8 makes the arrow head disappear
    \draw[curveArrow] (0,0) arc (90:270:0.7); 

\end{tikzpicture}

\end{document}

Rayon = 0,7

Rayon = 0,8

Réponses

4 hpekristiansen Dec 30 2020 at 04:52

La bibliothèque Tikz arrowsest obsolète. Je trouve cela un peu étrange d'utiliser markingssimplement pour placer quelque chose à la toute fin d'un chemin - peut-être que c'est juste moi. Voici une version alternative sans les artefacts et les problèmes du code d'origine. L'idée est de dessiner d'abord une flèche triangulaire, puis de rendre la double ligne suffisamment longue pour dessiner sur une partie de la ligne de flèche verticale.

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
  curveArrow/.style={
    draw=none,
    preaction={draw, thick, -{Triangle[open, length=8pt 1, width=10pt]}},
    postaction={draw, thick, double distance=3.5pt, shorten >=8pt}
  }]
\draw[curveArrow] (0,0) arc (90:270:0.8); 
\end{tikzpicture}
\end{document}