创建带有三个圆圈的新节点样式

创建带有三个圆圈的新节点样式

我正在尝试创建一个由三个圆圈组成的节点,排列成三角形图案(一个在顶部,两个在底部,见下文)。

不太确定是否有可能定义一种新的风格,如果可以,该如何去做。

理想的情况是能够使用以下命令:

\node (test) [threeCircles] {};

三个圆圈

答案1

您可以使用一种pic“子图”,稍后可以像节点一样放置、旋转或缩放它。

例如,这可能是图片:

\tikzset{
mynode/.pic={
   \coordinate (center) at (0,0);
   \fill[top color=blue!50!cyan!40!white, bottom color=blue!40!black] (90:#1) circle(0.1);
   \fill[top color=blue!50!cyan!40!white, bottom color=blue!40!black] (-30:#1) circle(0.1);
   \fill[top color=blue!50!cyan!40!white, bottom color=blue!40!black] (210:#1) circle(0.1);
   },
pics/mynode/.default=0.2
}

坐标(center)是一个名称后缀,以后可以用来连接这样的图片。

要使用这些图片,请将它们作为\path命令的一部分。语法类似于节点,但使用pic而不是node,并将图片类型放在括号中,而不是节点的文本。即:pic[options] (name) {kind}。在此示例中,kind将是mynode

下面的例子使用了三张不同坐标、比例和旋转的图片。其中两张用箭头连接起来。

\begin{tikzpicture}
\path (0,0)  pic            (p1) {mynode} 
      (1,0)  pic[rotate=90] (p2) {mynode} 
      (0,1)  pic[scale=0.5] (p3) {mynode};
\draw[->] (p3center) to[bend left] (p2center);
\end{tikzpicture}

请注意,用于绘制箭头的坐标是p3centerp2center,它们是每个图片的“外部”名称与图片内一个坐标/节点的“内部”名称的连接。这样,您可以根据需要为三个内圆中的每一个定义“锚点”。

结果:

结果

图片的定义使用极坐标(0,0)来定位三个蓝色圆圈。到原点的距离是#1具有默认值的参数。例如,0.2如果您写入,则可以为其赋予另一个值。pic {myshape=0.5}

答案2

您可以创建一个新命令并将其与参数坐标一起使用。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand{\threeCircles}[2]{%
    \node[circle,blue,fill=blue] (a) at (#1,#2) {};
    \node[circle,blue,fill=blue] at ($(a)+(.3,-.4)$) {}; 
    \node[circle,blue,fill=blue] at ($(a)+(-.3,-.4)$) {}}

\begin{document}
    \begin{tikzpicture}
        \threeCircles{1}{1};
        \threeCircles{4}{1};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容