在 LyX 中绘制一个由 10 个圆圈组成的圆圈

在 LyX 中绘制一个由 10 个圆圈组成的圆圈

我想知道是否可以画一个由 10 个圆圈组成的圆圈,同时在每个圆圈中放置一个值。就像下图所示(但有 10 个圆圈,没有主黑圆圈):

在此处输入图片描述

编辑:谢谢,但我在将数字放入圆圈时遇到了一些麻烦。我希望每个圆圈都添加一个自定义值。例如,最上面的那个 - 9。

答案1

在此处输入图片描述

使用tikz包:

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
\begin{tikzpicture}
  \draw[very thick] (0,0) circle(2cm);
  \foreach \a in {0,...,9}
    \draw (\a*36:2) circle (4mm);
\end{tikzpicture}
\end{document}

笔记:

  • 以上最小工作示例(姆韦) 独立于 lyx。它可以在任何 latex 发行版中使用,如、miktex等。texlivemactex
  • 使用文档类standalone可以方便地演示小段代码,特别是本例中使用的图像。但是,图像代码可以在任何标准文档类的文档中使用articlereportbook可以在专门和高级的文档中使用,如,回忆录,...唯一的要求是在文档序言中beamer加载包。tikz
  • 图片是使用包绘制的tikz,但是还tikz存在其他用于绘制的包,latex等等pstrickmetapost
  • 图片由两部分组成:
    • 主圆 ( \draw[very thick] (0,0) circle(2cm);)2cm确定其半径
    • 以半径为单位的十个圆的集合,在循环中绘制()\foreach \a in {0,...,9}\draw (\a*36:2) circle (4mm);,其中圆的定位使用极坐标:(通过=计算)(<angle>:<distance>)<angle>\a*36\a*360/10
  • 图像代码非常简单,但是你可以用一些“花哨的东西”来升级它,例如确定圆半径、小圆数量等的新变量(我把这个留给其他答案)

附录:

为了在圆圈中添加数字或文本,正如您在编辑的问题中询问的那样,我建议使用圆形的节点:

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
\begin{tikzpicture}[Num/.style={circle, draw, fill=white, minimum size=9mm, inner sep=1pt}]
  \draw[very thick] (0,0) circle(2cm);
  \foreach  \n [count=\a from 0] in {1, 1.41, 1.73, 2, 3, 3.14, $\pi$, $\phi$, 1.61, 0.96}
    \node[Num] at (\a*36:2) {\n};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

借用 Zarko 的回答。您需要\usepackage{tikz}在文档 --> 设置 --> LaTeX 序言中添加。在您的文档中,tikzpicture在 ERT 中写入环境(TeX 代码插入,使用Ctrl+添加一个L)。如果您将代码粘贴到 ERT 中,请使用Ctrl+ Shift+ V(编辑 -> 选择性粘贴),以保留换行符。

代码输出

\documentclass[tikz, margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach [count=\i from 0] \txt in {1,3,7,42,3.14,17,$\pi$,$\phi$,1.618,1.41}
    \draw (\i*36:2) node[circle,draw,minimum size=1cm] {\txt};
\end{tikzpicture}
\end{document}

只是为了好玩,这是一个稍微自动化一点的版本。数字列表保存在宏中,计算该列表的长度,并据此计算极坐标中的角度步长。请注意,使用此方法时,非纯数字的条目需要放在引号中,例如"$\phi$"

\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
% array with list of numbers
\newcommand\mynumbers{{1,3,7,42,3.14,17,3,1.618,"$\phi$",1,100}}

\begin{document}
\begin{tikzpicture}
% calculate length of array
\pgfmathsetmacro{\NumofNums}{dim(\mynumbers)}
% use evaluate to extract element from array
% indexes starts at zero, hence \i-1, not \i
\foreach [evaluate={\txt=\mynumbers[\i-1]}] \i in {1,...,\NumofNums}
    % (a:r) is a polar coordinate
    \draw ({\i*360/\NumofNums}:2.2) node[circle,draw,minimum size=1.1cm] {\txt};
\end{tikzpicture}

\renewcommand\mynumbers{{"a","b","c","d","e","f"}}
\begin{tikzpicture}
\pgfmathsetmacro{\NumofNums}{dim(\mynumbers)}
\foreach [evaluate={\txt=\mynumbers[\i-1]}] \i in {1,...,\NumofNums}
    \draw ({\i*360/\NumofNums}:2.2) node[circle,draw,minimum size=1.1cm] {\txt};
\end{tikzpicture}
\end{document}

答案3

如果数字呈级数:

\documentclass[tikz, margin=3mm]{standalone} 
\begin{document} 
\begin{tikzpicture}[rotate=126]
\foreach \a in {0,...,9} \draw (\a*36:2) circle (4mm) node {-\a}; 
\end{tikzpicture} 
\end{document}

在此处输入图片描述

如果不是,请\foreach修改

\foreach \a/\descr in {0/-9,1/<your other value>, <etc.>} 

并用作\descr节点文本。

答案4

使用 PSTricks。使用latex-dvips-ps2pdf或进行编译xelatex

基本的

我使用极坐标表示直接指定每个物体的位置(radius;angle)

\documentclass[pstricks]{standalone}
\begin{document}
\begin{pspicture}(-3,-3)(3,3)
    \pscircle[linecolor=lightgray]{2}
    \foreach \i in {0,36,...,330}
    {
        \pscircle[fillstyle=solid](2;\i){10pt}
        \rput(2;\i){\scriptsize\i}
    }
\end{pspicture}    
\end{document}

中间的

我变换了一组与原点相连的物体,\uput其行为类似于“太阳-地球-月亮”系统。

\documentclass[pstricks]{standalone}
\begin{document}
\begin{pspicture}(-3,-3)(3,3)
    \pscircle[linecolor=lightgray]{2}
    \foreach \i in {0,36,...,330}
    {
        \uput{2}[\i](0,0)
        {
            \pscircle[fillstyle=solid]{10pt}
            \rput(0,0){\scriptsize\i}
        }
    }
\end{pspicture}
\end{document}

先进的

我只需指定要创建多少个点,PSTricks 就会隐式确定角度增量(36度数)。这些点可以位于任意参数化曲线上,但在本例中,我选择了一个参数化圆。

\documentclass[pstricks]{standalone}
\usepackage{pst-plot}
\begin{document}
\begin{pspicture}(-3,-3)(3,3)
    \pscircle[linecolor=lightgray]{2}
    \curvepnodes[plotpoints=11]{0}{TwoPi}{2*cos(t)|2*sin(t)}{P}
    \multido{\i=0+1,}{\Pnodecount}
    {
        \pscircle[fillstyle=solid](P\i){10pt}
        \rput(P\i){\scriptsize\the\numexpr\i*36}
    }
\end{pspicture}
\end{document}

它们产生相同的输出,如下所示。

在此处输入图片描述

相关内容