![TikZ使用相对坐标定位填充矩形](https://linux22.com/image/309163/TikZ%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%AF%B9%E5%9D%90%E6%A0%87%E5%AE%9A%E4%BD%8D%E5%A1%AB%E5%85%85%E7%9F%A9%E5%BD%A2.png)
这是我第一次使用 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)