我想采用这个例子如何在 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}