본문 바로가기

Native/C++

ccw

ccw를 묻는 것 같군요.

 

즉  (x1*y2 + x2*y3 + x3*y1 - y1*x2 - y2*x3 - y3*x1)
양수이면 세점이 시계 반대방향, 음수이면 시계방향입니다.

 

출처

http://isair.silpir.net/entry/%EA%B8%B0%ED%95%98%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-CCW-%EC%84%B8%EC%A0%90%EC%9D%98-%EB%B0%A9%ED%96%A5%EC%84%B1-%EC%B0%BE%EA%B8%B0

 

 

 

 

 

.두점과 나머지 한점을 볼때 시계방향쪽인지 반시계 방향인지 알수있는 공식입니다.

 

위 식에서 1/2를 하면 세점을 이루는 삼각형의 넓이를 구하는 식이 되는데 (사다리꼴의 넓이 차로 생각 하시면 됩니다.)

 

시계방향이면 작은거에서 큰걸 빼게 되므로 음수가 나오게 되지요.

 

이때 일직선 상에 세 점이 있으면 0의 값을 가지게 됩니다.

 

 

 

삼각형 내부에 점이 있는가는

삼각형의 각 변에 대해 점이 항상 시계방향 또는 항상 시계 반대방향 위치에 있으면 되겠죠.

 

 

그리고 사각형의 경우에는

두개의 삼각형으로 나누면 쉽게 해결 될겁니다.

 http://kin.naver.com/detail/detail.php?d1id=11&dir_id=110203&eid=QnwSv+EiWUs0ULI34cJibvdN+LrqcMMe&qb=7ISg67aEIOygkOydmCDsnITsuZg=&enc=utf8§ion=kin&rank=4&sort=0&spq=0&pid=fCwkOwoi5UCsssE3rYZsss--173354&sid=SkwaYanqS0oAADzdjJo

'Native > C++' 카테고리의 다른 글

error msg  (0) 2013.10.02
mutable  (0) 2013.10.02
expat static complie  (0) 2013.10.02
singleton  (0) 2013.10.02
extern  (0) 2013.10.02