| 동적으로 여러개의 MovieClip 을 원형으로 배열할때 직교좌표계 사용하는 것보다 극좌표계를 사용하면 훨씬 다루기가 쉽다. 또한 x,y 와 같은 점을 다룰경우 Point 클래스를 이용하면 각 점간의 수학적인 연산에 있어 기본적으로 Point 클래스의 메서드를 이용하여 쉽게 처리할 수 있다.
극좌표를 직교좌표로 바꿀때도 기본으로 제공해주는 메서드를 사용하면 된다.
polar (Point.polar method) public static polar(len: Number, angle: Number) : Point
Converts a pair of polar coordinates to a Cartesian point coordinate.
Parameters len: Number - The length coordinate of the polar pair. angle: Number - The angle, in radians, of the polar pair.
Returns Point - The Cartesian point.
import flash.geom.Point;
var len:Number = 125; var angleInRadians:Number ; var cartesianPoint:Point var unitAngle:Number=15;
for(var i=1 ; i<=24 ; i++){ var mc:MovieClip=this.attachMovie("M_thumb"+i,"M_thumb"+i,i); angleInRadians = Math.PI*unitAngle/180*(i-1);
cartesianPoint = Point.polar(len, angleInRadians); // 극 좌표를 직교좌표로 전환 var offsetX:Number=Math.round(cartesianPoint.x); var offsetY:Number=Math.round(cartesianPoint.y); mc._x=Stage.width/2+offsetX; mc._y=Stage.height/2+offsetY; }
굳이 point 클래스를 사용하지 않고서도 극좌표계를 직교좌표계로 간단한 삼각함수를 사용하여 다음과 같이도 쉽게 바꿀수 있다.
x1=x0+(Math.cos(angle)*radius); y1=y0+(Math.sin(angle)*radius);
하지만 Point 클래스를 사용하여 좌표를 구성한다면 코드의 일관성에 있어서나 간결성에 있어 상당한 도움이 될것이다.
|