CCW은
Counter Clockwise의 줄임말이며, 우리말로 반시계방향을 의미합니다. 아래의 그림을 봤을 때 우리는 간단히 반시계방향 회전이라고 판단할 수 있습니다.
2차원에서 이미지를 정면으로 봤을 때 반시계방향이라고 말할 수 있고, 만약에 3차원에서 이미지 정면이 아닌 뒷면에서 봤을 때는 시계방향 회전이라고 말할 수 있습니다. 이렇게 3차원에서는 같은 데이터라도 어느 방향에서 봤느냐에 따라 시계방향인지 반시계 방향인지 달라질 수 있습니다.
CCW 판별은 백터의 외적과 내적을 이용해서 쉽게 판별할 수 있습니다. 반시계 방향을 판별하기 위한 두 백터 a, b와 두 백터를 바라보는 view 백터가 있다고 할 때 a, b 백터가 반시계 방향이라면 오른손 법칙에 의해 외적은 위로 향하게 됩니다.
이 외적과 보는 방향의 view 백터가 서로 반대 방향되어야 두 백터 a, b가 반시계 방향이라고 볼 수 있습니다. 두 백터의 방향이 같은 방향인지 반대 방향인지는 내적을 통해 알 수 있습니다. 내적 관련내용은 아래의 내용을 보시면 됩니다.
2023.10.30 - [3D Algorithm] - 백터 내적 활용(개발자 관점)
따라서 (axb)•view 가 0 보다 작으면 a, b 백터는 반시계 방향이고 0보다 크면 시계방향이라고 보면 됩니다.
(axb)•view < 0 : 반시계 방향
(axb)•view > 0 : 시계 방향
내적과 외적을 계산하는 공식은 아래글을 통해서 알 수 있습니다.
2024.03.12 - [3D Algorithm] - 벡터 내적 외적 계산 공식과 결과 의미
'3D Algorithm' 카테고리의 다른 글
행기준 열기준 행렬 개발자 주의점(Transform Matrix) (0) | 2023.12.05 |
---|---|
세 점을 지나는 원 중심 계산(Eigen Library 이용한 최소자승법) (0) | 2023.11.28 |
Backface Culling 의미와 기본 원리 (0) | 2023.11.08 |
곡률 의미와 3D 개발 활용(Curvature) (0) | 2023.11.03 |
벡터 내적 활용(개발자 관점) (0) | 2023.10.30 |