包 | flash.geom |
类 | public class PerspectiveProjection |
继承 | PerspectiveProjection Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
投影是一种用于在二维空间内表示三维对象的方式,例如,投影到计算机屏幕上的立方体。透视投影使用视见平截头体(四棱锥)来建模并将三维世界及其对象投影到屏幕上。随着视见平截头体远离视点原点,它会变得越来越宽。视点原点可以是面向屏幕的摄像头或观察者的眼睛。投影透视会在深度和距离上产生三维错觉,其中接近屏幕的对象比远离屏幕的对象要大得多。
默认的 PerspectiveProjection 对象是基于视野和舞台的高宽比(尺寸)为 root 对象的透视转换定义的框架。投影中心(即消失点)将设置为舞台中心,这意味着当三维显示对象沿 z 轴后移时,这些对象会朝着舞台中心消失。默认视点位于正向 z 轴向下的点 (0,0)。y 轴朝下指向屏幕底部。可以访问 root
显示对象的透视投影设置,并通过 root
对象的 DisplayObject.transform
属性来更改 perspectiveProjection
属性的视野和投影中心属性。
也可以通过父级透视投影为显示对象设置不同的透视投影设置。首先,创建一个 PerspectiveProjection 对象并将设置其 fieldOfView
和 projectionCenter
属性。紧接着,使用 DisplayObject.transform
属性将 PerspectiveProjection 对象分配给父级显示对象。然后,指定的投影矩阵和转换将应用于显示对象的所有三维子级。
另请参见
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
fieldOfView : Number 为三维视野指定一个角度(介于 0 度到 180 度之间)。 | PerspectiveProjection | ||
focalLength : Number 眼睛或视点的原点 (0,0,0) 与位于 z 轴的显示对象之间的距离。 | PerspectiveProjection | ||
projectionCenter : Point 表示投影中心的二维点,它是显示对象的消失点。 | PerspectiveProjection | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object |
方法 | 定义方 | ||
---|---|---|---|
创建 PerspectiveProjection 对象的实例。 | PerspectiveProjection | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回显示对象的基本 Matrix3D 对象。 | PerspectiveProjection | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
fieldOfView | 属性 |
fieldOfView:Number
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
为三维视野指定一个角度(介于 0
度到 180
度之间)。此值可确定应用于具有非零 z 坐标的三维显示对象的透视转换和扭曲的强度。
若角度接近于 0
,则表示屏幕的二维 x 和 y 坐标与三维 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 |
表示投影中心的二维点,它是显示对象的消失点。
projectionCenter
属性是相对于默认注册点(即舞台左上角的点 (0,0))的偏移量。默认的投影转换中心位于舞台中间,这意味着当三维显示对象沿 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 对象。
显示对象(例如 root 对象)可以包含 PerspectiveProjection 对象,而无需为其转换定义 Matrix3D 属性。实际上,将使用 PerspectiveProjection 或 Matrix3D 对象指定透视转换。如果在使用 PerspectiveProjection 对象时需要 Matrix3D 对象,则 toMatrix3D()
方法可以检索显示对象的基本 Matrix3D 对象。例如,toMatrix3D()
方法可以与 Utils3D.projectVectors()
方法配合使用。
Matrix3D — 基本 Matrix3D 对象。 |
另请参见