绘制维恩图

绘制维恩图

下面是我在 TikZ 中创建的维恩图。 在此处输入图片描述

这是代码。我现在想添加一个集合E,使得 D是的真子集E,并且E是的真子集B。显然,该集合E不能画成一个圆。最多,它可以是的边界E可以是右侧的圆弧D,再加上左侧和边界之间的不同圆弧BD我想为 赋予不同的颜色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}

在此处输入图片描述

相关内容