実行結果を保存したこのノートブックを授業後に提出してもらいます（PWP）．
その際，ファイル名の後半部分が学籍番号になるよう，x, a, b, c の部分を変更してください．

名　　前：
学籍番号：0xJKabc

同次座標系のおける透視投影

（準備）ベクトルの成分を取り出すコマンド

ベクトル（リスト）は 
　　　{第１成分, 第２成分, 第３成分} 
と表す．

ベクトル（リスト）の成分を取り出すコマンド（例えば第２成分）は
　　　{第１成分, 第２成分, 第３成分} [[2]]

問題 1．
ベクトル v = ( a, b, c ) を定義し，上のコマンドを使って各成分を取り出し（出力し）なさい．
（ただし，a, b, c は学籍番号の下三桁の自然数）

v={a,b,c};
v[[i]]

同次座標系から直交座標系への変換

以下の定義コマンドを実行せよ．

Hcs2Ocs[list_]:={list[[1]]/list[[3]],list[[2]]/list[[3]]};
Hcs2Ocs3D[list_]:={list[[1]]/list[[4]],list[[2]]/list[[4]],list[[3]]/list[[4]]}

問題 2．
同次座標で表された空間内の点 ( a : b : c : x ) を上のコマンドを用いて直交座標に直しなさい．
（ただし，a, b, c は学籍番号の下三桁，x は入学年度）

Hcs2Ocs3D[{a,b,c,x}]

z = 0 平面への透視投影

以下の定義コマンドを実行せよ．

PerspectiveHcs[viewpointHcs_][pointHcs_]:=Hcs2Ocs3D[(({{-viewpointHcs[[3]], 0, viewpointHcs[[1]], 0}, {0, -viewpointHcs[[3]], viewpointHcs[[2]], 0}, {0, 0, 0, 0}, {0, 0, viewpointHcs[[4]], -viewpointHcs[[3]]}})).pointHcs];
Perspective[viewpoint_][point_]:=Hcs2Ocs3D[(({{-viewpoint[[3]], 0, viewpoint[[1]], 0}, {0, -viewpoint[[3]], viewpoint[[2]], 0}, {0, 0, 0, 0}, {0, 0, 1, -viewpoint[[3]]}})).{point[[1]],point[[2]],point[[3]],1}]

問題 3．
上で定義したPerspectiveコマンドを使って，授業中に出した課題 1と2の解を求めなさい．

Perspective[{3,0,3}][{a,b,c}]

PerspectiveHcs[{3,0,3,1}][{a,b,c,x}]