首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rectangle类和containsPoint方法

Rectangle类和containsPoint方法
EN

Stack Overflow用户
提问于 2018-05-10 12:06:26
回答 4查看 514关注 0票数 1

我正在尝试理解Rectangle类和MyCircle类,特别是每个类中的containsPoint方法。代码如下:

代码语言:javascript
复制
public class MyRectangle extends GridItem {

private int height;
private int width;

public MyRectangle(int xValue, int yValue, int w, int h) {
    x = xValue;
    y = yValue;
    width = w;
    height = h;
}

public double getArea() {
    return height * width;
}

public boolean containsPoint(int xValue, int yValue) 
{


    return  xValue >= x &&
            xValue <= x + width &&
            yValue >= y &&
            yValue <= y + height;


}

}

让我感到困惑的是,containsPoint方法是什么意思?当前的代码是如何以这种特殊方式设置的,因为它不是应该返回一个布尔值,而不是int的数据类型吗?

MyCircle类也面临同样的困境。

代码语言:javascript
复制
public class MyCircle extends GridItem {

private int radius;

public MyCircle(int xValue, int yValue, int r) 
{
    x = xValue;
    y = yValue;
    radius = r;
}

public double getArea() {
    return Math.PI * Math.pow(radius, 2);
}

public boolean containsPoint(int xValue, int yValue) {
    double dx = x - xValue;
    double dy = y - yValue;
    double distance = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));

    return distance <= radius;
}

}

containsPoint方法的确切含义是什么?你如何解释这一点?我被难住了几天,这是一个更大的任务的一部分,但是不能理解containsPoint方法,所以它影响了mySquare类的开发.....

到目前为止,我得到了这个..

代码语言:javascript
复制
public class MySquare extends GridItem
{
private int side;

public MySquare(int xValue, int yValue, int s)
{
    x = xValue;
    y = yValue;
    side = s; 
}

@Override
public double getArea()
{
    return side*side;
}

@Override
public boolean containsPoint(int xValue, int yValue)
{
    return x && y;
}
}

如何在Square类中应用containsPoint方法?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2018-05-10 12:15:42

containsPoint方法是什么意思?

该方法只检查给定点(给定的x,y坐标,即xValue,yValue)是否在当前正方形或矩形内。

当前的代码是如何以这种特殊的方式设置的,因为这不是应该返回一个布尔值,而不是

的数据类型吗?

方法参数是int,因为它们指示给定点的x和y坐标。

已经被难住好几天了,这是一个更大的任务的一部分,但是不能理解containsPoint方法,所以它影响了mySquare类的开发.....

您的子类(如Sqaure类)应该具有一组属性,如xywidthheight,这些属性指示正方形的位置和大小。根据这组属性,检查是否有任何给定点(xValueyValue)在当前正方形内。这同样适用于Rectangle类。

票数 1
EN

Stack Overflow用户

发布于 2018-05-10 12:09:36

containsPoint是用于检查点是否在2D平面上的特定矩形/圆/形状内的方法。

票数 0
EN

Stack Overflow用户

发布于 2018-05-10 12:14:22

让我们考虑一下Rectangle的containsPoint

让我们假设你有一个从坐标(1,1)开始的高2宽3的矩形。所以你的矩形应该是这样的

代码语言:javascript
复制
 (1,3)      (4,3)
 ------------
 |          |
 |          |
 ------------ 
(1,1)       (4,1)

(在上面的示例中)给定两个点xValueyValue,如果满足以下条件,containsPoint将返回true

  • xValue介于1和4(包括1和4)和

之间

  • yValue介于1和3之间(包括1和3)

and false否则为

因此,containsPoint判断给定点是否位于形状上/形状内。

圆的containsPoint方法也做同样的事情(无论一个点是否位于圆内/圆上),但是公式稍微复杂一些。您可以参考Euclidean distance for two dimensions来更好地理解它。

除了使用widthheigth之外,正方形的containsPoint将非常类似于矩形,您将只有一个side

代码语言:javascript
复制
return xValue >= x &&
        xValue <= x + side &&
        yValue >= y &&
        yValue <= y + side;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50265312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档