我试图理解Rectangle Class和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方法?
谢谢!
答案 0 :(得分:1)
containsPoint方法是什么意思?
该方法只是检查给定点(给定的x,y坐标,即xValue,yValue)是否在当前的Square或Rectangle内。
这个当前代码是如何以这种特殊方式设置的,因为它不应该返回布尔值而不是int的数据类型?
方法参数为int
,因为它们表示给定点的x和y坐标。
被困了好几天,这是一个更大的任务的一部分,但无法理解containsPoint方法,所以它影响mySquare类的开发......
您的子类(例如Sqaure
类)应该具有一组属性,例如x
,y
,width
,height
表示正方形的位置和大小。根据这组属性,检查任何给定点(xValue
,yValue
)是否在您当前的方格内。这同样适用于Rectangle
类。
答案 1 :(得分:0)
containsPoint
是检查点是否位于2D平面上特定矩形/圆/形状内的方法。
答案 2 :(得分:0)
让我们考虑一下Rectangle的containsPoint
。
假设你有一个高度为2的矩形,宽度为3,从坐标(1,1)开始。所以你的矩形看起来像这样
(1,3) (4,3)
------------
| |
| |
------------
(1,1) (4,1)
(在上面的示例中)给出了两个点xValue
和yValue
,如果
xValue
介于1和4之间(含)和 yValue
介于1和3之间(含)
和 false 否则
因此,containsPoint
告诉某个给定点是否位于一个形状上。
圆的containsPoint
方法也会做同样的事情(点是否位于圆内/上),但公式更复杂。您可以参考Euclidean distance for two dimensions来更好地理解它。
Square的containsPoint
与矩形的width
非常相似,除了使用heigth
和side
之外,您只有一个return xValue >= x &&
xValue <= x + side &&
yValue >= y &&
yValue <= y + side;
。
containsPoint()
答案 3 :(得分:0)
将变量相互比较将产生一个布尔值
MyRectangle
中MySquare
中的每个比较产生一个布尔值,然后通过和连接。这意味着只有在每个比较结果为真时,它才会返回true
您需要将相同的原则应用于line
想想如果该点位于正方形内,方形的坐标与点的坐标相比如何。