在 tikz 中创建谢尔宾斯基三角形

在 tikz 中创建谢尔宾斯基三角形

我想采用这个例子如何在 LaTeX 中创建谢尔宾斯基三角形?,对于稍微修改过的谢尔宾斯基三角形:第一步(整个三角形是黑色)应该相同。然后在第二步中,角落中的三个黑色三角形的边长应该只有其“父”三角形边长的 1/3(而不是 1/2),依此类推。有人能帮我吗,我从未使用过这个“lindenmeyersystems”包……

答案1

类似这样的事?

使用 MetaPost 完成,插入 LuaLaTeX 程序。

\documentclass[border=2mm]{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
  vardef Sierpinski_var(expr A, B, C, n) = % The recursive macro 
    if n = 0: filldraw A--B--C--cycle;
    else: 
      save AC, BC, AB; pair AC[], BC[], AB[];
      AC1 = 1/3[A,C]; AC2 = 2/3[A,C];
      BC1 = 1/3[B,C]; BC2 = 2/3[B,C];
      AB1 = 1/3[A,B]; AB2 = 2/3[A,B]; 
      draw AB1--AB2; draw BC1--BC2; draw AC1--AC2;
      Sierpinski_var(A, AB1, AC1, n-1); 
      Sierpinski_var(AC2, BC2, C, n-1); 
      Sierpinski_var(AB2, B, BC1, n-1);
    fi
  enddef;
  beginfig(1);
    u = 3cm; n = 4; 
    pair A, B, C; A = origin; B = u*right; C = u*dir 60;
    pair v; v = 1.1u*right; % translation vector
    for i = 0 upto 4: 
      draw image(Sierpinski_var(origin, u*right, u*dir 60, i);
        label.bot(textext("$A_" & decimal i & "$"), .5u*right))
        shifted (i*v);
    endfor;
  endfig;
\end{mplibcode}
\end{document}

在此处输入图片描述

相关内容