パッケージflash.geom
クラスpublic class PerspectiveProjection
継承PerspectiveProjection Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

PerspectiveProjection クラスを使用すると、遠近法に基づく変形を表示オブジェクトおよびそのオブジェクトのすべての子に簡単に割り当てることができます。複雑な変形やカスタムの遠近法に基づく変形の場合は、Matrix3D クラスを使用します。PerspectiveProjection クラスは基本的な 3 次元表示プロパティを提供しますが、Matrix3D クラスは表示オブジェクトの 3 次元表示をより詳細に制御します。

投影とは、コンピュータ画面に投影された立方体のように、3 次元オブジェクトを 2 次元空間に表示する方法です。遠近法に基づく投影では、視野錐台(四角錐)を使用して、3 次元空間とそのオブジェクトを画面上にモデル化して投影します。視野錐台は、視点の原点から離れるにつれて幅が広くなります。視点の原点は、カメラや画面の前にいる閲覧者の視点になる場合もあります。投影された遠近画により、奥行きと距離を持つ 3 次元の錯覚を生み出します。この場合、画面に近いオブジェクトほど、画面から遠いオブジェクトよりも大きく表示されます。

錐台表示領域

デフォルトの PerspectiveProjection オブジェクトは、視野およびステージの縦横比(サイズ)に基づいて、ルートオブジェクトの遠近法に基づく変形用に定義されたフレームワークです。投影の中心である消失点は、ステージの中央に設定されます。つまり、3 次元の表示オブジェクトは、z 軸を後方に移動しながら、ステージの中央に向かって消えていきます。デフォルトの視点は、正の z 軸を見下ろしている点(0,0)にあります。y 軸は、画面の下部に向かっています。root 表示オブジェクトの遠近法に基づく投影設定にアクセスし、perspectiveProjection プロパティの視野および投影の中心のプロパティを変更できます(root オブジェクトの DisplayObject.transform プロパティを使用)。

親の遠近法に基づく投影を使用して、表示オブジェクトの各種の遠近法に基づく投影を設定することもできます。まず、PerspectiveProjection オブジェクトを作成し、fieldOfView プロパティと projectionCenter プロパティを設定します。次に、DisplayObject.transform プロパティを使用して、PerspectiveProjection オブジェクトを親表示オブジェクトに割り当てます。指定した投影マトリックスと変換が、表示オブジェクトの 3 次元の子すべてに適用されます。

関連項目

flash.display.DisplayObject.transform
flash.geom.Transform
flash.geom.Matrix3D
flash.geom.Utils3D
Projecting 3D objects onto a 2D view
Example: Perspective projection


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  fieldOfView : Number
3 次元の視野について、角度を 0 ~ 180 度で指定します。
PerspectiveProjection
  focalLength : Number
視点または視点の原点(0,0,0)と z 軸上に位置する表示オブジェクトとの距離です。
PerspectiveProjection
  projectionCenter : Point
投影の中心を表す 2 次元のポイントで、表示オブジェクトの消失点です。
PerspectiveProjection
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
PerspectiveProjection オブジェクトのインスタンスを作成します。
PerspectiveProjection
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
表示オブジェクトの基になる Matrix3D オブジェクトを返します。
PerspectiveProjection
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
fieldOfViewプロパティ
fieldOfView:Number  [読み書き可能]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

3 次元の視野について、角度を 0180 度で指定します。 この値は、0 以外の z 座標の 3 次元の表示オブジェクトに適用される、遠近法に基づく変形と歪みの強さを決定します。

0 に近い角度は、画面の 2 次元の x 座標と y 座標が、ほとんどまたはまったく歪みのない 3 次元の x 座標、y 座標、および z 座標とほぼ同じであることを意味します。つまり、小さい角度の場合、z 軸を下に移動する表示オブジェクトは、ほぼ同じサイズを維持し、ほとんど移動しません。

180 度に近い値は、魚眼レンズ効果があります。つまり、z 値が 0 より小さい場合、その位置は拡大され、z 値が 0 より大きい場合、その位置は最小化されます。大きい角度の場合、z 軸を下に移動する表示オブジェクトは、サイズがすばやく変わり、大きく移動します。視野が 0 または 180 に設定されている場合、画面には何も表示されません。



実装
    public function get fieldOfView():Number
    public function set fieldOfView(value:Number):void
focalLengthプロパティ 
focalLength:Number  [読み書き可能]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

視点または視点の原点(0,0,0)と z 軸上に位置する表示オブジェクトとの距離です。遠近法に基づく変形が行われるとき、視野の角度とステージの縦横比(ステージの幅をステージの高さで除算)を使用して、focalLength が動的に計算されます。



実装
    public function get focalLength():Number
    public function set focalLength(value:Number):void

関連項目

projectionCenterプロパティ 
projectionCenter:Point  [読み書き可能]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

投影の中心を表す 2 次元のポイントで、表示オブジェクトの消失点です。

projectionCenter プロパティは、ステージの左上、ポイント(0,0)にあるデフォルトの基準点へのオフセットです。デフォルトの投影変換の中心は、ステージの中央にあります。つまり、3 次元の表示オブジェクトは、z 軸を後方に移動しながら、ステージの中央に向かって消えていきます。



実装
    public function get projectionCenter():Point
    public function set projectionCenter(value:Point):void
コンストラクタの詳細
PerspectiveProjection()コンストラクタ
public function PerspectiveProjection()

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

PerspectiveProjection オブジェクトのインスタンスを作成します。

メソッドの詳細
toMatrix3D()メソッド
public function toMatrix3D():Matrix3D

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

表示オブジェクトの基になる Matrix3D オブジェクトを返します。

表示オブジェクトは、ルートオブジェクトと同様に、変換に対して定義されている Matrix3D プロパティがなくても PerspectiveProjection オブジェクトを持つことができます。実際には、PerspectiveProjection オブジェクトまたは Matrix3D オブジェクトを使用して、遠近法に基づく変形を指定します。 PerspectiveProjection オブジェクトを使用しているときに Matrix3D オブジェクトが必要になった場合、toMatrix3D() メソッドは、表示オブジェクトの基になる Matrix3D オブジェクトを取得できます。例えば、toMatrix3D() メソッドは Utils3D.projectVectors() メソッドと一緒に使用できます。

戻り値
Matrix3D — 基になる Matrix3D オブジェクトです。

関連項目