Java:计算三角形的面积

发布于 2021-01-30 15:50:53

import java.lang.Math;
import java.awt.*
public class Triangle implements Shape
{
    java.awt.Point a;
    java.awt.Point b;
    java.awt.Point c;

    public Triangle(java.awt.Point a, java.awt.Point b, java.awt.Point c)
    {
        this.a = a;
        this.b = b;
        this.c = c;
    }    
public double getArea( )
    {
       double area;
       return area = Math.abs((a-c)*(b-a)-(a-b)*(c-a));
    } ...

http://upload.wikimedia.org/math/f/e/5/fe56529cdaaaa9bb2f71c1ad8a1a454f.png
<-区域公式

我试图从2D笛卡尔坐标系中的3个点(x,y)计算三角形的面积。我假设我的上述公式正确产生了三角形的面积(如果不是,请更正我),但是我的编译器说“运算符-
无法应用于java.awt.Point,java.awt.Point”。我假设这是因为您不能互相减去点,但是公式中的每个值都是x或y值,而不是点。我该如何修复我的代码,这样才能正常工作?谢谢!

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

    根据维基百科,您的公式是正确的。本文包含大量有用且清晰的数据。
    根据java.awt.point文档,应该使用getX()getY()方法,它们返回点的坐标值。

    那是,

    替代文字

    应该表示为:

    Math.abs((a.getX()-c.getX())*(b.getY()-a.getY())-
             (a.getX()-b.getX())*(c.getY()-a.getY()))*0.5;
    

    使用可能不是一个好习惯point.x,因为如果您有执行此操作的getter方法,则不应访问对象的变量。这是接口和实现之间分离的一方面:数据point.x可以以多种形式存储,而不仅仅是存储int;接口方法可确保您每次使用它都会得到一个int值。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看