tikz 箭头形式为 =-> 和 -=>

tikz 箭头形式为 =-> 和 -=>

我正在尝试使用 tikz 绘制箭筒,我需要在两个节点之间绘制 =-> 和 -=> 形式的箭头。最好的方法是什么?任何帮助都值得感激。

答案1

这接近你想要的吗?

\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{decorations.pathreplacing, arrows}

\tikzset{
  -z>/.style={
    decoration={
      show path construction,
      lineto code={
        \path (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast) coordinate[pos=#1] (mid);
        \draw (\tikzinputsegmentfirst) -- (mid);
        \draw[double, -implies] (mid) -- (\tikzinputsegmentlast);      }
    },decorate
  }, -z>/.default=.5,
  z->/.style={
    decoration={
      show path construction,
      lineto code={
          \path (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast) coordinate[pos=#1] (mid);
                \draw[double] (\tikzinputsegmentfirst) -- (mid);
                \draw[->] (mid) -- (\tikzinputsegmentlast);
      }
    },decorate
  }, z->/.default=.5,
}

\begin{document}
\begin{tikzpicture}
  \draw [-z>] (0,0) -- (1,0);
  \begin{scope}[red, thick]
    \draw [z->=.3] (0,-.2) -- (1,-.4);
  \end{scope}
\end{tikzpicture}
\end{document}

样式线条

我认为您不能将其=作为样式名称的一部分,因此我用 表示了双线z。请注意,两种样式的箭头并不完全相同,尽管这可能可以修复。出于某种原因,命令上的样式\draw无法可靠地传递给装饰,但如果您需要进一步设置样式,则可以使用范围。

答案2

您可以做类似的事情,使用edge带有箭头尖绘制第二条线。

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}
  \draw  (0,0) -- (1,0) edge [double, -{Implies}] ++(10pt,0);
  \draw [double]  (0,-.25) -- (1,-.25) edge [double=none, ->] ++(10pt,0);
\end{tikzpicture}
\end{document}

分割线

但我并不确信我明白你想做什么。

答案3

您可以使用midway键(或pos键)coordinatenode找到边的中点,然后绘制两个半边,或者在单半边的顶部重新绘制双半边。以下是执行此操作的一些基本示例。(请注意,cfr 使用 arrows.meta tikz 库会产生更好的箭头。)

\documentclass[tikz,border=10pt]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[black!10] (-1,0) grid (3,3);
\path (0,0) node (A)[draw,circle] {A} -- (3,1) node[draw,circle](B){B}  (A)--(B) coordinate[midway](mAB);
\path (A) -- (-1,2) node[draw,circle] (C) {C}  (A)--(C) coordinate[pos=0.5](mAC);
\draw[double,line cap=round] (A)--(mAB); \draw[->] (mAB)--(B);
\draw (A)--(mAC); \draw[double,->] (mAC)--(C);
\draw[thick] (3,3)coordinate(A)--(1,1)coordinate(Z) coordinate[midway](M); \draw[double,->] (M)--(Z);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容