2001年5月12日更新(プログラム例と図)  関谷トップページへ CGトップページへ   作者へのメッセージ

図形処理・計算処理実習No.5 SLSとGlibwv.hを使ったグラフィックス(4) リカーシブ・グラフィックス

2000.5.17 KPC 情報技術科  関谷

0. 前回のレポートを見てのコメント

プログラムの解析と改造

 稜線を表示する角度や、特定の角度の線の色を変えるとか、実験をしてみると、プログラムの解析ができて良い。

独自の立体を作る

 回転体・柱体の独自のデータを作ることで、立体のデータとその投影がよく分かる。(鍋田さんや宝満さんの考察から)

1. 立体モデルについての復習

2.河西-8-5 立体モデル

2.1 立体の基本図形とそのデータ

 立体の基本図形で、比較的簡単に作れるものは、錐体、柱体、回転体がある。

2.2 河西-回転体モデルの軸測投影

 回転体は、断面の2次元図形を、y軸の回りに回転させることにより生成できる。
 それだけでは、複数個の楕円が描けるだけで、とても立体には見えない。そこで、断面を表す直線(稜線)をある回転角度ごとに何箇所かに描くことにする。

2.3 河西-例題60 回転体モデルによる軸測投影プログラム

 x軸回りの回転量-回転の向き(符号)-は関係しないことになる。(投影対象の回転体がy軸に対称なため)陰影を付けない場合、投影図からは、x軸回りの回転の向きをどちらか区別できない。

 

2.4 河西-練習問題60  柱体モデルによる軸測投影プログラム

 これは、回転体と違い、x軸回りの回転量-向き(符号)-は投影図で判別できる。

2.リカーシブ・グラフィックス

 8.7 リカーシブ・グラフィックスT

グラフィックスの世界を解析的に表現せず、再起的に表現する。
リカーシブ・グラフィックスのおもしろさは、驚くほど自然の形に近い図形がいとも簡単に表現でき、自然や生命の神秘的な美しさを解き明かせるのではないかという錯覚を髣髴とさせるところにある。

 今回は、河西の8.2、8.3から、例題62 コッホ曲線と例題63 樹木曲線を学習する。

例題62 コッホ曲線

 0次のコッホ曲線は長さlの直線である。1次のコッホ曲線は、1辺の長さがl/3の大きさの正3角形状の出っ張りを出す。2次のコッホ曲線は、1次のコッホ曲線の各辺に対し、1辺の長さがl/9の大きさの正3角形状の出っ張りを出す。これを無限回繰り返せば、無限小の長さの線分が無限本つながった曲線となる。

例題62 コッホ曲線プログラム

 次数は、0から8次までの9図を3段にならべた。
 このためには、window(), view()の関数を使い、繰り返しを行っている。

例題62 コッホ曲線を表示(1 View)

例題63 樹木曲線

 樹木曲線は、木が枝を伸ばしていく形をした図形である。
 次の規則に従う。

  1. 0次の樹木曲線は長さlの直線である。
  2. 1次の樹木曲線は長さl/2の枝を90°の角をなして2本出す。
  3. 2次の樹木曲線は長さl/4の枝を90°の角をなして各親枝から2本出す。つまり、全部で4本だしたことになる。
     なお、枝の縮小率、伸びる角度は、1/2、90°に限定されない。

 樹木曲線は、親の枝から2本の子の枝を出していくので、2分木の木構造とまったく同じと考えることができる。
 n次の木を描くアルゴリズムは次のようになる。
1)(x0,y0)から角度angleで長さlengの枝を1つ引く。引き終わった点の座標を新しい(x0,y0)とする。
2)n−1次の右部分木を再帰呼び出し
3)n−1次の左部分木を再帰呼び出し

例題63 樹木曲線プログラム

 次数n、角度branch、縮小率scaleは、キーインする。
 3組をスクリーンでは、縦に並べて表示する。
 3組を表示したら、色の反転をする。

例題63 樹木曲線を表示(3 View)

 

2.3 コッホ曲線、樹木曲線のプログラムの解析と改造など

リカーシブ・グラフィックスのプログラムを解析しなさい。
次にそれらを改造し、作品を作りなさい。

例)樹木のデータ・色などを変える。配置を変える。(林になる?)

2.4 レポートの提出方法

1)WordあるいはFrontPageExpressに、考察、ソースリスト、実行グラフィックス画面を貼り付けたものを「Webページ」の形式(拡張子はhtml)で、各自のMyHomeに、cg_05などの名前をつけて保存する。

2)情報系Webサーバが、Turbolinuxで再構築されたので、そのWebページにindex.htmlからのハイパーリンクを作って、登録する。(注を参照のこと。概略は以下のとおり。))
 htmlファイルは、WordやFrontPageExpressなどで、Webページとして保存する(前述)。そして、ホームページindex.htmlから、今回のレポートページへのリンクを張る。それらを各自のWebサーバのホームディレクトリの直ぐ下のpublic_htmlフォルダ(サブディレクトリ)にftpすること。

 

注) Webページの作り方については、関谷のWebページの「個人ホームページの作成と更新」のページを参照のこと。(Webサーバの再構築が完了した。)
(なお、ローカルのホームページフォルダは、c:\でなく、各自のサーバのホーム(H:)ドライブに作ること。)
 作業としては、public_htmlフォルダでのindex_htmlファイルの変更−名前を表示したり、今回のページに対するリンクを作る−が必要になる。

最初に戻る