三点坐标求三角形的面积

本文介绍了两种计算三角形面积的方法:一是通过行列式计算,适用于已知顶点坐标的情况;二是利用海伦公式,适用于知道三边长度的情形,并提供了相应的代码实现。

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

方法1:行列式

设三角形的面积为S, 则S = (1/2)*(下面行列式)
|x1 y1 1| 
|x2 y2 1|
|x3 y3 1|
即 S=(1/2)*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2) = (1 / 2) * ((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1));

代码:
//行列式计算三角形面积
double area(Point p1, Point p2, Point p3)   {
    return fabs (0.5 * ((p2.x - p1.x) * (p3.y - p1.y) - (p3.x - p1.x) * (p2.y - p1.y)));
}

方法2:海伦公式

  S = sqrt (p * (p - a)(p - b)(p - c))  其中p = (a + b + c) / 2, abc为三角形三边长

  代码:

double dis(Point p1, Point p2)    {
    return sqrt ((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
}

//海伦公式计算三角形面积
double area(Point p1, Point p2, Point p3)  {
    double a = dis (p1, p2);
    double b = dis (p2, p3);
    double c = dis (p3, p1);
    double p = (a + b + c) * 0.5;
    return sqrt (p * (p - a) * (p - b) * (p - c));
}

 

转载于:https://www.cnblogs.com/Running-Time/p/4753089.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值