posted by WizardMania 2014. 10. 20. 14:31

광선과 점의 최단점(가장가까운점) 구하기

광선의 시작점 O 광선의 방향 D 벡터라 할때 점P와 가장가까운 광선위의 점을 구하는 방법


W벡터를 구한뒤 벡터 투영을 이용하면 구할 수 있다.

광선의 시작점과 투영된 벡터를 더하면 P'를 구할 수 있다.




 D가 단위벡터라면 |D|제곱은 생략 가능하다.


광선은 반직선이므로 투영된 위치의 점이 위와 같이 광선 범위 안에 있지 않다면

가장 가까운점은 광선의 시작점 O가 될 것이다.


값이 0보다 작을때 광선범위 밖의 점이 될 것이다.



광선과 점의 최단거리(가장가까운 거리) 구하기


P' 벡터를 구했다면 P에서 P'로가는 벡터의 거리를 구할수 있으므로 쉽게 거리를 구할 수 있다.


또는

피타고라스 정리를 이용하여 구할 수 도 있다.



 벡터 길이의 제곱은 그벡터를 내적한 값과 같다.


가까운 점을 구할때와 마찬가지로 값이 0보다 작을때 광선범위 밖의 점이 될 것이다.

따라서 광선의 시작점 과 임의의점을 연결한 벡터 W의 길이가 최단거리가 된다.





'프로그래밍 > 수학, 물리' 카테고리의 다른 글

광선 vs 구 교차판정  (0) 2014.10.27
선분 선분 최단점과 최단거리  (1) 2014.10.22
선분 점 최단점과 최단거리  (0) 2014.10.21
구 vs 구 교차판정  (0) 2014.10.20
벡터 투영  (0) 2014.10.20