首页 > 其他 > 详细

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

时间:2016-10-03 06:59:29      阅读:250      评论:0      收藏:0      [点我收藏+]
#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;
}

技术分享

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

原文:http://www.cnblogs.com/lakeone/p/5928467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!