答案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}
请注意,用于绘制箭头的坐标是p3center
和p2center
,它们是每个图片的“外部”名称与图片内一个坐标/节点的“内部”名称的连接。这样,您可以根据需要为三个内圆中的每一个定义“锚点”。
结果:
图片的定义使用极坐标(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}