본문 바로가기

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

평면의 방정식, 평면의 공간적 해석



그래픽스에 관해 공부하면서 자주 부닥치게 되는 평면의 방정식!

맨나말 부딪힐 때마다 관련서적을 가볍게 훓고 넘어가는 터라 다음에 다시 평면의 방정식과 

부딪히면 항상 또 책을 펼치고 마는 비생산적인 행위가 반복된다. 

이번엔 좀 제발 외우고 넘어가야 겠다. 

 

 

3차원에서 평면은 평면의 방정식으로 해석이 가능하다. 

이 방정식등을 이용하여 공간상의 교차판정, 평면의 Normal, 평면의 전후면 판별등이 가능하다. 

평면의 방정식은 다음과 같다.

 

 

ax + by + cz + d = 0 

 즉, a, b, c는 평면안에 속해 있는 임의의 세 점을 선분으로 이은 두 벡터의 외적을 구한 후, 

그 외적으로 부터 도출된 벡터의 세 성분이 되며, d는 위에서 언급했던 두 벡터의 내적으로서  

구할 수 있다.

 

Tip))) 

1. 위에서 외적을 통해 구한 벡터가 가르키는 방향은 곧, 평면이 바라보는 방향이 된다. 

2. 평면의 방정식에 의해 임의의 한 점과 평면과의 최단거리를 계산할 수 있게 되는데, 이 때 계산

   값이 0보다 크다면 평면의 앞에 그 점이 존재하는 것이며, 계산값이 0보다 작을 경우 그 점이 평

   면의 뒤에 존재한다는 것을 의미한다.

    그리고 만약 계산값이 0으로 딱! 떨어질 경우에는 그 점은 평면상에 존재하는 점이 된다. 

3. 이런 평면의 방정식은 3차원 그래픽스에서 충돌과 교차판정에 두루 쓰이게 되므로, 제발 좀

   외워보자!!!

 

 

Reference : DirectX 9.x 3D 게임 프로그래밍 By 김병철