【问题标题】:calculate area of triangle given 3 user defined points -Beginner计算给定 3 个用户定义点的三角形面积 - 初学者
【发布时间】:2013-01-12 11:38:31
【问题描述】:

我可以编译我的代码,但它不会产生所需的区域。我不确定我在哪里绊倒了。

他们希望您让用户为三角形的 3 个点输入 6 个坐标(x 和 y 值)并获取面积。我的代码如下:

import java.util.Scanner;

public class AreaTriangle {
    // find the area of a triangle
    public static void main (String [] args) {
        double side1 = 0;
        double side2 = 0;
        double side3 = 0;

        Scanner input = new Scanner(System.in);

        //obtain three points for a triangle
        System.out.print("Enter three points for a triangle (x and y intercept): ");
        double side1x  = input.nextDouble();
        double side1y  = input.nextDouble();
        double side2x  = input.nextDouble();
        double side2y  = input.nextDouble();
        double side3x  = input.nextDouble();
        double side3y  = input.nextDouble();

        //find length of sides of triangle
        side1 = Math.pow(Math.pow((side2x - side1x), 2) + Math.pow((side2y - side1y), 2) * .05, side1);
        side2 = Math.pow(Math.pow((side3x - side2x), 2) + Math.pow((side3y - side2y), 2) * .05, side2);
        side3 = Math.pow(Math.pow((side1x - side3x), 2) + Math.pow((side1y - side3y), 2) * .05, side3);

        double s = (side1 + side2 + side3) / 2;

        double area = Math.sqrt(s * (s - side1) * (s - side2) * (s-side3)) * 0.5;

        System.out.println("area" + area);
    }
}

【问题讨论】:

  • 你从哪里得到计算边长的公式?
  • 放错地方了。我把一堆代码放在一起,试着猜一下。

标签: java geometry area


【解决方案1】:

@Michael 的建议很好。按照你的代码,我会像这样使用毕达哥拉斯定理:

side1 = Math.sqrt(
            Math.pow((side2x - side1x), 2)
          + Math.pow((side2y - side1y), 2));

在您的代码中:

side1 = Math.pow(
            Math.pow((side2x - side1x), 2) 
          + Math.pow((side2y - side1y), 2) * .05
       , side1);

side1 在计算前是0,几乎所有0 的幂都是1。因此side1 以1 结束,与点数无关。

【讨论】:

  • 现在更有意义了
【解决方案2】:

我发现的另一种方法是您可以使用叉积来找到三角形的面积。这对你来说可能会稍微容易一些,因为你已经有了分数。您可以将三个点转换为两个向量并取叉积。

编辑: 哎呀,忘了加上三角形的面积将是叉积的一半,因为叉积会给你两个向量形成的平行四边形的面积(而三角形是它的一半)。

【讨论】:

    【解决方案3】:

    您应该尝试实现这个等式。 http://www.mathopenref.com/coordtrianglearea.html

    【讨论】:

      猜你喜欢
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多