**準備・座標系 [#te0a196b] Processingの導入および,Processingにおける座標系など基本的な事柄について解説していきます. **Processing [#ha63c0f4] 本講義ではProcessingの[[バージョン2.2.1:https://www.processing.org/download/]]を使用して進めていきます. 2.2.1はデフォルトでは日本語を扱うことができません.[[こちら:http://www.mlab.im.dendai.ac.jp/~tomoriya/wiki/index.php?Processing%CA%B8%BB%FA%B2%BD%A4%B1%B2%F3%C8%F2]]を参照して設定を行ってください. **3Dにする [#u063fef1] Processingで3Dを使用する場合は,size関数の引数を変更します. size(640, 480, P3D); 前2つは画面のサイズです.3番目の引数に「P3D」という文字列が加わっています.これは図形を描画するレンダリングエンジンの指定で,P3Dを指定することにより3Dのレンダリングが可能になります. **描いてみる [#f39ea13c] 3次元の座標軸をline関数で描いてみます.今までと異なり,引数が増えていることに注目してください.前半3つが始点(AX,AY,AZ),後半3つが終点(BX,BY,BZ)です.それぞれX軸:赤,Y軸:緑,Z軸:青で色分けしています. stroke(255, 0, 0); line(0, 0, 0, 100, 0, 0); stroke(0, 255, 0); line(0, 0, 0, 0, 100, 0); stroke(0, 0, 255); line(0, 0, 0, 0, 0, 100); 結果を見てみると特に変化がなく2次元で描画されているように見えます. #ref(./firststep.png,50%); ''Intel系のグラフィックスアダプタを搭載しているPCでは,P3Dを使用したプログラム実行時にエラーがでる可能性が高いです.[[こちら:http://www.mlab.im.dendai.ac.jp/~tomoriya/wiki/index.php?ProcessingP3D%A5%A8%A5%E9%A1%BC]]を参考にドライバのアップデートを行ってください.'' **カメラ [#j7d8f419] 結果が2Dにしか見えないのは,カメラの配置のためです.デフォルトではカメラ位置は次のように設定されています. camera(width/2.0, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0); Processingではデフォルトで左手座標系なので以下のようになります. #ref(./world.png,50%); カメラの位置,注視点を変更してみます. camera(100, -100, 100, 0, 0, 0, 0, 1, 0); X軸,Y軸,Z軸が表示され,3Dであることが確認できました. #ref(./secondstep.png,50%); カメラの位置は以下のようになっています. #ref(./changecam.png,50%); **課題1 [#p88bf156] setup関数,draw関数を導入して,カメラが原点を注視しながらY軸回転するアニメーションを作成せよ. 実装例:&ref(./kadai1.wmv);(名前を付けて保存,もしくは閲覧パスを入力) **課題2 [#fd3dd795] 課題1を改良し,マウスを右クリックしている間はカメラの高さ(y位置)を変更できるようにせよ. 実装例:&ref(./kadai2.wmv);(名前を付けて保存,もしくは閲覧パスを入力)