【模板】图形面积计算

①三角形-海伦公式(已知三边)

formula

公式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。

ps:因为有根号的出现,精度损失较大!!

double STriangle(double a,double b,double c)
{
    double p=(a+b+c)*0.5;
    double s=sqrt(p*(p-a)*(p-b)*(p-c));
    return s;
} 

 

②三角形-二阶行列式算法(已知三点坐标)

设A(x1,y1),B(x2,y2),C(x3,y3) 在坐标系中中顺序为三点按逆时针排列;

公式:S = fabs( 0.5*[(x1y2-x2y1) + (x2y3-x3y2) + (x3y1-x1y3)] )

struct point{
    double x,y;
};
double STriangle(point a,point b,point c)
{
    return 0.5*fabs((a.x*b.y-b.x*a.y)+(b.x*c.y-c.x*b.y)+(c.x*a.y-a.x*c.y));
} 

 

③正多边形-通式(已知边长)

假设正多边形边长是x

(1) 把正n边形先分成n个三角形

(2) 每个小三角形对应的圆心角是2π/n,所以三角形的高就是 (x/2)/tan(π/n)

(3) 三角形面积是 1/2*x*(x/2)/tan(π/n) = x²/[4tan(π/n)]

(4) 从而正n边形面积是 S = nx²/[4tan(π/n)]

#define pi acos(-1)
double pic(int n,double x)
{
    return n*x*x/(4.0*tan(pi/n));
}

 

转载于:https://www.cnblogs.com/kannyi/p/9051611.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值