下面是我在 TikZ 中创建的维恩图。
这是代码。我现在想添加一个集合E
,使得
D
是的真子集E
,并且E
是的真子集B
。显然,该集合E
不能画成一个圆。最多,它可以是的边界E
可以是右侧的圆弧D
,再加上左侧和边界之间的不同圆弧B
。D
我想为 赋予不同的颜色E
,比如黄色。最好的方法是什么?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}
\begin{scope}[shift={(3cm,-5cm)}, fill opacity=0.5]
\draw[fill=red, draw = black] (0,0) circle (5);
\draw[fill=green, draw = black] (-1.5,0) circle (3);
\draw[fill=blue, draw = black] (1.5,0) circle (3);
\node at (0,4) (A) {\large\textbf{A}};
\node at (-2,1) (B) {\large\textbf{B}};
\node at (2,1) (C) {\large\textbf{C}};
\node at (0,0) (D) {\large\textbf{D}};
\end{scope}
\end{tikzpicture}
\end{document}
答案1
这是一种可能性,使用该intersections
库来查找两个内圆之间的交点坐标,然后使用语法.. controls <point> and <point> ..
绘制曲线;还对透明度组进行了一些额外的工作以获得正确的颜色:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}
\begin{scope}[shift={(3cm,-5cm)}, fill opacity=0.5,
mytext/.style={text opacity=1,font=\large\bfseries}]
\draw[fill=red, draw = black] (0,0) circle (5);
\draw[fill=yellow, draw = black,name path=circle 1] (-1.5,0) circle (3);
\draw[fill=blue, draw = black,name path=circle 2] (1.5,0) circle (3);
\pgftransparencygroup
\clip (-1.5,0) circle (3);
\fill[green] (1.5,0) circle (3);
\filldraw[draw,fill=green,name intersections={of=circle 1 and circle 2}] (intersection-1) .. controls +(-4,1) and +(-4,-1) ..(intersection-2);
\endpgftransparencygroup
\node[mytext] at (0,4) (A) {A};
\node[mytext] at (-3.8,0) (B) {B};
\node[mytext] at (3.8,0) (C) {C};
\node[mytext] at (0,0) (D) {D};
\node[mytext] at (-2,1) (E) {E};
\end{scope}
\end{tikzpicture}
\end{document}