《oint類與向量》課件_第1頁
《oint類與向量》課件_第2頁
《oint類與向量》課件_第3頁
《oint類與向量》課件_第4頁
《oint類與向量》課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第12章Point類與向量Point在英文中的意思是空間的一點,表示地方和位置。在ActionScript3.0中,Point指顯示屏幕上的點,用坐標來表示。坐標用來表示某個點的絕對位置,在游戲中通常用來表示游戲事物的平面位置。在Flash的坐標系統(tǒng)中,Point類用于定義顯示屏幕上的位置,也就是坐標。在現實世界中,有很多量是既有大小,又有方向的。物理學中位移、力、速度、加速度等常見的量都是這樣。通常把這種既有大小,又有方向的量叫做向量,也叫矢量。向量有多種,常用的主要是用于二維空間的平面向量和用于空間的三位向量。本節(jié)將結合坐標介紹點坐標與平面向量的關系,以及利用點坐標來進行向量的相關計算。1精選課件ppt12.1點坐標與向量在Flash的坐標系統(tǒng)中,利用點來控制顯示對象的位置,這些點都是有水平的橫坐標和豎直的縱坐標來組成。該坐標系統(tǒng)中,一個點對應屏幕上一個確定的位置。如圖中坐標(x,y)表示的就是P點的位置:Flash坐標系中的點

向量a

2精選課件ppt12.2Point類Point類定義一對Flash坐標。它表示二維坐標系中的某個位置。其中x表示水平軸,y表示垂直軸。在ActionScript3.0中,該類有3個屬性,10個方法。3精選課件ppt12.2.1Point對象的創(chuàng)建和獲取使用Point類定義坐標,通常使用其構造函數來定義。其用法代碼如下所示。//法一varpoint:Point=newPoint(x,y)//法二varpoint:Point=newPoint()point.x=x坐標值point.y=y坐標值用法格式說明:法一:使用Point類的構造函數中的兩個參數,對橫坐標和縱坐標直接賦值。法二:使用Point類的構造函數創(chuàng)建一個空對象,然后利用Point對象的兩個屬性x,y對對象賦值。如果不賦值,則為原點坐標。4精選課件ppt12.2.2點對象的長度使用Point對象的屬性length,可以直接獲取對象點到坐標原點之間線段的長度。其用法格式如下所示。varlen:Number=p.length說明:p是一個點對象。示例代碼如下://使用構造函數直接定義點pt1varpt1:Point=newPoint(10,20);//獲取點pt1的長度varlen:Number=pt1.lengthtrace(len)//輸出:22.360679774997898拖不出區(qū)域的小球效果圖

5精選課件ppt12.2.3兩點之間的距離使用Point對象的ditance()方法,可以計算兩個點之間的距離。其用法格式如下所示。distance(pt1:Point,pt2:Point)說明:該方法接受兩個參數pt1和pt2,為兩個點。下面的使用distance方法,計算鼠標在舞臺上移動的速度。其實現原理為:通過幀循環(huán)事件,獲取連續(xù)兩幀之間鼠標位置之間距離,然后使用此距離處于兩幀所間隔的時間,獲取鼠標移動的速度。6精選課件ppt12.2.4坐標加減運算使用Point對象的add()方法可以實現將一個點的坐標與另一點的坐標相加,并返回一個新的坐標點。使用Point對象的subtract()方法可以實現一個點的坐標減去另一點的坐標,并返回一個新的坐標點。這兩種方法的用法格式如下所示。pt1.add(pt2:Point):Pointpt1.subtract(pt2:Point):Point參數說明:pt1:原始點的坐標。pt2:要加或者減的坐標。利用坐標運算移動小球

7精選課件ppt12.2.5縮放坐標使用Point對象的normalize()方法可以實現將原點和當前點之間線段的長度縮放為指定的長度,縮放后原坐標將發(fā)生改變,變?yōu)榭s放后的坐標。其用法格式如下所示。pt.normalize(len:Number):viod參數說明:pt:需要縮放的坐標。len:縮放的長度??s放坐標控制小球運動

8精選課件ppt12.2.6偏移坐標使用Point對象的offset()方法可以實現當前點坐標偏移一定的水平距離和豎直距離。其用法格式如下所示。pt.offset(dx:Number,dy:Number):viod參數說明:pt:需要偏移的坐標。dx:偏移的橫坐標值。dy:偏移的縱坐標值。偏移坐標控制小球運動

9精選課件ppt12.2.7極坐標轉Flash坐標在11.1.3中已經說過,在數學中還有一個極坐標系,其坐標使用(r,θ)表示。Flash的坐標系統(tǒng)與其不相同,在使用時需要進行轉換。在ActionScript3.0中,polar()方法用于實現極坐標和Flash坐標之間的相互轉換,該方法返回轉換后的坐標。其用法格式如下:Point.polar(r:Number,angel:Number):Point參數說明:r:極坐標的長度。angel:極坐標的角度。注意:用弧度表示。日地月旋轉系統(tǒng)

10精選課件ppt12.3二維向量在第12.1節(jié)中介紹過,平面向量可以用坐標來表示,但由于Point類并不能完全實現向量的方法和功能,在這里建立自己的平面向量類V2D,同時介紹向量的基本運算。11精選課件ppt12.3.1V2D類的構造函數構造函數用于定義向量類的名稱V2D,并負責實例化對象。初始化的向量采用坐標表示,需定義兩個屬性x和y,在這里默認為x=0和y=0。V2D類的構造函數代碼如下所示。//定義包packagecom.lzxt{ importcom.lzxt.MathD; publicclassV2D{ //定義兩個屬性_x和_y publicvar_x:Number; publicvar_y:Number; //構造函數 publicfunctionV2D(x:Number=0,y:Number=0){ this._x=x; this._y=y; } }}12精選課件ppt12.3.2向量檢查方法toString()使用toString()方法,可以返回向量的字符串表示。當V2D向量對象作為字符串輸出時,該方法會自動調用。該方法返回一個類似于坐標的表示。方法代碼如下所示。//toString格式化輸出向量坐標,取三位小數輸出,原數值不變publicfunctiontoString():String{varrx:Number=MathD.sround(_x,3);varry:Number=MathD.sround(_y,3);return"("+rx+","+ry+")";}13精選課件ppt12.3.3向量重置、復制、比較方法向量的重置方法reset(),就是使用新的值來修改原有的值。方法代碼如下所示。//重置publicfunctionreset(xx:Number,yy:Number):void{//使用xx值修改原有的屬性_x的值_x=xx;//使用yy值修改原有的屬性_y的值_y=yy;}14精選課件ppt12.3.4向量加法向量相加要遵循平行四邊形法則。法則內容表述如下:已知兩個從原點點O出發(fā)的兩個向量OA、OB,以OA、OB為鄰邊作平行四邊形OACB,則以O為起點的對角線OC就是向量OA、OB的和,這種計算法則叫做向量加法的平行四邊形法則。如圖所示。向量平行四邊形法則

15精選課件ppt12.3.5向量減法向量減法的處理方法和向量加法的處理方法類似,只要將兩個向量的x分量和y分量相減即可。同樣為兩個方法,代碼如下所示。//減法,在當前向量上減少,改變當前向量publicfunctionminus(v:V2D):void{_x-=v._x;_y-=v._y;}//加法,返回相減后的新向量publicfunctionminusNew(v:V2D):V2D{returnnewV2D(_x-v._x,_y-v._y);}16精選課件ppt12.3.6向量翻轉翻轉一個向量,起始就是把該向量旋轉180度。具體計算方法為x變?yōu)?x,y變?yōu)?y。此種方法實現的是向量的大小不變,方向翻轉。同樣設計了兩個方法,代碼如下所示。//翻轉,翻轉當前向量publicfunctionnegate():void{_x=-_x;_y=-_y;}//翻轉,翻轉產生新向量publicfunctionnegateNew():V2D{returnnewV2D(-_x,-_y);}17精選課件ppt12.3.7向量縮放向量縮放只改變向量的大小,而保證向量和原向量在同一條直線上,或相同,或相反。向量的縮放按照指定的倍數進行縮放,具體的計算方法是原向量的x分量和y分量都乘以縮放的倍數。如果縮放的倍數為負數,則向量的方向變?yōu)橄喾?。兩個方法代碼如下所示。//縮放,縮放當前向量publicfunctionscale(s:Number):void{_x*=s;_y*=s;}//縮放,返回新向量publicfunctionscaleNew(s:Number):V2D{returnnewV2D(_x*s,_y*s);}18精選課件ppt12.3.8向量長度向量的長度表示向量的大小,在數學種向量的大小被稱為“?!?。向量長度的計算就是利用勾股定理計算向量坐標與坐標原點之間的距離。下面定義獲取向量長度的方法length(),方法代碼如下所示。//獲取向量長度publicfunctionlength():Number{returnMath.sqrt(_x*_x+_y*_y);}19精選課件ppt12.3.9向量角度向量的角度用于指明向量的方向。向量方向的計算是利用反正切函數進行計算,實際計算的是向量坐標點與原點之間連線與x軸之間的夾角。下面的方法getangle()定義獲取角度的方法,代碼如下所示。//獲取向量角度publicfunctiongetangle():Number{returnMathD.atan2(_y,_x);}20精選課件ppt12.3.10向量旋轉向量的旋轉也是改變向量的角度,不過此方法是在原有角度的基礎上進行角度增加或減少。下面的方法rotate()定義向量旋轉的方法,方法代碼如下所示。向量控制圓形排布效果

21精選課件ppt12.3.11向量點乘在物理學中,功的定義為:功等于力和在力的方向上所發(fā)生的位移的乘積。在這個定義中,涉及的就是兩個向量的乘積,兩個向量相乘,得到一個結果,此結果稱為向量的點積。在使用用坐標表示的平面向量中,兩個向量a(x1,y1)和b(x2,y2)點積的計算公式為:a·b=x1*x2+y1*y2下面定義兩個向量點積的方法,代碼如下所示。//點積publicfunctiondot(v:V2D):Number{return_x*v._x+_y*v._y;}22精選課件ppt12.3.12法向量法向量是指和原向量垂直的向量,也就是原向量和新向量之間的夾角是90度。對一個向量來說,與其夾角為90度的向量都有兩個,這兩個向量在計算中對x屬性取反或者對y屬性取反,比如向量a(x,y)的法向量有兩個:a(-x,y)和a(x,-y)。計算向量的法向量的方法如下,返回一個新的向量——法向量。//法向量publicfunctiongetNormal():V2D{returnnewV2D(-_y,_x);}23精選課件ppt12.3.13向量夾角計算向量間的交角的過程相對比較復雜,需要利用向量相乘的逆運算來進行。兩個向量相乘,可以利用下面的數學公式進行計算:所以要計算兩個向量之間的交角,需要對該公式進行變形,變形后的公式為:24精選課件ppt12.3.14圓邊緣碰撞實例向量在物

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論