在 tikz-feynman 中沿线循环

在 tikz-feynman 中沿线循环

在 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}

在此处输入图片描述

原始答案:(以防万一有人想在diagramtikz-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}

在此处输入图片描述

相关内容