点集拓扑图

点集拓扑图

我找不到用于绘制点集拓扑图的 Latex 库。见下图。理想情况下,我想添加不在同一条线上的点,因为所有示例都是如此,即 a、b 和 c 位于非共线平面上。但我会尽我所能!有人知道用于生成这些图表的库(如果有的话)吗?

谢谢。

可能的点集拓扑

答案1

我希望这是你所需要的:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{fit,shapes.geometric}
\tikzset{%  
    mydot/.style={draw, circle, fill=black},
    myset/.style={draw, ellipse, very thick},
}

\begin{document}
    \noindent
    %\vspace{30ex}
    \begin{center}
        \begin{tikzpicture}%[]
        \path (-6,-5.5) rectangle (6,5.5); % only to compensate the transform canvas
        \matrix[column sep=4em,row sep=2ex,transform canvas={scale=0.5}] {% first row
            \node[mydot,label=below:a] (a) {};
            \node[mydot,label=below:b] (b) [below right=1cm and 1cm of a]{};
            \node[mydot,label=below:c] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(a)(b)(c), minimum width=5.5cm] {};        
            & 
            \node[mydot,label={[label distance=.3cm]270:a}] (a) {};
            \node[mydot,label=below:b] (b) [below right=1cm and 1cm of a]{};
            \node[mydot,label=below:c] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(a)] {};  
            \node[myset, fit=(a)(b), minimum height=4cm, rotate=45] (ab) {};  
            \node[myset, fit=(ab)(c), minimum height=6cm, minimum width=5.5cm, rotate=45] {};  
            &
            \node[mydot,label=below:a] (a) {};
            \node[mydot,label={[label distance=.3cm]270:b}] (b) [below right=1cm and 1cm of a] {};
            \node[mydot,label=below:c] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(b)] {};  
            \node[myset, fit=(a)(b),  minimum height=5cm, minimum width=3.5cm, rotate=45] {};
            \node[myset, fit=(b)(c),  minimum height=5cm, minimum width=2.3cm, rotate=-20] {};  
            \node[myset,fit=(a)(b)(c), minimum height=6.5cm, minimum width=7cm, rotate=320] {};  
            \\ % second row
            \node[mydot] (a) {};
            \node[mydot] (b) [below right=1cm and 1cm of a]{};
            \node[mydot] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(b)] {};  
            \node[myset, fit=(a)(b)(c),  minimum width=5.5cm] {};        
            & 
            \node[mydot] (a) {};
            \node[mydot] (b) [below right=1cm and 1cm of a]{};
            \node[mydot] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(a)] {};  
            \node[myset, fit=(b)(c), minimum height=4.5cm, rotate=-20] {};  
            \node[myset, fit=(a)(b)(c), minimum height=6cm,  minimum width=5cm, rotate=-30] {};  
            &
            \node[mydot] (a) {};
            \node[mydot] (b) [below right=1cm and 1cm of a] {};
            \node[mydot] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(b)] {};  
            \node[myset, fit=(c)] {};  
            \node[myset, fit=(a)(b), minimum height=4cm, rotate=30] (ab) {};  
            \node[myset, fit=(b)(c), rotate=-20] (bc) {};  
            \node[myset, fit=(ab)(bc)] {};  
            \\ % third row
            \node[mydot] (a) {};
            \node[mydot] (b) [below right=1cm and 1cm of a]{};
            \node[mydot] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(a)(b), minimum height=3cm,  minimum width=2cm, rotate=30] (ab) {}; 
            \node[myset, fit=(ab)(c), minimum height=5.5cm,  minimum width=4.5cm, rotate=-30] {};    
            & 
            \node[mydot] (a) {};
            \node[mydot] (b) [below right=1cm and 1cm of a]{};
            \node[mydot] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(a)] {};  
            \node[myset, fit=(b)] {};  
            \node[myset, fit=(a)(b), minimum height=3cm,  minimum width=2cm, rotate=30] (ab) {}; 
            \node[myset, fit=(ab)(c), minimum height=5.5cm,  minimum width=4.5cm, rotate=-30] {};    
            &
            \node[mydot] (a) {};
            \node[mydot] (b) [below right=1cm and 1cm of a]{};
            \node[mydot] (c) [above right = 1cm and 2cm of a]{};
            \node[myset, fit=(a)] {};  
            \node[myset, fit=(b)] {};  
            \node[myset, fit=(c)] {};  
            \node[myset, fit=(a)(b), minimum height=3cm,  minimum width=2cm, rotate=30] (ab) {}; 
            \node[myset, fit=(b)(c), minimum height=4cm, rotate=-20] {};  
            \node[myset, fit=(a)(c), minimum width=4cm, rotate=30] (ac) {}; 
            \node[myset, fit=(ab)(bc)(ac)] {}; 
            \\ 
        };
        \end{tikzpicture}
    \end{center}
\end{document}

在此处输入图片描述

相关内容