用迭代与自定义工具生成分形几何图:Floch 风格
几何画板及绘图内容加载中,请稍等……
本范例通过对线段反复进行旋转与拼接迭代,展示由“迭代规则”逐步生成的分形几何形态(Floch 风格的迭代图)。核心数学概念包括:几何变换中的旋转(Rotate)、迭代(Iteration)与递推构造、参数控制下的分形收敛/形态演化,以及由多段线首尾连接形成的折线/曲线边界(PolyLine、Join)。作图要点是:先用 Segment 构造基础点与线段(对象如 A、B 等),再通过 Rotate 按设定角度反复生成新线段;随后使用 Iteration 对“自定义工具/规则”进行多步迭代,把每一步产生的线段集合整理为可绘制结构(Flatten);再利用 PolyLine 和 Join 将迭代产生的片段连成折线形状,并通过 Unique 去除重复对象。范例还体现了自定义工具 Tool 与交互输入输出对象(如 lTool1、lInputTool3、l1OutputTool 等)在迭代流程中的作用。适合中学阶段到大学基础几何课程,用于“几何变换+数列/迭代+分形图形”综合教学与编程式建模训练。
GeoGebra 命令及参数
Segment(A, B) → fRotate(B, ((-pi)) / 3, A) → CSegment(B, C) → gSegment(C, A) → hIteration(Zip[{Vertex[n, 1], Vertex[n, 2]}, n, Tool1[m]], m, {{{A, B}}}, a) → lTool1Flatten(Zip[{Dilate[Segment[Element[k, 1], Element[k, 2]], 1 / 3, Element[k, 1]], Translate[Rotate[Dilate[Segment[Element[k, 1], Element[k, 2]], 1 / 3, Element[k, 1]], pi / 3, Element[k, 1]], Vector[(1 / 3 * Vector[Element[k, 1], Element[k, 2]])]], Translate[Rotate[Dilate[Segment[Element[k, 1], Element[k, 2]], 1 / 3, Element[k, 2]], ((-pi)) / 3, Element[k, 2]], Vector[(1 / 3 * Vector[Element[k, 2], Element[k, 1]])]], Dilate[Segment[Element[k, 1], Element[k, 2]], 1 / 3, Element[k, 2]]}, k, m1InputTool12]) → l1OutputToolPolyLine(Unique[Flatten[lTool1]]) → i1Join(Zip[{{Element[k, 1], (2 / 3 * Element[k, 1]) + (1 / 3 * Element[k, 2])}, {(2 / 3 * Element[k, 1]) + (1 / 3 * Element[k, 2]), Rotate[(1 / 3 * Element[k, 1]) + (2 / 3 * Element[k, 2]), pi / 3, (2 / 3 * Element[k, 1]) + (1 / 3 * Element[k, 2])]}, {Rotate[(1 / 3 * Element[k, 1]) + (2 / 3 * Element[k, 2]), pi / 3, (2 / 3 * Element[k, 1]) + (1 / 3 * Element[k, 2])], (1 / 3 * Element[k, 1]) + (2 / 3 * Element[k, 2])}, {(1 / 3 * Element[k, 1]) + (2 / 3 * Element[k, 2]), Element[k, 2]}}, k, (m1InputTool12 * 1)]) → l1OutputTool2Iteration(Tool2[m], m, {{{A, B}}}, a) → lTool2PolyLine(Unique[Flatten[lTool2]]) → i2Unique(Flatten[Sequence[{Element[lInputTool3, i], (2 / 3 * Element[lInputTool3, i]) + (1 / 3 * Element[lInputTool3, i + 1]), Rotate[(1 / 3 * Element[lInputTool3, i]) + (2 / 3 * Element[lInputTool3, i + 1]), pi / 3, (2 / 3 * Element[lInputTool3, i]) + (1 / 3 * Element[lInputTool3, i + 1])], (1 / 3 * Element[lInputTool3, i]) + (2 / 3 * Element[lInputTool3, i + 1]), Element[lInputTool3, i + 1]}, i, 1, Length[lInputTool3] - 1]]) → l1OutputTool3Iteration(Tool3[m], m, {{A, B}}, a) → lTool3PolyLine(lTool3) → i3
AI 绘图提示语参考
以两点为起点先画一条基础线段,并在其端点处按给定角度做旋转得到新端点,再依次连出三条相互连接的线段形成本体(等比例缩放因子为1/3,旋转角为正负120°)。随后使用迭代规则:把当前线段按同样缩放与旋转变换生成多份副本,并把相邻副本的端点用分段折线依次拼接成一条连续边界曲线。最后对迭代产生的折线进行去重与合并,得到类似 Floch 风格的分形边界。
以上提示语为根据原始绘图命令整理而来,仅供参考。