zoukankan      html  css  js  c++  java
  • 三点坐标求三角形的面积

    方法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));
    }
    
    编译人生,运行世界!
  • 相关阅读:
    react 滑动删除组件
    004-Java进制转换
    003-JavaString数据类型
    002-Java数据类型
    001-Java命名规范
    【leetcode】804
    【MySQL】基本语句
    【python】
    hiveSql常见错误记录
    【数据库】-基本特性
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4753089.html
Copyright © 2011-2022 走看看