#Snow{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; background: rgba(255,255,240,0.1); pointer-events: none; }

关于极角排序

struct point
{
    double x,y;
};

double cross(double x1,double y1,double x2,double y2)//计算叉积 
{
    return (x1*y2-x2*y1);
}

double compare(point k,point a,point b)
{
    return cross((a.x-k.x),(a.y-k.y),(b.x-k.x),(b.y-k.y));
}

bool cmp(point a,point b) //叉积大于零是顺时针,否则是逆时针 
{
    point c;//选定的极坐标系的原点
    c.x = 0;
    c.y = 0;
    if(compare(c,a,b)==0)
        return a.x<b.x;
    else return compare(c,a,b)>0;
}
posted @ 2022-11-13 16:36  Eternal-QX  阅读(21)  评论(0)    收藏  举报