更新

更新
\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。此方法适用于任何节点形状,但如果您需要填充绘制任意形状并且没有任何具有该形状的节点,则有两种解决方案:

  1. 定义您自己的节点形状。这可能是正确的做法但是定义新的节点形状绝非易事,因为您必须使用不如 tikz 语法那么友好的 pgf 绘图图元。
  2. 定义一个标准的 latex 命令来为您绘制图形。在这种情况下,问题是如何指定坐标,以便您可以将该形状放置在任意点。我认为最简单的解决方案是将“原点”作为参数传递并使用相对坐标(以+(x,y)路径构造的形式)。

以下是第二种方法的几个例子。

  1. 您请求的圈子:

    \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但在此示例中,我还使用它来获取红色圆圈。圆心作为第二个参数传递。

    界

  2. 更复杂(任意)的形状

    \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宏的参数)使用+每个坐标前面的语法指定的。

相关内容