套件 | flash.geom |
類別 | public class PerspectiveProjection |
繼承 | PerspectiveProjection Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
投影是在二維空間中呈現三維物件的方式,如電腦螢幕上投影的立方體。透視投影會使用檢視平頂角錐 (矩形金字塔),在螢幕上模型化及投影三維世界及其物件。檢視平頂角錐時,離視點原點越遠,平頂角錐就會逐漸變寬。視點原點可以是攝影機或面向螢幕之觀察者的眼睛。投影的透視會產生具有深度和距離的三維幻覺,亦即越接近螢幕的物件看起來比離螢幕較遠的物件還要大。
預設的 PerspectiveProjection 物件是根據舞台的視野和比例 (尺寸),針對根物件的透視變形所定義的架構。投影中心 (消失點) 是設定為舞台中心,這表示當三維顯示物件在 z 軸向後移動時會朝向舞台中心消失。預設的視點位於點 (0,0),並在正 z 軸向下看。y 軸會向下指向螢幕底部。您可以透過 root
物件的 DisplayObject.transform
屬性,來存取 root
顯示物件的透視投影設定以及變更 perspectiveProjection
屬性的視野和投影中心屬性。
您也可以透過父輩的透視投影來設定顯示物件的不同透視投影設定。首先,建立 PerspectiveProjection 物件,並設定其 fieldOfView
和 projectionCenter
屬性。接下來,使用 DisplayObject.transform
屬性,將 PerspectiveProjection 物件指定給父輩顯示物件。然後,指定的投影矩陣和變形便會套用至顯示物件的所有三維子系。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
fieldOfView : Number
針對三維檢視指定一個介於 0 和 180 之間的角度數。 | PerspectiveProjection | ||
focalLength : Number
眼睛或視點的原點 (0,0,0) 與位於 z 軸的顯示物件之間的距離。 | PerspectiveProjection | ||
projectionCenter : Point
代表投影中心的二維點,即顯示物件的消失點。 | 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 |
針對三維視野指定一個介於 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 | 屬性 |
projectionCenter | 屬性 |
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 物件。
如同根物件,顯示物件可以有 PerspectiveProjection 物件,而不需要為其變形定義 Matrix3D 屬性。事實上,使用 PerspectiveProjection 或 Matrix3D 物件都可以指定透視變形。如果在使用 PerspectiveProjection 物件時需要 Matrix3D 物件,toMatrix3D()
方法可以擷取顯示物件的基礎 Matrix3D 物件。例如,toMatrix3D()
方法可以搭配 Utils3D.projectVectors()
方法一起使用。
Matrix3D — 基礎 Matrix3D 物件。
|
相關 API 元素
Tue Jun 12 2018, 03:47 PM Z