포물선과 원
◎ 포물선
포물선은 대칭 꼴의 굴곡, 또는 호를 나타내는 용어이다.
위아래 또는 옆으로 그려질 수도 있고 어느 경우에나 좌우 대칭의 형상을 가진다.
포물선의 방정식은 두 가지 형태가 있다.
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가 거리보다 작은지 큰지를 계산해보면 된다.
작으면 두 원은 충돌한 상태일 것이고 크면 충돌하지 않은 상태이다.
그런데 코딩을 하다보면 제곱근 함수는 생각보다 매우 비싼, 프로세서의 처리능력이 많이 필요한 함수라는 것을 알게 될 것이다. 따라서 제곱근 연산을 뺀 계산이 더 효율적이다.
이렇게 바꿔준다.
참고 자료;
게임 프로그래머를 위한 기초 수학과 물리 (저; 웬디 스타일러, 더스틴 클링맨, 카베 카히리쯔 , 역 ; 엄윤섭 , 출판사 ; 제우미디어 )
'GameProgramming > 게임수학 & 물리' 카테고리의 다른 글
[게임수학] 행렬 下 (행렬식, 역행렬, 딸림행렬) (0) | 2020.02.16 |
---|---|
[게임수학] 행렬 上 (연산, 단위행렬, 전치행렬) (0) | 2020.02.12 |
[게임 수학] 두 점 사이의 거리 구하기 (0) | 2020.01.21 |
[게임 수학] 삼각함수(sin, cos, tan) (0) | 2020.01.20 |
[게임수학] 벡터(Vector) 下 (0) | 2020.01.10 |