6

I want to draw the following figure:

enter image description here

Currently, my working is as follows:

\documentclass{article}

\usepackage{tikz,subcaption,amsmath}

\usetikzlibrary{arrows.meta,positioning}

\begin{document}

\begin{tikzpicture}
\centering
\coordinate (a) at (0,0);
\coordinate (b) at (3,0);
\coordinate (c) at (5,-2);
\coordinate (d) at (3,-4);
\coordinate (e) at (1.5,-4);
\coordinate (f) at (0,-4);
\coordinate (g) at (-2,-2);

\draw (a) node[above]{$v_1$};
\draw (b) node[above]{$v_2$};
\draw (c) node[right]{$v_3$};
\draw (d) node[below]{$v_4$};
\draw (f) node[below]{$v_{n-1}$};
\draw (g) node[left]{$v_{n}$};

\draw [fill=black] (a) circle[radius=2pt];
\draw [fill=black] (b) circle[radius=2pt];
\draw [fill=black] (c) circle[radius=2pt];
\draw [fill=black] (d) circle[radius=2pt];
\draw [fill=black] (e) circle[radius=2pt];
\draw [fill=black] (f) circle[radius=2pt];
\draw [fill=black] (g) circle[radius=2pt];

\draw [-{Latex[length=3mm]}] (a)--(b) ;
\draw [-{Latex[length=3mm]}] (b)--(c) ;
\draw [-{Latex[length=3mm]}] (c)--(d) ;
\draw [-{Latex[length=3mm]}] (d)--(e) ;
\draw [-{Latex[length=3mm]}] (e)--(f) ;
\draw [-{Latex[length=3mm]}] (f)--(g) ;
\end{tikzpicture} 

\end{document}

that produces:

enter image description here

Please help.

  • 1
    Could you please give your question a more descriptive title? Maybe mention the name of the type of picture you want to draw, such that other readers can find the question easily. – Henri Menke Apr 8 at 7:27
  • The question has been updated. @HenriMenke – Amirul Aizad Apr 8 at 7:48
6

This is mainly one loop with polar coordinates and some additions. The overall size is controlled by the "function" R=3;.

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{arrows.meta,bending,quotes}
\begin{document}
\begin{tikzpicture}[>={Stealth[bend]},dot/.style={circle,fill,inner sep=2pt},
    declare function={R=3;},bend angle=12]
 \path[dash pattern=on 1.5pt off 1pt] 
 (0,0) node[circle, inner sep=4pt,draw,
    label={[gray,font=\sffamily]above right:impurities}] (O){}
 foreach \X [count=\Y] in {1,2,3,4,n-1,n}
 {(180-\Y*60:R) node[dot,label={180-\Y*60:$v_{\X}$}] 
 (v\X){}
 (O) edge[bend left,->] (v\X)
 (v\X) edge[bend left,->] (O)
 \ifnum\Y>1
  \ifnum\Y<5
   (v\the\numexpr\Y-1) edge[solid,->,"$e_{\the\numexpr\Y-1}$"] (v\Y)
  \fi
 \fi
 }
  (0,{-R*cos(30)}) node[dot,label=-90:$\cdots$] (v0) {} 
 (O) edge[bend left,->] (v0)
 (v0) edge[bend left,->] (O) 
 ;
 \path[->] (vn) edge[bend left,"$e_{n}$"] (O)
 (v4) edge["$e_4$"] (v0)
 (v0) edge["$\cdots$"] (vn-1)
 (vn-1) edge["$e_{n-1}$"] (vn);
\end{tikzpicture}
\end{document}

enter image description here

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.