TiKz 中线的位置

TiKz 中线的位置

我在 TiKz 中制作了几个镶嵌,但我发现使用 \foreach 命令时,线条的起始位置不正确。我不确定这是为什么。

\begin{figure}[H]
    \centering
    \begin{tikzpicture}
        \foreach \y [count=\j, evaluate=\j as \y using 2*sqrt(2)*\j]  in {-8,0,8}{
        \foreach \x in {-8,-4,...,8}
        {
            \draw[line width=1.8pt][-] ($({\x},{\y})$) -- ($({\x+2},{\y+ 2*sqrt(2)})$);
        }
    }
    \foreach \z [count=\i, evaluate=\i as \z using 2*sqrt(2)*\i]  in {-4,4}{
    \foreach \r in {-8,-4,...,8}
    {
    \draw[line width=1.8pt][-] ($({\r},{\z})$) -- ($({\r},{\z+ sqrt(2)})$);
}
}

生产

在此处输入图片描述

我不明白为什么初始 y 坐标为 2平方根(2)(-8)从与初始 y 坐标为 2 的线相同的位置开始平方根(2)例如(-4)。

正如您所看到的,我尝试将代码分成具有不同标签的两个部分,以防出现某种依赖关系,但这没有帮助。

答案1

和你的

\foreach \y [count=\j, evaluate=\j as \y using 2*sqrt(2)*\j]  in {-8,0,8}

循环变量\j将是1, 2, 3,因此\y = 2*sqrt(2)*\j与列表无关-8,0,8

你需要的是

\foreach \j [evaluate=\j as \y using 2*sqrt(2)*\j]  in {-8,0,8}

此时间\j将是-8,0,8,因此\y将是所需值。

另外,($({\x},{\y})$) -- ($({\x+2},{\y+ 2*sqrt(2)})$)可以简化为(\x,\y) -- (\x+2,{\y+2*sqrt(2)})

答案2

您必须添加我的代码的最后几行,并在您的代码中更改 {-4,4 in {-4,0,4}

\documentclass[10pt,a4paper]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[italian]{babel}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{float,graphicx,tikz}
    \usetikzlibrary{calc}
    \begin{document}
        \begin{figure}[H]
            \centering
            \begin{tikzpicture}
                \foreach \y [count=\j, evaluate=\j as \y using 2*sqrt(2)*\j]  in {-8,0,8}{
                    \foreach \x in {-8,-4,...,8}
                    {
                        \draw[line width=1.8pt][-] ($({\x},{\y})$) -- ($({\x+2},{\y+ 2*sqrt(2)})$);
                    }
                }
                \foreach \z [count=\i, evaluate=\i as \z using 2*sqrt(2)*\i]  in {-4,0,4}{
                    \foreach \r in {-8,-4,...,8}
                    {
                        \draw[line width=1.8pt][-] ($({\r},{\z})$) -- ($({\r},{\z+ sqrt(2)})$);
                    }
                }
            \end{tikzpicture}
        \end{figure}
    \end{document}

在此处输入图片描述

相关内容