通过多条圆弧创建圆环

通过多条圆弧创建圆环

我需要创建这个 tikzpicture在此处输入图片描述 它取自同态加密图解入门到目前为止我所能创造的只有这个

弧

使用此代码

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,arrows}

\begin{document}
\begin{tikzpicture}
    % Create equidistant points and arc
    \foreach \x [count=\p] in {0,...,11} {
        \node[shape=circle,fill=black, scale=0.5] (\p) at (-\x*30:2) {};
    };

    % Create labes with numbers starting from 0
    \foreach \x [count=\p] in {0,...,11} {
        \draw (-\x*30:2.4) node {\x};
    };

    % Draw the arrow
    \draw[->,>=stealth',thick, blue!60!black] (212:2) arc[radius=2, start angle = 212, end angle = 90];
    \node at (0,0){TEXT};
    \end{tikzpicture}
\end{document}

我已经在创建圆环的方向进行了搜索,但仍然远远没有达到我的需要。

答案1

这确实起到了类似的作用。如果你添加更多解释,可能会有所改进。

\documentclass[border=3.14mm,tikz]{standalone}
\usepackage{tikz-3dplot} 
\usetikzlibrary{3d,decorations.markings}
\begin{document}
\tdplotsetmaincoords{60}{2}
\begin{tikzpicture}[tdplot_main_coords]
\def\r{2}
\def\R{5}
 \foreach \X in {0,...,15}
 {\tdplotsetrotatedcoords{-\X*360/16}{0}{0}
  \begin{scope}[tdplot_rotated_coords] 
   \begin{scope}[canvas is yz plane at x=0] %,transform shape
    \draw[postaction={decorate,decoration={markings,
    mark=between positions 0 and 1 step 0.05 with {%
    \pgfmathtruncatemacro{\itest}{\pgfkeysvalueof{/pgf/decoration/mark
    info/sequence number}}
    \ifnum\itest=20
      \fill[green] (0,0) coordinate(p\X-\itest) circle[radius=2pt];
    \else
      \fill[gray] (0,0) coordinate(p\X-\itest) circle[radius=2pt];
    \fi}}},rotate=18] (\R,0) node{$x^{\X}$} circle[radius=\r];
   \end{scope}
  \end{scope}}
  \fill[red] (p14-2) circle[radius=2pt];
  \draw[red,thick,-latex] plot[smooth,variable=\x,samples at={14,15,0,1,2}] (p\x-2); 
  \fill[red] (p2-2) circle[radius=2pt];
  \draw[red,thick,-latex] plot[smooth,variable=\x,samples at={2,1,20,19}] (p2-\x); 
\end{tikzpicture}
\end{document} 

在此处输入图片描述

编辑:按照 KJO 的建议,使前景中的绿色圆圈可见。

相关内容