中点箭头和使用 sep 选项缩短

中点箭头和使用 sep 选项缩短

我一直在尝试 TikZsep箭头选项,它允许间隔箭头。我认为它对于制作中点箭头和缩短路径也非常有用。我还没有看到任何人这样做 - 也许我观察得不够仔细。

在这里我制作了一些箭头,从一端到另一端:

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary {arrows.meta,bending}
\begin{document}
\begin{tikzpicture}
\newcommand{\mypath}{(0,0) to[out=90, in=-90] (4,2)}
\draw [red, -{>[sep=0.5cm] Butt Cap[]}] \mypath;
\draw [green, yshift=-1cm, {Butt Cap[] Stealth[reversed, sep=0.5cm]}-] \mypath;
\draw [blue, yshift=-2cm,
   {Butt Cap[] 
   Stealth[reversed, sep=0.1cm]
   Stealth[reversed, sep=0.2cm]
   Stealth[reversed, sep=0.4cm]
   Stealth[reversed, sep=0.8cm]
   Stealth[reversed, sep=1.6cm]
   }-] \mypath;
\end{tikzpicture}
\end{document}

带有定位箭头的路径

我不喜欢Butt Cap[]在末尾避免使用箭头。有没有表示没有箭头的符号。这个:->-不起作用。也许是我在手册中忽略了的empty或?有没有办法给出相对长度?-没有给出中点箭头(单位显然是)。\arrow[none]sepsep=0.5pt


这里我使用 来sep缩短路径,但不改变路径。法线shorten将从终点切向缩短 - 参见绿色路径:

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary {arrows.meta,bending}
\begin{document}
\begin{tikzpicture}
\newcommand{\mypath}{(0,0) to[out=90, in=-90] (4,2)}
\draw [gray, thick] \mypath;
\draw [red, -{Butt Cap[sep=0.5cm]}] \mypath;
\draw [green, shorten >=0.5cm] \mypath;
\end{tikzpicture}
\end{document}

放大缩短端

再次,我不喜欢Butt Cap箭头,因为它覆盖了(或者说是补充了)默认值line cap

编辑:我知道许多其他中点箭头解决方案,例如这里TikZ:如何在线中间画箭头?,但没有使用sep

答案1

这不是一个完整的答案,而是对其中一个子问题的回答:您可以定义一个简写,参见 pgfmanual 3.1.8 第 210 页。

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary {arrows.meta,bending}
\begin{document}
\begin{tikzpicture}
\newcommand{\mypath}{(0,0) to[out=90, in=-90] (4,2)}
\draw [red, -{>[sep=0.5cm] Butt Cap[]}] \mypath;
\draw [green, yshift=-1cm, {Butt Cap[] Stealth[reversed, sep=0.5cm]}-] \mypath;
\draw [blue, yshift=-2cm,
   {Butt Cap[] 
   Stealth[reversed, sep=0.1cm]
   Stealth[reversed, sep=0.2cm]
   Stealth[reversed, sep=0.4cm]
   Stealth[reversed, sep=0.8cm]
   Stealth[reversed, sep=1.6cm]
   }-] \mypath;
\begin{scope}[xshift=6cm,b/.tip={Butt Cap[]}]
  \draw [red, -{>[sep=0.5cm]b}] \mypath;
  \draw [green, yshift=-1cm, {b Stealth[reversed, sep=0.5cm]}-] \mypath;
  \draw [blue, yshift=-2cm,
     {b 
     Stealth[reversed, sep=0.1cm]
     Stealth[reversed, sep=0.2cm]
     Stealth[reversed, sep=0.4cm]
     Stealth[reversed, sep=0.8cm]
     Stealth[reversed, sep=1.6cm]
     }-] \mypath;
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

至于路径的长度,找出它的一种方法是使用decorations.markings,但这可能会失去目的。

相关内容