更新

更新

我有一个网格,我想对它做一些改变,但没有想法。

我的最小例子:

\documentclass[border=2mm]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}
    \draw[step=2cm,color=gray,rotate=45] (-1,-1) grid (9,9);
    \node at (-0.5,+0.5) {A};
    \end{tikzpicture}
\end{document}

但这并不能给我答案。
我真正想要的是
(i) 每条相邻的线都有不同的颜色(总共两种,可能一种是红色,另一种是蓝色)。
(ii) 然后在蓝线和红线相交的地方画一个圆圈(用圆圈隐藏十字),圆圈内有一个文本,例如A(我放错了),他们经过的每一个地方。 在此处输入图片描述

(部分接近)
不要考虑背景颜色。但类似于这个有向(带箭头)网络。带有虚线和完整圆圈,标签不同。

我对 TikZ 和 LaTeX 绘图还不熟悉。抱歉。

答案1

问题不太清楚。当我准备这个解决方案时,我看到 marsupilam 已经回答了非常类似的问题。我的解决方案的主要区别在于包含一个\path[clip]以删除不需要的部分:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\path[clip] (-3,-3) rectangle +(6,6);
\begin{scope}[rotate=45]
    \foreach \x in {-4,...,4} {
    \draw[red] (\x, -4) -- +(0,8);
    }
    \foreach \y in {-4,...,4} {
    \draw[blue] (-4,\y) -- +(8,0);
    }
    \foreach \x in {-4,...,4}
      \foreach \y in {-4,...,4}
         \node[draw,circle,fill=white, inner sep=2pt] at (\x,\y) {A};
\end{scope}
\end{tikzpicture}

\结束{文档}

结果:

结果

更新

楼主要求节点之间画箭头,一开始我想的是装饰一下边,但最后还是觉得下面的方法简单多了,箭头稍微偏移了一下:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\begin{document}
\begin{tikzpicture}[>=stealth]
\path[clip] (-3,-3) rectangle +(6,6);
\begin{scope}[rotate=45]
    \foreach \x in {-4,...,4}
      \foreach \y in {-4,...,4} {
         \draw[blue,->] (\x-0.4, \y) -- (\x+0.6, \y);
         \draw[red, ->] (\x, \y-0.5) -- (\x, \y+0.6);
         \node[draw,circle,fill=white, inner sep=2pt] at (\x,\y) {A};
      }
\end{scope}
\end{tikzpicture}

\end{document}

结果

更新 2

OP 后来要求为备选节点提供不同的样式/内容。最简单的方法是计算mod(abs(x+y), 2)+1只有两个可能结果(1 和 2)的函数,并使用此结果在节点内容中设置适当的子索引,并选择不同的 tikz 样式。

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\tikzset{
 mynode/.style = {circle, draw, thick, fill=white, inner sep=0pt},
 type1/.style = {mynode},
 type2/.style = {mynode, dashed}
}

\begin{document}
\begin{tikzpicture}[>=stealth]
\path[clip] (-3,-3) rectangle +(6,6);
\begin{scope}[rotate=45]
    \foreach \x in {-4,...,4}
      \foreach \y in {-4,...,4} {
         \pgfmathsetmacro{\type}{int(mod(abs(\x+\y),2)+1)};
         \draw[blue,->] (\x-0.4, \y) -- (\x+0.6, \y);
         \draw[red, ->] (\x, \y-0.5) -- (\x, \y+0.6);
         \node[type\type]
              at (\x,\y) {$A_\type$};
      }
\end{scope}
\end{tikzpicture}

\end{document}

结果

答案2

更新

带夹子,无坐标标签

\documentclass[border=2mm]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}
    \path[clip] (-10,-4) rectangle +(8,8);
    \begin{scope}[rotate=45]
    \draw[step=4cm,color=blue, thick] (-15,-15) grid (9,9);
    \draw[step=4cm,color=red,thick, shift={(-2cm,-2cm)}] (-13,-13) grid (11,11);
    \foreach \i in {-14,-12,...,8}{%
        \foreach \j in {-14,-12,...,8}
        \node[fill=black!30,circle,radius=2pt] at (\i,\j) {A};
    }
    \end{scope}
    \end{tikzpicture}
\end{document}

在此处输入图片描述


正如其他人提到的那样,这个问题并不明确。我的解释是这样的:

  • 平行网格线(在两个轴上)应该具有交替的颜色。
  • 带有文字的圆圈

显然,圆圈不必在每个交点上,您可以自己在相关坐标上添加节点。我已将坐标留在节点上方,供您参考。如果不需要,您可以在自己的代码中省略它们。

另外,问题中的图像在节点之外有标签,所以我一时对您想要什么感到困惑。

在此处输入图片描述

\documentclass[border=2mm]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}[rotate=45]
    \draw[step=4cm,color=blue, thick] (-3,-3) grid (9,9);
    \draw[step=4cm,color=red,thick, shift={(-2cm,-2cm)}] (-1,-1) grid (11,11);
    \foreach \i in {-2,0,...,8}{%
        \foreach \j in {-2,0,...,8}
        \node[fill=black!30,circle,radius=2pt,label={[above]:(\i,\j)}] at (\i,\j) {A};
    }
    \end{tikzpicture}
\end{document}

我的代码的关键:

基本上,我将网格大小从 加倍2cm4cm,并设置两个相互叠加的网格,并进行移位。这样,我就可以为网格设置两种颜色。

答案3

欢迎来到 TeX.SX!

编辑版本

输出

更接近你的照片。这样好些吗?

在此处输入图片描述

代码

\documentclass[tikz,border=2mm]{standalone}

\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}
      \begin{scope}[rotate=45]
        \coordinate (SE) at (-1,-1) ;
        \coordinate (NW) at (9,9) ;
        \foreach \x in {0,2,...,8}
        {
          \coordinate (X) at (\x,\x);
          \draw [red] (X-|SE) -- (X-|NW) ;
          \draw [blue] (X|-SE) -- (X|-NW) ;
        }
        \foreach \x in {0,2,...,8}
        {
          \foreach \y in {0,2,...,8}
          {
            \node [circle, draw, fill=green, fill opacity=.8, text opacity=1] at (\x,\y) {A};
          }
        }
      \end{scope}
    \end{tikzpicture}
\end{document}

原始版本

这就是你需要的吗?

输出

在此处输入图片描述

代码

\documentclass[tikz,border=2mm]{standalone}

\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}
      \begin{scope}[rotate=45]
        \coordinate (SE) at (-1,-1) ;
        \coordinate (NW) at (9,9) ;
        \draw [step=2cm,color=gray] (SE) grid (NW);
        \coordinate (A) at (2,4) ;
        \draw [blue, thick,] (SE|-A) -- (NW|-A) ;
        \draw [red, thick,] (SE-|A) -- (NW-|A) ;
        \node [circle, draw, fill=green, fill opacity=.8, text opacity=1] at (A) {A};
      \end{scope}
    \end{tikzpicture}
\end{document}

相关内容