连接圆周上随机选择的 5 个点

连接圆周上随机选择的 5 个点

我最近开始使用 LaTeX/tikz,想知道是否有人愿意帮助(使用 tikz)编写一个类似于附图的图表。请注意,五边形不一定是规则的,我希望顶点不被标记。非常感谢。在此处输入图片描述

答案1

如果你需要真正随机,那么你可能会接受它们可以位于圆上的任何奇怪位置。这里有一种方法

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle [radius=1cm];
\foreach\x in{1,...,5}\coordinate (penta-\x) at ({random(360)}:1cm);
\foreach \x in {1,...,4}{
  \foreach\y in {\x,...,5}{
  \draw (penta-\x) -- (penta-\y);
  }
}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

我画得非常精确,但如果你愿意的话,你可以随机设置五个角度。

在此处输入图片描述

\documentclass[tikz,border=2pt]{standalone}
\begin{document}

\begin{tikzpicture}[line cap=butt,outer sep=0pt]
\node[minimum size=3cm,circle,draw] (cirle) {};

\foreach \p[count=\i] in {0,72,144,216,288}
\coordinate(n-\i) at (cirle.\p);

\foreach \x in {1,...,4}{%
  \foreach \y in {2,...,5}{%
  \ifnum\y>\x\draw(n-\x)--(n-\y);\else\fi%
}}
\end{tikzpicture}

\end{document}

答案3

为了比较,这里有一个尝试元帖子用一条语句完成,尽管该语句具有循环内循环和偶尔有用的hide构造。我承认这个相当晦涩难懂。

在此处输入图片描述

prologues := 3;
outputtemplate := "%j%c.eps";

beginfig(1);
draw for i=0 upto 4:
  hide(z[i] = point 8/5 i + 1/4 normaldeviate of fullcircle scaled 144;
  for j=i downto 0: draw z[i] -- z[j]; endfor) z[i] .. 
endfor cycle withcolor .67 red;
endfig;
end.

答案4

您可以使用 TikZ 库shape,它定义了各种节点形状。我使用形状regular polygon,它绘制一个正多边形。边数设置为regular polygon sides5。

这个库还创建了一系列节点形状的锚点,例如corner ii整数。我使用这些锚点来绘制内部星形。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}
\node(a)[draw,regular polygon,regular polygon sides=5,minimum size=2cm]{};
\draw circle (1cm);
\draw(a.corner 1) foreach\anchor in {3,5,2,4} { -- (a.corner \anchor)} -- cycle;
\end{tikzpicture}
\end{document}

相关内容