如何绘制形成特定形状的箭头序列

如何绘制形成特定形状的箭头序列

如何绘制如下图所示的箭头序列?在此处输入图片描述

对于我来说,如何使用 tikz 制作直线箭头序列非常清楚,但循环箭头序列则不清楚。

答案1

以下是使用的一种方式chains

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{chains, calc}

\tikzset{
    dot/.style={circle, fill, inner sep=0pt, minimum size=4pt},
    myarrow/.style={-latex, shorten <=1pt, shorten >=1pt},
    myarrow2/.style={-latex, shorten <=1pt, shorten >=1pt, bend left},
    elipsis/.style={fill=white, inner sep=1.5pt, circle}
}

\begin{document}

\begin{tikzpicture}[node distance=15mm]
\node[dot, start chain=1, on chain=1, label=above:$g$]{};
\node[dot, on chain=1, join=by myarrow, label=above:$g^2$]{};
\node[dot, on chain=1, join=by myarrow, label=above:$g^3$](g3){};
\node[dot, on chain=1, join=by myarrow, label=above:$g^{t-1}$](gk){};
\node[dot, on chain=1, join=by myarrow, label=above:{$g^t=g^{t+r}$}](A){};
\coordinate(B) at ([yshift=-1.5cm]A);
\coordinate(C) at ($(g3)!.5!(gk)$);
\node[dot, start chain=2 placed {at=($(B)+({(-1)*\tikzchaincount*72+162}:1.5)$)}, on chain=2]{};
\node[dot, on chain=2, join=by myarrow2, label=18:$g^{t+1}$]{};
\node[dot, on chain=2, join=by myarrow2, label=-54:$g^{t+2}$]{};
\node[dot, on chain=2, join=by myarrow2, label=-126:$g^{t+r-2}$]{};
\node[dot, on chain=2, join=by myarrow2, label=-198:$g^{t+r-1}$]{};
\node[dot, on chain=2, join=by myarrow2]{};
\foreach \t in {-82, -90, -98} \node[elipsis] at ($(B)+(\t:1.5)$){.};
\foreach \x in {-1.8,0,1.8} \node[elipsis] at ([xshift=\x mm]C){.};
\end{tikzpicture}

\end{document}

相关内容