2001.5.14 KPC 情報技術科 関谷
レポートには、考察として、@学習事項のまとめとA演習での結果の図をどのように作図したかを説明すること。(プログラム名やその内容、実行でのデータなど。)描画した図の中に、それらの説明を加えると,解りやすくなる。(小生が提示しているプログラムでは、出来るだけ、上部に表示するようにしている。)
Wordなどに直接に画面のPrintScreenでクリップボードにコピーしたものを貼り付けると、印刷時に背景が真っ黒になってしまう。描画した線などが分かりにくい。
そのため、slsの長方形を排他的論理和で塗りつぶす関数rectfillXOR()を最後に呼べば、色の反転をすることが出来る。小生の例題は、すべて、描画した後で、これを呼んでいる。
しかし、この反転により描画された線分などの色が変わってしまうので、元の色が見たいときには、反転をしないように(コメント)するとよい。
3次元座標変換(回転移動)式は、河西の8.4節に解説がある。
これらの変換式については、変換前のある点(x,y,z)を原点からのベクトルの成分表示と考えると、変換後の成分(x1,y1,z1))は、前のそれぞれの成分ごとの回転による座標を加えることで求まる。これは、三角関数の加法定理を使うものよりも分かりやすい。なお、y軸回りの回転は、2Dでのzx平面の回転に相当する。
河西のGlib.hからの小生の移植では、図8.4での仮想物理座標系(原点をスクリーン左下)を使わず、原点は左上隅として、ビューポートの左下隅と右上隅を指定するようにしている。
ビューポートを変えることで、同じ図形データでの描画処理をしても、表示される大きさを変えることが出来る。前回の3次元処理での例のように、違った処理結果の表示も3ケースは並べて表示できる。
立体の基本図形で、比較的簡単に作れるものは、錐体、柱体、回転体がある。
錐体のデータ:底面の各点の座標、頂点の座標
柱体のデータ:底面の各点の座標、高さ
回転体のデータ:断面の座標
回転体は、断面の2次元図形を、y軸の回りに回転させることにより生成できる。
各点のy座標と、y軸からの距離(半径)rがわかっていれば、各点がy軸回りにθ回転(x軸=0としてz軸方向を正とする)したときの座標は、次式で示される。
x=rcos(θ)
y=y
z=rsin(θ)
この点を回転変換(軸測投影での式)で表示する。それだけでは、複数個の楕円が描けるだけで、とても立体には見えない。そこで、断面を表す直線(稜線)をある回転角度ごとに何箇所かに描くことにする。
・データとして、高さyと半径rを配列で持つ。(データの終わりは、-999とする。)
・Y軸回りの回転の軌跡では、10度ごとに計算する。
・稜線の描画角度は、上の角度の整数倍が望ましい。例では6倍、小生は、2倍としている。
(ある程度小さいほうが、立体のイメージが湧き易いと思う。)
・軸測投影のプログラムと同じで、最初の投影パラメータ(Y軸回りは0)は定数であるが、後の2組はキー入力による。
・3組の回転表示の後、色の反転を行うようにした。
この投影では、中央と右の2つでは、底から見上げているあるいは上から見下ろしているのであるが、同じ図になっている。
1)ファイルサーバのIドライブのsekiya\図形処理\ka_ce60.cを各自のホームドライブの科目のフォルダにコピーする。これを各自の名前に編集後、コンパイル・実行して、キーボードから回転のパラメータ(α、β、γ)を与える。
2)Y軸回りの回転角度増分、稜線の描画角度増分などを変えた場合を実験して、考察すること。
3)テキストのp.380にあるような「こま」や「小太鼓」あるいは各自の独自形状データに変えて、表示すること。
・データとして、底面の各点の座標と高さyを配列で持つ。(データの終わりは、-999とする。)
・底面の多角形、上面の多角形をそれぞれ描くとともに、その投影座標を配列に持つ。
・稜線の描画は、2つの対応する投影座標を直線で結ぶ。
・軸測投影のプログラムと同じで、最初の投影パラメータは定数であるが、後の2組はキー入力による。
・x軸周りの回転角αにより見える面(上面か底面か)の塗りつぶしを追加した。(回転後の立体の向きを確認しやすいように-2001.5.19)
・x,y,z軸の描画を追加した。(回転後の立体の向きを確認しやすいように)
・3組の回転表示の後、色の反転を行うようにした。
この投影でも、中央の図は、底から見上げているのであるが、その感じが最初はつかめないであろう。
1)ファイルサーバから各自のフォルダにコピーし、自分の名前に編集後、コンパイルして、回転のパラメータを与えて実行のこと。
2)各自の独自形状データに変えたり、色を変えたり、その他のパラメータを変えて、表示すること。
1)WordあるいはFrontPageExpressに、考察、ソースリスト、実行グラフィックス画面を貼り付けたものを「Webページ」の形式(拡張子はhtml)で、各自のMyHomeに、cg_04aなどの名前をつけて保存する。
2)情報系Webサーバの各自のpublic_htmlフォルダにindex.htmlからのハイパーリンクを作って、登録する。その概略は以下のとおり。
htmlファイルは、WordなどでWebページとして保存する(前述)か、AZUKIなどのhtmlエディタで編集する。そして、各自のホームページindex.htmlから、今回のレポートページへのリンクを張る。それらをWebサーバの各自のホームディレクトリの直ぐ下のpublic_htmlフォルダ(サブディレクトリ)にftpする。