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より大きいとほとんどハングアップ状態になります。

コッホ曲線を描くには,この他タートルグラフィクスを使ったり,複素数平面で計算したりする方法があります。