我正在尝试在 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}