答案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 sides
5。
这个库还创建了一系列节点形状的锚点,例如corner i
是i
整数。我使用这些锚点来绘制内部星形。
\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}