図形科学演習 II の授業の情報 (山口 泰)
目次
今年度は教科書はなく,プリントを配布する予定である.
授業とほぼ同様の内容を Javaプログラミングで行うための本で,
昨年までは教科書として利用していた.
山口 泰:「Javaによる3DCG入門」朝倉書店 (ISBN 9784254122107)
(2015年 4月10日 初版発行)
参考書の訂正
- drawLine, drawString, drawOval メソッド (p.4)
これらのメソッドは Graphics クラスのメソッドであり,
p.4 の2行目( Frame クラスの直前)に移動する.
- アフィン変換 (p.36)
「いかなるアフィン変換も」となっているが,「多くのアフィン変換は」に修正する.
- 五角形片のスケール (p.49, 「様々なフラクタル図形」)
「1/φ」となっているが,「1/φ2 = 1/(1+φ)」に修正する.
- 3次のベジエ曲線の微分 (p.55)
第2項が「- 6(1-t)t (p2 - p1)」となっているが,
実際には「+ 6(1-t)t (p2 - p1)」.
- 「立体データの意味」(p.83, 章末課題の3番目)
2番目の課題と同じタイトルなので,「その他の立体データ」に変更する.
- 「回転速度の対話的な調整」(p.108, 章末課題の2番目)
回転量を得るメソッドは「mwe.getWheelRotate()」となっているが,
実際には「mwe.getWheelRotation()」.
- glPolygonOffsetの引数(p.113, 例3の説明)
「これによって本来のZ値に1が加えられる(1.0×Z+1.0)」とあるが,
「これによって本来のZ値に(1.0×m+1.0×r)が加えられる
(ただし,mはポリゴンの傾き,rはZ値の実装上の単位となる)」.
- (15.8)式(p.119, 回転の式)
3行目の式の第3項が「- (v・p) v」とあるが,
「+ (v・p) v」.
- (15.12)式(p.120, 回転行列の式)
2行目の式の第2項の行列で 3行1列の成分は「vsvz」とあるが,
「vxvz」.
- 15.3節「平行移動と回転のプログラム」(p.120〜122,例1〜3)
Rotation の rotAroundAxisメソッドに回転軸として
零ベクトルが与えられると零除算が発生してしまう.
Rotationで零判定の許容差(第5章のVector2Dを参照のこと)を定義し,
RotMatrixとQuaternionのrotAroundAxisで零ベクトルの判定をする.
変更部分を含めたプログラムを授業(ITC-LMS)で配布する.
ターミナルにおけるコマンドのプリント
- レポート0 (4月22日以前)
指示にしたがって,
ITC-LMSへの登録とメールを送付してください.
前者は課題提出に必要で,後者は授業の進め方の参考とします.
また自分のPCにPythonの実行環境を作るとともに,
滞りなくレポート作成できるようにしておいてください.
〆切は 4月22日(水)授業開始前とします.
- レポート1 (4月15,22日前半分)
第1章の例題プログラムを実施して,レポートを提出しなさい.
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
提出〆切は 4月22日(水) 22:00とします.
なお,レポートの評価やコメントは ITC-LMSの課題コメントに書く予定です.
ITC-LMSから提出しないとフィードバックが受けられなくなりますから,
時間内に提出するようにしてください.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート2 (4月22日後半分)
第2章の例題プログラムと章末課題「ダイアモンドパターンの描画」を実施しなさい.
章末課題の「ネフロイドの描画」や,その他の図形の描画も歓迎する.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
なおlines.py と dotLines.py は,
ITC-LMSの教材からダウンロードできる.
提出〆切は 4月29日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート3 (4月29日分)
第3章の例題プログラムと章末課題を実施しなさい.
ただし「明度を変化させた色円盤」は選択課題とし,
その他の図形の描画も歓迎する.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
提出〆切は 5月13日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
<参考> 色に関わる錯覚について
- レポート4 (5月13日分)
第4章の例題プログラムと章末課題「マウスイベントの確認」を実施しなさい.
他の章末課題や参考「プログラムの解読」も歓迎する.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
なおbackground.py, clickSpeed.py は,
ITC-LMSの教材からダウンロードできる.
提出〆切は 5月20日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート5 (5月20日分)
第5章の例題プログラムと章末課題を実施しなさい.
5.2節については,考察は例1のみで良い.
その他,自分で工夫したプログラムも歓迎する.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
なお, myCanvas.py は ITC-LMS の教材からダウンロードできる.
提出〆切は 5月27日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート6 (5月27日分)
第6章の例題プログラムと章末課題を実施しなさい.
ただし「様々なフラクタル図形」は可能な範囲で実施すればよく,
「Lシステムのプログラム」は選択課題とします.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
提出〆切は 6月 3日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート7 (6月 3日分)
第8章と第10章の例題プログラム(第8章は例1のみ)と章末課題を実施しなさい.
章末課題「立体データの意味」で面情報の書き換えについては,
様々な場合を試して表示結果との関連を検討してみること.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
なお,lines.py はITC-LMSの教材からダウンロードできる.
提出〆切は 6月10日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート8 (6月10日分)
第11章の例題プログラムと章末課題を実施しなさい.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
提出〆切は 6月17日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート9 (6月17日分)
第12章の例題プログラムと章末課題を実施しなさい.
またフラクタル立体のハウスドルフ次元を計算すること.
本章の例1〜3に限って,考察をまとめて書いても良い.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
なお,プログラムがやや多いため,cube.py と
polyhedron.py をITC-LMSの教材からダウンロードできる.
提出〆切は 6月24日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート10 (6月24日分)
第13章の例題プログラムと章末課題を実施しなさい.
ただし「回転速度の対話的な調整」は選択課題とします.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
提出〆切は 7月 1日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート11 (7月 1日分)
第14章の例題プログラムと章末課題を実施しなさい.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
提出〆切は 7月 8日(水)授業開始前とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
- レポート12 (7月 8日分)
第15章と第16章の例題プログラム(第16章は例1のみ)と
章末課題(それぞれ最初の課題のみ)を実施しなさい.
特に第15章の章末課題の透視投影によって生じる歪みと観察方法に絡んで,
バスタブ錯視との関係を考察すること.
章末課題の「奥行方向の平行移動」や,その他の工夫も歓迎する.
なお,例題についてはプログラムリストをレポートに載せなくて良い
(考察で行番号を使いたい場合はリストがあった方が良い).
レポートの作成にあたっては,
「 課題の作成・提出方法 」
の指示にしたがってください.
プログラムの行数がやや多いため,
quaternion.pyをITC-LMSの教材からダウンロードできる.
提出〆切は 7月17日(金)22:00とします.
ちなみに,過去のレポート(言語はJavaでした)に対する
コメントの一部 を示します.
(4月 6日現在で)休講の予定はありません.