이전에 삼각함수에 대해서 설명한 적이 잠깐 있었는데요.
이번에는 삼각함수를 이용해서 다각형을 기리는 방법에 대해서 적어볼려고 합니다.



우선 나온 결과물은 이렇습니다.
일부로 뒤로 갈수록 빨리그려지게 만들어봤습니다.
각은 77개 까지만 만들어봤습니다.


var sprite:Sprite = new Sprite( );
sprite.x = stage.stageWidth/2;
sprite.y = stage.stageHeight/2;

function polyStar( spr:Sprite, w:Number, p:uint ) : void
{
	spr.graphics.clear();
	spr.graphics.lineStyle( 1, 0xFF0000 );
	spr.graphics.beginFill( 0xFFFFFF );
	
	var posX:Number = w/2 * Math.cos( ( 360/p * p-1 ) * Math.PI/180 );
	var posY:Number = w/2 * Math.sin( ( 360/p * p-1 ) * Math.PI/180 );
	
	spr.graphics.moveTo( posX, posY );
	
	for( var i:int; i < p; ++i )
	{
		posX = w/2 * Math.cos( ( 360/p * i ) * Math.PI/180 );
		posY = w/2 * Math.sin( ( 360/p * i ) * Math.PI/180 );
		
		spr.graphics.lineTo( posX, posY );
	}
	
	spr.graphics.endFill();
}

this.addChild( sprite );

var timer:Timer;

drawStart();

function drawStart() : void
{
	timer = new Timer( 1000 );
	timer.addEventListener( TimerEvent.TIMER, onTimer );
	timer.start();
}

function onTimer( e:TimerEvent ) : void
{
	polyStar( sprite, 300, timer.currentCount );
	
	timer.delay += ( 0 - timer.delay ) * 0.1;
	
	if( timer.currentCount == 77 ) timer.stop();
	
	txt.text = "각 수 :: " + timer.currentCount;
}

btnReset.addEventListener( MouseEvent.CLICK, onResetClick );

function onResetClick( e:MouseEvent ) : void
{
	timer.stop();
	drawStart();
}



플래시 타임라인에서 코딩한 것 입니다.
위의 정도만 만들수 있다면 원모양 만드는것 같은것은 어느정도 해결할 수 있지 않나 싶습니다.

posX = w/2 * Math.cos( ( 360/p * i ) * Math.PI/180 );
posY = w/2 * Math.sin( ( 360/p * i ) * Math.PI/180 );

제가 생각하는 다각형 만들기의 핵심 부분입니다.

삼각함수에 대해서는 이전에 쓴 글인
삼각함수를 이용한 원그리기( http://hhjae84.tistory.com/50 ) 를 참고하시면 될 것 같습니다.

timer.delay += ( 0 - timer.delay ) * 0.1;

이 부분은 그리는 속도를 조절할려고 집어넣은 부분입니다.
감속도 같은것을 보시면 이해하시기 쉬울것 같습니다.
저작자 표시 비영리 변경 금지
신고

'Flash Platform > 액션스크립트' 카테고리의 다른 글

삼각함수를 이용한 다각형 그리기  (2) 2009.12.19
DragManager  (1) 2009.12.03
asdocs 만들기  (0) 2009.11.12
Bitmap 사용과 비사용의 차이  (0) 2009.11.12
BetweenAS3  (0) 2009.10.12
TweenMax  (0) 2009.10.12
Posted by 모지씨

댓글을 달아 주세요

  1. 2010.04.12 11:37  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 2010.04.20 00:53  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다


블로그 이미지
저도 블로그질 해볼려구요 ㅎ_ㅎ
모지씨

공지사항

Statistics Graph
Yesterday14
Today6
Total88,738

달력

 « |  » 2017.08
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

최근에 달린 댓글

최근에 받은 트랙백

글 보관함


티스토리 툴바