평면방정식
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 |