算术问题

时间:2010-11-21 15:48:50

标签: java geometry

我已编写此代码,但它不会为我计算((((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)

1 个答案:

答案 0 :(得分:3)

如果您解释了您获得的结果以及您不喜欢的结果,那将会更有帮助。 “无法计算结果”暗示你会得到某种例外情况,但我认为这不是你的意思。

你可能意味着它得到的结果不是你所期望的,最可能的原因是你的所有变量都是int所以它正在进行整数运算,但你可能想要从你的部门获得浮点结果。

我建议您将本地变量更改为floatdouble,因此在进行算术运算之前会自动转换整数。

此外,看起来你有两次复杂的算术表达式。我会计算它们一次并将它们分配给局部变量(在循环内,在if之前)。