웹을 잠깐 찾아봤는데 아무래도 없는 듯해서, 직접 만들어봤다. 별 거 아닌데 오래 걸렸다-_-; 기본적인 원리는 다음과 같다.
이건 Shape 인스턴스일 뿐이고 위의 코드에서는 화면(stage)에 표시(addChild)하는 부분은 없다. 실제로 활용하기 위해서는 MovieClip 등의 인스턴스를 만들고 그 안에 이걸 추가해준 뒤에 그 인스턴스를 다시 stage에 자식으로 추가하거나 한 뒤에 사용해야 정석이다...라는 당연한 얘기는 생략.
만약 변의 교차를 그리고 싶다면 for 문 앞의 moveTo 라인을 삭제하고 for 문 안을 다음으로 바꾸면 된다. 이 경우는 당연히(?) 속을 채울 수 없다.
설명을 잘 못 알아듣겠다면(말주변이 없어서-_-) 그냥 다음 플래시 파일을 다운받아 볼 것;
star3.fla
황금비율 혹은 황금분할에 대해선 만국기의 보편적 상징에 대하여(새창) 등의 문서를 참고할 것.
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();
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);
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 |




