我已编写此代码,但它不会为我计算((((bY - aY) / (maxX - minX)) * (p.getX() - minX)) + aY)
。请帮助我。
代码的一部分:(我有四个点,其中aY表示点“a”的“y”)
int aY = minXY[0];
int bY = maxXY[0];
int cY = minXY[minXY.length - 1];
int dY = maxXY[maxXY.length - 1];
for (Point p : pointList) {
if ((p.getY() > ((((bY - aY) / (maxX - minX)) * (p.getX() - minX)) + aY)) && (p.getY() < ((((dY - cY) / (maxX - minX)) * (p.getX() - minX)) + cY))) {
list.add(p);
} else if (p.getY() < ((((bY - aY) / (maxX - minX)) * (p.getX() - minX)) + aY)) {
upperHull.add(p);
int m = ((((bY - aY) / (maxX - minX)) * (p.getX() - minX)) + aY);
System.out.println(m);
} else if (p.getY() > ((((dY - cY) / (maxX - minX)) * (p.getX() - minX)) + cY)) {
lowerHull.add(p);
}
}
输出将是"y" of point "a".
的整数
完全,我的具体算术语句不起作用。请帮助我为什么?我也检查了算术语句中的每个值,他们没关系,但无法为我计算结果。
具体算术语句:((((bY - aY) / (maxX - minX)) * (p.getX() - minX)) + aY)
答案 0 :(得分:3)
如果您解释了您获得的结果以及您不喜欢的结果,那将会更有帮助。 “无法计算结果”暗示你会得到某种例外情况,但我认为这不是你的意思。
你可能意味着它得到的结果不是你所期望的,最可能的原因是你的所有变量都是int
所以它正在进行整数运算,但你可能想要从你的部门获得浮点结果。
我建议您将本地变量更改为float
或double
,因此在进行算术运算之前会自动转换整数。
此外,看起来你有两次复杂的算术表达式。我会计算它们一次并将它们分配给局部变量(在循环内,在if之前)。