透視変換1

物体の座標を視点から見た座標に変換

 視点のある座標を(Xe, Ye , Ze)、視線の先にある点を(Xp, Yp, Zp)とします。 すると視線ベクトル(Xv,Yv,Zv)は

Xv = Xp - Xe
Yv = Yp - Ye
Zv = Zp - Ze

となります。
 それからY軸中心にα回転させてX軸中心にβ回転させた回転行列Aを作ります。

sinα = Xv / √(Xv2 + Zv2)
cosα = -Zv / √(Xv2 + Zv2)
sinβ= Yv / √(Xv2 + Yv2 + Zv2)
cosβ = √(Xv2 + Zv2) / √(Xv2 + Yv2 + Zv2)

A=
cosα0-sinα0 1000
0100 0cosβsinβ0
sinα0cosα0 0-sinβcosβ0
0001 0001

 最後に任意の点(X , Y , Z)を視点が原点に来るように平行移動させ、回転行列を掛け、Z軸を奥に向かってプラスになるように反転させたものが視点から見た点(Xa , Ya , Za)になります。

[ Xa Ya Za W ]=
[ X Y Z 1 ] 1000  A  1000
0100 0100
0010 00-10
-Xe-Ye-Ze1 0001
Xa = (X - Xe)cosα + (Z - Ze)sinα
Ya = (X - Xe)sinαsinβ +
(Y - Ye)cosβ - (Z - Ze)cosαsinβ
Za = (X - Xe)sinαcosβ -
(Y - Ye)sin&beta - (Z - Ze)cosαcosβ;

 これを、アクションスクリプトで表すとFlashPlayer10以降の場合はこうなります。

参考:アフィン変換_3DCG