포물선과 원 

 

 

 

 

◎ 포물선

 

포물선은 대칭 꼴의 굴곡, 또는 호를 나타내는 용어이다.

위아래 또는 옆으로 그려질 수도 있고 어느 경우에나 좌우 대칭의 형상을 가진다. 

 

포물선의 방정식은 두 가지 형태가 있다.

 

1. 수직 대칭축을 가지는 상하로 뻗는 포물선의 방정식

 

꼭짓점의 좌표가 (h, k) 대칭축이 x = h인 포물선의 방정식

 

이와 같은 경우 포물선의 형태가 위쪽, 혹은 아래쪽으로 열려있는 형태가 된다. 이 경우 x의 값을 대입해 y의 값을 구할 수 있다.

 

 

 

2. 수평 대칭축을 가지는 좌우로 뻗는 포물선의 방정식

 

꼭짓점의 좌표가 (h,k) 대칭축이 y = h인 포물선의 방정식

 

이 경우에는 오른쪽, 혹은 왼쪽으로 열려있는 포물선이 된다. 이 때는 y값을 대입해 x의 값을 구한다. 

 

 

 

 

 

◎ 원과 구

평면상에서 원은 주어진 고정된 한 점으로부터 반지름에 해당하는 일정한 거리만큼 떨어진 모든 점의 집합을 나타내는 용어이다.

그러므로 원의 방정식은 중심과 반지름 만으로 결정할 수 있다. 

여기서도 원의 중심으로부터 원 위의 한 점까지의 거리를 구하기 위해서 피타고라스의 정리가 사용된다.

 

중심의 위치가 (h,k)이고 반지름이 r인 원의 방정식은 다음과 같다.

 

만약 3차원상에서 구를 그리고 싶으면 중심의 좌표를 2개가 아닌 3개로 표현하면 된다.

중심이 (h,k,l)이고 반지름이 r인 구의 방정식은

 

 

 

 

◎ 응용 (충돌 체크)

원(2차원)과 구(3차원)을 이용하면 게임에서 경계, 즉 충돌 검사를 위해 사용할 수 있다. 체크하려는 점이 구 안에 들어와있는지 아닌지를 확인하면 된다.

 

원과 구와 충돌 되었는지를 확인하는 방법은 간단하다.

두 원이 위의 그림과 같이 붙어있다고 가정했을 때 두 원의 중심 사이의 거리 D는 두 원의 반지름 합인 r1+r2와 같다. 

만약 두 원이 서로 충돌한다면 두 원의 중심사이의 거리는 r1+r2보다 작아질 것이다. 

 

따라서 두 중심점 사이의 거리를 계산한 후 r1+r2가 거리보다 작은지 큰지를 계산해보면 된다.

작으면 두 원은 충돌한 상태일 것이고 크면 충돌하지 않은 상태이다. 

 

각 원이 위와 같이 정의될 때 이 두 원이 
이를 만족하면 충돌이 발생

 

 

그런데 코딩을 하다보면 제곱근 함수는 생각보다 매우 비싼, 프로세서의 처리능력이 많이 필요한 함수라는 것을 알게 될 것이다. 따라서 제곱근 연산을 뺀 계산이 더 효율적이다. 

 

각 원이 위와 같이 정의될 때 두 원이
를 만족하면 충돌이 발생

이렇게 바꿔준다.

 

 

 

 

 

 

참고 자료;

 

게임 프로그래머를 위한 기초 수학과 물리 (저; 웬디 스타일러, 더스틴 클링맨, 카베 카히리쯔 , 역 ; 엄윤섭 , 출판사 ; 제우미디어 )

 

 

+ Recent posts