TikZ使用相对坐标定位填充矩形

TikZ使用相对坐标定位填充矩形

这是我第一次使用 tikz,所以问题相当简单。我试图用 tikz 实现一个简单的效果,即突出显示图像上的元素。

我使用了这些线程: 通过使图片的其余部分透明来突出显示图片中的某些区域 突出显示图像的一部分

在他们的帮助下我得到了如下代码:

\begin{tikzpicture}
\node[anchor=south west] (image) at (0,0)
{\includegraphics[totalheight=0.580\textheight, angle=90]{img/sioux-out/network1}};

\draw[red,ultra thick] (8,9.5) rectangle (10,11.5);
\fill [draw=none, fill=white, fill opacity=0.8] 
    (0,0) rectangle (8,11.5)
    (8,0) rectangle (10,9.5)
    (10,0) rectangle (16,11.5);
\end{tikzpicture}

它工作得很好,但我真的想将一些坐标更改为相对坐标,例如:

\fill [draw=none, fill=white, fill opacity=0.8] 
    (image.bottom left) rectangle (8,image.top)
    (8,image.bottom) rectangle (10,9.5)
    (10,image.bottom) rectangle (image.top right);

我尝试了北、南、东、西,但没有按预期工作。我期望它是这样的:

示例效果

答案1

节点有预定义的锚点名称image,因此您可以使用:

  • (image.south west)代替(image.bottom left)
  • (image.north east)代替(image.top right)

也可以将坐标指定为垂直线的交点:

  • (8, 0 |- image.north)代替(8, image.top)
  • (8, 0 |- image.south)代替(8, image.bottom)
  • (10, 0 |- image.south)代替(10, image.bottom)

相关内容