我想画五个嵌套的五边形。
\documentclass[tikz]{standalone}
\usetikzlibrary {shapes.geometric}
\begin{document}
\begin{tikzpicture}
\foreach \size in {0.2, 0.4, 0.6, 0.8, 1} {
\node[regular polygon, draw, regular polygon sides=5, minimum size=\size cm] at (0, 0) {};
}
\end{tikzpicture}
\end{document}
但我只看到四个五边形;为什么?如果我改成 \foreach \size in { 0.4, 0.6, 0.8, 1,1.2}
,那就好了。最小尺寸为 0.2cm 的五边形去哪了?顺便问一下,有没有更好的绘制方法?例如,我想添加一些新顶点,如下例所示。上面的节点形状似乎不太适合进一步操作,例如添加更多顶点或边,除非我在它们的 5 个端点的位置添加新顶点。
最终的图像如下所示。
答案1
它确实在那里,但碰巧被下一个尺寸(0.4 厘米)的五边形覆盖。要查看此设置,请在五边形节点中将选项设置inner sep
为零:
\documentclass[tikz]{standalone}
\usetikzlibrary {shapes.geometric}
\begin{document}
\begin{tikzpicture}
\foreach \size in {0.2, 0.4, 0.6, 0.8, 1}
{
\node[regular polygon, draw, regular polygon sides=5,
minimum size=\size cm,
inner sep=0pt] % <---
at (0, 0) {};
}
\end{tikzpicture}
\end{document}
答案2
其他答案已经为您提供了所述问题的解决方案(inner sep
需要为零,或者您使用了可能不应该使用的形状)。
如果您要绘制图形,则应使用节点作为顶点并用边连接它们。TikZ 甚至有一个额外的库,您无需编写\node
,edge
但可以使用特殊语法。该graphs.standard
库还提供了方便的图形宏,您也可以在此处使用。
代码
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs.standard}
\begin{document}
\tikz[line width=.2mm]
\graph[
nodes={shape=circle, fill=red, inner sep=+0pt, minimum size=+4pt, outer sep=+0pt},
n=5, phase=90, counterclockwise, empty nodes,
]{
\foreach \i in {1, ..., 5}{
subgraph C_n[name=penta\i, radius=\i*2mm]
},
\foreach \i in {1, ..., 5}{
penta1 \i --[bend right=40, looseness=.8] penta5 \i
}
};
\end{document}
输出
答案3
这是绘制它的一种方法。两点说明:
- 0 度从右边开始,因此为了简单起见,我手动添加了 90 度
- 我使用了 1 毫米的线宽,以强调您的绘图实际上有多小……
\documentclass[10pt,border=3mm,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \r in {.2,.4,.6,.8,1}
\draw[line width=1mm] (90:\r)--(162:\r)--(234:\r)--(306:\r)--(378:\r)--cycle;
\end{tikzpicture}
\end{document}