バーニングシップ・フラクタル

言語:Mathematica

burnp[c_, limit_, f_] := (
  n = 0;
  z = 0;
  While[n < limit,
   z = f[z, c];
   If[Abs[z] >= 2, out = False; Break[]]
    If[n == limit - 1, out = True; Break[]]
    n++;];
  out)
list[table_] := (
  Map[{Re[#], Im[#]} &, table])
clist[sample_] := 
 Flatten[Table[-2 + -2 I + i/sample*4 + j/sample*4 I, {i, 0, 
    sample}, {j, 0, sample}]]
main[sample_, limit_, f_] :=
 ListPlot[list[Select[clist[sample], burnp[#, limit, f] &]]]

実行例
f:id:mikuwaorenoyome:20170121174325p:plain