使用 TikZ 在线条中间添加双箭头

使用 TikZ 在线条中间添加双箭头

我正在使用tkz-euclide包并绘制一个图形,我想在线的中心放置两个箭头,如下图所示:

在此处输入图片描述

理想情况下,我可能希望在一条线的中心创建一个箭头、两个箭头、三个箭头等,因此通用的解决方案就很好了。

答案1

笔记

  • 宏提供了使用、、、等功能的功能。 请参阅\tkzMarkSegments[<opt>]{…}mark=|||os
    tkz-euclide手动的了解更多信息(12.3“Marquer un section \tkzMarkSegment”和 12.4“Marquer des section \tkzMarkSegments”)。
  • 我还没有找到一种方法来使用,mark=>这就是我提供的原因
  • arrowMe风格。
  • thick只是使箭头变大的许多方法之一,这不是最好的,如需进一步参考,请查看
  • >双箭头由通用箭头或宏提供\pgfarrowsdeclaredouble
  • 三箭头可以用\pgfarrowsdeclaretriple宏来声明。
  • 四箭头可以通过将双箭头尖端加倍来声明。
    通过给出的示例,您可以看到结尾箭头尖端的位置实际上是在指定的位置(此处pos=.5),而不是中间箭头,这就是我更喜欢使用我在我的另一个答案但是解释的decoration效果不太好,\tkz*Segment所以后备方案是明确地使用\draw该行。
  • 请参阅相关问题,其中提供了用箭头标记的不同方法:

代码

\documentclass[tikz,border=2pt]{standalone}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{decorations.markings,arrows}
\tikzset{
    arrowMe/.style={
        postaction=decorate,
        decoration={
            markings,
            mark=at position .5 with {\arrow[thick]{#1}}
        }
    }
}
\pgfarrowsdeclaredouble{<<s}{>>s}{stealth}{stealth}%   double stealth
\pgfarrowsdeclaretriple{<<<s}{>>>s}{stealth}{stealth}% triple stealth
\pgfarrowsdeclaredouble{<<<<s}{>>>>s}{<<s}{>>s}%    quadruple stealth
\begin{document}
\begin{tikzpicture}
    \tkzDefPoint(0,0){D}
    \tkzDefPoint(2,4){A}
    \tkzDefPoint(7,4){B}
    \tkzDefPoint(5,0){C}
    \tkzDefPoint(3.5,2){E}
    \tkzDefPoint(6,2){BC}% only to show the quadruple arrow
    \tkzLabelPoints[left](A,D)
    \tkzLabelPoints[right](B,C)
    \tkzLabelPoints[left=5pt](E)
    \tkzDrawSegments(B,D A,C)
    \tkzMarkSegments[mark=|](B,E D,E)
    \tkzMarkSegments[mark=||](A,E C,E)
    \tkzDrawSegments[arrowMe=stealth](A,B D,C)
    \tkzDrawSegments[>=stealth,arrowMe=>>](D,A C,B)
    \tkzDrawSegment[arrowMe=>>>>s](BC,E)% only to show the quadruple arrow
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容