![如何在 Tikz 中提供一个遮罩来突出显示杂乱背景上的箭头尖?](https://linux22.com/image/269857/%E5%A6%82%E4%BD%95%E5%9C%A8%20Tikz%20%E4%B8%AD%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AA%E9%81%AE%E7%BD%A9%E6%9D%A5%E7%AA%81%E5%87%BA%E6%98%BE%E7%A4%BA%E6%9D%82%E4%B9%B1%E8%83%8C%E6%99%AF%E4%B8%8A%E7%9A%84%E7%AE%AD%E5%A4%B4%E5%B0%96%EF%BC%9F.png)
我有一系列技术图纸,我将其用作背景,突出显示特征或使用 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}