티스토리 뷰
대부분의 프로그램 언어에는 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()메서드를 적용하면,
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; }
'■ 개발관련 ■ > 산수와 알고리즘' 카테고리의 다른 글
감속도공식 - 마우스 따라다니기 응용 (0) | 2013.10.13 |
---|---|
감속도공식 - easeOutExpo (0) | 2013.10.13 |
삼각함수4 - 프로그램 응용하기 (2) | 2013.10.13 |
삼각함수3 - 60분법과 호도법 그리고 라디안의 정의 (2) | 2013.10.13 |
삼각함수2 - 삼각비 cos, sin, tan (0) | 2013.10.13 |
댓글