如何在 Tikz 中提供一个遮罩来突出显示杂乱背景上的箭头尖?

如何在 Tikz 中提供一个遮罩来突出显示杂乱背景上的箭头尖?

我有一系列技术图纸,我将其用作背景,突出显示特征或使用 Tikz 添加尺寸和注释。在某些情况下,背景非常繁杂,箭头往往会在其中“消失”。使用彩色箭头不是一个选择,因为最终的技术手册将是黑白的。我正在寻找一种简单的方法,在背景上绘制一个白色箭头尖,比普通箭头尖略大,以便局部遮盖背景并增强稍后绘制的(黑色)箭头尖可见性。我提供了一个 MWE 来说明上下文。实际上,我处理的背景比 MWE 中的更糟糕。

\documentclass[border= 5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns, arrows}
\begin{document}
\begin{tikzpicture}
\draw [step=0.1cm, pattern=north west lines] (-1,0) [very thick] rectangle (0.01, 3);
\draw [step=0.1cm, pattern=north west lines, very thick] (0,0) rectangle (1.42,1.4);
\draw [step=0.1cm, pattern=north east lines] (0,1.42) [very thick] rectangle (1.5,3);
\draw[] (-4.5,0)  -- (-2,0) node[above, midway, text width =2.3cm]{Clearance: 0,1 to 0,2 mm};
\draw[->, >= triangle 45] (-2,0)  -- (0.5,1.38);
\end{tikzpicture}
\end{document}

答案1

恐怕这不是一个特别自动的解决方案。它需要根据您的情况进行调整,直到看起来正确为止。

  • 我在你的黑线下面画了一条白色粗线。
  • 另外,我在正确的位置画了一个箭头。

这两个步骤一起做不太好,因为箭头会太大。以下页面是关于如何调整箭头大小的有用参考:是否可以更改 TikZ/PGF 中箭头的大小?

\documentclass[border= 5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns, arrows}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\draw [step=0.1cm, pattern=north west lines] (-1,0) [very thick] rectangle (0.01, 3);
\draw [step=0.1cm, pattern=north west lines, very thick] (0,0) rectangle (1.42,1.4);
\draw [step=0.1cm, pattern=north east lines] (0,1.42) [very thick] rectangle (1.5,3);
\draw[white, line width=1mm, shorten >=1mm] 
  (-4.5,0) -- (-2,0) -- (0.5,1.38);
\draw[->, >= triangle 45, white, decoration={
  markings,mark=at position 1 with {
    \arrow[xshift=0.7mm, scale=1.5]{>}}},
  postaction={decorate}] (-2,0) -- (0.5,1.38);
\draw[->, >= triangle 45] (-4.5,0) 
  -- (-2,0) 
    node[above, midway, text width =2.3cm]{Clearance: 0,1 to 0,2 mm} 
  -- (0.5,1.38);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以使用 来preaction绘制线条,在黑线和箭头下方添加一条粗白线。如果将其包裹在样式中,您可以这样写:

\draw[halo,->, >= triangle 45] (-2,0)  -- (0.5,1.38);

要得到

\documentclass[border= 5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns, arrows}

\tikzset{
    halo/.style={
        preaction={
            draw,
            white,
            line width=4pt,
            -
        },
        preaction={
            draw,
            white,
            ultra thick,
            shorten >=-2.5\pgflinewidth
        }
    }
}

\begin{document}
\begin{tikzpicture}
\draw [step=0.1cm, pattern=north west lines] (-1,0) [very thick] rectangle (0.01, 3);
\draw [step=0.1cm, pattern=north west lines, very thick] (0,0) rectangle (1.42,1.4);
\draw [step=0.1cm, pattern=north east lines] (0,1.42) [very thick] rectangle (1.5,3);
\draw[] (-4.5,0)  -- (-2,0) node[above, midway, text width =2.3cm]{Clearance: 0,1 to 0,2 mm};
\draw[halo,->, >= triangle 45] (-2,0)  -- (0.5,1.38);
\end{tikzpicture}
\end{document}

相关内容