关于极角排序
  • 板块灌水区
  • 楼主Eternality
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/11/14 10:53
  • 上次更新2023/10/27 03:00:54
查看原帖
关于极角排序
736891
Eternality楼主2022/11/14 10:53
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;
}
2022/11/14 10:53
加载中...