将图像放置在tikz中的节点之间:如何实现精确定位

将图像放置在tikz中的节点之间:如何实现精确定位

我正在尝试在 tikz/pgf 绘图中包含背景图像。我需要能够直接在图像的某些特征上绘制节点,因此需要进行精确调整。

如果我能以某种方式将其修复到定义图像角落的两个节点,这将是最简单的,如下所示:

\documentclass{article}
\usepackage{pgf,tikz}
\begin{document}
\begin{tikzpicture}
\node at (0,0) {a};
\includegraphics{something.png}
\node at (2,2) {b};
\end{tikzpicture}
\end{document}

当然,这并不能达到我想要的效果,即缩放图像,使其右上角位于 (2,2),左下角位于 (0,0):

在此处输入图片描述

答案1

@percusse 的评论让我找到了正确的答案。它涉及使用范围环境。

以下代码取自@Caramdir 的回答使用 TikZ 在图像上绘图

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=0.9\textwidth]{some_image.jpg}};
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
        \draw[red,ultra thick,rounded corners] (0.62,0.65) rectangle (0.78,0.75);
    \end{scope}
\end{tikzpicture}
\end{document}

答案2

这个怎么样?

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node[inner sep=0pt] (img) at (0,0) {\includegraphics{example-image-a}};
\coordinate (a) at (img.south west);
\coordinate (b) at (img.north east);
\draw[blue,thick] (a)--(b);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容