【发布时间】:2014-03-10 04:01:59
【问题描述】:
您好,我是编程新手,我正在尝试用 java 编写算法来确定圆是否在矩形区域中
我有圆的半径和它中间的点(中心)
|_____________________________________________________
|
|
|
| circle
|
|
|
|
|(0,0)________________________________________________
左下角代表坐标(0,0)
这是我目前所拥有的,但我知道我在某处找不到错误
if (mCenter.getmX() + mRadius > width ||
mCenter.getmY() + mRadius > height ||
mCenter.getmX() - mRadius < 0 ||
mCenter.getmY() - mRadius < 0) {
return false; //not inside area
}
else { return true; }
在此代码中,mCenter 是具有 x 和 y 坐标的 Point,mRadius 是圆的半径,width 和 height 是区域的宽度/高度
谢谢
【问题讨论】:
-
你的代码能编译吗?你的 else 块中缺少一个括号。
-
我发现对于这样的问题,最好先将您要单独测试的每个条件写成它们自己的布尔值,将它们全部打印出来,然后
or将它们全部放在一起以获得结果。然后,您可以尝试一次测试每一项,看看是否获得了预期的输出。这将使您很快缩小问题范围。完成测试后,您可以将它们汇总成一条语句。 -
也作为一般提示,如果您发现自己的
if else块仅包含return true和return false,您可能只返回用于 @987654329 的条件@块。 -
错误是什么?最好编写一个小测试程序,在几个示例案例上运行您的函数并检查函数是否返回正确的结果。错误假设:可能存在冲突的坐标系。计算机图形通常将 (0,0) 放在左上角,正 Y 值向下,以方便文本行。 [顺便说一句,尽管一些程序员对成员变量(也称为实例变量)使用像
mX这样的命名约定,但该约定是针对对象内部的——它不会延续到像getY()这样的访问器方法。] -
0,0 在左上角?嗯,我认为这可能是错误的尝试,ty Edit pastebin.com/wmvzMqwP,我不明白这段代码,但你能告诉我这段代码是否会将 (0,0) 放在左下角或左上角,如果 y向下