Исчезающая стрелка
Dec 28 2020
У меня изогнутая стрелка, которая отлично работает, если радиус 0,7 или меньше. Но если я увеличу радиус до 0,8, то стрелка исчезнет. Изменение различных параметров, похоже, не помогает. Я хотел бы понять, что происходит и как можно использовать больший радиус.
\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}
Радиус = 0,7


Ответы
4 hpekristiansen Dec 30 2020 at 04:52
Библиотека Tikz arrows
устарела. Мне кажется немного странным использовать markings
просто для размещения чего-либо в самом конце пути - возможно, это только я. Вот альтернативная версия без артефактов и проблем из исходного кода. Идея состоит в том, чтобы сначала нарисовать треугольную стрелку, а затем сделать двойную линию достаточно длинной, чтобы нарисовать часть вертикальной стрелки.
\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}
