두점 사이의 거리를 구하기 위해서는 피타고라스의 정리를 사용한다.
그림 처럼 빗면 c의 크기를 구하기 위해서 "밑변 a의 제곱과 높이 b의 제곱을 더하면 c제곱이다."의 식을 이용한다. as3에서는 거듭제곱의 값을 구하기 위해 Math.pow( 값 , 제곱근 )를 사용한다. 따라서 피타고라스의 식을 다음과 같이 사용할 수 있겠다.
Math.pow( c , 2 ) = Math.pow( a , 2 ) + Math.pow( b , 2 )
위의 코딩은 c2 = a2 + b2 와 같다. 그리고 정확한 값을 구하기 위새서는 제곱근을 구해야 한다. 제곱근을 구하는 방법은 Math.sqrt()를 사용한다. * 참고 : 제곱근(위키백과)
따라서 제곱을 하여 구한 값에 Math.sqrt()를 하여 제곱근을 구한다.
c = Math.sqrt( Math.pow( a , 2 ) + Math.pow( b , 2 ) )
하지만 as3에서는 Point()라는 오브젝트를 상속받은 2차원 좌표계에서의 표현하는 클래스가 있다.
이것을 활용하여 거리를 구할 수 있다.
[ 피타고라스 정리 ]
그림 처럼 빗면 c의 크기를 구하기 위해서 "밑변 a의 제곱과 높이 b의 제곱을 더하면 c제곱이다."의 식을 이용한다. as3에서는 거듭제곱의 값을 구하기 위해 Math.pow( 값 , 제곱근 )를 사용한다. 따라서 피타고라스의 식을 다음과 같이 사용할 수 있겠다.
Math.pow( c , 2 ) = Math.pow( a , 2 ) + Math.pow( b , 2 )
위의 코딩은 c2
따라서 제곱을 하여 구한 값에 Math.sqrt()를 하여 제곱근을 구한다.
c = Math.sqrt( Math.pow( a , 2 ) + Math.pow( b , 2 ) )
하지만 as3에서는 Point()라는 오브젝트를 상속받은 2차원 좌표계에서의 표현하는 클래스가 있다.
이것을 활용하여 거리를 구할 수 있다.
위의 플래시는 피타고라스 정리와 Point를 사용하여 구한 값을 비교해 보았다.
//Point.distance
var pt1:Point = new Point(p1.x , p1.y );
var pt2:Point = new Point(p2.x , p2.y );
//Point.distance
var pt1:Point = new Point(p1.x , p1.y );
var pt2:Point = new Point(p2.x , p2.y );
txt1.text = String( Point.distance( pt1 , pt2 ) );
//피타고라스 정리
var a:Number = p2.x - p1.x;
var b:Number = p1.y - p2.y;
var c:Number = Math.sqrt( Math.pow(a,2) + Math.pow(b,2) )
txt2.text = String(c);
var a:Number = p2.x - p1.x;
var b:Number = p1.y - p2.y;
var c:Number = Math.sqrt( Math.pow(a,2) + Math.pow(b,2) )
txt2.text = String(c);