我需要创建一个图,其中在圆圈外填充了一个区域。由于填充区域必须用两种不同的颜色着色,因此简单地应用奇偶规则不起作用。这个,它对一种颜色有效,但对两种颜色无效。这不是我的问题。它已解决。
我从该论坛的其他帖子中看到了这篇文章:http://www.texample.net/tikz/examples/venn-diagram/。应用的例子是黄色圆圈A,将圆圈B的区域切掉。
我稍微修改了示例,以便让我看到我所做的。这是 MWE 代码:
\documentclass[a4]{article}
\usepackage{tikz}
\begin{document}
\def\firstcircle{(0,0) circle (1.5cm)}
\def\secondcircle{(45:2cm) circle (1.5cm)}
\begin{tikzpicture}
\begin{scope}[shift={(6cm,-10cm)}]
\draw[help lines] (0,0) grid (4,5);
\begin{scope}[even odd rule]% first circle without the second
\draw[clip] \secondcircle (-3,-3) rectangle (3,3);
\fill[yellow] \firstcircle;
\end{scope}
\draw \firstcircle node {$A$};
\draw \secondcircle node {$B$};
\end{scope}
\end{tikzpicture}
\end{document}
在修改代码以适合我的图片后,这有效并且解决了我自己的问题。
方形维恩图 http://www.linxtech.net/~jlinkels/links/venn-diagram.jpg
一个令人困扰的问题是,为什么它能起作用吗?为什么黄色圆圈是彩色的,但圆圈 B 所占的区域是空的。我理解当正方形被填充时,B 保持为空。但首先正方形没有被填充,B 保持为空是否仍然适用?添加圆圈 A 是完全不透明的(没有双关语的意思)。为什么 A 会填充,但仍然让 B 的区域保持为空?
答案1
为了看得更清楚,我稍微移动了一下。首先,您要切换到奇偶规则进行裁剪。下面是一个示例,说明如何将区域计算为偶数和奇数
\begin{tikzpicture}[even odd rule]
\fill[clip] (0,0) circle (2cm) (60:2.5cm) arc (60:-60:2.5) (60:3cm) arc (60:-60:3cm);
\end{tikzpicture}
请注意,这是一个 PostScript 指令,而不是 TikZ 指令。实现确实很奇怪。
回到您的示例,您正在矩形上打一个孔,\secondcircle
因此矩形和第二个圆的补圆之间的任何东西都是可见的,其余部分在该范围内被切断。看看第一个圆是如何切割的。如果您将它放在靠近打孔的位置,而不是左边缘,它也会被切割,这就是您的情况。网格是第一个被绘制的,所以它什么也没发生,但黄色填充覆盖了左下部分,造成了它也被剪裁的错觉。如果您删除黄色填充(在我的示例中也是黑色填充),您可以在那里看到它。
\def\firstcircle{(-2,0) circle (1.5cm)}
\def\secondcircle{(45:2cm) circle (1cm)}
\begin{tikzpicture}
\begin{scope}[shift={(6cm,-10cm)}]
\draw[help lines] (0,0) grid (4,5);
\begin{scope}[even odd rule]% first circle without the second
\fill[clip] \secondcircle (-3,-3) rectangle (3,3);
\fill[yellow] \firstcircle;
\end{scope}
\draw (-2,0) node {$A$};
\draw (45:2) node {$B$};
\end{scope}
\end{tikzpicture}