我正在尝试理解Rectangle类和MyCircle类,特别是每个类中的containsPoint方法。代码如下:
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类也面临同样的困境。
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类的开发.....
到目前为止,我得到了这个..
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方法?
谢谢!
发布于 2018-05-10 12:15:42
containsPoint方法是什么意思?
该方法只检查给定点(给定的x,y坐标,即xValue,yValue)是否在当前正方形或矩形内。
当前的代码是如何以这种特殊的方式设置的,因为这不是应该返回一个布尔值,而不是
的数据类型吗?
方法参数是int,因为它们指示给定点的x和y坐标。
已经被难住好几天了,这是一个更大的任务的一部分,但是不能理解containsPoint方法,所以它影响了mySquare类的开发.....
您的子类(如Sqaure类)应该具有一组属性,如x、y、width、height,这些属性指示正方形的位置和大小。根据这组属性,检查是否有任何给定点(xValue,yValue)在当前正方形内。这同样适用于Rectangle类。
发布于 2018-05-10 12:09:36
containsPoint是用于检查点是否在2D平面上的特定矩形/圆/形状内的方法。
发布于 2018-05-10 12:14:22
让我们考虑一下Rectangle的containsPoint。
让我们假设你有一个从坐标(1,1)开始的高2宽3的矩形。所以你的矩形应该是这样的
(1,3) (4,3)
------------
| |
| |
------------
(1,1) (4,1)(在上面的示例中)给定两个点xValue和yValue,如果满足以下条件,containsPoint将返回true
xValue介于1和4(包括1和4)和之间
yValue介于1和3之间(包括1和3)and false否则为
因此,containsPoint判断给定点是否位于形状上/形状内。
圆的containsPoint方法也做同样的事情(无论一个点是否位于圆内/圆上),但是公式稍微复杂一些。您可以参考Euclidean distance for two dimensions来更好地理解它。
除了使用width和heigth之外,正方形的containsPoint将非常类似于矩形,您将只有一个side。
return xValue >= x &&
xValue <= x + side &&
yValue >= y &&
yValue <= y + side;https://stackoverflow.com/questions/50265312
复制相似问题