如何使用 tikz 在 4 x 4 网格上从点到点绘制一条线?

如何使用 tikz 在 4 x 4 网格上从点到点绘制一条线?

3 x 3 网格/完整可编译代码

如何在 tikz 中从左下角到右上角画一条直线?

这是我的代码。

\documentclass{article}
\usepackage{tikz}

\tikzset{mystyle/.style={shape=circle,fill=black,scale=0.3}}
\tikzset{withtext/.style={fill=white}}

\begin{document}

\begin{figure}
    \begin{minipage}{.5\textwidth}
        \begin{tikzpicture}[scale=.5]
            % setup the nodes
            \foreach \x in {0,...,3}
            \foreach \y in {0,...,3}
            {
            \ifnum\x=4
                \ifnum\y=4
                    \node (\x-\y) at (\x,\y){X};
                \else
                    \node[mystyle] (\x-\y) at (\x,\y){};
                \fi
            \else
                \node[mystyle] (\x-\y) at (\x,\y){};
            \fi}
             \end{tikzpicture}
       \end{minipage}
       \end{figure}
\end{document}

答案1

像这样:

在此处输入图片描述

您只需要在左下角定义节点名称,即在\x=0\y=0(因为\foreach循环从这个角开始):(0-0)以及在右上角,即在 \x=3\y=3 (因为\foreach循环在这个角停止): (3-3)然后驱动箭头:

%\documentclass{article}
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\tikzset{mystyle/.style={shape=circle,fill=black,scale=0.3}}
\tikzset{withtext/.style={fill=white}}

\begin{document}
%\begin{figure}
%    \begin{minipage}{.5\textwidth}
\begin{tikzpicture}%[scale=.5]
% setup the nodes
\foreach \x in {0,...,3}
\foreach \y in {0,...,3}
{
    \node[mystyle] (\x-\y) at (\x,\y) {};
}
\draw[red,-Straight Barb, semithick]
    (0-0) -- (3-3);
\end{tikzpicture}
%       \end{minipage}
%       \end{figure}
\end{document}

笔记:

  • 我擅自更改了您的循环代码,并大大简化了您的循环代码。
  • 要查看绘制节点的顺序,请将测试节点写入
\node[mystyle,label={\tiny x,y=\x,\y}] (\x-\y) at (\x,\y){};

你会看到

在此处输入图片描述

相关内容