天天看點

AS3.0中的顯示程式設計(六)-- 幾何結構

      幾何結構,主要是完成Flash程式設計中,一些和幾何相關的内容。如顯示對象的變形角度、公式計算等。可能很多人和我一樣,高中學的幾何知識,差不多都已經還給老師了。不過也不用太擔心,因為一般情況下,我們也用不到非常複雜的幾何處理。我這裡就介紹點非常簡單的知識,日常的程式設計中需要用到。

      <b>(一)Point</b><b>對象</b>

      Point對象是一個點對象,在顯示程式設計的不少地方都需要用到Point對象。建立一個Point對象方式如下:

      var p:Point = new Point(3,4); //3:x坐标 4:y坐标

      然後可以通過p.x和p.y屬性來獲得和修改該Point對象的坐标值。

      這裡有一個非常實用的屬性,你可以通過p.length來獲得p到原點(0,0)的距離。

      Point對象還有幾個實用的方法,Point對象的方法通路和其他類略有不同,我通過下面的例子說明:

      <b>(1) distance()</b>

      用來獲得兩個點對象之間的距離。

      var p1:Point = new Point(3,4);

      var p2:Point = new Point(6,8);

      trace(Point.distance(p1,p2)); //Point對象方法的使用

      <b>(2) interpolate</b><b>()</b>

      這個也是個常用的方法,我通過例子來說明用法:

      var p3:Point = Point.interpolate(p1,p2,0.9);

      trace(p3.toString()); //傳回:(x=3.3, y=4.4)

      這個方法的意思是,傳回p1、p2連成的直線90%的點位置,這個90%是相對于p1點的。

      <b>(3) normalize()</b><b>、offset()</b><b>、polar()</b>

      這三個方法都是用來移動點的位置的,我這裡就不多做介紹了,也不是非常常用。感興趣的朋友可以自己了解下。

      <b>(二)Rectangle</b><b>對象</b>

      Rectangle對象是一個矩形對象,也是顯示程式設計中經常用到的。建立一個矩形對象的方式如下:

      var p:Rectangle = new Rectangle(0,0,100,50); //參數分别為x坐标、y坐标、寬、高

      Rectangel的屬性圖如下:

      其中,top、left、bottom、right、width、height傳回的是數值,topLeft和bottomRight傳回的是一個坐标點(Point)。如果你改變這些數值的話,同時會改變矩形的形狀大小。

      如果隻是要平移矩形,請改變矩形的x、y屬性。

      另外,可以用size屬性檢視變形後矩形的寬和高,傳回的是一個以寬和高為數值表示的坐标點。

      Rectangle也有一些比較常用的方法,如下:

      <b>(1</b><b>)contains()</b><b>、containsPoint()</b>

      這兩個方法傳回的都是布爾值。并且,隻是傳遞的參數不同,意義是一樣的,用來判斷矩形内是否包含該點。

      <b>(2</b><b>)containsRect()</b><b>、intersection()</b><b>、intersects()</b><b>、union()</b>

      這四個方法的作用差不多,我放在一起介紹了。

      containsRect():傳回一個布爾值,判斷參數矩形是否包含在目标矩形内。如果完全包含,傳回true,否則傳回false。

      intersects():傳回一個布爾值,判斷參數矩形是否與目标矩形相交。如果相交傳回true,否則傳回false。

      intersection():如果兩個矩形相交,則傳回相交部分的矩形。如果沒有相交,則傳回一個空的矩形。如下圖所示:

      union():傳回兩個矩形的最大矩形空間。如下圖所示:

本文轉自 windtoto 51CTO部落格,原文連結:http://blog.51cto.com/windtoto/404484,如需轉載請自行聯系原作者

繼續閱讀