如何绘制带有中心标签和东北标签的网格

如何绘制带有中心标签和东北标签的网格

我想实现这张图片。中间的标签是任意的,但东北角的标签是一个升序整数。我的 MWE 是我能做的最好的。

在此处输入图片描述

这是我的 MWE。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\foreach \i in {1,...,9}
{
     \pgfmathtruncatemacro{\y}{(\i - 1) / 3};
     \pgfmathtruncatemacro{\x}{\i - 3 * \y};
     \pgfmathtruncatemacro{\label}{\x + 3 * (2 - \y)};
     \node[circle,draw=black,fill=white!80!black,minimum size=20]
     (\label) at (1.5*\x,1.5*\y) {\label};
}

\draw (1) -- (2);
\draw (2) -- (3);
\draw (4) -- (5);
\draw (5) -- (6);
\draw (7) -- (8);
\draw (8) -- (9);

\draw (1) -- (4);
\draw (2) -- (5);
\draw (3) -- (6);
\draw (4) -- (7);
\draw (5) -- (8);
\draw (6) -- (9);

\end{tikzpicture}
\end{document}

答案1

您可以调用\usetikzlibrary{positioning}来指定放置标签的位置。在本例中,您希望它位于东北部,因此您可以将其指定为\node[above right=<距离> of \label]。我发现距离 0 看起来不错,但您可以根据需要进行调整。

\begin{tikzpicture}
\foreach \i in {1,...,9}
{
     \pgfmathtruncatemacro{\y}{(\i - 1) / 3};
     \pgfmathtruncatemacro{\x}{\i - 3 * \y};
     \pgfmathtruncatemacro{\label}{\x + 3 * (2 - \y)};
     \node[circle,draw=black,fill=white!80!black,minimum size=20]
     (\label) at (1.5*\x,1.5*\y) {\label};
     \node[above right=0mm of \label]  {\scriptsize\label};
}

在此处输入图片描述

相关内容