计算几何知识补充

本文介绍了几种关键的几何计算方法,包括格子点线段覆盖原理、Pick公式用于计算简单多边形面积、向量叉积求多边形面积及三角形外心计算公式等。此外还提供了一个两圆相交面积的实用计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值