计算几何知识补充

1.以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy)
2.Pick公式:顶点坐标均是整点的简单多边形:面积=内部格点数目+边上格点数目/2-1
3.任意一个多边形的面积等于按顺序求相邻两个点与原点组成的向量的叉积之和

三点求圆心坐标(三角形外心)

//三点求圆心坐标(三角形外心)
Point waixin( Point a , Point b , Point c )
{
    double a1 = b.x-a.x,b1 = b.y-a.y,c1 = (a1*a1+b1*b1)/2;
    double a2 = c.x-a.x,b2 = c.y-a.y,c2 = (a2*a2+b2*b2)/2;
    double d = a1*b2-a2*b1;
    return Point( a.x+(c1*b2-c2*b1)/d , a.y+(a1*c2-a2*c1)/d );
}

两圆相交面积

//求两圆相交面积
double Area_of_overlap( Point c1 , double r1 , Point c2 , double r2 )
{
    double  d = dist( c1 , c2 );
    if ( r1+r2<d+eps ) return 0;
    if ( d<fabs(r1-r2)+eps )
    {
        double r = min( r1 , r2 );
        return pi*r*r;
    }
    double x = (d*d+r1*r1-r2*r2)/(2*d);
    double t1 = acos(x/r1);
    double t2 = acos((d-x)/r2);
    return r1*r1*t1+r2*r2*t2-d*r1*sin(t1);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值