码迷,mamicode.com
首页 > 其他好文 > 详细

几何常用

时间:2020-07-16 11:50:55      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:node   int   ==   bool   code   const   str   bsp   oss   

叉乘,点乘,用结构体存cos^2

int n, ans = 1, X[N], Y[N];

struct node
{
    double x,y;
    node(): node(0,0){}
    node(double x,double y):x(x),y(y){}
    bool operator < (const node& r)
    {
        return (double)x*r.y<(double)y*r.x;
    }
    bool operator == (const node& r)
    {
        return (double)x*r.y==(double)y*r.x;
    }
};

int Cross(int lhs, int rhs)
{
    return X[lhs] * Y[rhs] - X[rhs] * Y[lhs];
}

int Dot(int lhs, int rhs)
{
    return X[lhs] * X[rhs] + Y[lhs] * Y[rhs];
}

double Dis2(int lhs, int rhs)
{
    double dx = X[lhs] - X[rhs], dy = Y[lhs] - Y[rhs];
    return dx * dx + dy * dy;
}

int Sgn(int x)
{
    if (x > 0) return 1;
    if (x < 0) return -1;
    return 0;
}

node ar[N];

node cos2(ll x, ll y)
{
    ll a2=Dis2(0,x),b2=Dis2(x,y),c2=Dis2(0,y);
    int sgn=Sgn(b2+c2-a2);
    return node((double)1*sgn*(b2 + c2 - a2) * (b2 + c2 - a2), (double)4 * b2 * c2);
}

 

几何常用

标签:node   int   ==   bool   code   const   str   bsp   oss   

原文地址:https://www.cnblogs.com/dealer/p/13320733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!