Point 에 해당하는 글1 개
2007/03/06   Converting to a Cartesian coordinates

math&physics | 2007/03/06 21:58

동적으로 여러개의 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 클래스를 사용하여 좌표를 구성한다면 코드의 일관성에 있어서나 간결성에 있어 상당한 도움이 될것이다.


 
 
태그 : , , ,
이 글의 관련글(트랙백) 주소 :: http://kimkijeung.com/trackback/89

Name 
Password 
Homepage 
  secret
Comment 
  글쓰기


[PREV] [1] [NEXT]

 
전체 (105)
flash (74)
math&physics (4)
programming (11)
Flex2 (1)
Mac (2)
photo (0)
project (6)
주저리주저리 (3)
유용한 자료들 (1)
diary (0)
Book (1)
web (2)
«   2009/01   »
        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