티스토리 뷰
대부분의 프로그램 언어에는 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 |
댓글
비행기 Math.atan2.fla