コッホ曲線とは
コッホ曲線は、Kochさんが発見した直線を規則的に組替えていく図です。
コッホ曲線の概要
コッホ曲線に終わりはありません。なぜなら、単に直線を三等分し、その等分した点で正三角形(既存の2点間の直線は書かない)を書くだけだからです。それを永遠に続けます。すなわちこの考え方がコッホ曲線なのです。
コッホ曲線の成長
- 直線を記述します(レベル0)
- 直線を三等分します。
- その分割した2点で正三角形を書きます。
- 分割点の直線を消します。(レベル1)
- 2,3,4を繰返します。(レベル2)
これを無限に繰返すだけです。
アルゴリズム
- 直線aを長さl で書きます 。
- 直線aに対して角度60度で直線bを長さl で書きます。
- 直線bに対して角度120度で直線cを長さl で書きます。
- 直線cに対して角度60度で直線dを長さl で書きます。
プログラミング化への手順
計算式の表記
x1, y1からα角度の長さlの座標(x2,y2)を求めます。
x2 = x1+ l ×cos(α)
y2 = y1+ l ×sin(α)
プログラミングのアルゴリズム
再帰の詳細を説明します。
再帰とは自分自身を繰返すことです。ここでは、上記アルゴリズムを繰返すことを指しています。ここで、このアルゴリズムを「コッホ再帰関数」とします。
既存の角度で線を書きます。
既存の角度+60度で線を書きます。
既存の角度+120度で線を書きます。
既存の角度+60度で線を書きます。
これをプログラムにすると、
指定レベルになった場合、
指定された角度で描画
まだレベルになっていないとき、
既存の角度でレベルを1つ上げて、 「コッホ再帰関数」を呼ぶ。
既存の角度+60度でレベルを1つ上げて、 「コッホ再帰関数」を呼ぶ。
既存の角度+120度で レベルを1つ上げて、「コッホ再帰関数」を呼ぶ。
既存の角度+60度でレベルを1つ上げて、 「コッホ再帰関数」を呼ぶ。
|
この図は、レベル2の場合です。 Level1の段階では描画しません。Level3になるとさらに、それぞれの角度の下に4つのコッホ曲線を書く集まりがくっつきます。そして、Level2の角度を足した角度で描画されます。
実際のSmalltalkでのプログラミングの場合は、レベルを減らして0の場合に描画します。また、座標軸が左上を原点としているので、2番目と4番目の角度を-60度で計算しています。