三角形面积计算(海伦公式或叉积绝对值的一半)

Posted lakeone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三角形面积计算(海伦公式或叉积绝对值的一半)相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <cmath>

using namespace std;

struct Point
{
    float x; 
    float y;
    Point(float a, float b) : x(a), y(b)
    {
    }
};

double Length(Point & A, Point & B)
{
    return sqrt(pow(A.x - B.x, 2) + pow(A.y - B.y, 2));
}

double Area1(Point & A, Point & B, Point & C)
{
    double a, b, c;
    a = Length(A, B);
    b = Length(B, C);
    c = Length(C, A);
    double p = (a + b + c) / 2;
    return sqrt((p - a) * (p - b) * (p - c) * p);//海伦公式计算三角形面积
}

double CrossProduct(Point & v1, Point & v2)
{
    return v1.x * v2.y - v1.y * v2.x;
}

int main()
{

    Point A(10, 2);
    Point B(3, 4);
    Point C(5, 7);

    Point v1(B.x - A.x, B.y - A.y);  //向量AB
    Point v2(C.x - A.x, C.y - A.y);  //向量AC


    cout << CrossProduct(v1, v2) << endl;
    cout << Area1(A, B, C) << endl;

    return 0;
}

以上是关于三角形面积计算(海伦公式或叉积绝对值的一半)的主要内容,如果未能解决你的问题,请参考以下文章

0042-海伦公式

面积(待整理)

python之海伦公式

bzoj 1132 几何

已知四点坐标如何求四边形面积

C语言用三点求三角形面积 用行列式怎么写 不要海伦公式