최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

대부분의 프로그램 언어에는 Math.atan2 라는 아크탄젠트 메서드를 지원한다. 해당 메서드의 API는 다음과 같다.

 

 

atan2()

 

public static function atan2(y:Number, x:Number):Number

 

언어 버전:  ActionScript 3.0 

 

런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

 

설명)

y/x 점의 각도를 라디안 단위로 계산하여 반환합니다.  

각도는 원의 x 축부터 반시계 방향으로 측정되며 원의 중심은 0,0입니다.  

반환 값의 범위는 +pi에서 -pi 사이입니다. atan2의 첫 번째 매개 변수는 항상 y 좌표입니다.  

 

매개 변수)

 y:Number — 점의 y 좌표입니다.   x:Number — 점의 x 좌표입니다.   

 

반환값)

Number — 숫자입니다.   

 

마우스를 따라서 움직이고, 각도는 마우스를 따라서 회전하는 객체에 대해 Math.atan2()메서드를 적용하면,

 

 

 

 

비행기 Math.atan2.fla

import flash.events.Event;
import flash.display.MovieClip;
 
[SWF(frameRate="30", width="550", height="400", backgroundColor="0x000000")];
var box:Box = new Box();
this.addChild(box);
 
box.alpha = Math.random() * 0.5 + 0.5;
//Box 객체의 불투명도는 0.5 ~ 1 
box.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
function enterFrameHandler(e:Event):void {
    var mc:MovieClip = e.target as MovieClip;
    mc.x += (this.mouseX - mc.x) * 0.1;
    mc.y += (this.mouseY - mc.y) * 0.1;
     
    var diffx:Number = this.mouseX - mc.x;
    var diffy:Number = this.mouseY - mc.y;
    var radian:Number = Math.atan2(diffy, diffx);
    //각각의 거리량으로 얻어진 radian을 구함.
    var degree:Number = radian * (180/Math.PI) +90;
    //radian을 도로 바꿔줌.
    //화면객체의 roation속성은 도(degree)단위를 사용하기 때문.
    //라디안을 도 단위로 바꿔주는 공식
    mc.rotation = degree;
}

 

댓글