找到完美直角三角形的另外两个点
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.bottomLeftPoint
是 Point2D.Double
类型的变量。然后你.. 尝试以某种方式将其视为一种方法。不是。这行不通。
您想创建一个全新的 Point2D.Double
。 new 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);
我正在编写代码,旨在使用完美直角三角形的一个给定点来找到其余两个点。对于这个练习,我们假设它是一个像这样的三角形: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.bottomLeftPoint
是 Point2D.Double
类型的变量。然后你.. 尝试以某种方式将其视为一种方法。不是。这行不通。
您想创建一个全新的 Point2D.Double
。 new 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);