在 tikz 图中提前定义坐标

在 tikz 图中提前定义坐标

我正在尝试创建一个具有一定随机性的元素圈。我想预定义坐标以创建复杂元素。我正在使用这个:

\newcommand{\elm}[2]{
  \shade [ball color=red] (#1,#2) circle (4 pt);
}

和这个:

\begin{tikzpicture}
  \foreach \ang in {0,90,...,270}{
    \pgfmathsetmacro{\r}{200pt}
    \pgfmathsetmacro{\dx}{rand*2}
    \pgfmathsetmacro{\dy}{rand*2}
    \elm{{\r*cos(\ang) + \dx},{\r*sin(\ang)+\dy}}
  }
\end{tikzpicture}

我得到的只是一张白纸,没有任何图形。如何才能正确做到这一点?

答案1

使用它可能会更有益\pgfmathsetlengthmacro。目前变量需要 2 米,\r因为默认值是厘米。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \foreach \ang in {0,90,...,270}{
    \pgfmathsetlengthmacro{\r}{2cm}
    \pgfmathsetlengthmacro{\dx}{rand*2 cm}
    \pgfmathsetlengthmacro{\dy}{rand*2 cm}
    \shade [ball color=red] ({\r*cos(\ang) + \dx},{\r*sin(\ang) + \dy}) circle (4 pt);
  }
\end{tikzpicture}
\end{document}

另外,如果我没记错的话,您只向\elm定义了两个参数的地方传递了一个参数。我删除了它以使其更简洁。

在此处输入图片描述

相关内容