我在 tikz 中有一个 for 循环,它绘制了 n 个圆圈,我想将它们命名为 A、B、C……等等,我该怎么做?我可以创建一个 char 数组或类似的东西并在标签中使用它吗{$ $}
如果我这样做
{$\x*\y$};
标签显示为1*1
,1*2
我该如何实际相乘才能得到 和 这样的1
标签2
。
\foreach \x in {1,...,2}
\foreach \y in {1,...,2}
{
\node[regular polygon, regular polygon sides=6, draw, inner sep=\hex cm] (hex\x*\y*4) at
(\x*\pi*4.2,\y*\pi*1.6 + 0.8*\pi) {};
\node[zoneMaster] at (\x*\pi*4.2,\y*\pi*1.6 + 0.8*\pi) {};
\node[zoneMaster] [minimum size=0.7cm, fill=Black,text=White] at (\x*\pi*4.2,\y*\pi*1.6 + 0.8*\pi) {$\x*\y$};
}
答案1
您可以使用 \pgfmathsetmacro
或\pgfmathtruncatemacro
来计算实数或整数值:
笔记:
- 该样式
zoneMaster
尚未定义,因此我将其定义为空样式。 - 宏
\pi
是数学常数的希腊字母,不是数值。pgfmath
您可以使用pi
数值。
代码:
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\tikzset{zoneMaster/.style={}}
\begin{document}
\begin{tikzpicture}[scale=0.75]
\foreach \x in {1,...,2}
\foreach \y in {1,...,2}
{
\pgfmathsetmacro{\X}{0.5*\x*pi*4.2}%
\pgfmathsetmacro{\Y}{\y*pi*1.6 + 0.8*pi}%
\pgfmathtruncatemacro{\Label}{\x*\y*4}%
\node[regular polygon, regular polygon sides=6, draw, inner sep=1cm] (hex\Label) at
(\X,\Y) {};
\node[zoneMaster] at (\X,\Y) {};
\node[zoneMaster] [minimum size=0.7cm, fill=black,text=white] at (\X,\Y) {$\x*\y$};
}
\end{tikzpicture}
\end{document}