三回路图

三回路图

我想要制作一个像左边这样的三环图。 在此处输入图片描述

我使用以下脚本

\fmfleft{i}\fmfright{o}

\fmf{boson}{i,v1}\fmf{boson}{v2,o}

\fmf{phantom,left,tension=0.1}{v1,v2,v1}\fmffreeze

\fmfipath{p[]}

\fmfiset{p1}{vpath (__v1, __v2)}

\fmfiset{p2}{vpath (__v2, __v1)}

\fmfi{plain}{subpath (0, 1)*length(p1) of p1}

\fmfi{plain}{subpath (0, 1)*length(p2) of p2}

\fmfipair{vn,vs}

\fmfiequ{vn}{point 0.3length(p1) of p1}

\fmfiequ{vs}{point 0.3length(p2) of p2}

\fmfi{gluon}{vn--vs}

结果如下。在此处输入图片描述

但是我不知道如何在现有循环内创建另一个循环(第一张图片中 M1 内的 M2)。

答案1

这不是一个真正合适的答案,因为我不是这方面的专家feynmp(可能是因为我不是物理学家),但如果你知道一点,metapost你可以通过使用包中的curlywiggly宏来作弊feynmp。这是绘制 OP 想要的图片的一种方法。

input feynmp
prologues := 3;
outputtemplate := "ff.eps";

beginfig(1);

path inner_ring, outer_ring;
inner_ring = fullcircle scaled 50;
outer_ring = fullcircle scaled 120;

drawoptions(withpen pencircle scaled 1bp);
drawarrow reverse outer_ring rotated -225;
drawarrow subpath (0,4) of inner_ring;
drawarrow subpath (4,8) of inner_ring;

drawoptions();
draw curly point 2 of outer_ring -- point 2 of inner_ring;
draw curly point 6 of inner_ring -- point 6 of outer_ring;

draw wiggly point 4 of outer_ring + 20 left -- point 4 of outer_ring;
draw wiggly point 0 of outer_ring -- point 0 of outer_ring + 20 right;

label.rt(btex $\rm M_1$ etex, point 1 of outer_ring);
label.rt(btex $\rm M_2$ etex, point 1 of inner_ring);

for p = 0, 2, 4, 6: fill fullcircle scaled 3bp shifted point p of outer_ring; endfor
for p = 2, 6:       fill fullcircle scaled 3bp shifted point p of inner_ring; endfor

endfig;
end.

在此处输入图片描述

相关内容