[Tex/LaTex] Feynmp: Circle with three vertices

feynmf

I want to use feynmp to draw the one-loop correction to the vertex in phi^3 theory. This is just a circle with three evenly-spaced incoming lines. The thing is I want the figure to be dashed, so using pre-defined polygons won't work.

The best I can do is this, but I want it to be a circle in the middle, not a tragically deformed hexagon:

\documentclass{article}
\usepackage{feynmp}
\begin{document}
\unitlength = 1mm
\begin{figure}[!h]
\begin{fmffile}{test1}
\begin{fmfgraph*}(48,20)
\fmfcurved
\fmfleft{i1,i2,i3}
\fmfright{o1,o2,o3}
\fmftop{t1,t2,t3}
\fmfbottom{b1,b2,b3}

\fmf{plain}{i2,v1}
\fmf{plain}{v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v1}
\fmf{phantom}{v4,t2}
\fmf{phantom}{v10,b2}
\fmf{phantom}{v7,o2}
%\fmffreeze
\fmf{plain}{v5,t3}
\fmf{plain}{v9,b3}

\end{fmfgraph*}
\end{fmffile}
\end{figure}
\end{document}

Image

Best Answer

I normally use TikZ for typesetting Feynman diagrams, but I don't typeset that many. I looked a little in the documentation feynMF and came up with this:

\documentclass{article}
\usepackage{feynmp}
\begin{document}
\unitlength=1mm
\begin{fmffile}{loop}
\begin{fmfgraph}(40,40)
\fmfleft{i1,i2} % External lines (left) i1 & i2
\fmfright{o1} % External line (right) o1
\fmf{dashes}{i1,v1} % Dashed line from i1 to vertex v1
\fmf{dashes}{i2,v2} % Dashed line from i2 to vertex v2
\fmf{dashes}{o1,v3} % Dashed line from o1 to vertex v3
\fmf{dashes,left=1/2,tension=2/3}{v1,v2,v3,v1} % The loop: left curves the lines & tension change the size of the loop
\end{fmfgraph}
\end{fmffile}
\end{document}

Output: loop

Please change the values for left and tension and see what happens.

I don't like this package. Hmm... maybe I just don't understand it properly.