Flash AS3 소스:
(화면에 미리 'lineMC'이란 이름의 선 무비클립과 angleTxt, xTxt, yTxt, diaTxt란 명칭의
Dynamic Text들을 만들어두었다.)
var line = lineMC;
var dx, dy, radian, widths, ang;
var xVal, yVal, diaVal;
function init(){
stage.addEventListener(Event.ENTER_FRAME,loop);
}
function loop(e:Event){
line.rotation = rot2(line.x, line.y);
line.width = wid2(line.x);
xVal = mouseX - line.x; //x길이
yVal = line.y - mouseY; //y길이
if(line.rotation < 0){ //각도 구하기
ang = Math.abs(line.rotation);
}else ang = 360 - Math.abs(line.rotation);
//대각선 길이 구하기
diaVal = yVal / Math.sin(ang * Math.PI/180);
xTxt.text = String(xVal);//텍스트 표시
yTxt.text = String(yVal);
diaTxt.text = String(diaVal);
angleTxt.text = String(ang);
graphics.clear(); //그려진 줄 지우기
graphics.lineStyle(1); //줄 그리기
graphics.beginFill(0xf16b7b);//도형에 색 채우기
graphics.moveTo(line.x, line.y);
graphics.lineTo(mouseX, mouseY);
graphics.lineTo(mouseX, line.y);
graphics.lineTo(line.x, line.y);
graphics.endFill();
}
function rot2(lix, liy){ //마우스 위치에따른 회전각도 반환
dx = mouseX - lix;
dy = mouseY - liy;
radian = Math.atan2(dy,dx);
return radian * 180/Math.PI;
}
function wid2(lix){ //마우스 위치에따른 길이 반환
dx = mouseX - lix;
return widths = Math.abs(dx);
}
init(); |