在 TikZ 中绘制维恩区域

在 TikZ 中绘制维恩区域

我正在使用艾佩绘制“维恩区域”(不是真正的经典区域),就像这个一样,

在此处输入图片描述

然而,我印象中 TikZ 在乳胶作品中的渲染效果更好。

我如何在 TikZ 中制作这样的图表?

答案1

以下是一种方法:

  • ci为圆圈设置一些样式,你可以覆盖它们,见下文
  • 用于coordinates定义多边形
  • 放置lables在剪辑之前,参考所述坐标
  • 定义并称为剪切路径,它bend使用
  • 绘制维恩圆,修改其颜色和半径
  • 放一些红色points

进一步修改的一些建议:

  • 调整坐标
  • 优化剪切路径,例如通过bend anglein out角度、arc线段等。
  • 在节点中使用空文本并绘制​​实心圆圈
  • 完善他们的坐标

结果

% https://tex.stackexchange.com/questions/684456/drawing-a-venn-region-in-tikz

\documentclass[10pt,border=3mm]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    [ci/.style={draw=black!30!orange}]

    % ~~~ coordinates ~~~~~~~~
    \coordinate (A) at (4,3);
    \coordinate (B) at (5,-2);
    \coordinate (C) at (-1,1);
    \coordinate (D) at (-1,5);

    % ~~~ labels ~~~~~~~~~~~~~
    \node at (5,1.5) {A};
    \node at (A) [xshift=-7mm] {$\ge 1$};
    \node at (B) [xshift=-12mm,yshift=3mm] {$\ge 1$};
    \node at (C) [xshift=+6mm,yshift=3mm] {$\ge 1$};
    \node at (D) [xshift=+9mm,yshift=-3mm] {$\ge 1$};
    
    % ~~~ clipping path ~~~~~~~~~~
    \draw [clip] (A)to [bend right]  (B) 
                    to [bend left]   (C) 
                    to [bend right]  (D)
                    to [bend left]  cycle;
    
    % ~~~ venn-circles ~~~~
    \draw [ci]                  (A) circle[radius=2cm];
    \draw [ci,dashed]           (B) circle[radius=2cm];
    \draw [blue,dotted,thick]   (C) circle[radius=1cm];
    \draw                       (D) circle[radius=3cm];
    
    % ~~~ points ~~~~
    \foreach \x/\y in {0/0, 1/0, .5/1, 3/1, 3/2, 2/-1, 4/-1.5, .3/4, -.5/.8}
        \node [red] at (\x,\y){*};% text for simplicity


\end{tikzpicture}


\end{document}

相关内容