情報科学演習V 2期 課題
プログラミング課題
インタラクティブ性のあるプログラムが理想であり、それを遠隔でも評価するにはJavaで作成すると効果的であるので、可能な人はできるだけJavaを試みて下さい(この場合画像サイズは300x300以下でもよい)。
OpenGLあるいはX-Windowを用いてスクリーン上に表示する方法でもよい。この際、出力例がカラー画像の場合、それを評価して欲しい人は、自分のホームページに画像を置いて見れるようにしても良い。
課題 1 4次Bスプライン曲線を描画するプログラムを作成せよ。
課題 2 n次NURBS曲線を描画するプログラムを作成せよ。
- 3次の場合で、制御点の数は7つとし、各制御点の重みをユーザーが変更できるものとする。
- Javaの場合、テキストボックスあるいはスクロールバーから重みを入力すること。
- あるいはユーザーが7つの数字をテキストファイルに書き込んで、それを読み込む形でも構わない。
- 制御点はインタラクティブに移動させること。
- 特殊な例として、重みを指定し真円を描け(資料[2] のp.641参照)。
課題 3 Catmull Rom スプライン曲線を描画するプログラムを作成せよ(資料[2]のp. 649参照)。
- 制御点はインタラクティブに移動させること。資料[2]の式(11.80)の係数mを変更できることが望ましい。
- 最初と最後の制御点における接線方向をユーザーがインタラクティブに変更できるものとする。
(例えば、接線ベクトルをマウスで動かす等。)
課題 4 4×4次のNURBS曲面を描画するプログラムを作成せよ(資料[2] のp.660参照)。
- 制御点はインタラクティブに移動させること。
- 表示は等パラメータ曲線のワイヤーフレーム(隠線消去はしなくてもよい)でよい。
- 各制御点の重みは変更できることが望ましいが、変更できなくてもよい。
- 制御点の3次元座標を2次元に投影し、2次元上の制御点を用いて描け。
- 透視投影の式は資料[1]あるいは下記を参照。
/~nis/CG/cgtxt/cg2/cg026.htm#cg26
参考
- Java の場合;
- C言語の場合;
これらの課題において、画像をセーブすることが必要になるが、保存の画像形式およびそのプログラムは下記を参考にして下さい。
/~nis/junk/ppm.html
参考資料
[1] CGARTS,"CG標準テキストブック
[2] 配布資料;"Chapter 11; Curve and
Surface Design", in Computer Graphics using OpenGL, F.S. Hill,
Prentice Hall
締切: 7月3日(木曜)17時まで
結果(ソースリストと表示結果)は、メイルにファイルを添付、あるいは各自のホームページに置いてメイル連絡するか、または印刷して提出のこと。
連絡先: email: nis@is.s.u-tokyo.ac.jp
電話:内線2-4106
(西田研究室)
/~nis/