前回の記事ではPapervison3Dで被写界深度表現ができるプロパティを発見したことを紹介しました。今回はその応用で焦点距離を計算するロジックを実装してみます。 デモ(要Flash Player 9) ソース(要Papervision3D 2.0 GreateWhite) 螺旋状の3Dサンプルで二重のネスト構造にしており、sceneX,Y,Zプロパティが今回の計算でも活躍してくれます。 カメラからの距離を算出 焦点距離を計算するにあたってカメラとオブジェクトの3次元空間上での2点間距離を算出する必要があります。XYZに対して距離の差分を求め、二乗して平方根をとれば距離が算出できます。これは今後もよく使いそうなので汎用メソッド化しておきます。 /** * カメラからの距離を算出します * @param obj 計測したいオブジェクト * @return カメラからの距離(3D空間内のpx値