'2014/10/20'에 해당되는 글 3건

  1. 2014.10.20 광선 점 최단점과 최단거리
  2. 2014.10.20 구 vs 구 교차판정
  3. 2014.10.20 벡터 투영
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
posted by WizardMania 2014. 10. 20. 13:32

구와구의 교차판정은 2차원의 원과원의 교차판정에서 축이 하나더 늘었다고 생각하면된다.

두 구 중심사이의 거리가 각 구의 반지름을 더한값보다 크다면 교차안함, 같다면 딱붙은상태, 작다면 교차함 이라 할 수 있다.



구의 거리를 구하는 방법은 피타고라스정리로 간단히 구할수 있다.



또는

A B 방향 벡터를 구하여 거리를 구할수도 있다. A구의 센터가 Ca B구의 센터가 Cb라고 한다면




거리를 구했다면 거리와 A B 반지름 합을 비교하면 교차여부를 판별할 수 있다.


구와구의 교차는 간단한 수식인만큼 빠른 교차판정이 가능하다.


※ 제곱근 연산은 연산시간이 걸리는 편에 속하므로 제곱근을 하지않고 A B 반지름 합을 제곱하여 비교하면 연산량을 줄일수가 있다. 




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

광선 vs 구 교차판정  (0) 2014.10.27
선분 선분 최단점과 최단거리  (1) 2014.10.22
선분 점 최단점과 최단거리  (0) 2014.10.21
광선 점 최단점과 최단거리  (0) 2014.10.20
벡터 투영  (0) 2014.10.20
posted by WizardMania 2014. 10. 20. 13:30

두벡터 A B가 존재할 시 A벡터를 B에 투영한 Proj 벡터를 구하는방법


일단 벡터의 내적부터 살펴보면

벡터의 내적 : A · B = |A||B|cosθ  (A벡터 길이 * B벡터 길이  * cosθ )

 θ 는 두벡터의 각도 이다


투영 벡터의 길이



B벡터의 단위 벡터


투영벡터의 길이에 B벡터의 단위벡터를 곱하면 투영 벡터를 구할 수 있다.



B벡터가 단위벡터(길이가1인벡터)라면 


로 구할수 있다.


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

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