在 tikz-feynman 中,我想在两点之间绘制一条弧线,然后将一个环附加到该弧线上。这是我作为权宜之计做的一个非常 hack 的版本:
\documentclass{article}
\usepackage{tikz}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (t) at (0,2);
\vertex (b) at (0,-2);
\vertex (lt) at (-0.5,1);
\vertex (lm) at (-1,0);
\vertex (lb) at (-0.5,-1);
\vertex (rt) at (0.5,1);
\vertex (rm) at (1,0);
\vertex (rb) at (0.5,-1);
\diagram*{
(t) -- (lt) -- (lm) -- (lb) -- (b),
(t) -- (rt) -- (rm) -- (rb) -- (b),
(lt) -- [gluon] (lb),
};
\end{feynman}
\end{tikzpicture}
\end{document}
产生
我希望这个想法足够清晰。这对于我的目的来说已经足够了,只是我希望线条是弯曲的,也就是说,这应该是 (t) 和 (b) 之间的两个圆弧,而不是这个丑陋的菱形。我想我要做的就是从 (t) 到 (b) 画两个圆弧,然后“沿着圆弧”定义一些顶点,这样我就可以制作胶子线,但一直不知道如何做到这一点。
因为该图是更大的图方程的一部分,所以我倾向于至少对 (t) 和 (b) 使用绝对顶点位置。
答案1
更新:答案很灵活。您可以根据需要.3
随意调整位置。.7
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\draw[postaction={decorate,
decoration={markings,mark=at position .3 with {\coordinate (lt);},
mark=at position .7 with {\coordinate (lb);}}}] (0,0) circle (2);
\begin{feynman}
\diagram*{
(lt) -- [gluon] (lb),
};
\end{feynman}
\end{tikzpicture}
\end{document}
原始答案:(以防万一有人想在diagram
tikz-feynman 中执行此操作。您可以使用quarter right
。然后您的某些顶点就变得没有必要了。
\documentclass{article}
\usepackage{tikz}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (lt) at (-0.5,1);
\vertex (lb) at (-0.5,-1);
\vertex (rt) at (0.5,1);
\vertex (rb) at (0.5,-1);
\diagram*{
(lt) --[quarter right] (lb) --[quarter right] (rb)
-- [quarter right] (rt) -- [quarter right] (lt),
(lt) -- [gluon] (lb),
};
\end{feynman}
\end{tikzpicture}
\end{document}