Point類計算向量

來源:互聯網
上載者:User
當要運算兩點距離時,我見不少人都是用最原始的運算方法,其實2.0開始就有了Point類,可以計算兩點間距離,除此之外,Point類還可
用於計算向量,某些看似複雜的計算,用上Point類就會變得簡單。當然,要巧用Point類,必需要有向量的知識。雖然,3.0的Point類和2.0
的區別不大,但我之所以把這帖放在as3討論區,是因為as3的Point類廣泛地被其他類應用。最明顯的是globalToLocal和
localToGlobal這兩個方法,2.0這兩個方法的參數和傳回值都是Object,但3.0都變為Point類了,使得Point類的應用更名正
言順了。

廢話少說,言歸正轉,首先我們看看Point類的屬性:

x:
Number
——該點的水平座標

y:
Number
——該點的垂直座標

length:
Number
——從(0,0)到此點的線段長度(唯讀屬性)
從length屬性我們可以看到,實際上一個Point類的執行個體是一個以(0,0)為始點,以(x,y)為終點的向量,因此,我們可以應用Point類進行一些簡單的向量運算。
現在我們看看Point類給我們提供什麼有用的方法:


distance(pt1:
Point

, pt2:
Point
):Number

——返回
pt1 和
pt2
之間的距離。
這個就是大家傻傻地用Math.sqart()寫一長串代碼計算出來的兩點間距離了。


add(v:
Point
):
Point
——將另一個點的座標添加到此點的座標以建立一個新點。
還記得向量相加的幾何意義嗎?

設a、b為向量,則a+b=c,圖中向量c就是向量a加向量b的結果。
這個用來計算合力最方便。我們可以把物體的重心放到(0,0)點上,然後可以利用Point類的add方法簡單計算各種力的合力。你可能會提出一個問題:如何把力轉換成點的座標呢?下面這個方法可以幫你解決這個問題。


polar(len:
Number

, angle:
Number

):
Point
——將一對極座標轉換為笛卡爾點座標。

過物理力學的人都知道,力是有大小有方向的向量,而這個方法正好提供了把力轉換成點座標的方法。len就是力的大小,angle就是力角度。轉換後計算合
力,得出合力的座標點,再讀取這點的length屬性,就可得到合力的大小,再利用Math.atan2(y,x)計算力的方向。多簡單的運算!


offset(dx:
Number

, dy:
Number

):
void
——按指定量位移 Point 對象。
dx
的值將添加到 x
的原始值中以建立新的 x
值。
dy 的值將添加到
y
y

值。這個要和add區分開來,因為offset是直接把值加到x、y值上。


的原始值中以建立新的 subtract(v:
Point

):
Point
——從此點的座標中減去另一個點的座標以建立一個新點。
既然有了加法,當然有減法了。看看向量的減法意義:

設a、b為向量,則b-a=c,圖中向量c就是向量b減去向量a的結果。
用這個運算,你可以方便

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.