如何在 Tikz 图片中修复节点相对于网格的坐标(Tikz101)

如何在 Tikz 图片中修复节点相对于网格的坐标(Tikz101)

我的水平是 Tikz 101,因此正在寻找一种统一的图形绘制方法,以便所有图形都相对于投影仪文档中所有幻灯片中的固定参考点进行定位。

为了获得参考坐标,我想到首先在 beamer 文档的幻灯片上放置一个网格。有人能告诉我如何指定节点 b1 的坐标吗?我假设一旦我修复了第一个节点的位置,其余块将不需要任何节点参考,因为它们的位置将参考节点 b1 定义。我的 MWE 是:

\documentclass{beamer}
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{text comp}
\usetikzlibrary{shapes.geometric ,arrows}

   \begin{document}
   % Definition of blocks:
   \tikzstyle{block} = [rectangle, minimum width=2cm, minimum height=1cm, text centered, text width=2cm, draw=black, fill=white]

   \begin{frame}
   \begin{center} 
   \begin{tikzpicture}[node distance=2 cm]
   \draw [step=0.5cm,gray,very thin](-5,-2) grid (5,5);
   \draw (+0,+1.5) [red] circle (0.5 cm);

   \node(b1) [block] {B1};
   \node(b2) [block, right of=b1, xshift=0.3cm] {B2};

\end{tikzpicture}
\end{center} 
\end{frame}
\end{document}

有没有更好的方法来实现这个目标?

答案1

可以remember picture,overlay将 FIG tikz 定位到页面上的任何位置。

这需要两次编译。

\documentclass{beamer}
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{text comp}
\usetikzlibrary{shapes.geometric ,arrows}

   \begin{document}

   \begin{frame}
   \begin{center} 
   \begin{tikzpicture}[node distance=2 cm,remember picture,overlay,shift={(current page.center)}]

   \node[circle,draw](b1)at (0,0) {B1} ;
   \draw[gray] (current page.north) -- (current page.south);
      \draw[gray] (current page.east) -- (current page.west);
    \draw [step=0.5cm,gray,very thin](-.4\textwidth,0.4\textheight) grid (.4\textwidth,-0.4\textheight);

\end{tikzpicture}
\end{center} 
\end{frame}
\end{document}

在此处输入图片描述

相关内容