我刚刚发现如何使用 TikZ 制作图形,我不知道如何实现这些椭圆。有人可以教我吗?
答案1
对于线条和填充,您必须在绘制椭圆后定义一个clipping
窗口并使用。fillbetween
这些线是使用in ... out
表示线进出定义点的角度的语法来定义的。
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
% first picture
\begin{scope}
\clip (0,0) ellipse [x radius=2, y radius=1];
\path[name path=a] (0,0) ellipse [x radius=2, y radius=1];
\draw (0,0) ellipse [x radius=2, y radius=1];
\foreach \i/\j in {-1.75/$A_1$,-0.75/$A_2$,0.25/$A_3$,1/$\dots$,1.75/$A_p$}{%
\draw[black] (\i,-1) to[out=45, in=315] (\i,1);
\node[black] at (\i,0) {\j};
}
\end{scope}
% second picture
\begin{scope}
\clip (0,-4) ellipse [x radius=2, y radius=1];
\path[name path=a] (0,-4) ellipse [x radius=2, y radius=1];
\path[name path=b] (0,-5) to[out=135, in=315] (0,-3);
\draw [fill=blue!50!white] (0,-4) ellipse [x radius=2, y radius=1];
\draw [fill=orange!50!white,
intersection segments={
of=a and b,
sequence={L2--R2}
}
];
\end{scope}
\node[black, above] at (0,-3) {E};
\node[black] at (-1,-4) {A};
\node[black] at (1,-4) {$\mathrm{\bar{A}}$};
\end{tikzpicture}
\end{document}
答案2
另一种解决方案是不对第二个椭圆进行剪辑,以防万一。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[fill=pink] (90:3 and 1.5) node[above]{$E$} to[out=-135,in=45] (-90:3 and 1.5) arc (-90:90:3 and 1.5);
\draw[fill=orange] (90:3 and 1.5) to[out=-135,in=45] (-90:3 and 1.5) arc (-90:-270:3 and 1.5);
\path (180:1.5) node {$A$} -- (0:1.5) node {$\overline{A}$};
\end{tikzpicture}
\end{document}