双线上的相反箭头

双线上的相反箭头

我想画一条双线,每条线上都有小箭头。

我怎样才能在一条线的中间放置一个指向一个方向的箭头,而在另一条线上放置另一个指向相反方向的箭头?

它看起来应该是这样的:

------>-----

------<------

我更喜欢通过\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 任意标记在 TiZ 手册):

\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}

第二个结果

相关内容