필유홈2.0

admin | write
웹을 잠깐 찾아봤는데 아무래도 없는 듯해서, 직접 만들어봤다. 별 거 아닌데 오래 걸렸다-_-; 기본적인 원리는 다음과 같다.

const T1:int=144;    // 큰 변의 길이. 작은 변의 길이와 황금비율이다
const T2:int=55;    // (표시되지 않는) 작은 변의 길이. 큰 변의 길이와 황금비율이다
const ANGLE:Number=72*Math.PI/180;    // 5각형의 내각 72도의 라디안 값

var real:Shape=new Shape();

real.graphics.beginFill(0xaabbff, 1);
real.graphics.lineStyle(1,0xff6699,1,true);
real.graphics.moveTo(Point.polar(T1,-ANGLE).x,Point.polar(T1,-ANGLE).y);
for(var i=0;i<5;i++)
{
    real.graphics.lineTo(Point.polar(T2,(i-1)*ANGLE+ANGLE/2).x,
                         Point.polar(T2,(i-1)*ANGLE+ANGLE/2).y);
    real.graphics.lineTo(Point.polar(T1,i*ANGLE).x,Point.polar(T1,i*ANGLE).y);
}
real.graphics.endFill();

이건 Shape 인스턴스일 뿐이고 위의 코드에서는 화면(stage)에 표시(addChild)하는 부분은 없다. 실제로 활용하기 위해서는 MovieClip 등의 인스턴스를 만들고 그 안에 이걸 추가해준 뒤에 그 인스턴스를 다시 stage에 자식으로 추가하거나 한 뒤에 사용해야 정석이다...라는 당연한 얘기는 생략.

만약 변의 교차를 그리고 싶다면 for 문 앞의 moveTo 라인을 삭제하고 for 문 안을 다음으로 바꾸면 된다. 이 경우는 당연히(?) 속을 채울 수 없다.

    real.graphics.moveTo(Point.polar(T1,(i-1)*ANGLE).x,Point.polar(T1,(i-1)*ANGLE).y);
    real.graphics.lineTo(Point.polar(T1,(i+1)*ANGLE).x,Point.polar(T1,(i+1)*ANGLE).y);

설명을 잘 못 알아듣겠다면(말주변이 없어서-_-) 그냥 다음 플래시 파일을 다운받아 볼 것;


star3.fla

위 파일의 소스


황금비율 혹은 황금분할에 대해선 만국기의 보편적 상징에 대하여(새창) 등의 문서를 참고할 것.




'프로그래밍' 카테고리의 다른 글

actionscript로 별 그리기  (0) 2008/07/02
[마리가 연주하는 음악]에 부쳐  (0) 2008/06/28
[actionscript 3.0] 소리 페이드인(Sound fade-in)  (0) 2008/05/17
플래시 이것저것  (6) 2008/05/09
<< PREV : [1] : ... [12] : [13] : [14] : [15] : [16] : [17] : [18] : [19] : [20] : ... [196] : NEXT >>

필유홈2.0
일단은 (복)학생...

카테고리

분류 전체보기 (196)
음악 (56)
(29)
게임 (23)
영화 (18)
(13)
응용프로그램 (11)
프로그래밍 (12)
엑셀 (3)
우리말 (2)
기타 (29)
 
Total : 144953
Today : 21 Yesterday : 241
-_-동맹

믹시

블로그 예절 캠페인



Creative Commons License
이 곳은 크리에이티브 커먼즈 코리아 저작자표시-비영리 2.0 South Korea 라이센스에 따라 이용하실 수 있습니다.