\draw [fill=black] (4,6) circle (0.3cm);
\draw [fill=black] (3,4.5) circle (0.3cm);
我怎样才能定义一个名为用户和半径0.3厘米,填充黑色和只需指定位置每次我画它?
答案1
使用圆形节点(没有内容),并为该节点定义适当的样式:
\tikzset{user/.style={circle, inner sep=0pt, minimum size=0.6cm, fill=black, draw=none}}
\begin{tikzpicture}
\node[user] at (4,6) {};
\node[user] at (3,4.5) {};
\end{tikzpicture}
另一种语法可以产生相同的结果:
\begin{tikzpicture}
\draw (4,6) node[user]{}
(3,4.5) node[user]{};
\end{tikzpicture}
更新
正如 Marc van Dongen 在评论中所建议的那样,一点解释可能会有用。
基于节点形状的解决方案是可行的,因为您请求了一个填充的圆,并且有一个名为的节点形状circle
。此方法适用于任何节点形状,但如果您需要填充绘制任意形状并且没有任何具有该形状的节点,则有两种解决方案:
- 定义您自己的节点形状。这可能是正确的做法但是定义新的节点形状绝非易事,因为您必须使用不如 tikz 语法那么友好的 pgf 绘图图元。
- 定义一个标准的 latex 命令来为您绘制图形。在这种情况下,问题是如何指定坐标,以便您可以将该形状放置在任意点。我认为最简单的解决方案是将“原点”作为参数传递并使用相对坐标(以
+(x,y)
路径构造的形式)。
以下是第二种方法的几个例子。
您请求的圈子:
\newcommand{\mycircle}[2][fill=black]{ \draw[#1] (#2) circle(0.3cm); } \begin{tikzpicture} \mycircle{4, 6} \mycircle{3, 4.5} \mycircle[fill=red, draw=none]{3.5,5} \end{tikzpicture}
请注意,我使用了一个可选参数,
#1
以便能够将不同的选项传递给路径。此参数的默认值是,fill=black
但在此示例中,我还使用它来获取红色圆圈。圆心作为第二个参数传递。更复杂(任意)的形状
\newcommand{\myshape}[2][fill=black]{ \draw[#1] (#2) +(0.1,0.1) -- +(0.5, 0.6) -- +(0.1,-0.1) -- + (-0.2,0.2) -- cycle; } \begin{tikzpicture} \myshape{4, 6} \myshape{3, 4.5} \end{tikzpicture}
在这种情况下,任意形状的点都是相对于其第一个点(
#2
宏的参数)使用+
每个坐标前面的语法指定的。