E03 コッホ曲線
コッホ曲線もいろいろな描き方があります。
まず,「GeoGebra日本」の「GeoGebra実例」「E03コッホ曲線」にならって,C曲線と同じように関数を定義して描きます。(以下をそのままコピーできます)
// 2点のリストから直角二等辺三角形の頂点を返す
kochpts1(list):=(
z1=complex(list_1);
z2=complex(list_2);
z3=z1+(z2-z1)/3;
z4=z1+(z2-z1)/3*2;
z5=z3+(z4-z3)*(cos(pi/3)+i*sin(pi/3));
[list_1,gauss(z3),gauss(z5),gauss(z4)];
);
// 複数の点のリストに対し,2点ずつ kochpts1()を適用した点を追加したリストを返す。
kochpts(list):=(
ret=[];
repeat(length(list)-1,s,
ret=ret++kochpts1([list_s,list_(s+1)]);
);
ret=append(ret,list_(-1));
);
// 2点のリストと回数を与えてC曲線を描く nは13くらいまで
kochcurve(list,n):=(
plist=list;
repeat(n,plist=kochpts(plist));
connect(plist);
);
実行すると次のようになります.
kochcurve([A,B],1); kochcurve([A,B],2);
注意しなければならないのは,点の数が 4のn乗で増えていくことです。
n=6くらいまでが描画上も限界(n=7とほとんど区別がつかない)で 8より大きいとほとんどハングアップ状態になります。
コッホ曲線を描くには,この他タートルグラフィクスを使ったり,複素数平面で計算したりする方法があります。