슬라이딩 벡터
Sliding Vector
슬라이딩 벡터는 충돌 시에 입사벡터가 입사면을 따라서 미끄러지게 하기 위해서 수평 성분만을 남긴 벡터이다.
구하는 방법에는 반사벡터를 이용해 구하는 방법과 일반적인 방법이 있다.
◎ 반사 벡터를 이용해서 구하는 방법
반사 벡터에서 입사벡터 P에 n(-P·n)을 한번 더해주면 입사면에 투영된 접선벡터를 구할 수 있다.
입사벡터의 역벡터 -P가 n에 투영된 n(-P·n)을 이용해 슬라이딩 벡터를 구하고 있는 중이다.
따라서 반사 벡터를 이용할 때 슬라이딩 벡터 S를 구하는 공식은 다음과 같다.
S = P + n(-P·n)
◎ 일반적인 방법
일반적인 방법으로는 입사벡터 P를 n에 바로 투영시킨다.
입사벡터 P와 법선벡터 n의 끼인 각이 0≤ θ ≤ π/2 일 때, P·n의 값은 음수가 되므로, n벡터의 역벡터 방향으로 투영 벡터가 생성된다.
이렇게 얻을 수 있는 투영벡터 n(-P·n)을 입사벡터 P에서 빼주면 슬라이딩 벡터 S를 얻을 수 있다.
이때의 슬라이딩 벡터 S를 구하는 공식은 다음과 같다.
S = P - n(-P·n)
참고 자료;
'GameProgramming > 게임수학 & 물리' 카테고리의 다른 글
[게임수학] 반사벡터 (Reflection Vector) (0) | 2021.10.04 |
---|---|
[게임수학] 행렬 下 (행렬식, 역행렬, 딸림행렬) (0) | 2020.02.16 |
[게임수학] 행렬 上 (연산, 단위행렬, 전치행렬) (0) | 2020.02.12 |
[게임 수학] 포물선과 원 충돌체크 (0) | 2020.01.21 |
[게임 수학] 두 점 사이의 거리 구하기 (0) | 2020.01.21 |