如何使用 tikz 绘制此图表/图形?

如何使用 tikz 绘制此图表/图形?

我有这个图表,并尝试用每个点和线来绘制它,但我想知道,有没有办法用 foreach 循环或类似的东西来做到这一点?谢谢。

在此处输入图片描述

答案1

这不提供完整的代码,但提供了提示,以便您可以缩短代码。您可以pic对每个点组使用这样的代码。

\documentclass[tikz]{standalone}
\tikzset{
  dotcirc/.style={circle,inner sep=2pt,draw,fill=#1},
  pics/tripdots/.style args={#1/#2-#3/#4-#5/#6,name=#7}{
    code={
      \begin{scope}[local bounding box=#7]
        \draw (-1.2,0)--(1.2,0);
        \draw (0,0.2)--(0,-.2);
        \path (-1,0) node[dotcirc=#1] (#2) {};
        \path (0,0)  node[dotcirc=#3] (#4) {};
        \path (1,0)  node[dotcirc=#5] (#6) {};
      \end{scope}
    }
  }
}
\begin{document}
\begin{tikzpicture}
\pic at (0,0) {tripdots={red/ra-yellow/ya-green/ga,name=a}};
\draw[<-] (a) -- ++(.5,1) node[above] {\scalebox{0.5}{Traffic lights}};
\draw[<-] (ra) -- ++ (.5,-1) node[below] {\scalebox{0.5}{A colored circle}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容