我想画一条双线,每条线上都有小箭头。
我怎样才能在一条线的中间放置一个指向一个方向的箭头,而在另一条线上放置另一个指向相反方向的箭头?
它看起来应该是这样的:
------>-----
------<------
我更喜欢通过\draw
能够很好地连接这些段以及使用弯曲等其他绘制功能来实现这一点。
我能想到的最接近的做法是
\documentclass[tikz,margin=1cm]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[
doublearrow/.style={
double,
postaction={decorate},
decoration={markings,mark=at position .85 with {\arrow{latex}}}
}]
\draw[doublearrow] (0,0) -> (0,1);
\end{tikzpicture}
\end{document},
这与我想要实现的目标相差甚远。
答案1
下面是使用markings
装饰器的一次尝试(48.5 任意标记在 Ti钾Z 手册):
\documentclass[tikz,margin=1cm]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\tikzstyle{my arrow}=[
postaction=decorate,
decoration={
markings,
mark=at position #1 with {
\draw[->] (-.01pt,0) -- (0,0);
},
},
]
% It works on bent paths
\draw[my arrow=0.5] (0,0) to[bend right] (1,2);
% You can have multiple arrows on a single path
\draw[red,my arrow=0.25,my arrow=0.75] (1,2) -| (0,0);
\end{tikzpicture}
\end{document}
编辑:重新阅读您的问题,这可能是您正在寻找的吗?
\documentclass[tikz,margin=1cm]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\tikzstyle{arrowed double line}=[
double distance between line centers=3pt,
postaction=decorate,
decoration={
markings,
mark=between positions 10pt and -10pt step 20pt with {
\arrow[thin,yshift= 1.5pt,xshift=.8pt]{>}
\arrow[thin,yshift=-1.5pt,xshift=.8pt]{<}
},
},
]
\draw[arrowed double line] (0,0) .. controls (1,4) and (-2,2) .. (1,2);
\end{tikzpicture}
\end{document}