2022年度計算機演習A・B

第15回:フラクタル2

1. 再帰的定義によるフラクタルの描画

1.1. 関数の再帰的定義(復習)

計算機演習Aの第5回授業では、「関数の中で自分自身を呼び出して利用する」という関数の再帰的定義の方法について学習しました。

例えば、次のコードでは

$$ \begin{gathered} 1!=1,\\ n!=n\times(n-1)!\quad (n\geq 2) \end{gathered} $$

を用いることで、自然数nの階乗を計算する関数factorial(n)を定義しています。

このような関数の再帰的定義は、以下に示すようにフラクタルの描画の際に有用です。

1.2. コッホ曲線

前回の授業で扱ったコッホ曲線は、線分を下の図のように変形する操作を繰り返すことによって得られます。

関数の再帰的定義によってコッホ曲線を描画するコードは、次のようになります。

1.3. ツリー

線分を下の図のように変形する操作を繰り返すことによって得られるフラクタルを考え、これをツリー(tree)と呼ぶことにします。

※これは一般に知られているフラクタルではありませんが、木を表現するフラクタルはWeb検索でいくつも見つかるため、興味があれば調べてみてください。

関数の再帰的定義によってツリーを描画するコードは、次のようになります。

第15回レポート課題

フラクタルやベジェ曲線などを用いて、家を含む風景の図を描画してください。

(作品の公開について)

今回のレポート課題の提出フォームには、「来年度の授業ホームページでの作品の公開を承諾するか否か」の質問項目があります。

皆さんが昨年度の学生の作品を参考にしているように、皆さんの作品の中から優秀なものを来年度の学生が参考にできるようにしたいと考えているためです。作品の公開は、基本的に作品の画像と氏名を掲載する形になります。

三つの選択肢「承諾する」「匿名なら承諾する」「承諾しない」の中から、いずれかを自由に選んでください。