特殊维恩图 - TikZ

特殊维恩图 - TikZ

我想绘制C和的内部区域not C。要使用哪些工具?

在此处输入图片描述

关于第一条评论的更新

这是我的第一次尝试,我只想将与矩形圆角相对应的填充形状的角弄圆。

在此处输入图片描述

使用的代码如下。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{patterns}

\begin{document}

\begin{tikzpicture}
    \draw[fill, blue] 
        (0,0) -- (0, 2cm) --
        (2.5cm,2cm) 
            .. controls (1,1) and (1,1) .. 
        (2cm,0cm);

    \draw[fill, orange] 
        (4cm,0) -- (4cm, 2cm) --
        (2.5cm,2cm) 
            .. controls (1,1) and (1,1) .. 
        (2cm,0cm);

    \draw[ultra thick,rounded corners]
        (0,0) rectangle (4cm,2cm);
\end{tikzpicture}

\end{document}

rounded corners即使我们忽略路径的起始角,在填充的形状上使用也不能令人满意。

在此处输入图片描述

一种解决方案是使用一个圆角矩形与一个较小的“贝塞尔”形状重叠来绘制一个填充形状。有没有更简洁的解决方案?

答案1

rounded corners只能在路径的一部分上使用:

您可以在“路径中间”打开或关闭圆角,并且同一路径中的不同角可以具有不同的角半径:

\begin{tikzpicture}
  \draw (0,0) [rounded corners=10pt] -- (1,1) -- (2,1)
                     [sharp corners] -- (2,0)
               [rounded corners=5pt] -- cycle;
\end{tikzpicture}

不过,sharp corners您也可以使用组来代替。

而且由于您只填充一条路径的区域,因此您可以path picture在此处使用,它会剪切 C 和 C̅ 尖锐区域的角落。

代码

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns}
\begin{document}

\begin{tikzpicture}
\draw[fill, blue] 
    {[rounded corners] (0, 0) -- (0,   2)} % ← a group
                              -- (2.5, 2)
        .. controls (1, 1) and (1, 1) .. (2, 0)
    [rounded corners] -- cycle;            % ← rest of the path

\draw[fill, orange] 
     [rounded corners] (4, 0) -- (4,   2)
     [sharp corners]          -- (2.5, 2)  % ← switch back
        .. controls (1, 1) and (1, 1) .. (2, 0)
     [rounded corners] -- cycle;           % ← and forth

\draw[ultra thick,rounded corners]
    (0,0) rectangle (4,2);
\end{tikzpicture}

\tikz
\draw[ultra thick,rounded corners]
    (0,0) rectangle (4,2)[path picture={
        \draw[fill, blue] (0, 0) |- (2.5, 2) 
                .. controls (1, 1) and (1, 1) .. (2, 0)
          -- cycle;
        \draw[fill, orange] (4, 0) |- (2.5, 2) 
                .. controls (1, 1) and (1, 1) .. (2, 0)
              -- cycle;
    }];
\end{document}

输出

在此处输入图片描述

相关内容