我在 Tikz 中绘制了一个小图,其中有两条路径以不同的颜色突出显示。但是,这些路径将共享一个箭头。我想要用两种颜色突出显示这个箭头,一个在上,一个在下,以便读者可以区分这两条路径。有没有办法在 Tikz 中做到这一点?下面是我生成图片的 Tikz 代码:
\begin{tikzpicture}
\tikzset{edge/.style = {->,very thick}}
\tikzset{p1/.style={preaction={%But before that
draw,yellow,-,% Draw yellow without any arrow head
double=yellow,
double distance=.4\pgflinewidth,
}}}
\tikzset{p2/.style={preaction={%But before that
draw,green,-,% Draw green without any arrow head
double=green,
double distance=.4\pgflinewidth,
}}}
\tikz {
%%First graph
\draw[edge,densely dashed](0,0) node[label={[xshift=-.2cm,yshift=-.4cm]$w$}]{} -- (1,0) ;
\draw[edge,red,p1] (1,0) -- (2.45,.5) ;
\draw[edge,densely dashed,p1] (2.5,.5) node[label={[xshift=0cm,yshift=-.2cm]$w'$}]{} .. controls (3.25,1) .. (4.95,0.15);
\draw[edge,blue,p2] (1,0) -- (2.45,-.5);
\draw[edge,blue,densely dashed] (2.5,.5) -- (3.35,.10);
\draw[edge,red,densely dashed] (2.5,-.5) -- (3.35,-.10);
\draw[edge,densely dashed] (3.8,0) node[label={[xshift=-.2cm,yshift=-.4cm]$w'''$}]{}-- (5,0) node[label={[xshift=.2cm,yshift=-.4cm]$W$}]{};
\draw[edge,densely dashed,p2] (2.45,-.5) node[label={[xshift=0cm,yshift=-.8cm]$w''$}]{} .. controls (3.25,-1) .. (4.95,-0.15);
}
\end{tikzpicture}
我刚刚学会了如何在 Tikz 中做这种事情,因此对于我确信非常糟糕的编码风格深表歉意。
我希望结果看起来类似于问题“双色箭头”但黑色虚线箭头仍然可见(如果可能的话,在 Tikz 中也可见)。非常感谢您提供的任何帮助!
编辑:为了更清楚起见,我附上了一张图片。再次感谢。
答案1
w'''
这不是很优雅,但你可以用以下方法替换从到绘制边缘的线W
:
\draw[blue, very thick,yshift=0.7pt](3.8,0)--(4.9,0);
\draw[red,very thick,yshift=-0.7pt](3.8,0)--(4.9,0);
\draw[edge,densely dashed] (3.8,0) node[label={[xshift=-.2cm,yshift=-.4cm]$w'''$}]{}-- (5,0) node[label={[xshift=.2cm,yshift=-.4cm]$W$}]{};
得出:
我确信应该有一些更奇特的(更好的)方法可以通过装饰/预先行动来实现这一点,但是......
答案2
\documentclass[pstricks,dvipsnames]{standalone}
\usepackage{pst-node}
\def\myline(#1)(#2){%
\pnode(#1){A}
\pnode(#2){B}
\psset{linewidth=1}
\pcline[offset=.5,linecolor=Yellow](A)(B)
\pcline[offset=-.5,linecolor=Green](A)(B)
\psline[arrowsize=0pt 2]{->}(A)(B)}
\begin{document}
\pspicture[showgrid=false](-4,-3)(4,3)
\myline(-3,-1)(3,1)
\endpspicture
\end{document}