答案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
等。texlive
mactex
- 使用文档类
standalone
可以方便地演示小段代码,特别是本例中使用的图像。但是,图像代码可以在任何标准文档类的文档中使用article
,report
也book
可以在专门和高级的文档中使用,如,回忆录,...唯一的要求是在文档序言中beamer
加载包。tikz
- 图片是使用包绘制的
tikz
,但是还tikz
存在其他用于绘制的包,latex
等等pstrick
metapost
- 图片由两部分组成:
- 主圆 (
\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
答案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}
它们产生相同的输出,如下所示。