CCW 세 점의 방향성 - Gaolious/algorithm GitHub Wiki

typedef struct _point
{
    int x, y;
} POINT ;
int ccw( POINT *p1, POINT *p2, POINT *p3)
{
    // left : 1
    // right : -1
    // in a line : 0
    
    int temp =  p1->x * p2->y + p2->x * p3->y + p3->x * p1->y ;
    temp = temp -  p1->y * p2->x - p2->y * p3->x - p3->y * p1->x ;
    
    if ( is_zero(temp) ) 
        return 0;
    if ( temp < 0 ) return -1;
    if ( temp > 0 ) return 1;
    return 0;
}