三角函數

三角函數在Flash動畫中很有用,下面列舉一下其有用的用法,注:myCircle是舞臺上的一個圓形實例。
1,讓某一物體做圓周運動。
this.addEventListener(Event.ENTER_FRAME,handleEnterFrame);
var angle = 0;
function handleEnterFrame(event:Event):void{
 myCircle.y = 200 + Math.cos(angle)*180;
 myCircle.x = 200 + Math.cos(angle)*180;
 angle += 0.1;
}
這樣,myCircle將圍繞中心點(200,200)做半徑爲180的圓周運動;
與此類似,橢圓運動,只是讓x,y可變化的長度不一樣即可。如下示例:
this.addEventListener(Event.ENTER_FRAME,handleEnterFrame);
var angle = 0;
function handleEnterFrame(event:Event):void{
 myCircle.y = 200 + Math.cos(angle)*180;
 myCircle.x = 200 + Math.cos(angle)*90;
 angle += 0.1;
}
2,讓物體指向鼠標方向:
this.addEventListener(Event.ENTER_FRAME,handleEnterFrame);
var angle = 0;
function handleEnterFrame(event:Event):void{
 myCircle.rotation = Math.atan2(mouseY-myCircle.y,mouseX-myCircle.x)*180/Math.PI;
}
這裏,myCircle換爲其他有菱角的物體效果更明顯。
3,呈對角方向移動:原理是x、y每次變化都一致,所以每次都是myCircle.x = myCircle.y
this.addEventListener(Event.ENTER_FRAME,handleEnterFrame);
var angle = 0;
function handleEnterFrame(event:Event):void{
 myCircle.y = 180 + Math.sin(angle)*180;
 myCircle.x = 180 + Math.sin(angle)*180;
 angle += 0.1;
}
4,無規律運動,給x、y的角度變化大小分別設定一個值,這樣x跟y變化也變得無規律,顯示出來就是整個屏幕中無規律移動:
this.addEventListener(Event.ENTER_FRAME,handleEnterFrame);
var anglex = 0;
var angley = 0;
function handleEnterFrame(event:Event):void{
 myCircle.y = 180 + Math.sin(anglex)*180;
 myCircle.x = 180 + Math.sin(angley)*180;
 anglex += 0.1;
 angley += 0.2;
}
5,畫正旋波:
this.addEventListener(Event.ENTER_FRAME,handleEnterFrame);
var anglex = 0.5;
var angley = 0;
var xpos = 0;
var ypos = 0;
this.graphics.lineStyle(1,0,1)
this.graphics.moveTo(0,180);
function handleEnterFrame(event:Event):void{
 xpos += anglex;
 angley += 0.05;
 ypos = 180+Math.sin(angley)*180;
 this.graphics.lineTo(xpos,ypos);
}
其實就是讓x每次變化1像素,y按正旋值變化。
上面的都是針對物體x、y進行變化的,也可將這些應用在rotation、scaleX、scaleY等屬性上,可得到另外一些很有用的圖形變化。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章