![TikZ:如何在不切换起点/终点的情况下反转箭头方向?](https://linux22.com/image/393129/TikZ%EF%BC%9A%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E5%88%87%E6%8D%A2%E8%B5%B7%E7%82%B9%2F%E7%BB%88%E7%82%B9%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%8F%8D%E8%BD%AC%E7%AE%AD%E5%A4%B4%E6%96%B9%E5%90%91%EF%BC%9F.png)
假设我们有来自用户的 MWE卡拉姆迪尔:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,decorations.markings,decorations.pathmorphing,arrows.meta}
\begin{document}
\begin{tikzpicture}
\draw [domain=0:25.1327,variable=\t,smooth,samples=75, -Latex]
plot ({\t r}: {0.002*\t*\t});
\end{tikzpicture}
\end{document}
我想反转箭头位置,使箭头尖位于螺旋的内端并指向中心。
如何做?
答案1
要使箭头指向螺旋曲线的对侧,只需更改-Latex
为Latex-
。但结果却出乎意料(读作无法使用)...
将箭头移到螺旋末端附近可能是更可接受的解决方案。为此,您可以利用该包decorations.markings
:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, bending, decorations.markings}
\begin{document}
\begin{tikzpicture}[
decoration = {markings,mark=at position .84 with
{\arrowreversed[black]{Latex[length=1.5mm]}}}
]
\draw[postaction={decorate}]
plot[domain=0:25,variable=\t,smooth,samples=101,
{Latex[length=1mm]}-]
({\t r}: {0.002*\t*\t});
\end{tikzpicture}
\end{document}
答案2
首先,我想说的是,弯曲的箭头看起来更好,在原始图中也是如此。但由于曲线在 0 处变为奇异值,因此由于dimension too large
错误,这不会立即起作用。但是,一旦我们用圆弧近似最内层的延伸,它就会起作用。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending}
\begin{document}
\begin{tikzpicture}[scale=2]
\pgfmathsetmacro{\myt}{pi}
\draw[{Latex[bend,length=2pt]}-]
(0: {0.002*\myt*\myt})
arc({0}:{180}:{0.002*\myt*\myt});
\draw plot[domain=pi:25.1327,variable=\t,samples=75,smooth]
({\t r}: {0.002*\t*\t});
\end{tikzpicture}
\end{document}
这是带有弯曲箭头的原始图片。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending}
\begin{document}
\begin{tikzpicture}
\draw [domain=0:25.1327,variable=\t,smooth,samples=75, -{Latex[bend]}]
plot ({\t r}: {0.002*\t*\t});
\end{tikzpicture}
\end{document}
bending
请注意,无论箭头是否弯曲,在将箭头连接到弯曲路径时都应始终加载,否则路径被扭曲.即使没有明确使用,弯曲也可以治愈扭曲。