在此 MWE 中
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[path/.append style={
decoration={
markings,
mark=at position 0.5 with {\arrow [scale=1.5]{stealth}},
},
postaction=decorate,
thick,
}]
\draw[path] (-2, 0) -- (-0.5, 0);
\draw[path] (-0.5, 0) arc [start angle=180, delta angle=-180, radius=0.5];
\draw[path] (0.5, 0) -- (2, 0);
\draw[path] (2, 0) arc [start angle=0, end angle=180, radius=2];
\end{tikzpicture}
\end{document}
箭头沿弧线的位置看起来不太正确。此外,箭头似乎没有放置在路径的中间(错误的锚点)。
我怎样才能解决这个问题?
答案1
看起来您可以添加一个选项来\arrow
转移它。
\documentclass[border=5mm,png]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[path/.append style={
decoration={
markings,
mark=at position 0.5 with {\arrow[xshift=2.5\pgflinewidth,red,>=stealth]{>}}
},
postaction=decorate,
thick,
}]
\draw[path] (-2, 0) -- (-0.5, 0);
\draw[path] (-0.5, 0) arc [start angle=180, delta angle=-180, radius=0.5];
\draw[path] (0.5, 0) -- (2, 0);
\draw[path] (2, 0) arc [start angle=0, end angle=180, radius=2];
\draw[help lines] (0,0) --++ (0,2) (1.25,0) --++ (0,2) (-1.25,0) --++ (0,02);
\draw[help lines] (-2,0) --++ (4,0) (-2,0.5) --++ (4,0) (-2,2) --++ (4,0);
\end{tikzpicture}
\end{document}
魔法数字2.5\pgflinewidth
是箭头长度的一半stealth
,从箭头尖端到箭头顶点,可以通过挖掘找到pgfcorearrows.code.tex
。这是我目前能做到的最好的。