以下是 tikz 中的网格图

以下是 tikz 中的网格图

我需要创建如附件所示的图片。我知道如何创建六边形子结构,其代码可在此问题中找到:tikz 中的双曲多面体

请帮助我,因为我是 tikz 新手。

在此处输入图片描述

编辑:将细分的二十面体映射到平面的函数在 5 度顶点处的行为类似于 $z^{6/5}$(在此表示为 $v$)。

答案1

你可以用\foreach循环来绘制这样的网格。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{shapes.geometric,calc}
\begin{document}
\begin{tikzpicture}[web/.style={append after command={foreach \XX in {1,...,#1} 
 {(current.corner \XX)
 -- (current.center)}},regular polygon,regular polygon sides=#1,minimum
  size=1cm,draw,alias=current},
  pics/outerior/.style={code={
  \pgfmathtruncatemacro{\idiv}{pow(2,#1-1)}
  \draw (90:#1*0.5) foreach \XX in {1,...,5}
   {-- (90+72*\XX:#1*0.5) coordinate (P-\XX)};
  \draw (90:#1*0.5+0.5) foreach \XX in {1,...,5}
   {-- coordinate[midway] (M-\XX) (90+72*\XX:#1*0.5+0.5) coordinate (Q-\XX)}; 
  \foreach \XX [remember=\XX as \YY (initially 5)] in {1,...,5} 
  {\draw (P-\XX) -- (Q-\XX);
  \foreach \ZZ in {0,...,#1}
   {\draw ($(Q-\XX)!{(\ZZ+1)/(#1+1)}!(Q-\YY)$) -- ($(P-\XX)!{\ZZ/#1}!(P-\YY)$) --
   ($(Q-\XX)!{\ZZ/(#1+1)}!(Q-\YY)$) ;}
  }
  }}]
 \draw (0,0) node[web=5] (c5) {};
 \clip (-3,-3) rectangle (3,3);
 \draw foreach \X in {1,...,9} {(0,0) pic{outerior=\X}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

PS 您的处方似乎并没有在使用正多边形时产生绘制的格子(也没有引入通过自动添加内部线的多边形)append after command

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{shapes.geometric,calc}
\begin{document}
\begin{tikzpicture}[web/.style={append after command={foreach \XX in {1,...,#1} 
 {(current.corner \XX)
 -- (current.center)}},regular polygon,regular polygon sides=#1,minimum
  size=1cm,draw,alias=current}]
 \draw (0,0) node[web=5] (c5) {};
 \foreach \X [remember=\X as \Y (initially 5)] in {1,...,5}
 {\draw 
 let \p1=($(c5.corner \Y)-(c5.corner \X)$),\n1={atan2(\y1,\x1)} 
 in ($(c5.corner \Y)!0.5!(c5.corner \X)$) coordinate (aux) 
    ($(aux)!{-(1/2)*1cm}!90:(c5.corner \X)$) 
    node[web=6,minimum size=6cm/5,rotate=\n1]{};}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

这个网格结构是用 Delaunay 三角剖分法生成的。大家知道这个方法比较复杂。luamesh这个网格结构是用马克西姆·丘平是在 TeX/LaTeX 中使用 Delaunay 三角剖分的伟大作品。

基于 z 的软件包luamesh可以从以下位置下载这里. 在网站页面中,点击下载链接,如下图所示。 在此处输入图片描述

将 zip 文件解压到一个目录中。您将看到一个名为 的目录scripts。此目录中的文件是lua包所需的脚本。编写如下代码并将其保存在scripts目录中。

\documentclass[margin=3.1415mm]{standalone}
\usepackage{luamesh}

\begin{document}

  \meshPolygon[
  tikz,
  color = blue!70,
  %meshpoint = \alpha,
  colorPolygon=black,
  scale=4cm,
  step=mesh,
 % print=points,
  gridpoints=perturb
  ]
  {(0,0);(1,0);(1,1);(0,1)}

\end{document}

现在用 编译此文件LuaLaTeX。结果如下。 在此处输入图片描述

附录: 您可以使用值调整网格密度h。网格参数,它是网格的单位距离。如有必要,边界将被细化以获得尊重距离约束的点。默认值为 0.2。将参数添加h\meshPolygon环境中,例如:

\meshPolygon[
  tikz,
  color = blue!70,
  %meshpoint = \alpha,
  colorPolygon=black,
  scale=4cm,
  step=mesh,
 % print=points,
  gridpoints=perturb,
  h=0.1
  ]
  {(0,0);(1,0);(1,1);(0,1)}

结果: 在此处输入图片描述

相关内容