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

티스토리 뷰

이전에 작성한 삼각함수1 ~ 3편을 모두 읽고 직접 프로그램에 응용해 보자.

 

특정 점(point)에서 마우스가 움직일때마다 원의 형태로 객체가 rotation되는 프로그램을 만들어보자.

 

피타고라스의 정리를 이용하여 마우스까지의 거리를 구하고, 그 거리까지의 cos을 구하여 끼인각을 구한다.

 

끼인각은 라디안 단위 이므로 라디안을 다시 각도로 변환하는 공식을 구하여 객체에 대입한다.

 

 

 

 

삼각함수.fla

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;
}
댓글