삼각함수로 한 싸이클의 움직임을 하는데 2파이가 사용됩니다.
5각형을 만들때는 한점당 1/5 *2파이 가 되는 것입니다.
그것에 착안하여 다각형을 그릴 수 있습니다.
예제를 보죠.
var n:Number = 5; //5각형을 그려볼까?
var t:Number = 0; //파이값
var cx:Number = 275; //중심점x
var cy:Number = 200; //중심점y
var rx:Number = 100; //타원가로반경
var ry:Number = 100; //타원세로반경 ==> 서로 같으니 원이 되겠죠.
var posArrayX:Array = new Array();
var posArrayY:Array = new Array();
//꼭지점 생성해 주고
for(var i:int=0; i<n; i++){
var mc:Mc_p = new Mc_p();
addChild(mc);
mc.x = cx + rx * Math.cos(i/n * 2*Math.PI - Math.PI /2);
mc.y = cy + ry * Math.sin(i/n * 2*Math.PI - Math.PI /2);
posArrayX.push(mc.x); //배열에 포지션 저장
posArrayY.push(mc.y); //배열에 포지션 저장
mc.name = "point" + i;
}
// 각 꼭지점끼리 선그리기 해주기
for(var j:int=0; j<n; j++){
if(j==0){
drawLine(this["line"+j], posArrayX[j], posArrayY[j], posArrayX[n-1], posArrayY[n-1]);
}else{
drawLine(this["line"+j], posArrayX[j], posArrayY[j], posArrayX[j-1], posArrayY[j-1]);
}
}
// 선그리기를 함수화 해 놓습니다.
function drawLine(line:Sprite, sx:Number, sy:Number, tx:Number, ty:Number){
var line:Sprite = new Sprite();
line.graphics.lineStyle(2, 0x000000, 1, true);
line.graphics.moveTo(sx, sy)
line.graphics.lineTo(tx, ty)
addChild(line);
}
다각형그리는 것은 위의 소스에서 첫줄에 있는
var n:Number = 5; 대신에
var n:Number = 12;
처럼 적어주면 됩니다.
'FLASH > AS3.0팁' 카테고리의 다른 글
등속운동 구현방법입니다. (0) | 2015.06.10 |
---|---|
[AS3] 두 점간 거리 구하기 (0) | 2015.06.10 |
단체로 브라운운동 + 방향전환 (0) | 2015.06.10 |
마우스 트레일러 만들기 (0) | 2015.06.10 |
휠마우스로 원형메뉴 돌리기 (0) | 2015.06.10 |
삼각함수를 이용한 단진동 (0) | 2015.06.10 |
마우스 따라 회전하는 무비클립 (0) | 2015.06.10 |
감속운동 : 마우스 따라오는 무비클립 (0) | 2015.06.10 |
as3.0 키보드 방향키로 주인공 움직이기 (0) | 2013.12.03 |
as3.0 에서 배열 섞는 방법 (0) | 2013.12.02 |