找到完美直角三角形的另外两个点

finding the other two points of a Perfect Right Triangle

我正在编写代码,旨在使用完美直角三角形的一个给定点来找到其余两个点。对于这个练习,我们假设它是一个像这样的三角形:righttriangle

第一段代码使用 Point2D class 建立左下角,如下所示:

public Triangle(Point2D.Double bottomLeftPoint, double height, double base){
        this.base = base;
        this.height = height;
        this.bottomLeftPoint = bottomLeftPoint; 
    }

public Point2D.Double getBottomLeftTrianglePoint() {
        return this.bottomLeftPoint;
    }

我知道从数学上讲,三角形的顶点会有相同的 x 值,但 y 值会加上高度。右下角的点也有相同的 y 值,但 x 值是由基数添加的。

我的问题是出于方法的目的,我该如何构建它?

会不会像这样:

public Point2D.Double getTopTrianglePoint() {
        return this.bottomLeftPoint(x, y + this.height);
    }

public Point2D.Double getBottomRightTrianglePoint() {
        return this.bottomLeftPoint(x + this.base, y);
    }

有关更多信息,我有一个单独的 class 用于使用测试三角形测试方法:

public class TriangleTest {
    private Triangle triangle01;
    
    public TriangleTest() {
        this.triangle01 = new Triangle(new Point2D.Double(1, 2), 5, 3);
    }

}

感谢任何帮助。谢谢!

return this.bottomLeftPoint(x, y + this.height);

分解一下,然后你会发现这没有意义。 this.bottomLeftPointPoint2D.Double 类型的变量。然后你.. 尝试以某种方式将其视为一种方法。不是。这行不通。

您想创建一个全新的 Point2D.Doublenew Point2.Double(x, y) 照常;因此:

return new Point2D.Double(x, y + this.height);

除非,当然,如果你尝试这样做,编译器会告诉你这也行不通;编译器不知道 x 是什么意思。那么,您打算在那里使用什么?显然它是 this.bottomLeftPoint 字段引用的 Point2D.Double 对象的 x 坐标。其中有一个 .getX() 方法。所以:

return new Point2D.Double(bottomLeftPoint.getX(), bottomLeftPoint.getY() + height);