tikz のノード間に画像を配置する: 正確な位置決めを実現する方法

tikz のノード間に画像を配置する: 正確な位置決めを実現する方法

tikz/pgf 図面に背景画像を含めようとしています。画像の特定の特徴にノードを直接描画できるようにする必要があるため、正確に調整する必要があります。

これを、次のように画像の角を定義する 2 つのノードに何らかの方法で固定できれば、最も簡単になります。

\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}

ここに画像の説明を入力してください

関連情報