演習問題の作り方（自習用）

必要なコマンドの定義

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

(* 同次座標を直交座標に変換 *)
Hcs2Ocs3D[list_]:={list[[1]]/list[[4]],list[[2]]/list[[4]],list[[3]]/list[[4]]};
(* z=0 平面への透視投影 *)
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}]

手順

視点 S を適当に定める．（例えば S = (4, 5, 6)）

投影する点 A を適当に定める．（例えば A = (3, 2, 1)）

問題を設定；

問題．視点をSとし投影面を平面 z = 0 とする透視投影で点A を移した点を求めなさい．

問題を解く（手で計算）．

Mathematica で答えを確かめる．

Perspective[{4,5,6}][{3,2,1}]

投影像の可視化

作成中