본문 바로가기
3D Algorithm

CCW(Counter Clockwise) 정의와 판별 알고리즘

by DarkRock 2023. 11. 13.
반응형

CCW은

Counter Clockwise의 줄임말이며, 우리말로 반시계방향을 의미합니다. 아래의 그림을 봤을 때 우리는 간단히 반시계방향 회전이라고 판단할 수 있습니다.

CCW


2차원에서 이미지를 정면으로 봤을 때 반시계방향이라고 말할 수 있고, 만약에 3차원에서 이미지 정면이 아닌 뒷면에서 봤을 때는 시계방향 회전이라고 말할 수 있습니다. 이렇게 3차원에서는 같은 데이터라도 어느 방향에서 봤느냐에 따라 시계방향인지 반시계 방향인지 달라질 수 있습니다.

 

CCW 판별은 백터의 외적과 내적을 이용해서 쉽게 판별할 수 있습니다. 반시계 방향을 판별하기 위한 두 백터 a, b와 두 백터를 바라보는 view 백터가 있다고 할 때 a, b 백터가 반시계 방향이라면 오른손 법칙에 의해 외적은 위로 향하게 됩니다.


이 외적과 보는 방향의 view 백터가 서로 반대 방향되어야 두 백터 a, b가 반시계 방향이라고 볼 수 있습니다. 두 백터의 방향이 같은 방향인지 반대 방향인지는 내적을 통해 알 수 있습니다. 내적 관련내용은 아래의 내용을 보시면 됩니다.

2023.10.30 - [3D Algorithm] - 백터 내적 활용(개발자 관점)

 

백터 내적 활용(개발자 관점)

백터의 내적은 영어로 Inner Product, Dot Product라고 부르며 3차원에서 계산은 1. a•b = a.x*b.x + a.y*b.y + a.z*b.z 2. a•b = |a||b|cosθ 두 가지 방식으로 계산할 수 있습니다. 주로 개발을 할 때 계산은 1 번식

darkrock.tistory.com

 

따라서 (axb)•view 가 0 보다 작으면 a, b 백터는 반시계 방향이고 0보다 크면 시계방향이라고 보면 됩니다.
(axb)•view < 0 : 반시계 방향
(axb)•view > 0 : 시계 방향

 

내적과 외적을 계산하는 공식은 아래글을 통해서 알 수 있습니다.

2024.03.12 - [3D Algorithm] - 벡터 내적 외적 계산 공식과 결과 의미

 

벡터 내적 외적 계산 공식과 결과 의미

3차원 공간의 벡터 A = (x1, x2, x3), B = (y1, y2, y3) 가 있을 때, 내적(Inner product, Dot product)은 A⋅B = x1*y1 + x2*y2 + x3*y3 으로 계산할 수 있습니다. 코사인을 이용한 내적 계산 방식은 X의 길이와 Y의 길이 곱

darkrock.tistory.com

 

반응형