본문 바로가기

프로그래밍 -----------------------/C,C++ 팁

내적이란거



내적, 처음 봤을 때는 이런 해괴한 걸 어따 쓰냐라고 생각했었는데

공부를 해가면서, 특히 다른 사람들이 내적을 활용하는 것을 접하면서

내적이란 거 정말 대단한 녀석이구나;라는 것을 매번 느끼게 된다.

(나란 녀석은 사소한 것에 잘 감동한다. ㅎㅎ)

 

이번에 놀란 내용은 내적을 이용하여 점과 평면과의 거리를 구하는 것이다. 

 
흔히 알고 있는 공식은 위와 같다. 이래저래 복잡하다.
하지만 내적을 사용할 경우에는 평면 위의 임의의 점 하나와 평면 노멀,
그리고 거리를 알고자 하는 점만 있으면 된다. 주의할 점은 여기서 노멀은 노멀라이징되어야 한다.
 
거리 = |(다른점-평면위의점)·평면노멀|
 
글쎄, 내적을 공부한 사람이라면 누구나 알만큼 단순하다. 아니, 이미 이론적으로는 알고 있을터.
단지 그것을 실제로 활용하는 법을 모르고 있을 뿐 아닐까.
 
 
그래도.. 벡터의 매개변수 방정식을 활용한 테크닉들은 분석하는 순간에는 이해해도 돌이켜보면
금새 깜깜해진다. 아직도 볼때마다 새로운데 내가 바보인건가.. 으휴.
 
 
참고로 감자님의 홈페이지에 각종 점의 거리를 구하는 공식이 잘 설명되어 있다.
 
그리고 다음은 선분과 평면의 교차를 판정하는 함수이다.
교차하였을 경우 선분의 교차점을 비율로 알 수 있다.
함수에서 내적이 두번 사용되는데 둘의 의미는 다르지만 기본 개념은 동일하다(고 생각한다).
실제로 활용되는 예를 보이기 위해서(사실은 아래 함수를 분석하다가 이 포스트를 쓴 거지만)
같이 올린다. 소스 출처는 Creating a Solid Node Based BSP Tree Compiler & Renderer
written by Gary Simmons 이다.