在 tikz 中重新创建带有文本的重叠圆圈

在 tikz 中重新创建带有文本的重叠圆圈

我正在尝试在 tikz 中创建该图像。

在此处输入图片描述

我已经创建了基本结构,但无法处理圆之间的交叉点。我确信intersections需要使用库。我尝试了很多方法,但没有找到可行的解决方案。

梅威瑟:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,calc,intersections,shapes}
\begin{document}

\begin{figure}
    \centering
    \begin{tikzpicture}[
    thick]
        \node(block1)[ellipse,text width=2.5cm,draw,align=left]{Leptons\\Quarks};
        \node(block2)[xshift=2cm,minimum height=5em,ellipse,draw,]{Mesons Baryons};
        \node(block3)[xshift=4cm,ellipse,text width=2cm,draw,align=right]{Photons, Gluons, Graviton, \\ Higgs Boson,\\ Z \& W boson};

        \node[below =0.3cm of block1] {Fermions};
        \node[above=0.3cm of block2] {Hadrons};
        \node[below=0.3cm of block3] {Bosons};

        
\end{tikzpicture}
\end{figure}
\end{document}

答案1

这是一个简单、直接的方法:

  • 绘制具有恒定和不同的 x 和 y 半径的圆
  • 将节点作为标签
  • 为其中一些启用多行
  • 使用绝对坐标

我从您的屏幕截图中复制了内容,从物理角度来看这可能不正确。

要更改字体,请添加font={\small\bfseries}或类似于单个或所有节点的样式/选项(如align=center)。

结果

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

\begin{document}

 \begin{tikzpicture}[
    L/.style={align=center},% style for labels
 ]
    % ~~~ ellipses + circle ~~~~~~~~~~~~~~~~~~~
    \draw[fill=orange!50] (-2.2,0) circle [x radius=2, y radius=1.7];
    \draw[fill=yellow] ( 2.2,0)    circle [x radius=2, y radius=1.7];
    \draw (0,0)                    circle [radius=1.7];
    
    % ~~~ labels ~~~~~~~~~~~~~~~~
    \node at (0,4) {Disclaimer: as in screenshot, probably incorrect content};
    \node at (0,2) {Hadrons};
    \node at ( 2.2,-2) {Bosons};
    \node at (-2.2,-2) {Fermions};
    
    \node at (-1,0) {Mesons};
    \node at ( 1,0) {Baryons};
    
    
    \node[L] at (2.9,0) {Leptons \&\\Quarks};
    \node[L] at (-2.9,0) {Graviton,\\Higgs boson,\\\\
                         Photon, Gluon,\\\\
                         Z \& $W^\pm$};
 \end{tikzpicture}

\end{document}

相关内容