用Mathematica绘制koch curve

必须使用这个链接里面的方法 openbookproject.net/thinkcs/python/english3e/recursion.html
2026年09月26日 19:07
有1个网友回答
网友(1):

可以试试这个:

(* 定义主体 *)

pos = {0, 0}; l = {}; AppendTo[l, pos]; \[Theta] = 0;

left[theta_] := (\[Theta] = \[Theta] + theta);

right[theta_] := (\[Theta] = \[Theta] - theta);

forward[r_] := (pos = pos + r*{Cos[\[Theta]], Sin[\[Theta]]};

   AppendTo[l, pos]);

Koch[order_, size_] := 

  If[order == 0, forward[size], Koch[order - 1, size/3];

   left[Pi/3]; Koch[order - 1, size/3]; right[2 Pi/3];

   Koch[order - 1, size/3]; left[Pi/3]; Koch[order - 1, size/3];];

(*对于order为5的可以这样画出*)

l = {}; AppendTo[l, pos]; Koch[5, 3]; Graphics[Line[l]]