티스토리 뷰
이전에 작성한 삼각함수1 ~ 3편을 모두 읽고 직접 프로그램에 응용해 보자.
특정 점(point)에서 마우스가 움직일때마다 원의 형태로 객체가 rotation되는 프로그램을 만들어보자.
피타고라스의 정리를 이용하여 마우스까지의 거리를 구하고, 그 거리까지의 cos을 구하여 끼인각을 구한다.
끼인각은 라디안 단위 이므로 라디안을 다시 각도로 변환하는 공식을 구하여 객체에 대입한다.
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
import flash.display.Stage;
[SWF(frameRate="30", width="550", height="420", backgroundColor="0xCCCCCC")]
var sp:Sprite = new Sprite();
var g:Graphics = sp.graphics;
addChild(sp);
var dx:Number;
var dy:Number;
var distance:int;
var cos:Number;
var cosDegree:Number;
this.addEventListener(Event.ENTER_FRAME, draw);
function draw(e:Event):void{
dx = mouseX - rec_mc.x; //밑변
dy = mouseY - rec_mc.y; //높이
distance = Math.sqrt(dx*dx + dy*dy); //빗변
g.clear();
g.lineStyle(1,0x000000,1);
g.moveTo(rec_mc.x, rec_mc.y);
g.lineTo(mouseX, mouseY);
cos = dx / distance; //cos = 밑변 / 빗변
//rad -> degree
cosDegree = cos * 180 / Math.PI;
dis_txt.text = distance.toString();
cos_txt.text = cos.toString();
cosDegree_txt.text = cosDegree.toString();
i_mc.rotation = cosDegree;
}
'■ 개발관련 ■ > 산수와 알고리즘' 카테고리의 다른 글
| 감속도공식 - easeOutExpo (0) | 2013.10.13 |
|---|---|
| Math.atan2() - y,x점의 각도를 라디안 단위로 계산하여 반환 (0) | 2013.10.13 |
| 삼각함수3 - 60분법과 호도법 그리고 라디안의 정의 (2) | 2013.10.13 |
| 삼각함수2 - 삼각비 cos, sin, tan (0) | 2013.10.13 |
| 삼각함수1 - 피타고라스의 정리 (1) | 2013.10.13 |
댓글