프로그래밍/수학, 물리
광선 점 최단점과 최단거리
WizardMania
2014. 10. 20. 14:31
광선과 점의 최단점(가장가까운점) 구하기
광선의 시작점 O 광선의 방향 D 벡터라 할때 점P와 가장가까운 광선위의 점을 구하는 방법
W벡터를 구한뒤 벡터 투영을 이용하면 구할 수 있다.
광선의 시작점과 투영된 벡터를 더하면 P'를 구할 수 있다.
D가 단위벡터라면 |D|제곱은 생략 가능하다.
광선은 반직선이므로 투영된 위치의 점이 위와 같이 광선 범위 안에 있지 않다면
가장 가까운점은 광선의 시작점 O가 될 것이다.
값이 0보다 작을때 광선범위 밖의 점이 될 것이다.
광선과 점의 최단거리(가장가까운 거리) 구하기
P' 벡터를 구했다면 P에서 P'로가는 벡터의 거리를 구할수 있으므로 쉽게 거리를 구할 수 있다.
또는
피타고라스 정리를 이용하여 구할 수 도 있다.
※ 벡터 길이의 제곱은 그벡터를 내적한 값과 같다.
가까운 점을 구할때와 마찬가지로 값이 0보다 작을때 광선범위 밖의 점이 될 것이다.
따라서 광선의 시작점 과 임의의점을 연결한 벡터 W의 길이가 최단거리가 된다.