fractal)は、フランスの数学者ブノワ・マンデルブロが導入した幾何学の概念です。図形の部分と全体が自己相似になっているものなどをいいます。フラクタルの作成方法は反復計算などを使います。シンプルな計算式で綺麗なフラクタルを作成できます。curve)の例¶まず、コッホ曲線の例でフラクタルの作成方法を勉強します。ステップ0:方向のある線分を引く。(図左上)ステップ1:線分を3等分し、中央の線分を1辺とする正三角形を線分の左側に描き、下の辺を消す。(図右上)ステップ2:得られた4つの線分に対して同じ操作を繰り返す。(図左下)ステップ3:得られた16の線分に対して同じ操作を繰り返す。(図右下)コッホ曲線を作成するめに、上記の作業の中の繰り返している部分を考えます。中央の線分を1辺とする正三角形をこの線分の左側に描き、下の辺を消す。与えられる線分を以下の配列で表示します。$$3等分後の節点は4になりますが、これを以下のように表示します。$$新しい節点の座標は次のように計算できます。$$以下のOctaveのコードを参考してください。0.00000上記のコードに作られているnode_listを描画するために、以下の関数を作ります。以下の線分について、3等分を取って、上記の作業に従って新しい点のリストを作ってください。与えられる線分を1辺とする正三角形を考えます。線分のデータは以下の形を持っています。$$指定される正三角形の(x1,y1),(x2,y2)の以外の頂点(x3,y3)を以下のように算出できます。(x2,y2)を(x1,y1)に関して、反時計周り$\theta=\pi/3$回転します。上記の作業をまとめて、関数create_triangleを定義します。create_triangleを使って、三角形の2辺を作成します。上記の作業に従って、線分から三角形を作ってください。処理して、その結果を確認しなさい。[35]:%ここにコードを書いてください。複数線分の処理¶node_listに格納される各点と次ぎの点がなす線分をupdate_lineで処理します。各線分から得られる新しい4つの線分をnew_node_listに入れて、新しい点のリストが作られます。以下の線分処理の回数(N)を順番に1,2,3,4,5にしてから結果を確認してください。以上は反復計算を定義します。初期の点のリストを正三角形の頂点について、上記のupdate_node_listで処理してみてください。Sausageのフラクタルは以下のような反復計算を使っています。Sausageのフラクタルを作ってください。Sausageの図です。Sausageに必要な線分の変形ができます。線分の2つの節点を$p_1=(x1,y1),p_2=(x2,y2)$とします。$p_1$を始点にして、$p_1p_2$線分上$|p1p3|=1/\sqrt{5}$を満たす$p_3$は以下の式で算出できます。2¶$p_1$を中心にしてベクトル$p_1p_3$を時計回り$\theta$角度で回転します。$\theta$は以下ように算出されます。線分$p_1p_2$の上の点$p_4$を描く。$p_2$を始点にして、$p_1p_2$線分上$|p_2p_4|=|p_1p_2|/\sqrt{5}$を満たす$p_4$を算出します。$p_2$を中心にして、ベクトル$p_2p_4$を時計回り$\theta$角度で回転します。