パッケージ | flash.geom |
クラス | public class PerspectiveProjection |
継承 | PerspectiveProjection Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
投影とは、コンピューター画面に投影された立方体のように、3 次元オブジェクトを 2 次元空間に表示する方法です。遠近法に基づく投影では、視野錐台(四角錐)を使用して、3 次元空間とそのオブジェクトを画面上にモデル化して投影します。視野錐台は、視点の原点から離れるにつれて幅が広くなります。視点の原点は、カメラや画面の前にいる閲覧者の視点になる場合もあります。投影された遠近画により、奥行きと距離を持つ 3 次元の錯覚を生み出します。この場合、画面に近いオブジェクトほど、画面から遠いオブジェクトよりも大きく表示されます。
デフォルトの PerspectiveProjection オブジェクトは、視野およびステージの縦横比(サイズ)に基づいて、ルートオブジェクトの遠近法に基づく変形用に定義されたフレームワークです。投影の中心である消失点は、ステージの中央に設定されます。つまり、3 次元の表示オブジェクトは、z 軸を後方に移動しながら、ステージの中央に向かって消えていきます。デフォルトの視点は、正の z 軸を見下ろしている点(0,0)にあります。y 軸は、画面の下部に向かっています。root
表示オブジェクトの遠近法に基づく投影設定にアクセスし、perspectiveProjection
プロパティの視野および投影の中心のプロパティを変更できます(root
オブジェクトの DisplayObject.transform
プロパティを使用)。
親の遠近法に基づく投影を使用して、表示オブジェクトの各種の遠近法に基づく投影を設定することもできます。まず、PerspectiveProjection オブジェクトを作成し、fieldOfView
プロパティと projectionCenter
プロパティを設定します。次に、DisplayObject.transform
プロパティを使用して、PerspectiveProjection オブジェクトを親表示オブジェクトに割り当てます。指定した投影マトリックスと変換が、表示オブジェクトの 3 次元の子すべてに適用されます。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
fieldOfView : Number
3 次元の視野について、角度を 0 ~ 180 度で指定します。 | PerspectiveProjection | ||
focalLength : Number
視点または視点の原点(0,0,0)と z 軸上に位置する表示オブジェクトとの距離です。 | PerspectiveProjection | ||
projectionCenter : Point
投影の中心を表す 2 次元のポイントで、表示オブジェクトの消失点です。 | PerspectiveProjection |
メソッド | 定義元 | ||
---|---|---|---|
PerspectiveProjection オブジェクトのインスタンスを作成します。 | PerspectiveProjection | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
表示オブジェクトの基になる Matrix3D オブジェクトを返します。 | PerspectiveProjection | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
fieldOfView | プロパティ |
fieldOfView:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
3 次元の視野について、角度を 0
~ 180
度で指定します。この値は、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
関連する API エレメント
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 オブジェクトです。
|
関連する API エレメント
Tue Jun 12 2018, 10:34 AM Z