前回はDisplayObjectクラスのプロパティをちょこっといじっただけだったので、
今回はPerspectiveProjectionクラスをいじってみます
PerspectiveProjectionクラスってのは遠近法を簡単に適応するクラスらしい
このクラスのプロパティは3つ
・fieldOfView
Number
0 < fieldOfView < 180
遠近法による変形と歪みの強さを決めるプロパティ
値を大きくすると魚眼レンズみたいになる
・focalLength
Number
焦点距離を表すプロパティ
視点の原点(0,0,0)とz軸上のオブジェクトとの間の距離を表す
値が大きいと望遠鏡のように、小さいと魚眼レンズのようになる
・projectionCenter
Point
遠近法の消失点を表すプロパティ
fieldOfViewとfocalLengthは互いに依存してるので片方変更するともう片方も変更するらしい
fieldOfViewを変更したときのfocalLengthは次の式で計算される
focalLength = stageWidth/2 * (cos(fieldOfView/2) / sin(fieldOfView/2)
デフォルトでは次の値になる
• fieldOfView:55
• perspectiveCenter:stagewidth/2, stageHeight/2
• focalLength:stageWidth/ 2 * ( cos(fieldOfView/2) / sin(fieldOfView/2) )
とりあえずPerspectiveProjectionを使ってなんか作ってみる
wonderflのほうが公開するの楽なんでwonderflに書きますw
長細い線みたいなのがビュンビュン飛んでるけど、実は正方形
PerspectiveProjectionのfieldOfViewの値を大きくして魚眼レンズのようにしている
projectionCenterは常にマウスの座標になるようにしている
これだけでおもしろくなるもんだなぁ
次はMatrix3Dを使ってみる
