평면방정식

programming/etc 2024. 7. 26. 10:21 |

 

*평면방정식

-평면의 법선벡터와 원점간의 거리d를 알고있을때 점P가 평면에 대해 어느 위치에 있는지 판별 할 수 있다.

-법선벡터 N(a,b,c), 점P(x,y,z), 거리d

- ax + by + cz + d = 0

 

- 점P의 위치 판별

ax + by + cz + d = 0 일때 점P는 평면 위에 존재한다.

ax + by + cz + d > 0 일때 점P는 평면 앞에 존재한다.

ax + by + cz + d < 0 일때 점P는 평면 뒤에 존재한다.

( 법선벡터가 향하는 방향을 앞이라 둔다. )

 

-

사각형을 이루는 A,B,C,D 네 점이 있다.

 

A----B

l l

l l

C----D

 

이때

벡터 v1 = B - A

벡터 v2 = C - A

 

이 두 벡터를 외적연산하여 법선벡터 N을 구할 수 있다.

N.x = v1.y * v2.z - v1.z * v2.y

N.y = v1.z * v2.x - v1.x * v2.z

N.z = v1.x * v2.y - v1.y * v2.x

 

여기서 구한 N에 벡터를 구했던 A, B, C 세 점중 아무 한 점을 내적하면 d값을 구할 수 있다.

( 내적 값이 -d가 되므로 내적 * -1 = d )

 

* D3DXPlaneFromPoints()

- 세점을 인자로 평면 D3DXPLANE을 반환한다.

 

* D3DXPlaneDotCoord()

- D3DXPLANE과 D3DXVECTOR3를 인자로 받아 평면방정식을 연산한다.

- ax + by + cz + d의 값을 반환한다.

 

 

 

'programming > etc' 카테고리의 다른 글

카메라  (0) 2024.07.26
렌더링 파이프 라인  (0) 2024.07.26
외적  (0) 2024.07.26
내적  (0) 2024.07.26
사업자등록 통신판매업  (0) 2024.07.26
Posted by mainep
: