http://lsujang.egloos.com/845586
벡터의
외적을 이용하면 3개의 점(A,
B, C)이
이루는 삼각형 안에 또다른 점 D가
포함되어 있는지의 여부를 손쉽게 판단할 수 있다. 바로 곱하여지는 두 벡터의 위치에 따라 법선 벡터의 방향이 달라진다는 성질을 이용한 것이다.
여기선 오른손 좌표계를 이용한다고 정하자.(머 왼손 좌표계라도 상관은 없다.)


외적 값이 양수가 나오면 첫 번째 벡터의 왼쪽(counterclockwise)에 두 번째 벡터가 위치한다는 걸 의미한다. 음수라면 그 반대가 된다.

위 삼각형 그림에서 삼각형이 XY 2차원 평면상에 있다고 한다면, 외적값의 방향은 z좌표가 음수쪽에 있는지, 양수쪽에 있는지에 따라 결정된다. 따라서 전체 외적을 계산할 필요없이 z좌표만 계산하여 3개의 z좌표중 부호가 다른 값이 나온다면(좀 더 정확히 말해서 음의 부호값이 하나라도 있다면...) 해당 점은 삼각형 바깥쪽에 위치한다고 판단할 수 있다. 왼쪽 삼각형 경우를 보면 CA벡터의 오른쪽(colckwise)에 CD벡터가 위치하므로 방향이 음수가 나온다.
결국 위 내용을 일반화 하면 삼각형 뿐만 아니라 어떠한 다각형(Convex polygons) 안에 점이 존재하는지 여부를 쉽게 판단할 수 있다. 단, Concave polygons에는 사용할 수 없다.

Convex polygon이든 Concave polygon이든 모든 다각형에 대한 판단 방법은 아래 링크를 참고.
http://www.alienryderflex.com/polygon/
http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
반응형
'수학 (Mathematics) > 3D수학' 카테고리의 다른 글
언프로젝션과 픽킹 (0) | 2012.11.02 |
---|---|
D3DXVec3TransformNormal & D3DXVec3TransformCoord (0) | 2012.11.02 |
D3DXVec3TransformCoord & D3DXVec3Transform 둘의 차이는 w 로 나누었는가의 차이 (0) | 2012.11.02 |
D3DXVec3TransformNormal 과 D3DXVec3TransformCoord 의 차이 (0) | 2012.10.31 |
원점에서 두 점을 잇는 선사이의 각도, 즉 두 벡터 사이의 각도 0~360범위로 구하기. (0) | 2012.10.27 |