已知直角三角形左下角顶点,如何基于Java Point2D类求另外两个顶点坐标
你写的原有方法实现是错误的,存在两个核心问题:
- 代码中直接使用的
x、y没有声明来源,需要从已存储的左下角顶点对象中读取坐标属性,Point2D.Double类的坐标值通过公共属性x、y直接访问 - 不能把已有的
bottomLeftPoint实例对象当成构造方法调用,要返回新的坐标点需要重新实例化Point2D.Double对象
正确的实现代码如下:
public Point2D.Double getTopTrianglePoint() { // 顶部顶点x坐标与左下角一致,y坐标为左下角y加高度 return new Point2D.Double(this.bottomLeftPoint.x, this.bottomLeftPoint.y + this.height); } public Point2D.Double getBottomRightTrianglePoint() { // 右下角顶点y坐标与左下角一致,x坐标为左下角x加底边长 return new Point2D.Double(this.bottomLeftPoint.x + this.base, this.bottomLeftPoint.y); }
结合你给出的测试用例验证:左下角为(1,2)、高度5、底边长3的三角形,调用上述两个方法得到的顶部顶点为(1,7)、右下角顶点为(4,2),完全符合你描述的数学逻辑。
内容的提问来源于stack exchange,提问作者ChanChan
相关产品推荐
相关产品推荐

