TikZ:增加 foreach 循环

TikZ:增加 foreach 循环

我正在(X, Y)平面上绘制一个随机向量,其中 X 和 Y 定义为骰子的掷出结果,X 是骰子 1 加骰子 2,Y 是骰子 1 减骰子 2。

我无法设置foreach循环来处理此任务。我正在考虑(虽然行不通,但也许可以修改)

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \foreach[count = \x from 1] \y in {1, 2, ..., 6}{
    \fill[red] (\x + \y, \x - \y) circle[radius = 0.02cm];
  }
\end{tikzpicture}
\end{document}

我之所以以此来命名该点,(\x + \y, \x - \y)是因为我不确定如何构建这个方面以使其贯穿所有选项。

答案1

或许...

\documentclass[tikz,border=5]{standalone}
\usepackage{epsdice}
\begin{document}
\tikz[x=.75cm,y=.75cm]
  \foreach \x in {1,...,6}
    \foreach \y in {1,...,6}
      \fill (\x+\y, \x-\y) circle[radius = 0.02cm]
        node [above] {\epsdice\x\ \epsdice\y};
\end{document}

在此处输入图片描述

答案2

我不太确定我是否理解了你试图做的事情。例如,掷骰子应该是 6 次(随机)、2 次还是 6 对 2 次掷骰子?正如\x循环一样1,...,6,我认为可能掷骰子 6 次,但这可能意味着标准骰子上有 1 到 6 的数字,或者不是...:)

我的第一印象是你想要这样的东西(6次随机掷骰子的情节):

在此处输入图片描述

\pgfmathrandominteger此处使用以下代码随机放置点:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw[thick] (0,-0.5)--(0,6.5);
  \draw[thick] (-0.5,0)--(6.5,0);
  \foreach \x in {1, 2, ..., 6}{
    \pgfmathrandominteger{\y}{1}{6}% random number between 1 and 6
    \fill[red] (\x,\y) circle[radius = 2mm];
    \draw[thin](\x,0.2)--(\x,-0.2)node[below]{$\x$};
    \draw[thin](0.2,\x)--(-0.2,\x)node[left]{$\x$};
  }
\end{tikzpicture}
\end{document}

您可以使用明确设置随机生成器使用的种子\pgfmathsetseed——默认种子是\time×\year

我放了轴,让点的分布更清晰。我还更改了点的大小,因为0.02cm它太小了。

然而,重新阅读你的问题,你似乎希望绘制点的坐标是两次掷骰子的结果之和与差,所以也许你真的在寻找这种排序图:

在此处输入图片描述

它是使用以下方式创建的:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw[thick] (0,-5.5)--(0,5.5);
  \draw[thick] (-0.5,0)--(12.5,0);
  \foreach \i in {1, 2, ..., 6}{
    \pgfmathrandominteger{\x}{1}{6}
    \pgfmathrandominteger{\y}{1}{6}
    \fill[red] (\x + \y, \x - \y) circle[radius = 2mm];
  }
  \foreach \i in {1,2,...,5} {
    \draw[thin](0.2,\i)--(-0.2,\i)node[left]{$\i$};
    \draw[thin](0.2,-\i)--(-0.2,-\i)node[left]{$-\i$};
  }
  \foreach \i in {1,2,...,12} {
    \draw[thin](\i,0.2)--(\i,-0.2)node[below]{$\i$};
  }
\end{tikzpicture}
\end{document}

如果您对大量点执行此操作,那么您当然只会填充线条所包围的整数格中的所有点(2,0)--(7,5)--(12,0)--(7,-5)--(2,0)

相关内容