如何在一个命令内关闭 TikZ 中的“填充”模式?

如何在一个命令内关闭 TikZ 中的“填充”模式?

我想在一个命令中绘制一个椭圆及其中心点,如下所示:

\draw (1,0) [fill] circle (1mm) node[below]{$1$} ellipse (5 and 2);

我希望中心点被填充,但椭圆不被填充。也许我可以先绘制椭圆,然后激活该[fill]选项,但是有没有命令可以[nofill]在 tikz 绘制椭圆之前关闭填充?

答案1

根据手动的(第 136 页)您可以[fill=none]按照这种方式使用。

\draw (1,0) [fill] circle (1mm) node[below]{$1$} [fill=none] ellipse (5 and 2);

不过我自己还没尝试过。

答案2

不,这是不可能的。从手册(2.10 版第 73.1 节)中可以看出:

影响路径呈现方式的所有选项始终都会影响完整路径。

这里圆和椭圆在同一个\draw命令中,因此是同一条路径的一部分(例外情况是edgenode命令总是创建新路径)。因此,您需要按照 Thorsten 的建议用节点标记中心(可能用填充的圆形节点)或将代码拆分为两个单独的\draw语句。对于后者,命名坐标可能很有用:

\fill (1,0) node[coordinate] (thecenter) {} circle (1mm) node[below]{$1$};
\draw (thecenter) ellipse (5 and 2);

答案3

由于 draw 命令的选项可以在多个地方给出,我猜答案是它不能在一个命令中完成。但是,使用后动作和预动作可能会有一些技巧……虽然我想不出是什么。

答案4

也许另一种方法会有所帮助。只需将用作\textbullet椭圆中心的节点即可。

\draw (1,0) node {\textbullet} node[below] {1} ellipse (5 and 2);

然而,这样做的缺点是中心点的大小现在是固定的。

相关内容