毕达哥拉斯树(仿射变换第3版)分形构造

毕达哥拉斯树(仿射变换第3版)分形构造
几何画板及绘图内容加载中,请稍等……
2021-01-24 05:29
这个范例演示如何用仿射变换递归生成“毕达哥拉斯树”分形:从一个初始直角三角形与正方形出发,将边与对应的相似/直角结构按比例与方向不断复制,形成自相似的树状图案。核心数学概念包括:毕达哥拉斯定理相关的直角三角形结构、相似三角形与比值的递推、直角三角形与正方形的拼接,以及用向量与仿射/线性变换实现几何映射。作图要点可从构造摘要提炼:使用 Zip 进行对象打包管理;Point、Polygon 生成关键点与多边形(正方形/三角形);Vector 构造方向与位移;Join 用于连接几何对象;Sequence 用于迭代递归层数;LaTeX 与 Text 提供公式与标注;并通过对象组的创建/删除流程(如 buttCreate、buttDelete、LB1~LB8_{1}、LM0~LM8 等)控制每一层的分段绘制。适合中学到大学的几何与代数拓展学习、分形数学演示与课堂探究,也可用于计算机几何/动态几何课程的作图练习。

GeoGebra 命令及参数

  1. Zip(ApplyMatrix[M, Polygon[{(0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1), (-0.5, 0, 1), (0.5, 0, 1)}]], M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, {{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}]]]]]]]]]]]]]]]]) → LB8_{1}
  2. Zip(ApplyMatrix[M, Polygon[{(0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1), (-0.5, 0, 1), (0.5, 0, 1)}]], M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, Join[Zip[{(M * {{x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), (-y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {y(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), x(Vector[(-0.5, 1, 1), Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]]]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (-0.5, 1, 1)]])}, {0, 0, 1}}), (M * {{x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), (-y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)])), x(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {y(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), x(Vector[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]), y(Vector[(0, 0, 0), Midpoint[Point[Semicircle[(-0.5, 1, 1), (0.5, 1, 1), xOyPlane]], (0.5, 1, 1)]])}, {0, 0, 1}})}, M, {{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}]]]]]]]]]]]]]]]]]]) → LB9
  3. Point(Semicircle[P2, P1, xOyPlane]) → P
  4. Polygon({P1, P, P2, (-0.5, 0, 1), (0.5, 0, 1)}) → Pol
  5. Vector(P2, P) → vL
  6. Vector(P, P1) → vR
  7. Vector((0, 0, 0), Midpoint[P, P2]) → tL
  8. Vector((0, 0, 0), Midpoint[P, P1]) → tR
  9. LaTeX(L, true, true) → TextL
  10. LaTeX(R, true, true) → TextR
  11. Sequence(1, N) → LN
  12. Join(Zip[{(M * L), (M * R)}, M, LM0]) → LM1
  13. Join(Zip[{(M * L), (M * R)}, M, LM1]) → LM2
  14. Join(Zip[{(M * L), (M * R)}, M, LM2]) → LM3
  15. Join(Zip[{(M * L), (M * R)}, M, LM3]) → LM4
  16. Join(Zip[{(M * L), (M * R)}, M, LM4]) → LM5
  17. Join(Zip[{(M * L), (M * R)}, M, LM5]) → LM6
  18. Join(Zip[{(M * L), (M * R)}, M, LM6]) → LM7
  19. Join(Zip[{(M * L), (M * R)}, M, LM7]) → LM8
  20. Zip(ApplyMatrix[M, Pol], M, LM1) → LB1
  21. Zip(ApplyMatrix[M, Pol], M, LM2) → LB2
  22. Zip(ApplyMatrix[M, Pol], M, LM3) → LB3
  23. Zip(ApplyMatrix[M, Pol], M, LM4) → LB4
  24. Zip(ApplyMatrix[M, Pol], M, LM5) → LB5
  25. Zip(ApplyMatrix[M, Pol], M, LM6) → LB6
  26. Zip(ApplyMatrix[M, Pol], M, LM7) → LB7
  27. Zip(ApplyMatrix[M, Pol], M, LM8) → LB8

AI 绘图提示语参考

请绘制一个Pythagoras树分形图形。起始从一个直角三角形配置开始,然后重复应用仿射几何映射:每次迭代生成更小的直角三角形和正方形,并根据勾股定理和相似三角形关系进行缩放与旋转。新的子形状与原图形连接,保持直角和相似性。迭代过程从第一层开始,逐步生成更细的树状结构,最终呈现一个自相似的分形图案。图形应清晰展示递归构造的层次关系,包含直角三角形、正方形和连接的线段,整体布局对称且比例协调。
以上提示语为根据原始绘图命令整理而来,仅供参考。