Znikający grot strzały

Dec 28 2020

Mam zakrzywioną strzałkę, która działa dobrze, jeśli promień wynosi 0,7 lub mniej. Ale jeśli zwiększę promień do 0,8, wtedy grot znika. Zmiana różnych parametrów nie wydaje się pomagać. Chciałbym zrozumieć, co się dzieje i jak mogę wykorzystać większy promień.

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

Promień = 0,7

Promień = 0,8

Odpowiedzi

4 hpekristiansen Dec 30 2020 at 04:52

Biblioteka Tikz arrowsjest przestarzała. Uważam, że to trochę dziwne, markingsgdy umieszczam coś na samym końcu ścieżki - może to tylko ja. Oto alternatywna wersja bez artefaktów i problemów z oryginalnego kodu. Chodzi o to, aby najpierw narysować trójkątną strzałkę, a następnie sprawić, by podwójna linia była wystarczająco długa, aby rysowała się nad częścią pionowej linii strzałki.

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